<?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>84648</bug_id>
          
          <creation_ts>2012-04-23 16:29:51 -0700</creation_ts>
          <short_desc>Failure to allocate ArrayStorage in emit_op_new_array leads to poisonous JSArray</short_desc>
          <delta_ts>2012-05-10 10:20:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>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>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>rafaelw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>608175</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-23 16:29:51 -0700</bug_when>
    <thetext>When emit_op_new_array successfully allocates a new JSArray but fails to allocate the corresponding ArrayStorage for it, it falls back to the out-of-line stub call to constructArray, which constructs and entirely new JSArray/ArrayStorage pair. This leaves us with a JSArray hanging around on the stack or in a register that did not go through its own constructor, thus giving it uninitialized memory in the two fields that are checked in JSArray::visitChildren.

The fix for this is to detect when we have successfully allocated a JSArray but failed to allocate its backing store and to write zeros into the correct places in the object prior to abandoning it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608331</commentid>
    <comment_count>1</comment_count>
      <attachid>138492</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-23 20:19:29 -0700</bug_when>
    <thetext>Created attachment 138492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608348</commentid>
    <comment_count>2</comment_count>
      <attachid>138492</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-23 21:16:34 -0700</bug_when>
    <thetext>Comment on attachment 138492
Patch

(1) Regression test, please.

(2) A better fix is to allocate the backing store first. That way, no special branching, and no zombie JSArray.

(3) Please re-verify that this inlining is still a performance win. It&apos;s a bit odd to have an optimization only in the slow JIT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608749</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-24 09:25:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/11309000&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608779</commentid>
    <comment_count>4</comment_count>
      <attachid>138583</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-24 09:52:49 -0700</bug_when>
    <thetext>Created attachment 138583
Bencher results

These are the benchmark results for ToT without the optimization (just a stub call like we used to do) compared to the optimization along with this particular fix. Looks like a small win. I think when we finish bug 79198 arrays will be in a much better state in general.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608867</commentid>
    <comment_count>5</comment_count>
      <attachid>138605</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-24 11:18:53 -0700</bug_when>
    <thetext>Created attachment 138605
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608940</commentid>
    <comment_count>6</comment_count>
      <attachid>138605</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-04-24 12:32:50 -0700</bug_when>
    <thetext>Comment on attachment 138605
Patch

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

Boy, those perf numbers are whisper-thin. Still, the fix is good, so let&apos;s take it.

&gt; Source/JavaScriptCore/jit/JITInlineMethods.h:490
&gt; +    // Allocate the backing store for the array. We allocate the storage first
&gt; +    // because it could fail and we have to take the slow path, which would leave 
&gt; +    // behind a zombie JSArray with inconsistent state, potentially causing a GC crash.

Hard to understand a comment about a potentially bad alternate version of the code.

I would just say, &quot;We allocate the backing store first to ensure that garbage collection doesn&apos;t happen during JSArray initialization&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608954</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-04-24 12:44:42 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/115096.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620663</commentid>
    <comment_count>8</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-10 10:04:31 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620664</commentid>
    <comment_count>9</comment_count>
      <attachid>141188</attachid>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-10 10:04:33 -0700</bug_when>
    <thetext>Created attachment 141188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620669</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2012-05-10 10:08:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Reopening to attach new patch.

I don&apos;t think this is the bug you meant to reopen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620684</commentid>
    <comment_count>11</comment_count>
    <who name="Rafael Weinstein">rafaelw</who>
    <bug_when>2012-05-10 10:20:23 -0700</bug_when>
    <thetext>Sorry. No, it wasn&apos;t</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138492</attachid>
            <date>2012-04-23 20:19:29 -0700</date>
            <delta_ts>2012-04-24 11:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84648-20120423201928.patch</filename>
            <type>text/plain</type>
            <size>3065</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0OTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZDYzNGY2ODQwN2Q5MjAxMjA3YWFmZjdhYzZhMTViYmE5MWY4ZTlhLi5hZTY2NDNlZWRkMjk3Y2Qz
NjVjOTk4OTczNTViY2U3MmM4YjgzNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMi0wNC0yMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEZhaWx1cmUgdG8gYWxsb2NhdGUgQXJyYXlTdG9yYWdlIGluIGVt
aXRfb3BfbmV3X2FycmF5IGxlYWRzIHRvIHBvaXNvbm91cyBKU0FycmF5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX25ld19hcnJheSk6IEZvciB0aGUgY2FzZSB3
aGVyZSB3ZSBmYWlsIHRvIGFsbG9jYXRlIHRoZSAKKyAgICAgICAgY2VsbCBwb3J0aW9uIG9mIHRo
ZSBKU0FycmF5LCB3ZSBzdG9yZSAwIGludG8gdGhlIHJlZ2lzdGVyIHRoYXQgd291bGQgaGF2ZSBo
ZWxkIAorICAgICAgICB0aGUgcG9pbnRlciB0byB0aGUgY2VsbC4gVGhpcyBhbGxvd3MgdXMgdG8g
Y2hlY2sgdGhhdCB0aGUgcmVnaXN0ZXIgaXMgbm9uLXplcm8gCisgICAgICAgIG9uIHRoZSBwYXRo
IHdoZXJlIHdlIHdvdWxkIGJlIGlmIHdlIGZhaWxlZCB0byBhbGxvY2F0ZSB0aGUgQXJyYXlTdG9y
YWdlLiBJZiB3ZSAKKyAgICAgICAgZGV0ZWN0IHN1Y2ggYSBzaXR1YXRpb24gKHN1Y2Nlc3NmdWwg
SlNBcnJheSwgdW5zdWNjZXNzZnVsIEFycmF5U3RvcmFnZSkgd2UgCisgICAgICAgIHdyaXRlIDAg
aW50byB0aGUgdHdvIHNsb3RzIHRoYXQgYXJlIHVzZWQgZHVyaW5nIEpTQXJyYXk6OnZpc2l0Q2hp
bGRyZW4gdG8gZW5zdXJlIAorICAgICAgICB3ZSBkb24ndCB0cnkgdG8gbWFyayBib2d1cyB2YWx1
ZXMgZHVlIHRvIHRob3NlIGZpZWxkcyBiZWluZyB1bmluaXRpYWxpemVkLgorCiAyMDEyLTA0LTIz
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIE9TUiBleGl0
IHNob3VsZCBlbnN1cmUgdGhhdCBhbGwgdmFyaWFibGVzIGhhdmUgYmVlbiBpbml0aWFsaXplZApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggMGJhY2ZlMmM5YzRl
MDQ0MWE0YjVmZDBhZDc3YmQwOTY5ZWU5NzRkMy4uMjQ2Nzk2MDdlODc2NTdjNjgxMzkyZjRjYjU3
M2U0ZDc2ZjIxNTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3Bw
CkBAIC0xNzEwLDExICsxNzEwLDI1IEBAIHZvaWQgSklUOjplbWl0X29wX25ld19hcnJheShJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmV3
X2FycmF5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CisgICAgLy8gSWYgdGhlIGFsbG9jYXRpb24gd291bGQg
YmUgb3ZlcnNpemUsIHdlIHdpbGwgYWxyZWFkeSBtYWtlIHRoZSBwcm9wZXIgc3R1YiBjYWxsIGFi
b3ZlIGluIAorICAgIC8vIGVtaXRfb3BfbmV3X2FycmF5LgogICAgIGludCBsZW5ndGggPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgIGlmIChDb3BpZWRTcGFjZTo6aXNPdmVy
c2l6ZShKU0FycmF5OjpzdG9yYWdlU2l6ZShsZW5ndGgpKSkKICAgICAgICAgcmV0dXJuOwogICAg
IGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gTm90IGVub3VnaCBzcGFjZSBpbiBNYXJrZWRTcGFjZSBm
b3IgY2VsbC4KKyAgICBtb3ZlKEltbTMyKDApLCByZWdUMCk7CiAgICAgbGlua1Nsb3dDYXNlKGl0
ZXIpOyAvLyBOb3QgZW5vdWdoIHNwYWNlIGluIENvcGllZFNwYWNlIGZvciBzdG9yYWdlLgorCisg
ICAgLy8gSWYgdGhlcmUgaXMgc29tZXRoaW5nIGluIFQwLCB3ZSBmYWlsZWQgdG8gYWxsb2NhdGUg
b3VyIGJhY2tpbmcgc3RvcmUuIFdlIG5lZWQgdG8ga2lsbCBhbGwgb2YgdGhlIHRoaW5ncyBpbiAK
KyAgICAvLyBpdCB0aGF0IHdvdWxkIGJlIHVzZWQgZHVyaW5nIEdDIGJlY2F1c2UgdGhpcyBjZWxs
IGlzIG5vIGxvbmdlciBvZiBhbnkgdXNlIGFuZCBtaWdodCBnZXQgc2Nhbm5lZCBkdXJpbmcKKyAg
ICAvLyB0aGUgbmV4dCBHQyBkdWUgdG8gYmVpbmcgaW4gYSByZWdpc3RlciBvciBvbiB0aGUgc3Rh
Y2suCisgICAgSnVtcCBjZWxsV2FzQWxsb2NhdGVkID0gYnJhbmNoUHRyKEVxdWFsLCByZWdUMCwg
VHJ1c3RlZEltbVB0cigwKSk7CisgICAgLy8gU3RvcmUgdGhlIG5ld2x5IGFsbG9jYXRlZCBBcnJh
eVN0b3JhZ2UuCisgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cigwKSwgQWRkcmVzcyhyZWdUMCwg
SlNBcnJheTo6c3RvcmFnZU9mZnNldCgpKSk7CisgICAgLy8gSW5pdGlhbGl6ZSB0aGUgc3BhcnNl
IHZhbHVlIG1hcC4KKyAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKDApLCBBZGRyZXNzKHJlZ1Qw
LCBKU0FycmF5OjpzcGFyc2VWYWx1ZU1hcE9mZnNldCgpKSk7CisgICAgY2VsbFdhc0FsbG9jYXRl
ZC5saW5rKHRoaXMpOworCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX25l
d19hcnJheSk7CiAgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVz
dGVkSW1tMzIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>138583</attachid>
            <date>2012-04-24 09:52:49 -0700</date>
            <delta_ts>2012-04-24 09:52:49 -0700</delta_ts>
            <desc>Bencher results</desc>
            <filename>ToT_Fix_SunSpiderV8V8RealKrakenJSBenchJSRegressDSP_Marks-Mac-Pro_20120423_2245_report.txt</filename>
            <type>text/plain</type>
            <size>14341</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBWOCwgVjhSZWFsLCBLcmFrZW4sIEpTQmVu
Y2gsIEpTUmVncmVzcywgYW5kIERTUCBvbiBNYXJrcy1NYWMtUHJvIChNYWNQcm81LDEpLgoKVk1z
IHRlc3RlZDoKIlRvVCIgYXQgL1ZvbHVtZXMvRGF0YS9XZWJLaXQtdHJ1ZS1jbGVhbi9XZWJLaXRC
dWlsZC9SZWxlYXNlL0R1bXBSZW5kZXJUcmVlCiJGaXgiIGF0IC9Wb2x1bWVzL0RhdGEvV2ViS2l0
LWZpeC1qc2FycmF5L1dlYktpdEJ1aWxkL1JlbGVhc2UvRHVtcFJlbmRlclRyZWUKCkNvbGxlY3Rl
ZCA2NCBzYW1wbGVzIHBlciBiZW5jaG1hcmsvVk0sIHdpdGggOCBWTSBpbnZvY2F0aW9ucyBwZXIg
YmVuY2htYXJrLiBFbWl0dGVkIGEgY2FsbCB0byBnYygpIGJldHdlZW4gc2FtcGxlCm1lYXN1cmVt
ZW50cy4gVXNlZCAxIGJlbmNobWFyayBpdGVyYXRpb24gcGVyIFZNIGludm9jYXRpb24gZm9yIHdh
cm0tdXAuIFVzZWQgdGhlIGpzYy1zcGVjaWZpYyBwcmVjaXNlVGltZSgpIGZ1bmN0aW9uIHRvCmdl
dCBtaWNyb3NlY29uZC1sZXZlbCB0aW1pbmcuIFJlcG9ydGluZyBiZW5jaG1hcmsgZXhlY3V0aW9u
IHRpbWVzIHdpdGggOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGluIG1pbGxpc2Vjb25kcy4KCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAg
ICAgICAgICAgICAgICAgICAgICBGaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgClN1blNwaWRlcjoKICAgM2QtY3ViZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNy41MjAxKy0wLjA0ODAgICAgICAgICAgICA3LjUxMzYrLTAuMDUyNCAgICAgICAg
CiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMjMxMist
MC4wMTg0ICAgICAhICAgICAgNy4yOTIxKy0wLjAzMjkgICAgICAgICEgZGVmaW5pdGVseSAxLjAw
ODR4IHNsb3dlcgogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjUwMTMrLTAuMDQ5OCAgICAgICAgICAgIDkuNDk2NistMC4wNDk0ICAgICAgICAKICAgYWNj
ZXNzLWJpbmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgMS44MTYwKy0wLjAwOTkg
ICAgICAgICAgICAxLjgxNTArLTAuMDA4NyAgICAgICAgCiAgIGFjY2Vzcy1mYW5ua3VjaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDcuNTMwMystMC4wMjE2ICAgICA/ICAgICAgNy41NDE3
Ky0wLjAyMjggICAgICAgID8KICAgYWNjZXNzLW5ib2R5ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMy44Njg4Ky0wLjAxMDEgICAgICAgICAgICAzLjg2NzMrLTAuMDEwMSAgICAgICAg
CiAgIGFjY2Vzcy1uc2lldmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTgwMSst
MC4wMTc2ICAgICA/ICAgICAgMy41ODc4Ky0wLjAxNjIgICAgICAgID8KICAgYml0b3BzLTNiaXQt
Yml0cy1pbi1ieXRlICAgICAgICAgICAgICAgICAgICAgMS40MDgwKy0wLjAwMzkgICAgICAgICAg
ICAxLjQwNzUrLTAuMDA0NiAgICAgICAgCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAg
ICAgICAgICAgICAgICAgIDUuNDMxNistMC4wMTgyICAgICAgICAgICAgNS40MDk3Ky0wLjAyMDIg
ICAgICAgIAogICBiaXRvcHMtYml0d2lzZS1hbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAz
LjQ3ODErLTAuMDMyMiAgICAgICAgICAgIDMuNDc2NistMC4wMzE1ICAgICAgICAKICAgYml0b3Bz
LW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yODk4Ky0wLjAwNTQgICAg
ID8gICAgICAzLjI5ODYrLTAuMDA4MyAgICAgICAgPwogICBjb250cm9sZmxvdy1yZWN1cnNpdmUg
ICAgICAgICAgICAgICAgICAgICAgICAyLjQzNzYrLTAuMDA3NyAgICAgPyAgICAgIDIuNDQ2MCst
MC4wMDgyICAgICAgICA/CiAgIGNyeXB0by1hZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDcuNzQ0NCstMC4wNTE3ICAgICAgICAgICAgNy43NDE3Ky0wLjA1NDggICAgICAgIAog
ICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMwMTgrLTAu
MDIxMyAgICAgICAgICAgIDMuMjk2MSstMC4wMjI4ICAgICAgICAKICAgY3J5cHRvLXNoYTEgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42NDQ5Ky0wLjAxMzUgICAgICAgICAgICAy
LjY0MTUrLTAuMDEzMiAgICAgICAgCiAgIGRhdGUtZm9ybWF0LXRvZnRlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTEuMjY3NCstMC4wNTU2ICAgICA/ICAgICAxMS4yOTQyKy0wLjA1MzMgICAg
ICAgID8KICAgZGF0ZS1mb3JtYXQteHBhcmIgICAgICAgICAgICAgICAgICAgICAgICAgICAxMC42
MzMwKy0wLjA0MTkgICAgICEgICAgIDEwLjg5ODErLTAuMTA2OSAgICAgICAgISBkZWZpbml0ZWx5
IDEuMDI0OXggc2xvd2VyCiAgIG1hdGgtY29yZGljICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuMjQxMystMC4wMTM3ICAgICAgICAgICAgNC4yMzY2Ky0wLjAxMTkgICAgICAgIAog
ICBtYXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICA5LjA2ODErLTAu
MDEwMCAgICAgICAgICAgIDkuMDY2OSstMC4wMTMyICAgICAgICAKICAgbWF0aC1zcGVjdHJhbC1u
b3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44NzAxKy0wLjAxNDYgICAgID8gICAgICAy
Ljg3NDcrLTAuMDE0NSAgICAgICAgPwogICByZWdleHAtZG5hICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA5LjgyMzArLTAuMDQwMSAgICAgPyAgICAgIDkuODQyNSstMC4wNDExICAg
ICAgICA/CiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQu
Nzc4NistMC4wMjUzICAgICAgICAgICAgNC43NDQ5Ky0wLjAyNDEgICAgICAgIAogICBzdHJpbmct
ZmFzdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjM0MDMrLTAuMDI4NiAgICAg
ICAgICAgIDcuMjkzOCstMC4wMjEzICAgICAgICAKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMi45ODY1Ky0wLjAzNjAgICAgICEgICAgIDEzLjA1ODErLTAu
MDM1MiAgICAgICAgISBkZWZpbml0ZWx5IDEuMDA1NXggc2xvd2VyCiAgIHN0cmluZy11bnBhY2st
Y29kZSAgICAgICAgICAgICAgICAgICAgICAgICAgMjEuODczMistMC4wMzU4ICAgICA/ICAgICAy
MS45MDgyKy0wLjA0MTMgICAgICAgID8KICAgc3RyaW5nLXZhbGlkYXRlLWlucHV0ICAgICAgICAg
ICAgICAgICAgICAgICAgNi45Mzk4Ky0wLjExMjcgICAgID8gICAgICA2Ljk0ODcrLTAuMTEwMiAg
ICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ni42Mzg3Ky0wLjAyMDkgICAgID8gICAgICA2LjY1MzgrLTAuMDIxNiAgICAgICAgPyBtaWdodCBi
ZSAxLjAwMjN4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1LjQyODUrLTAuMDE4MSAgICAgPyAgICAgIDUuNDM1MCstMC4wMTg1ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDAxMnggc2xvd2VyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuNDA5MistMC4wMTQyICAgICA/ICAgICAgNC40MTEyKy0wLjAxNDUg
ICAgICAgID8gbWlnaHQgYmUgMS4wMDA0eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAgICAgICAgICAgICAgICAgICAgICBG
aXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClY4OgogICBjcnlwdG8g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc0Ljc2NjYrLTAuMTE0OCAgICAg
ICAgICAgNzQuNjcyNistMC4xMTgzICAgICAgICAKICAgZGVsdGFibHVlICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE1OS40MjI1Ky0wLjc5MjQgICAgICAgICAgMTU4LjY1NTErLTAu
ODM2NiAgICAgICAgCiAgIGVhcmxleS1ib3llciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOTIuOTgyMystMC40NjI2ICAgICA/ICAgICA5My4wMjI0Ky0wLjQ3NDUgICAgICAgID8KICAg
cmF5dHJhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ni4yODQ3Ky0wLjYw
NzAgICAgICAgICAgIDU1LjY1NzQrLTAuNTM5MSAgICAgICAgICBtaWdodCBiZSAxLjAxMTN4IGZh
c3RlcgogICByZWdleHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkyLjYx
MDQrLTAuMDk4NCAgICAgISAgICAgOTMuMTMwOCstMC40MDUxICAgICAgICAhIGRlZmluaXRlbHkg
MS4wMDU2eCBzbG93ZXIKICAgcmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEzOS44MTAzKy0wLjU4MTYgICAgICAgICAgMTM5LjY2MTcrLTAuNDM2NCAgICAgICAgCiAg
IHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODcuMjMxNCstNS41
OTM4ICAgICA/ICAgICA4Ny4zODA1Ky01LjQxNjkgICAgICAgID8KCiAgIDxhcml0aG1ldGljPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAuNDQ0MCstMC44NTczICAgICAgICAgIDEw
MC4zMTE1Ky0wLjg0NTcgICAgICAgICAgbWlnaHQgYmUgMS4wMDEzeCBmYXN0ZXIKICAgPGdlb21l
dHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA5NC44MjE5Ky0wLjc5MTIgICAg
ICAgICAgIDk0LjY5NjArLTAuNzc5OCAgICAgICAgICBtaWdodCBiZSAxLjAwMTN4IGZhc3Rlcgog
ICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg5LjY4NjkrLTAu
Njg3NCAgICAgICAgICAgODkuNTIxNSstMC42Njg4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDAxOHgg
ZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRvVCAgICAgICAgICAgICAgICAgICAgICAgRml4ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIApWOFJlYWw6CiAgIGVuY3J5cHQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMC40MjYxNCstMC4wMDAyMiAgICA/ICAgICAwLjQyNjIwKy0wLjAwMDIy
ICAgICAgID8KICAgZGVjcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3
LjQxMTczKy0wLjAwNDcwICAgID8gICAgIDcuNDE2MTgrLTAuMDA1MDIgICAgICAgPwogICBkZWx0
YWJsdWUgICAgICAgICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuOTU5NDkrLTAuMDA0ODAg
ICAgICAgICAgMC45NTQ2NystMC4wMDQ3NiAgICAgICAKICAgZWFybGV5ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyLjk1MzYzKy0wLjAxMTgzICAgICEgICAgIDIuOTc5Mzgr
LTAuMDEyNzYgICAgICAgISBkZWZpbml0ZWx5IDEuMDA4N3ggc2xvd2VyCiAgIGJveWVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC42NzA4NystMC4wNDUyMiAgICAgICAg
IDE0LjY0MDY5Ky0wLjA0Njc1ICAgICAgIAogICByYXl0cmFjZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHgyICAgICAgIDcuMDA1NTArLTAuMDQxNDcgICAgPyAgICAgNy4wMzY2MSstMC4wNDc0
NSAgICAgICA/CiAgIHJlZ2V4cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAy
Ny41MTY3NystMC4wNDM2OSAgICBeICAgIDI3LjMzODk5Ky0wLjA0MDA2ICAgICAgIF4gZGVmaW5p
dGVseSAxLjAwNjV4IGZhc3RlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHgyICAgICAgIDAuMzgzOTQrLTAuMDAxODcgICAgICAgICAgMC4zODMyMSstMC4wMDE1NSAgICAg
ICAKICAgc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICAwLjkyNDQ2
Ky0wLjAyMTM0ICAgICAgICAgIDAuOTIzMzErLTAuMDE3MDYgICAgICAgCgogICA8YXJpdGhtZXRp
Yz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuMDc0NDgrLTAuMDA5OTAgICAgXiAg
ICAgNy4wNTI1NystMC4wMDkxNyAgICAgICBeIGRlZmluaXRlbHkgMS4wMDMxeCBmYXN0ZXIKICAg
PGdlb21ldHJpYz4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjU4MTg0Ky0wLjAw
ODY3ICAgICAgICAgIDIuNTc5ODYrLTAuMDA2NjEgICAgICAgICBtaWdodCBiZSAxLjAwMDh4IGZh
c3RlcgogICA8aGFybW9uaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuMTAw
NTYrLTAuMDA0NTUgICAgICAgICAgMS4wOTkzNCstMC4wMDMxOSAgICAgICAgIG1pZ2h0IGJlIDEu
MDAxMXggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFRvVCAgICAgICAgICAgICAgICAgICAgICAgRml4ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIApLcmFrZW46CiAgIGFpLWFzdGFyICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgODI2LjcyMCstMC42NzggICAgICBeICAgICA4MTcuMDAzKy00
LjE1NiAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAxMTl4IGZhc3RlcgogICBhdWRpby1iZWF0LWRl
dGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIDIwMi40NTIrLTAuNjgzICAgICAgPyAgICAg
MjAzLjQxMistMC44MTggICAgICAgICA/CiAgIGF1ZGlvLWRmdCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMjkwLjk3OCstMC41OTYgICAgICA/ICAgICAyOTEuMDA0Ky0wLjU5MiAg
ICAgICAgID8KICAgYXVkaW8tZmZ0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
MjAuMDYyKy0wLjE1NCAgICAgICAgICAgIDExOS45MzkrLTAuMTQ4ICAgICAgICAgCiAgIGF1ZGlv
LW9zY2lsbGF0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIyLjMxNistMC43ODMgICAg
ICBeICAgICAzMjAuMzcwKy0wLjI1OCAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAwNjF4IGZhc3Rl
cgogICBpbWFnaW5nLWRhcmtyb29tICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMxNi4yMTkr
LTYuNzc4ICAgICAgXiAgICAgMzA3LjM1NCstMC44NjggICAgICAgICBeIGRlZmluaXRlbHkgMS4w
Mjg4eCBmYXN0ZXIKICAgaW1hZ2luZy1kZXNhdHVyYXRlICAgICAgICAgICAgICAgICAgICAgICAg
ICAyMTkuMTMzKy0wLjA0OCAgICAgID8gICAgIDIxOS4yMDcrLTAuMDU3ICAgICAgICAgPwogICBp
bWFnaW5nLWdhdXNzaWFuLWJsdXIgICAgICAgICAgICAgICAgICAgICAgIDQ1Ni45MDgrLTAuMTU3
ICAgICAgICAgICAgNDU2LjgzMistMC4xNTEgICAgICAgICAKICAganNvbi1wYXJzZS1maW5hbmNp
YWwgICAgICAgICAgICAgICAgICAgICAgICAgNjcuMTEzKy0wLjA4NSAgICAgIF4gICAgICA2NS45
MDIrLTAuMDg0ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDE4NHggZmFzdGVyCiAgIGpzb24tc3Ry
aW5naWZ5LXRpbmRlcmJveCAgICAgICAgICAgICAgICAgICAgIDg0Ljc3OSstMC4wOTcgICAgICAg
ICAgICAgODQuNzEzKy0wLjEzOCAgICAgICAgIAogICBzdGFuZm9yZC1jcnlwdG8tYWVzICAgICAg
ICAgICAgICAgICAgICAgICAgICA4OS40MjMrLTAuMjM0ICAgICAgISAgICAgIDkwLjQxMSstMC4z
MjYgICAgICAgICAhIGRlZmluaXRlbHkgMS4wMTEweCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRv
LWNjbSAgICAgICAgICAgICAgICAgICAgICAgICAgOTUuODE4Ky0wLjQyNCAgICAgID8gICAgICA5
Ni4xOTcrLTAuNDc1ICAgICAgICAgPwogICBzdGFuZm9yZC1jcnlwdG8tcGJrZGYyICAgICAgICAg
ICAgICAgICAgICAgIDE5My45MDArLTAuNTYyICAgICAgICAgICAgMTkzLjgzNCstMC41MTUgICAg
ICAgICAKICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1Ni1pdGVyYXRpdmUgICAgICAgICAgICAgOTQu
NDg3Ky0wLjEyOCAgICAgICEgICAgICA5NC43NDkrLTAuMTE3ICAgICAgICAgISBkZWZpbml0ZWx5
IDEuMDAyOHggc2xvd2VyCgogICA8YXJpdGhtZXRpYz4gKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDI0MS40NTErLTAuNDkwICAgICAgXiAgICAgMjQwLjA2NistMC4zMTQgICAgICAgICBe
IGRlZmluaXRlbHkgMS4wMDU4eCBmYXN0ZXIKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxODQuNTM3Ky0wLjI3NCAgICAgIF4gICAgIDE4My45OTQrLTAuMTQ2
ICAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDAzMHggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQ3LjM0OCstMC4xMzggICAgICBeICAgICAxNDcu
MDY0Ky0wLjEzOCAgICAgICAgIF4gZGVmaW5pdGVseSAxLjAwMTl4IGZhc3RlcgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAg
ICAgICAgICAgICAgIEZpeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
SlNCZW5jaDoKICAgYW1hem9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ny42MjUwKy0wLjEyMTkgICAgICAgICAgIDE3LjU2MjUrLTAuMTMyNiAgICAgICAgCiAgIGZhY2Vi
b29rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjUuNjI1MCstMC4xNjM1ICAg
ICAgICAgICA2NS41MDAwKy0wLjEzMzUgICAgICAgIAogICBnb29nbGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDg5Ljg0MzgrLTAuMjA1MCAgICAgICAgICAgODkuNjQwNist
MC4yMDU3ICAgICAgICAKICAgdHdpdHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1MS40Njg4Ky0wLjEyNTYgICAgIF4gICAgIDUxLjA0NjkrLTAuMTEyOSAgICAgICAgXiBk
ZWZpbml0ZWx5IDEuMDA4M3ggZmFzdGVyCiAgIHlhaG9vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMjIuMjk2OSstMC4xMTUwICAgICA/ICAgICAyMi4zNzUwKy0wLjEyMTkg
ICAgICAgID8KCiAgIDxhcml0aG1ldGljPiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NDkuMzcxOSstMC4wNzAwICAgICBeICAgICA0OS4yMjUwKy0wLjA2OTggICAgICAgIF4gZGVmaW5p
dGVseSAxLjAwMzB4IGZhc3RlcgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQxLjIzMzErLTAuMDg1MiAgICAgICAgICAgNDEuMTI5OSstMC4wODI2ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDAyNXggZmFzdGVyCiAgIDxoYXJtb25pYz4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzMuOTE1MistMC4xMTAyICAgICAgICAgICAzMy44NTM5Ky0wLjEx
NDYgICAgICAgICAgbWlnaHQgYmUgMS4wMDE4eCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAgICAgICAgICAgICAgICAgICAg
ICBGaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkpTUmVncmVzczoK
ICAgYWRhcHQtdG8tZG91YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICA3Mi40NzcxKy0w
LjAxNzAgICAgID8gICAgIDcyLjUwNzMrLTAuMDM0MiAgICAgICAgPwogICBib29sZWFuLXRlc3Qg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjkxMjcrLTAuMDAyNyAgICAgPyAgICAg
IDMuOTE5NistMC4wMDcwICAgICAgICA/CiAgIGNhc3QtaW50LXRvLWRvdWJsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTQuMjQ3MCstMC4wNzg2ICAgICAgICAgICAxNC4yNDY3Ky0wLjA3OTYg
ICAgICAgIAogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAgICAgICAgICAgICAgICAgIDE0
LjI4MjUrLTAuMDc3NyAgICAgICAgICAgMTQuMjQ0MistMC4wNzI0ICAgICAgICAKICAgY29uc3Rh
bnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNy4xMjY2Ky0wLjAzODIgICAg
ID8gICAgIDI3LjE1ODQrLTAuMDM2OSAgICAgICAgPwogICBkb3VibGUtcG9sbHV0aW9uLWdldGJ5
dmFsICAgICAgICAgICAgICAgICAgICA4Ljc1NDIrLTAuMDEwOCAgICAgICAgICAgIDguNzQ3MCst
MC4wMDY5ICAgICAgICAKICAgZG91YmxlLXBvbGx1dGlvbi1wdXRieW9mZnNldCAgICAgICAgICAg
ICAgICAgNC44NzUxKy0wLjA0NDkgICAgIF4gICAgICA0LjgxMDcrLTAuMDE4OSAgICAgICAgXiBk
ZWZpbml0ZWx5IDEuMDEzNHggZmFzdGVyCiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzMuNTA5MSstMC4wMTkyICAgICA/ICAgICAzMy42NjEyKy0wLjE5Njgg
ICAgICAgID8KICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC41NjM0Ky0wLjAxOTYgICAgICAgICAgICA0LjUzNzYrLTAuMDEwNyAgICAgICAgCiAgIGludC1v
dmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAgICAgICAxMDIuNDg0MCstMC4xMDA4ICAg
ICAgICAgIDEwMi40MDIzKy0wLjA0NTggICAgICAgIAogICBJbnQxNkFycmF5LWJ1YmJsZS1zb3J0
ICAgICAgICAgICAgICAgICAgICAgIDY4LjIwMDcrLTAuNDk3OCAgICAgICAgICAgNjguMTMyOSst
MC40MDMzICAgICAgICAKICAgSW50MTZBcnJheS1sb2FkLWludC1tdWwgICAgICAgICAgICAgICAg
ICAgICAxNi4wNTMxKy0wLjA1MjEgICAgID8gICAgIDE2LjE0MDErLTAuMDU5NyAgICAgICAgPwog
ICBJbnQ4QXJyYXktbG9hZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljc5NDgrLTAu
MDUxMyAgICAgICAgICAgIDQuNzc5MCstMC4wNTg5ICAgICAgICAKICAgaW50ZWdlci1kaXZpZGUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC44MDUxKy0wLjAxNjAgICAgICAgICAgIDE0
Ljc5NTErLTAuMDE2MiAgICAgICAgCiAgIG1ldGhvZC1vbi1udW1iZXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxODguNzkxNCstMC40MDE2ICAgICAhICAgIDE4OS43NTQxKy0wLjM3MTcgICAg
ICAgICEgZGVmaW5pdGVseSAxLjAwNTF4IHNsb3dlcgogICBudW1iZXItdGVzdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjkwODUrLTAuMDEwNyAgICAgICAgICAgIDMuOTA2MSst
MC4wMDQ2ICAgICAgICAKICAgb2JqZWN0LXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNC4yMDIzKy0wLjAxMDkgICAgICEgICAgICA0LjIzOTIrLTAuMDExOSAgICAgICAgISBk
ZWZpbml0ZWx5IDEuMDA4OHggc2xvd2VyCiAgIHBvbHktc3RyaWN0ZXEgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOTEuMjMxNCstMC4yNjY2ICAgICA/ICAgICA5MS45MTQzKy0wLjUzNzIg
ICAgICAgID8KICAgcmFyZS1vc3ItZXhpdC1vbi1sb2NhbCAgICAgICAgICAgICAgICAgICAgIDE1
MS4wMTYwKy0wLjEzMjEgICAgICAgICAgMTUwLjg0NDArLTAuMTA5OCAgICAgICAgCiAgIHNpbXBs
ZS1hY3RpdmF0aW9uLWRlbW8gICAgICAgICAgICAgICAgICAgICAgNTQuNTI5MistMC4wMzgwICAg
ICAgICAgICA1NC41MjgzKy0wLjAzOTcgICAgICAgIAogICBzbG93LWNvbnZlcmdlbmNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDkwLjUwMTQrLTAuMDgxOSAgICAgICAgICAgOTAuMzI0OSst
MC4yMDUwICAgICAgICAKICAgc3RyaW5nLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMy43MjMxKy0wLjAwOTcgICAgICAgICAgICAzLjcxOTcrLTAuMDA1NiAgICAgICAgCiAg
IHRvLWludDMyLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMjguOTU1MSstMC4w
NTc5ICAgICAgICAgICAyOC45Mzc3Ky0wLjA1ODYgICAgICAgIAogICB1bmRlZmluZWQtdGVzdCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjE3NjArLTAuMDA1MCAgICAgPyAgICAgIDQu
MTc5OCstMC4wMDM4ICAgICAgICA/CgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQyLjEzMDArLTAuMDMzMSAgICAgPyAgICAgNDIuMTg0NistMC4wMzQ3ICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDAxM3ggc2xvd2VyCiAgIDxnZW9tZXRyaWM+ICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTkuMzYxNSstMC4wMTU2ICAgICA/ICAgICAxOS4zNjMxKy0w
LjAxNTUgICAgICAgID8gbWlnaHQgYmUgMS4wMDAxeCBzbG93ZXIKICAgPGhhcm1vbmljPiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS43MjgyKy0wLjAxMjkgICAgICAgICAgICA5
LjcyMDQrLTAuMDEyMyAgICAgICAgICBtaWdodCBiZSAxLjAwMDh4IGZhc3RlcgoKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAg
ICAgICAgICAgICAgIEZpeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
RFNQOgogICBmaWx0cnItcG9zdGVyaXplLXRpbnQgICAgICAgICAgICAgICAgICAgICAgIDQ5Ljcx
ODArLTAuMjQ3MSAgICAgICAgICAgNDkuNjI0NistMC4yNzMxICAgICAgICAKICAgZmlsdHJyLXRp
bnQtY29udHJhc3Qtc2F0LWJyaWdodCAgICAgICAgICAgICA3Ni4zODg3Ky0wLjUwNjAgICAgICAg
ICAgIDc2LjM0MjUrLTAuNDkwMCAgICAgICAgCiAgIGZpbHRyci10aW50LXNhdC1hZGotY29udHIt
bXVsdCAgICAgICAgICAgICAgOTYuOTY1NSstMC42MTEyICAgICAgICAgICA5Ni4yNjQ4Ky0wLjU0
ODUgICAgICAgIAogICBmaWx0cnItYmx1ci1vdmVybGF5LXNhdC1jb250ciAgICAgICAgICAgICAg
MjI1LjY0NDQrLTAuOTE4OSAgICAgICAgICAyMjUuMjU0OSstMS4wMDM5ICAgICAgICAKICAgZmls
dHJyLXNhdC1ibHVyLW11bHQtc2hhcnBlbi1jb250ciAgICAgICAgIDI4NC43MTI0Ky0xLjI5NzEg
ICAgICAgICAgMjg0LjE3NjArLTEuMDk4MCAgICAgICAgCiAgIGZpbHRyci1zZXBpYS1iaWFzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzMuNTMzNystMC4yMzQ4ICAgICA/ICAgICAzMy45NTgx
Ky0wLjM3NjIgICAgICAgID8gbWlnaHQgYmUgMS4wMTI3eCBzbG93ZXIKICAgcm91dGU5LXZwOCAg
ICAgICAgICAgICAgICAgICAgICAgICB4NSAgICAgMTUyOS4yMTIyKy0yLjg0NTcgICAgID8gICAx
NTMyLjAyNTYrLTIuNzAyOCAgICAgICAgPwoKICAgPGFyaXRobWV0aWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDc2NC44MjAzKy0xLjMwNzYgICAgID8gICAgNzY1Ljk3NzIrLTEuMjQ1
NCAgICAgICAgPyBtaWdodCBiZSAxLjAwMTV4IHNsb3dlcgogICA8Z2VvbWV0cmljPiAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzM4LjIxNzArLTAuNDM2MyAgICAgPyAgICAzMzguNDY0
OCstMC41NTY5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDAwN3ggc2xvd2VyCiAgIDxoYXJtb25pYz4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMzAuMDMxNystMC4yNzQ2ICAgICA/ICAg
IDEzMC4zODA5Ky0wLjQ4NDIgICAgICAgID8gbWlnaHQgYmUgMS4wMDI3eCBzbG93ZXIKCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG9UICAgICAg
ICAgICAgICAgICAgICAgICBGaXggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCkFsbCBiZW5jaG1hcmtzOgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTM4Ljg3MTkrLTAuMTYxMiAgICAgICAgICAxMzguODAzNCstMC4xNjY1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDAwNXggZmFzdGVyCiAgIDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMjIuODMyNCstMC4wMzg3ICAgICAgICAgICAyMi44MjUyKy0wLjAz
ODggICAgICAgICAgbWlnaHQgYmUgMS4wMDAzeCBmYXN0ZXIKICAgPGhhcm1vbmljPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC42OTk1Ky0wLjAxMzIgICAgICAgICAgICA0LjY5
NjcrLTAuMDExMiAgICAgICAgICBtaWdodCBiZSAxLjAwMDZ4IGZhc3RlcgoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb1QgICAgICAgICAgICAg
ICAgICAgICAgIEZpeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKR2Vv
bWVhbiBvZiBwcmVmZXJyZWQgbWVhbnM6CiAgIDxzY2FsZWQtcmVzdWx0PiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMzguNTYyMCstMC4wNzIwICAgICAgICAgICAzOC41MTk3Ky0wLjA3MTYg
ICAgICAgICAgbWlnaHQgYmUgMS4wMDExeCBmYXN0ZXIKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138605</attachid>
            <date>2012-04-24 11:18:53 -0700</date>
            <delta_ts>2012-05-10 10:04:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84648-20120424111852.patch</filename>
            <type>text/plain</type>
            <size>8379</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
M2E2OTNjZTY0YWRjODZjODk1MDAxNWQzMGMyMjg2YjhkYjY5ZjZiLi40MmE4ZmNjN2RiYTVjYjEx
MzRkMzExMWNkYzNjNmNjMTkzN2U0ZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wNC0yNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEZhaWx1cmUgdG8gYWxsb2NhdGUgQXJyYXlTdG9yYWdlIGluIGVt
aXRfb3BfbmV3X2FycmF5IGxlYWRzIHRvIHBvaXNvbm91cyBKU0FycmF5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDY0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gZW1pdF9vcF9uZXdfYXJyYXkg
c3VjY2Vzc2Z1bGx5IGFsbG9jYXRlcyBhIG5ldyBKU0FycmF5IGJ1dCBmYWlscyB0byBhbGxvY2F0
ZSAKKyAgICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgQXJyYXlTdG9yYWdlIGZvciBpdCwgaXQgZmFs
bHMgYmFjayB0byB0aGUgb3V0LW9mLWxpbmUgc3R1YiBjYWxsIAorICAgICAgICB0byBjb25zdHJ1
Y3RBcnJheSwgd2hpY2ggY29uc3RydWN0cyBhbmQgZW50aXJlbHkgbmV3IEpTQXJyYXkvQXJyYXlT
dG9yYWdlIHBhaXIuIAorICAgICAgICBUaGlzIGxlYXZlcyB1cyB3aXRoIGEgSlNBcnJheSBoYW5n
aW5nIGFyb3VuZCBvbiB0aGUgc3RhY2sgb3IgaW4gYSByZWdpc3RlciB0aGF0IAorICAgICAgICBk
aWQgbm90IGdvIHRocm91Z2ggaXRzIG93biBjb25zdHJ1Y3RvciwgdGh1cyBnaXZpbmcgaXQgdW5p
bml0aWFsaXplZCBtZW1vcnkgaW4gdGhlIAorICAgICAgICB0d28gZmllbGRzIHRoYXQgYXJlIGNo
ZWNrZWQgaW4gSlNBcnJheTo6dmlzaXRDaGlsZHJlbi4KKworICAgICAgICAqIGppdC9KSVRJbmxp
bmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEFsbG9jYXRlSlNBcnJheSk6IFdl
IHRyeSB0byBhbGxvY2F0ZSB0aGUgQXJyYXlTdG9yYWdlIGZpcnN0LCBzbyB0aGF0IAorICAgICAg
ICBpZiB3ZSBmYWlsIHdlIGhhdmVuJ3QgZ2VuZXJhdGVkIHRoZSBwb2lzb25vdXMgSlNBcnJheSB0
aGF0IGNhbiBjYXVzZSBhIEdDIGNyYXNoLgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9uZXdfYXJyYXkpOgorCiAyMDEyLTA0LTI0
ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBpbmNsdWRl
cyBpbiBTdHJvbmdJbmxpbmVzLmggYW5kIFNjcmlwdFZhbHVlLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKaW5kZXggNWZmNDY3Y2JmNjNjNDM3MWE1OWRl
MjBlNmJlYzUzNTUxNzI1MTZjYy4uMzFhMzJiNzMyZTM2YWFhZTFiOGIyYzNkNzkyMWFlOWQ2MmVi
MDRlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRo
b2RzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgK
QEAgLTQ4NSwxMiArNDg1LDE0IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdEFsbG9jYXRlSlNBcnJh
eSh1bnNpZ25lZCB2YWx1ZXNSZWdpc3RlciwgdW5zaWduZWQgbGVuZ3RoLCBSCiAgICAgdW5zaWdu
ZWQgaW5pdGlhbExlbmd0aCA9IHN0ZDo6bWF4KGxlbmd0aCwgNFUpOwogICAgIHNpemVfdCBpbml0
aWFsU3RvcmFnZSA9IEpTQXJyYXk6OnN0b3JhZ2VTaXplKGluaXRpYWxMZW5ndGgpOwogCisgICAg
Ly8gQWxsb2NhdGUgdGhlIGJhY2tpbmcgc3RvcmUgZm9yIHRoZSBhcnJheS4gV2UgYWxsb2NhdGUg
dGhlIHN0b3JhZ2UgZmlyc3QKKyAgICAvLyBiZWNhdXNlIGl0IGNvdWxkIGZhaWwgYW5kIHdlIGhh
dmUgdG8gdGFrZSB0aGUgc2xvdyBwYXRoLCB3aGljaCB3b3VsZCBsZWF2ZSAKKyAgICAvLyBiZWhp
bmQgYSB6b21iaWUgSlNBcnJheSB3aXRoIGluY29uc2lzdGVudCBzdGF0ZSwgcG90ZW50aWFsbHkg
Y2F1c2luZyBhIEdDIGNyYXNoLgorICAgIGVtaXRBbGxvY2F0ZUJhc2ljU3RvcmFnZShpbml0aWFs
U3RvcmFnZSwgc3RvcmFnZVJlc3VsdCwgc3RvcmFnZVB0cik7CisKICAgICAvLyBBbGxvY2F0ZSB0
aGUgY2VsbCBmb3IgdGhlIGFycmF5LgogICAgIGVtaXRBbGxvY2F0ZUJhc2ljSlNPYmplY3Q8SlNB
cnJheSwgZmFsc2U+KFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLT5h
cnJheVN0cnVjdHVyZSgpKSwgY2VsbFJlc3VsdCwgc3RvcmFnZVB0cik7CiAKLSAgICAvLyBBbGxv
Y2F0ZSB0aGUgYmFja2luZyBzdG9yZSBmb3IgdGhlIGFycmF5LgotICAgIGVtaXRBbGxvY2F0ZUJh
c2ljU3RvcmFnZShpbml0aWFsU3RvcmFnZSwgc3RvcmFnZVJlc3VsdCwgc3RvcmFnZVB0cik7Ci0K
ICAgICAvLyBTdG9yZSBhbGwgdGhlIG5lY2Vzc2FyeSBpbmZvIGluIHRoZSBBcnJheVN0b3JhZ2Uu
CiAgICAgc3RvcmVQdHIoc3RvcmFnZVJlc3VsdCwgQWRkcmVzcyhzdG9yYWdlUmVzdWx0LCBBcnJh
eVN0b3JhZ2U6OmFsbG9jQmFzZU9mZnNldCgpKSk7CiAgICAgc3RvcmUzMihJbW0zMihsZW5ndGgp
LCBBZGRyZXNzKHN0b3JhZ2VSZXN1bHQsIEFycmF5U3RvcmFnZTo6bGVuZ3RoT2Zmc2V0KCkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDBiYWNmZTJjOWM0
ZTA0NDFhNGI1ZmQwYWQ3N2JkMDk2OWVlOTc0ZDMuLmQ2OGY0MTA5ZDZkMTcyMTA1YTZhZDRlZWEw
NDI5NmQyYTY4NDQzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cApAQCAtMTcxMCwxMSArMTcxMCwxNCBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXdfYXJyYXkoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX25l
d19hcnJheShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VF
bnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogeworICAgIC8vIElmIHRoZSBhbGxvY2F0aW9uIHdvdWxk
IGJlIG92ZXJzaXplLCB3ZSB3aWxsIGFscmVhZHkgbWFrZSB0aGUgcHJvcGVyIHN0dWIgY2FsbCBh
Ym92ZSBpbiAKKyAgICAvLyBlbWl0X29wX25ld19hcnJheS4KICAgICBpbnQgbGVuZ3RoID0gY3Vy
cmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKICAgICBpZiAoQ29waWVkU3BhY2U6OmlzT3Zl
cnNpemUoSlNBcnJheTo6c3RvcmFnZVNpemUobGVuZ3RoKSkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIE5vdCBlbm91Z2ggc3BhY2UgaW4gTWFya2VkU3BhY2Ug
Zm9yIGNlbGwuCiAgICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBOb3QgZW5vdWdoIHNwYWNlIGlu
IENvcGllZFNwYWNlIGZvciBzdG9yYWdlLgorICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gTm90
IGVub3VnaCBzcGFjZSBpbiBNYXJrZWRTcGFjZSBmb3IgY2VsbC4KKwogICAgIEpJVFN0dWJDYWxs
IHN0dWJDYWxsKHRoaXMsIGN0aV9vcF9uZXdfYXJyYXkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3Vt
ZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CiAgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGN1cnJlbnRJbnN0cnVjdGlvblszXS51
Lm9wZXJhbmQpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAzODQwZWQ4MWM4OTcyOTJmN2EwNDQzMzkxYTE3NGUwMmJhMmUz
MzU4Li41ODliMmMzZTFiZTcwNjY0MGY4OTlkODc0MDIyMWQyNGYxMWI2YjUwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTItMDQtMjQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFw
cGxlLmNvbT4KKworICAgICAgICBGYWlsdXJlIHRvIGFsbG9jYXRlIEFycmF5U3RvcmFnZSBpbiBl
bWl0X29wX25ld19hcnJheSBsZWFkcyB0byBwb2lzb25vdXMgSlNBcnJheQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ2NDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3QgdGhhdCByYW5k
b21seSBhbGxvY2F0ZXMgbmV3IGFycmF5cywgbW9kaWZpZXMgdGhlIG9iamVjdCBncmFwaCBieSAK
KyAgICAgICAgcG9pbnRpbmcgYXJyYXlzIHRvIG90aGVyIGFycmF5cywgYW5kIHJlbW92ZXMgYXJy
YXlzIGZyb20gdGhlIGdsb2JhbCBsaXN0LiBUaGlzIHRlc3QgCisgICAgICAgIGlzIHN1ZmZpY2ll
bnQgdG8gcmVwcm8gdGhpcyBidWcgd2hlbiB0aGUgREZHIGlzIGRpc2FibGVkLCBhbmQgaXQgc2hv
dWxkIHNlcnZlIGFzIAorICAgICAgICBhIGdvb2QgcmVncmVzc2lvbiB0ZXN0IGFzIHdlIGltcGxl
bWVudCBtb3JlIG9wdGltaXphdGlvbnMgZm9yIGFycmF5IGFsbG9jYXRpb24gaW4gCisgICAgICAg
IGJvdGggSklUcy4KKworICAgICAgICAqIGZhc3QvanMvcmFuZG9tLWFycmF5LWdjLXN0cmVzcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmFuZG9tLWFycmF5LWdjLXN0
cmVzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9yYW5kb20t
YXJyYXktZ2Mtc3RyZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKGdjKToKKyAgICAgICAgKGdldFJh
bmRvbUluZGV4KToKKyAgICAgICAgKHRlc3QpOgorCiAyMDEyLTA0LTI0ICBNaWtoYWlsIE5hZ2Fu
b3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmll
d2VkIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvanMvcmFuZG9tLWFycmF5LWdjLXN0cmVzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2pzL3JhbmRvbS1hcnJheS1nYy1zdHJlc3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2
MGRiOThhZTE3MDYzYmM2OTQyYTNmNzQxMzk3ZDFjZjE3NTNiZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL3JhbmRvbS1hcnJheS1nYy1zdHJlc3MtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorVGVzdHMgdG8gcmFuZG9tbHkgbW9kaWZ5IGFuIG9iamVjdCBncmFw
aCBvZiBhcnJheXMgdG8gbWFrZSBzdXJlIHRoZSBHQyBoYW5kbGVzIHRoZW0gcHJvcGVybHkgbm93
IHRoYXQgaXQgYWxsb2NhdGVzIGJvdGggdGhlIEpTQXJyYXkgYW5kIHRoZSBBcnJheVN0b3JhZ2Uu
IFRvIHBhc3Mgd2UgbmVlZCB0byBub3QgY3Jhc2guCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9yYW5kb20tYXJyYXktZ2Mtc3RyZXNz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3JhbmRvbS1hcnJheS1nYy1zdHJlc3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZDE2OTY5MzgwZTc1NWVjNmRjNDVlMmI1M2U3OTkyYWM3Mjc4ODY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yYW5kb20tYXJyYXktZ2Mtc3RyZXNz
Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvcmFuZG9tLWFycmF5LWdjLXN0cmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2pzL3NjcmlwdC10ZXN0cy9yYW5kb20tYXJyYXktZ2Mtc3RyZXNzLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmFuZG9tLWFycmF5LWdjLXN0cmVzcy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZThiMjc5MjczMTI4YTZiN2Y0M2RhMjg2NjNiYjMwZTM1MDBhOWM2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcmFuZG9tLWFycmF5LWdjLXN0
cmVzcy5qcwpAQCAtMCwwICsxLDU1IEBACitkZXNjcmlwdGlvbigKKydUZXN0cyB0byByYW5kb21s
eSBtb2RpZnkgYW4gb2JqZWN0IGdyYXBoIG9mIGFycmF5cyB0byBtYWtlIHN1cmUgdGhlIEdDIGhh
bmRsZXMgdGhlbSBwcm9wZXJseSBub3cgdGhhdCBpdCBhbGxvY2F0ZXMgYm90aCB0aGUgSlNBcnJh
eSBhbmQgdGhlIEFycmF5U3RvcmFnZS4gIFRvIHBhc3Mgd2UgbmVlZCB0byBub3QgY3Jhc2guJwor
KTsKKworZnVuY3Rpb24gZ2MoKQoreworICAgIGlmICh0aGlzLkdDQ29udHJvbGxlcikKKyAgICAg
ICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICBlbHNlCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkgLy8gQWxsb2NhdGUgYSBzdWZmaWNpZW50IG51bWJlciBvZiBv
YmplY3RzIHRvIGZvcmNlIGEgR0MuCisgICAgICAgICAgICAoe30pOworfQorCit2YXIgZ2xvYmFs
ID0gW107CisKK3ZhciBnZXRSYW5kb21JbmRleCA9IGZ1bmN0aW9uKGxlbmd0aCkgeworICAgIHJl
dHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBsZW5ndGgpOworfTsKKwordmFyIHRlc3Qg
PSBmdW5jdGlvbigpIHsKKyAgICB2YXIgbnVtQWN0aW9ucyA9IDQ7CisgICAgdmFyIGl0ZXJzID0g
MTAwMDAwMDsKKyAgICB2YXIgcGVyY2VudCA9IDA7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGl0ZXJzOyBpKyspIHsKKyAgICAgICAgdmFyIHIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkg
KiBudW1BY3Rpb25zKTsKKyAgICAgICAgdmFyIGFjdGlvbk51bSA9IHIgJSBudW1BY3Rpb25zOwor
ICAgICAgICBpZiAoYWN0aW9uTnVtID09PSAwIHx8IGFjdGlvbk51bSA9PT0gMykgeworICAgICAg
ICAgICAgZ2xvYmFsLnB1c2goW10pOworICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbk51bSA9PT0g
MSkgeworICAgICAgICAgICAgZ2xvYmFsLnBvcChnZXRSYW5kb21JbmRleChnbG9iYWwubGVuZ3Ro
KSk7CisgICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uTnVtID09PSAyKSB7CisgICAgICAgICAgICBp
ZiAoZ2xvYmFsLmxlbmd0aCA+IDEpIHsKKyAgICAgICAgICAgIHZhciByZWNlaXZpbmdJbmRleCA9
IGdldFJhbmRvbUluZGV4KGdsb2JhbC5sZW5ndGgpOworICAgICAgICAgICAgdmFyIHNlbmRpbmdJ
bmRleCA9IGdldFJhbmRvbUluZGV4KGdsb2JhbC5sZW5ndGgpOworICAgICAgICAgICAgd2hpbGUg
KHJlY2VpdmluZ0luZGV4ID09PSBzZW5kaW5nSW5kZXgpCisgICAgICAgICAgICAgICAgc2VuZGlu
Z0luZGV4ID0gZ2V0UmFuZG9tSW5kZXgoZ2xvYmFsLmxlbmd0aCk7CisgICAgICAgICAgICBnbG9i
YWxbcmVjZWl2aW5nSW5kZXhdLnB1c2goZ2xvYmFsW3NlbmRpbmdJbmRleF0pOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0gCisKKyAgICAg
ICAgaWYgKE1hdGguZmxvb3IoKGkgLyBpdGVycykgKiAxMDApICE9PSBwZXJjZW50KSB7CisgICAg
ICAgICAgICBwZXJjZW50ID0gTWF0aC5mbG9vcigoaSAvIGl0ZXJzKSAqIDEwMCk7CisgICAgICAg
IH0KKyAgICB9Cit9OworCit2YXIgcnVucyA9IDA7IAord2hpbGUgKHJ1bnMgPCA0MCkgeworICAg
IHRlc3QoKTsKKyAgICBydW5zICs9IDE7CisgICAgZ2xvYmFsID0gW107CisgICAgZ2MoKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141188</attachid>
            <date>2012-05-10 10:04:33 -0700</date>
            <delta_ts>2012-05-10 10:04:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84648-20120510100432.patch</filename>
            <type>text/plain</type>
            <size>29345</size>
            <attacher name="Rafael Weinstein">rafaelw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU3ZWI4N2E2NzE3NTJh
ZTgyNzc0ZTU4N2EyOWJkYjQ0NzMwMmMwNy4uYWI0MzIxMTYwNWIxYTdiZTgwZmMwOWY4ZGJlYTMz
ZjRlZDg2OTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA0LTIzICBSYWZh
ZWwgV2VpbnN0ZWluICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IERvY3VtZW50RnJhZ21lbnQuaW5uZXJIVE1MCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NDY0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERvY3VtZW50RnJhZ21lbnQuaW5uZXJIVE1MIG5vdyBwYXJzZXMg
YmFzZWQgb24gYW4gImltcGxpZWQgY29udGV4dCBlbGVtZW50IiB3aGljaCBpcyBwaWNrcyBiYXNl
ZAorICAgICAgICBvbiB0aGUgbmFtZSBvZiB0aGUgZmlyc3QgdGFnIHdoaWNoIGFwcGVhcnMgaW4g
dGhlIHByb3ZpZGVkIG1hcmt1cC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKwor
ICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50RnJhZ21lbnQ6OmlubmVySFRNTCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ6OnNldElubmVySFRNTCk6CisgICAgICAgICogZG9t
L0RvY3VtZW50RnJhZ21lbnQuaDoKKyAgICAgICAgKERvY3VtZW50RnJhZ21lbnQpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50LmlkbDoKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpzZXRJbm5lckhUTUwpOgorICAgICAg
ICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZyYWdtZW50
RnJvbVNvdXJjZSk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpzZXRJbm5l
ckhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldE91dGVySFRNTCk6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6SFRNTFRyZWVCdWlsZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUcmVlQnVpbGRlcjo6cmVzZXRJbnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRUYWcpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzQ2hhcmFjdGVyQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0VuZE9mRmlsZSk6CisgICAgICAgICog
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6OmNvbnRleHRFbGVtZW50KToKKwogMjAx
Mi0wNS0wOSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXaGVuIGNyZWF0aW5nIGEgbmV3IHBhZ2UgZHVyaW5nIGEgbmF2aWdhdGlvbiwgcHJpbWUgdGhl
IGluaXRpYWwgZG9jdW1lbnQgd2l0aCB0aGUgY29ycmVjdCByZWZlcnJlciBwb2xpY3kKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCBmN2NmYWRmY2M3OWYzMWQ1MTY2
M2VhYWMwNDJiMzQ1ZGE3MzRjMTlhLi45YmNjMzNjNzAxYmI3MGI0ODg1N2UzOTUyNWVhNDdkMGIz
YjUzMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAiWE1MRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC05MCw0ICs5MSwyMSBAQCBib29sIERvY3VtZW50RnJhZ21lbnQ6
OnBhcnNlWE1MKGNvbnN0IFN0cmluZyYgc291cmNlLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
RgogI2VuZGlmCiB9CiAKK1N0cmluZyBEb2N1bWVudEZyYWdtZW50Ojppbm5lckhUTUwoKSBjb25z
dAoreworICAgIHJldHVybiBjcmVhdGVNYXJrdXAodGhpcywgQ2hpbGRyZW5Pbmx5KTsKK30KKwor
dm9pZCBEb2N1bWVudEZyYWdtZW50OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBodG1sLCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWRvY3VtZW50KCktPmlzSFRNTERvY3VtZW50
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZy
YWdtZW50RnJvbVNvdXJjZShodG1sLCBkb2N1bWVudCgpLCAwIC8qIGNvbnRleHRFbGVtZW50ICov
LCBlYyk7CisgICAgaWYgKGZyYWdtZW50KQorICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJh
Z21lbnQodGhpcywgZnJhZ21lbnQucmVsZWFzZSgpLCBlYyk7Cit9CisKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IDFlYTRkY2IzMjY1ZmYyYTg2NjhiNDBkZjRmYWY3
M2RmNWUwZTRkNTQuLjVjYzk2YjcyYjc0MmM5MWJkZWZkNGNhMTYwODNjMzNlNDBmNzY3ODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMzgsNiArMzgsOSBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgU3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OworICAg
IHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKwogcHJv
dGVjdGVkOgogICAgIERvY3VtZW50RnJhZ21lbnQoRG9jdW1lbnQqLCBDb25zdHJ1Y3Rpb25UeXBl
ID0gQ3JlYXRlQ29udGFpbmVyKTsKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmluZGV4IDg4MmI2MmRiMzll
YjdmMmUwNTA0NzgyMDQ5MmI3ZTkzNjFhOGVkZWQuLmY1ZjU5MTM5NzJkYjdlZDAwNDE4ODJhNjY4
ZWE2MzMxYWNjNzNmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwK
QEAgLTI1LDYgKzI1LDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoaW4gRE9NU3RyaW5n
IHNlbGVjdG9ycykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBh
dHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmluZyBpbm5lckhUTUwKKyAg
ICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKaW5kZXggZTA4NTUwNzBhN2NiMzI1MzRjY2JmOGFi
OGQwNTI2NjdkYTMxOWYxNS4uZmFiMWMyYjZiMjcyMzc4ZjZiOWIwN2M4MGE2NDdlMzBjNDg1NjMx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAtMTA0LDYgKzEwNCw3IEBA
IFN0cmluZyBRdWFsaWZpZWROYW1lOjp0b1N0cmluZygpIGNvbnN0CiAKIC8vIEdsb2JhbCBpbml0
IHJvdXRpbmVzCiBERUZJTkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsIGFueU5hbWUsIG51bGxBdG9t
LCBzdGFyQXRvbSwgc3RhckF0b20pCitERUZJTkVfR0xPQkFMKFF1YWxpZmllZE5hbWUsIG51bGxO
YW1lLCBudWxsQXRvbSwgbnVsbEF0b20sIG51bGxBdG9tKQogCiB2b2lkIFF1YWxpZmllZE5hbWU6
OmluaXQoKQogewpAQCAtMTEzLDYgKzExNCw3IEBAIHZvaWQgUXVhbGlmaWVkTmFtZTo6aW5pdCgp
CiAgICAgICAgIAogICAgICAgICBBdG9taWNTdHJpbmc6OmluaXQoKTsKICAgICAgICAgbmV3ICgo
dm9pZCopJmFueU5hbWUpIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIHN0YXJBdG9tLCBzdGFyQXRv
bSk7CisgICAgICAgIG5ldyAoKHZvaWQqKSZudWxsTmFtZSkgUXVhbGlmaWVkTmFtZShudWxsQXRv
bSwgbnVsbEF0b20sIG51bGxBdG9tKTsKICAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwogICAg
IH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5oCmluZGV4IDYzNmIyYTUxNTBjOWU5ODdj
MDI3ZTc1Njk3OTJkOWJhYzM0YTg5ZTkuLjllZmI4ODEyNzM2OTc2ZTFjNTQzODlhMDM3ZTIxYzA4
YTlmZDc3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaApAQCAtMTA1LDYgKzEwNSw4
IEBAIHByaXZhdGU6CiAjaWZuZGVmIFdFQkNPUkVfUVVBTElGSUVETkFNRV9ISURFX0dMT0JBTFMK
IGV4dGVybiBjb25zdCBRdWFsaWZpZWROYW1lIGFueU5hbWU7CiBpbmxpbmUgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYW55UU5hbWUoKSB7IHJldHVybiBhbnlOYW1lOyB9CitleHRlcm4gY29uc3QgUXVh
bGlmaWVkTmFtZSBudWxsTmFtZTsKK2lubGluZSBjb25zdCBRdWFsaWZpZWROYW1lJiBudWxsUU5h
bWUoKSB7IHJldHVybiBudWxsTmFtZTsgfQogI2VuZGlmCiAKIGlubGluZSBib29sIG9wZXJhdG9y
PT0oY29uc3QgQXRvbWljU3RyaW5nJiBhLCBjb25zdCBRdWFsaWZpZWROYW1lJiBxKSB7IHJldHVy
biBhID09IHEubG9jYWxOYW1lKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBh
YTAzNGJhMzAwZTI3NTYxN2U1YjdmOTVhY2I3NTdhNzM2Njk1NmQ1Li5hMWJlNDJlYWVmYzgzYzYz
NjBkMzVhYTE2NDVhZjgxMTNhNjY4NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBA
IC0xMzcsMTggKzEzNyw2IEBAIFBhc3NSZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2Rl
KGJvb2wpCiAgICAgcmV0dXJuIDA7CiB9CiAKLVN0cmluZyBTaGFkb3dSb290Ojppbm5lckhUTUwo
KSBjb25zdAotewotICAgIHJldHVybiBjcmVhdGVNYXJrdXAodGhpcywgQ2hpbGRyZW5Pbmx5KTsK
LX0KLQotdm9pZCBTaGFkb3dSb290OjpzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiBtYXJrdXAs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFn
bWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShtYXJrdXAsIGhvc3QoKSwgZWMpOwotICAg
IGlmIChmcmFnbWVudCkKLSAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMs
IGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOwotfQotCiBET01TZWxlY3Rpb24qIFNoYWRvd1Jvb3Q6
OnNlbGVjdGlvbigpCiB7CiAgICAgaWYgKGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBjMDAyNGM3MTY3MzIzMDk5NzBmMWJl
ODE3MDc1MTY4NWZmMDQxOWUwLi5jYjhhMjBjMjNkNWJjZjY1YmQ5MTFhN2IzOWRhY2I2ODVkOWIy
ZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTczLDkgKzczLDYgQEAgcHVibGljOgog
ICAgIEVsZW1lbnQqIGhvc3QoKSBjb25zdCB7IHJldHVybiBzaGFkb3dIb3N0KCk7IH0KICAgICBF
bGVtZW50U2hhZG93KiBvd25lcigpIGNvbnN0OwogCi0gICAgU3RyaW5nIGlubmVySFRNTCgpIGNv
bnN0OwotICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKLQogICAgIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQoKSBjb25zdDsKIAogICAgIERPTVNlbGVj
dGlvbiogc2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5kZXggNTUwNTdi
NjgwNmQ1M2IzYzJkNTFjOTczZmY0NWEwY2Y5ZWY4YWJhNy4uODQ5ZTc1NjI0MDY1YTMwMzgxZTg3
MTA5MGQ0MWNkYzk4NGE0MjY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAtMzcs
OSArMzcsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
ZWxlY3Rpb24gc2VsZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhcHBseUF1dGhv
clN0eWxlczsKIAotICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERP
TVN0cmluZyBpbm5lckhUTUwKLSAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLQogICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkKGluIFtPcHRpb25hbD1EZWZhdWx0
SXNVbmRlZmluZWRdIERPTVN0cmluZyBlbGVtZW50SWQpOwogICAgICAgICBOb2RlTGlzdCBnZXRF
bGVtZW50c0J5Q2xhc3NOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0
cmluZyBjbGFzc05hbWUpOwogICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBET01TdHJpbmcgdGFnTmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggZDJjODMzYzY0MDhmYjAxNGZmMDgyMjQ1ZDA3Njkw
ZWM2MWQ3ZWQxNy4uMDQzY2M0MTc3OTIxMDJkM2U0Nzc3Y2JkMTZiNjVkYzVjNWY3NTQ0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtOTkyLDkgKzk5Miw4IEBAIFN0cmluZyB1cmxU
b01hcmt1cChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgcmV0dXJu
IG1hcmt1cC50b1N0cmluZygpOwogfQogCi1QYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNy
ZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIG1hcmt1cCwgRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoY29uc3QgU3RyaW5nJiBtYXJrdXAsIERvY3Vt
ZW50KiBkb2N1bWVudCwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHRFbGVtZW50LT5kb2N1bWVudCgp
OwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IERvY3VtZW50RnJhZ21l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBpZiAoZG9jdW1lbnQtPmlzSFRNTERvY3VtZW50
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCmluZGV4IDkxOGFlOWIxM2U5MWNhNzhiOGI3YWZh
NGRjZjdkNzZlZDY4NjM5MGQuLjU0ZWQ4YzAxY2VjZTc2NjE5YTc2YTQzNTcyNzU2YjA2ZWZkNmQ3
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaApAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVu
dEZyb21NYXJrdXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGlu
Z0FsbG93ZWQpOwogICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21l
bnRGcm9tTWFya3VwV2l0aENvbnRleHQoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwg
dW5zaWduZWQgZnJhZ21lbnRTdGFydCwgdW5zaWduZWQgZnJhZ21lbnRFbmQsIGNvbnN0IFN0cmlu
ZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBQYXNzUmVmUHRy
PERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU5vZGVzKERvY3VtZW50KiwgY29u
c3QgVmVjdG9yPE5vZGUqPiYpOwotICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3Jl
YXRlRnJhZ21lbnRGcm9tU291cmNlKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqLCBFeGNlcHRpb25D
b2RlJik7CisgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZy
b21Tb3VyY2UoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnQqLCBFbGVtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgYm9vbCBpc1BsYWluVGV4dE1hcmt1cChOb2RlICpub2RlKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCBkMzY3ZjliYmFhYTg5ODljMDZiZjcwMGQ2MTc4
YTVmMGU2ZWM1ODgwLi44N2JkYzI0NGYwZTA1ZjlhYmJiOWZhMTliMjM1NzZhYmNkM2IzYjU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzQ0LDcgKzM0NCw3IEBAIFN0cmlu
ZyBIVE1MRWxlbWVudDo6b3V0ZXJIVE1MKCkgY29uc3QKIAogdm9pZCBIVE1MRWxlbWVudDo6c2V0
SW5uZXJIVE1MKGNvbnN0IFN0cmluZyYgaHRtbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tU291
cmNlKGh0bWwsIHRoaXMsIGVjKTsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21l
bnQgPSBjcmVhdGVGcmFnbWVudEZyb21Tb3VyY2UoaHRtbCwgZG9jdW1lbnQoKSwgdGhpcywgZWMp
OwogICAgIGlmIChmcmFnbWVudCkKICAgICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50
KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOwogfQpAQCAtMzc2LDcgKzM3Niw3IEBAIHZv
aWQgSFRNTEVsZW1lbnQ6OnNldE91dGVySFRNTChjb25zdCBTdHJpbmcmIGh0bWwsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgIFJlZlB0cjxOb2RlPiBwcmV2ID0gcHJldmlvdXNTaWJsaW5nKCk7CiAg
ICAgUmVmUHRyPE5vZGU+IG5leHQgPSBuZXh0U2libGluZygpOwogCi0gICAgUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tU291cmNlKGh0bWwsIHBh
cmVudC5nZXQoKSwgZWMpOworICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9
IGNyZWF0ZUZyYWdtZW50RnJvbVNvdXJjZShodG1sLCBkb2N1bWVudCgpLCBwYXJlbnQuZ2V0KCks
IGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybjsKICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggN2EwNmI0
MjM5NjkxM2Q5ZDk2ZDRlNTcxZDViMjMzYTkyMzcwNDI5NS4uZjg2ZjczOTBlZWNlZTQ3MjUzZTgz
YzNmODgxNTdjYmNkNWI2Y2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yNzUsNiArMjc1LDIzIEBAIHZvaWQgSFRNTERv
Y3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKFN5bmNocm9ub3VzTW9kZSBtb2RlKQogICAgICAg
ICAgICAgbV94c3NBdWRpdG9yLmZpbHRlclRva2VuKG1fdG9rZW4pOwogICAgICAgICB9CiAKKyAg
ICAgICAgaWYgKCFtX3RyZWVCdWlsZGVyLT5jYW5Db250aW51ZShtX3Rva2VuKSkgeworICAgICAg
ICAgICAgLy8gVHJlZSBjb25zdHJ1Y3Rpb24gc2hvdWxkIG9ubHkgYmUgYmxvY2tlZCBieSB3YWl0
aW5nIG9uIHRoZSBuZXh0CisgICAgICAgICAgICAvLyBzdGFydCB0YWcuCisgICAgICAgICAgICBB
U1NFUlQobV90b2tlbi50eXBlKCkgIT0gSFRNTFRva2VuVHlwZXM6OlN0YXJ0VGFnCisgICAgICAg
ICAgICAgICAgICAgJiYgbV90b2tlbi50eXBlKCkgIT0gSFRNTFRva2VuVHlwZXM6OkVuZE9mRmls
ZSk7CisgICAgICAgICAgICBtX3F1ZXVlZEF0b21pY1Rva2Vucy5hcHBlbmQoQXRvbWljSFRNTFRv
a2VuOjpjcmVhdGUobV90b2tlbikpOworICAgICAgICAgICAgbV90b2tlbi5jbGVhcigpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW1fcXVldWVkQXRv
bWljVG9rZW5zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgVmVjdG9yPE93blB0cjxBdG9taWNI
VE1MVG9rZW4+ID4gcXVldWVkVG9rZW5zOworICAgICAgICAgICAgcXVldWVkVG9rZW5zLnN3YXAo
bV9xdWV1ZWRBdG9taWNUb2tlbnMpOworICAgICAgICAgICAgZm9yIChWZWN0b3I8T3duUHRyPEF0
b21pY0hUTUxUb2tlbj4gPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBxdWV1ZWRUb2tlbnMuYmVnaW4o
KTsgaXQgIT0gcXVldWVkVG9rZW5zLmVuZCgpOyArK2l0KQorICAgICAgICAgICAgICAgIG1fdHJl
ZUJ1aWxkZXItPmNvbnN0cnVjdFRyZWVGcm9tQXRvbWljVG9rZW4oKihpdC0+Z2V0KCkpKTsKKyAg
ICAgICAgfQorCiAgICAgICAgIG1fdHJlZUJ1aWxkZXItPmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4o
bV90b2tlbik7CiAgICAgICAgIEFTU0VSVChtX3Rva2VuLmlzVW5pbml0aWFsaXplZCgpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5o
CmluZGV4IGVlZTg4MmM3MjRlM2UzYjBkNmRkNzRmYmQ2YTg2ZDVjYjcyMmJhYzQuLjM2Y2NiYTUw
NTBkNWY0MGViY2NlNDdjZGNlNmEwM2U5MWQyZDJiZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCkBAIC03MSw3ICs3MSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlc3VtZVBhcnNpbmdBZnRlcllpZWxkKCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBwYXJzZURvY3VtZW50RnJhZ21lbnQoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRGcmFnbWVudCos
IEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBG
cmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwotICAgIAorCiAgICAgc3RhdGljIGJvb2wgdXNlUHJl
SFRNTDVQYXJzZXJRdWlya3MoRG9jdW1lbnQqKTsKICAgICBzdGF0aWMgdW5zaWduZWQgbWF4aW11
bURPTVRyZWVEZXB0aChEb2N1bWVudCopOwogCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBXZSBob2xkIG1fdG9rZW4gaGVyZSBiZWNhdXNlIGl0IG1pZ2h0IGJlIHBhcnRpYWxs
eSBjb21wbGV0ZS4KICAgICBIVE1MVG9rZW4gbV90b2tlbjsKIAorICAgIFZlY3RvcjxPd25QdHI8
QXRvbWljSFRNTFRva2VuPiA+IG1fcXVldWVkQXRvbWljVG9rZW5zOwogICAgIE93blB0cjxIVE1M
VG9rZW5pemVyPiBtX3Rva2VuaXplcjsKICAgICBPd25QdHI8SFRNTFNjcmlwdFJ1bm5lcj4gbV9z
Y3JpcHRSdW5uZXI7CiAgICAgT3duUHRyPEhUTUxUcmVlQnVpbGRlcj4gbV90cmVlQnVpbGRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbi5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKaW5kZXggNGFjZmVjOWY4NzVmNzY5
OTViYzBhZWFmZTY3YjdiY2EyNjAwYmVhMy4uZDk4OTliOTY1YzYyMzVlYTE2ZmU3MWQ3NTNlZGY1
OGQzZDUyODYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRv
a2VuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuLmgKQEAgLTg0
LDcgKzg0LDEyIEBAIHB1YmxpYzoKIGNsYXNzIEF0b21pY0hUTUxUb2tlbiA6IHB1YmxpYyBBdG9t
aWNNYXJrdXBUb2tlbkJhc2U8SFRNTFRva2VuPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
QXRvbWljSFRNTFRva2VuKTsKIHB1YmxpYzoKLSAgICBBdG9taWNIVE1MVG9rZW4oSFRNTFRva2Vu
JiB0b2tlbikgOiBBdG9taWNNYXJrdXBUb2tlbkJhc2U8SFRNTFRva2VuPigmdG9rZW4pIHsgfQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEF0b21pY0hUTUxUb2tlbj4gY3JlYXRlKEhUTUxUb2tlbiYg
dG9rZW4pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEF0b21pY0hUTUxUb2tl
bih0b2tlbiwgSW50ZXJuYWxpemVDaGFyYWN0ZXJzKSk7CisgICAgfQorCisgICAgQXRvbWljSFRN
TFRva2VuKEhUTUxUb2tlbiYgdG9rZW4sIENoYXJhY3RlclN0b3JhZ2VNb2RlIGNoYXJhY3RlclN0
b3JhZ2UgPSBSZWZlcmVuY2VFeHRlcm5hbENoYXJhY3RlcnMpIDogQXRvbWljTWFya3VwVG9rZW5C
YXNlPEhUTUxUb2tlbj4oJnRva2VuLCBjaGFyYWN0ZXJTdG9yYWdlKSB7IH0KIAogICAgIEF0b21p
Y0hUTUxUb2tlbihIVE1MVG9rZW5UeXBlczo6VHlwZSB0eXBlLCBBdG9taWNTdHJpbmcgbmFtZSwg
Y29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMgPSBWZWN0b3I8QXR0cmlidXRlPigp
KQogICAgICAgICA6IEF0b21pY01hcmt1cFRva2VuQmFzZTxIVE1MVG9rZW4+KHR5cGUsIG5hbWUs
IGF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcAppbmRleCA1ZDUzNDJiYjAwNGU2Y2Y0NDljOTg2ZTI0NDhkNTQ0NjY3Zjg2ZmE2Li40
M2Y3YWQ1ZjcyYjUxMTZhOWEwMzRjY2IyNGMyODlhZmYxN2I0MWNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTI0OCw4ICsyNDgsOCBA
QCBjbGFzcyBIVE1MVHJlZUJ1aWxkZXI6OkV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIpOwog
cHVibGljOgogICAgIGV4cGxpY2l0IEV4dGVybmFsQ2hhcmFjdGVyVG9rZW5CdWZmZXIoQXRvbWlj
SFRNTFRva2VuJiB0b2tlbikKLSAgICAgICAgOiBtX2N1cnJlbnQodG9rZW4uY2hhcmFjdGVycygp
LmRhdGEoKSkKLSAgICAgICAgLCBtX2VuZChtX2N1cnJlbnQgKyB0b2tlbi5jaGFyYWN0ZXJzKCku
c2l6ZSgpKQorICAgICAgICA6IG1fY3VycmVudCh0b2tlbi5jaGFyYWN0ZXJEYXRhKCkpCisgICAg
ICAgICwgbV9lbmQobV9jdXJyZW50ICsgdG9rZW4uY2hhcmFjdGVyRGF0YVNpemUoKSkKICAgICB7
CiAgICAgICAgIEFTU0VSVCghaXNFbXB0eSgpKTsKICAgICB9CkBAIC0zNjgsNyArMzY4LDcgQEAg
SFRNTFRyZWVCdWlsZGVyOjpIVE1MVHJlZUJ1aWxkZXIoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJz
ZXIsIEhUTUxEb2N1bWVudCogZG9jdW0KIC8vIG1pbmltaXplIGNvZGUgZHVwbGljYXRpb24gYmV0
d2VlbiB0aGVzZSBjb25zdHJ1Y3RvcnMuCiBIVE1MVHJlZUJ1aWxkZXI6OkhUTUxUcmVlQnVpbGRl
cihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciwgRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQs
IEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2Ny
aXB0aW5nUGVybWlzc2lvbiwgYm9vbCB1c2VQcmVIVE1MNVBhcnNlclF1aXJrcywgdW5zaWduZWQg
bWF4aW11bURPTVRyZWVEZXB0aCkKICAgICA6IG1fZnJhbWVzZXRPayh0cnVlKQotICAgICwgbV9m
cmFnbWVudENvbnRleHQoZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50LCBzY3JpcHRpbmdQZXJtaXNz
aW9uKQorICAgICwgbV9mcmFnbWVudENvbnRleHQoZnJhZ21lbnQsIGNvbnRleHRFbGVtZW50ID8g
Y29udGV4dEVsZW1lbnQtPnRhZ1FOYW1lKCkgOiBudWxsUU5hbWUoKSwgc2NyaXB0aW5nUGVybWlz
c2lvbikKICAgICAsIG1fZG9jdW1lbnQoZnJhZ21lbnQtPmRvY3VtZW50KCkpCiAgICAgLCBtX3Ry
ZWUoZnJhZ21lbnQsIHNjcmlwdGluZ1Blcm1pc3Npb24sIG1heGltdW1ET01UcmVlRGVwdGgpCiAg
ICAgLCBtX3JlcG9ydEVycm9ycyhmYWxzZSkgLy8gRklYTUU6IFdoeSBub3QgcmVwb3J0IGVycm9y
cyBpbiBmcmFnbWVudHM/CkBAIC0zODEsMTcgKzM4MSwxNCBAQCBIVE1MVHJlZUJ1aWxkZXI6OkhU
TUxUcmVlQnVpbGRlcihIVE1MRG9jdW1lbnRQYXJzZXIqIHBhcnNlciwgRG9jdW1lbnRGcmFnbWVu
dCogZgogICAgICwgbV9sYXN0U2NyaXB0RWxlbWVudFN0YXJ0UG9zaXRpb24oVGV4dFBvc2l0aW9u
OjpiZWxvd1JhbmdlUG9zaXRpb24oKSkKICAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3Mo
dXNlUHJlSFRNTDVQYXJzZXJRdWlya3MpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgYXNzZXJ0aW9u
IHdpbGwgYmVjb21lIGludmFsaWQgaWYgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjAzMTY+IGlzIGZp
eGVkLgotICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCk7Ci0gICAgaWYgKGNvbnRleHRFbGVtZW50
KSB7Ci0gICAgICAgIC8vIFN0ZXBzIDQuMi00LjYgb2YgdGhlIEhUTUw1IEZyYWdtZW50IENhc2Ug
cGFyc2luZyBhbGdvcml0aG06Ci0gICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3RoZS1lbmQuaHRtbCNmcmFnbWVudC1j
YXNlCi0gICAgICAgIC8vIEZvciBlZmZpY2llbmN5LCB3ZSBza2lwIHN0ZXAgNC4yICgiTGV0IHJv
b3QgYmUgYSBuZXcgaHRtbCBlbGVtZW50IHdpdGggbm8gYXR0cmlidXRlcyIpCi0gICAgICAgIC8v
IGFuZCBpbnN0ZWFkIHVzZSB0aGUgRG9jdW1lbnRGcmFnbWVudCBhcyBhIHJvb3Qgbm9kZS4KLSAg
ICAgICAgbV90cmVlLm9wZW5FbGVtZW50cygpLT5wdXNoUm9vdE5vZGUoZnJhZ21lbnQpOwotICAg
ICAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAgLy8gU3RlcHMgNC4y
LTQuNiBvZiB0aGUgSFRNTDUgRnJhZ21lbnQgQ2FzZSBwYXJzaW5nIGFsZ29yaXRobToKKyAgICAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRp
cGFnZS90aGUtZW5kLmh0bWwjZnJhZ21lbnQtY2FzZQorICAgIC8vIEZvciBlZmZpY2llbmN5LCB3
ZSBza2lwIHN0ZXAgNC4yICgiTGV0IHJvb3QgYmUgYSBuZXcgaHRtbCBlbGVtZW50IHdpdGggbm8g
YXR0cmlidXRlcyIpCisgICAgLy8gYW5kIGluc3RlYWQgdXNlIHRoZSBEb2N1bWVudEZyYWdtZW50
IGFzIGEgcm9vdCBub2RlLgorICAgIG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+cHVzaFJvb3ROb2Rl
KGZyYWdtZW50KTsKKyAgICByZXNldEluc2VydGlvbk1vZGVBcHByb3ByaWF0ZWx5KCk7CisgICAg
aWYgKGNvbnRleHRFbGVtZW50KQogICAgICAgICBtX3RyZWUuc2V0Rm9ybShjbG9zZXN0Rm9ybUFu
Y2VzdG9yKGNvbnRleHRFbGVtZW50KSk7Ci0gICAgfQogfQogCiBIVE1MVHJlZUJ1aWxkZXI6On5I
VE1MVHJlZUJ1aWxkZXIoKQpAQCAtNDEwLDE0ICs0MDcsMTQgQEAgdm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmRldGFjaCgpCiAKIEhUTUxUcmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6
RnJhZ21lbnRQYXJzaW5nQ29udGV4dCgpCiAgICAgOiBtX2ZyYWdtZW50KDApCi0gICAgLCBtX2Nv
bnRleHRFbGVtZW50KDApCisgICAgLCBtX2NvbnRleHRUYWcobnVsbFFOYW1lKCkpCiAgICAgLCBt
X3NjcmlwdGluZ1Blcm1pc3Npb24oRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKQogewogfQogCi1I
VE1MVHJlZUJ1aWxkZXI6OkZyYWdtZW50UGFyc2luZ0NvbnRleHQ6OkZyYWdtZW50UGFyc2luZ0Nv
bnRleHQoRG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gc2NyaXB0aW5nUGVybWlzc2lvbikKK0hUTUxU
cmVlQnVpbGRlcjo6RnJhZ21lbnRQYXJzaW5nQ29udGV4dDo6RnJhZ21lbnRQYXJzaW5nQ29udGV4
dChEb2N1bWVudEZyYWdtZW50KiBmcmFnbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGV4
dFRhZywgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGluZ1Blcm1pc3Npb24pCiAg
ICAgOiBtX2ZyYWdtZW50KGZyYWdtZW50KQotICAgICwgbV9jb250ZXh0RWxlbWVudChjb250ZXh0
RWxlbWVudCkKKyAgICAsIG1fY29udGV4dFRhZyhjb250ZXh0VGFnKQogICAgICwgbV9zY3JpcHRp
bmdQZXJtaXNzaW9uKHNjcmlwdGluZ1Blcm1pc3Npb24pCiB7CiAgICAgQVNTRVJUKCFmcmFnbWVu
dC0+aGFzQ2hpbGROb2RlcygpKTsKQEAgLTQ0Nyw3ICs0NDQsNyBAQCB2b2lkIEhUTUxUcmVlQnVp
bGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2VuKQogICAgIC8v
IHN5bmNocm9ub3VzbHkgcmUtZW50ZXJzIHRoZSBwYXJzZXIuIFdlIGRvbid0IGNsZWFyIHRoZSB0
b2tlbiBpbW1lZGF0ZWx5CiAgICAgLy8gZm9yIENoYXJhY3RlciB0b2tlbnMgYmVjYXVzZSB0aGUg
QXRvbWljSFRNTFRva2VuIGF2b2lkcyBjb3B5aW5nIHRoZQogICAgIC8vIGNoYXJhY3RlcnMgYnkg
a2VlcGluZyBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgYnVmZmVyIGluIHRoZQotICAgIC8v
IEhUTUxUb2tlbi4gRm9ydHVhbnRlbHksIENoYXJhY3RlciB0b2tlbnMgY2FuJ3QgY2F1c2UgdXNl
IHRvIHJlLWVudGVyCisgICAgLy8gSFRNTFRva2VuLiBGb3J0dW5hdGVseSwgQ2hhcmFjdGVyIHRv
a2VucyBjYW4ndCBjYXVzZSB1c2UgdG8gcmUtZW50ZXIKICAgICAvLyB0aGUgcGFyc2VyLgogICAg
IC8vCiAgICAgLy8gRklYTUU6IFN0b3AgY2xlYXJpbmcgdGhlIHJhd1Rva2VuIG9uY2Ugd2Ugc3Rh
cnQgcnVubmluZyB0aGUgcGFyc2VyIG9mZgpAQCAtMTYzMCw2ICsxNjI3LDQ3IEBAIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpjYWxsVGhlQWRvcHRpb25BZ2VuY3koQXRvbWljSFRNTFRva2VuJiB0b2tl
bikKICAgICB9CiB9CiAKKy8vIEZJWE1FOiBSZWZlcmVuY2UgdG8gRE9NNCBzcGVjIGRlc2NyaWJp
bmcgdGhlIGZvbGxvd2luZzogVGhlIGltcGxpZWQgY29udGV4dCBlbGVtZW50IG9mCisvLyBEb2N1
bWVudEZyYWdtZW50LmlubmVySFRNTCBpcyBiYXNlZCBvbiB0aGUgaWRlbnRpdHkgb2YgdGhlIHRh
Z05hbWUgb2YgdGhlIGZpcnN0IHN0YXJ0VGFnIHRva2VuIGVuY291bnRlcmVkLgorLy8gRklYTUU6
IEVsZW1lbnQuaW5uZXJIVE1MIGRvZXNuJ3Qgd29yayBmb3IgWE1MIGVsZW1lbnRzLiBXaGVuIGl0
IGlzIGZpeGVkLCB0aGlzIG5lZWRzIHRvIGlkZW5pdGlmeQorLy8gdGFnTmFtZXMgcGFydGljdWxh
ciB0byBlaXRoZXIgbmFtZXNwYWNlIGFuZCBwaWNrIGFuIGFwcHJvcHJpYXRlIGltcGxpZWQgY29u
dGV4dCBlbGVtZW50Lgorc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGdldEltcGxpZWRDb250
ZXh0VGFnKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSkKK3sKKyAgICBpZiAoaXNUYWJsZUJv
ZHlDb250ZXh0VGFnKHRhZ05hbWUpCisgICAgICAgIHx8IHRhZ05hbWUgPT0gY2FwdGlvblRhZwor
ICAgICAgICB8fCB0YWdOYW1lID09IGNvbGdyb3VwVGFnKSB7CisgICAgICAgIHJldHVybiB0YWJs
ZVRhZzsKKyAgICB9CisgICAgaWYgKHRhZ05hbWUgPT0gdHJUYWcpCisgICAgICAgIHJldHVybiB0
Ym9keVRhZzsKKyAgICBpZiAodGFnTmFtZSA9PSBjb2xUYWcpCisgICAgICAgIHJldHVybiBjb2xn
cm91cFRhZzsKKyAgICBpZiAoaXNUYWJsZUNlbGxDb250ZXh0VGFnKHRhZ05hbWUpKQorICAgICAg
ICByZXR1cm4gdHJUYWc7CisgICAgaWYgKHRhZ05hbWUgPT0gaGVhZFRhZyB8fCB0YWdOYW1lID09
IGJvZHlUYWcpCisgICAgICAgIHJldHVybiBodG1sVGFnOworICAgIGlmICh0YWdOYW1lID09IHJw
VGFnIHx8IHRhZ05hbWUgPT0gcnRUYWcpCisgICAgICAgIHJldHVybiBydWJ5VGFnOworCisgICAg
cmV0dXJuIGJvZHlUYWc7Cit9CisKK2Jvb2wgSFRNTFRyZWVCdWlsZGVyOjppbXBsaWVkQ29udGV4
dFRhZyhIVE1MVG9rZW4mIHRva2VuKQoreworICAgIEFTU0VSVChtX2ZyYWdtZW50Q29udGV4dC5m
cmFnbWVudCgpICYmIG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRUYWcoKSA9PSBudWxsUU5hbWUo
KSk7CisgICAgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW5UeXBlczo6RW5kT2ZGaWxlKSB7
CisgICAgICAgIG1fZnJhZ21lbnRDb250ZXh0LnNldENvbnRleHRUYWcoYm9keVRhZyk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmICh0b2tlbi50eXBlKCkgIT0gSFRNTFRv
a2VuVHlwZXM6OlN0YXJ0VGFnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2ZyYWdt
ZW50Q29udGV4dC5zZXRDb250ZXh0VGFnKGdldEltcGxpZWRDb250ZXh0VGFnKEF0b21pY1N0cmlu
Zyh0b2tlbi5uYW1lKCkuZGF0YSgpLCB0b2tlbi5uYW1lKCkuc2l6ZSgpKSkpOworICAgIHJlc2V0
SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBIVE1MVHJlZUJ1aWxkZXI6OnJlc2V0SW5zZXJ0aW9uTW9kZUFwcHJvcHJpYXRlbHkoKQogewog
ICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
bXVsdGlwYWdlL3BhcnNpbmcuaHRtbCNyZXNldC10aGUtaW5zZXJ0aW9uLW1vZGUtYXBwcm9wcmlh
dGVseQpAQCAtMTYzNyw0MCArMTY3NSw0MCBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cmVzZXRJ
bnNlcnRpb25Nb2RlQXBwcm9wcmlhdGVseSgpCiAgICAgSFRNTEVsZW1lbnRTdGFjazo6RWxlbWVu
dFJlY29yZCogbm9kZVJlY29yZCA9IG1fdHJlZS5vcGVuRWxlbWVudHMoKS0+dG9wUmVjb3JkKCk7
CiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgQ29udGFpbmVyTm9kZSogbm9kZSA9IG5vZGVSZWNv
cmQtPm5vZGUoKTsKKyAgICAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSA9IG5vZGUg
PT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5yb290Tm9kZSgpID8gbV9mcmFnbWVudENvbnRleHQu
Y29udGV4dFRhZygpIDogbm9kZVJlY29yZC0+ZWxlbWVudCgpLT50YWdRTmFtZSgpOwogICAgICAg
ICBpZiAobm9kZSA9PSBtX3RyZWUub3BlbkVsZW1lbnRzKCktPnJvb3ROb2RlKCkpIHsKICAgICAg
ICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIGxhc3QgPSB0
cnVlOwotICAgICAgICAgICAgbm9kZSA9IG1fZnJhZ21lbnRDb250ZXh0LmNvbnRleHRFbGVtZW50
KCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc2VsZWN0VGFnKSkg
eworICAgICAgICBpZiAodGFnTmFtZS5tYXRjaGVzKHNlbGVjdFRhZykpIHsKICAgICAgICAgICAg
IEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNl
cnRpb25Nb2RlKEluU2VsZWN0TW9kZSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUodGRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGhUYWcpKQorICAgICAgICBpZiAo
dGFnTmFtZS5tYXRjaGVzKHRkVGFnKSB8fCB0YWdOYW1lLm1hdGNoZXModGhUYWcpKQogICAgICAg
ICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5DZWxsTW9kZSk7Ci0gICAgICAgIGlmIChu
b2RlLT5oYXNUYWdOYW1lKHRyVGFnKSkKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyh0clRh
ZykpCiAgICAgICAgICAgICByZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblJvd01vZGUpOwotICAg
ICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0Ym9keVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0
aGVhZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0Zm9vdFRhZykpCisgICAgICAgIGlmICh0YWdO
YW1lLm1hdGNoZXModGJvZHlUYWcpIHx8IHRhZ05hbWUubWF0Y2hlcyh0aGVhZFRhZykgfHwgdGFn
TmFtZS5tYXRjaGVzKHRmb290VGFnKSkKICAgICAgICAgICAgIHJldHVybiBzZXRJbnNlcnRpb25N
b2RlKEluVGFibGVCb2R5TW9kZSk7Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGNhcHRp
b25UYWcpKQorICAgICAgICBpZiAodGFnTmFtZS5tYXRjaGVzKGNhcHRpb25UYWcpKQogICAgICAg
ICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5DYXB0aW9uTW9kZSk7Ci0gICAgICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkgeworICAgICAgICBpZiAodGFnTmFtZS5t
YXRjaGVzKGNvbGdyb3VwVGFnKSkgewogICAgICAgICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdt
ZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5Db2x1bW5Hcm91
cE1vZGUpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRhYmxlVGFn
KSkKKyAgICAgICAgaWYgKHRhZ05hbWUubWF0Y2hlcyh0YWJsZVRhZykpCiAgICAgICAgICAgICBy
ZXR1cm4gc2V0SW5zZXJ0aW9uTW9kZShJblRhYmxlTW9kZSk7Ci0gICAgICAgIGlmIChub2RlLT5o
YXNUYWdOYW1lKGhlYWRUYWcpKSB7CisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXMoaGVhZFRh
ZykpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEluQm9keU1vZGUpOwogICAgICAgICB9Ci0gICAg
ICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKQorICAgICAgICBpZiAodGFnTmFtZS5t
YXRjaGVzKGJvZHlUYWcpKQogICAgICAgICAgICAgcmV0dXJuIHNldEluc2VydGlvbk1vZGUoSW5C
b2R5TW9kZSk7Ci0gICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFnKSkgewor
ICAgICAgICBpZiAodGFnTmFtZS5tYXRjaGVzKGZyYW1lc2V0VGFnKSkgewogICAgICAgICAgICAg
QVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwogICAgICAgICAgICAgcmV0dXJuIHNldEluc2Vy
dGlvbk1vZGUoSW5GcmFtZXNldE1vZGUpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChub2RlLT5o
YXNUYWdOYW1lKGh0bWxUYWcpKSB7CisgICAgICAgIGlmICh0YWdOYW1lLm1hdGNoZXMoaHRtbFRh
ZykpIHsKICAgICAgICAgICAgIEFTU0VSVChpc1BhcnNpbmdGcmFnbWVudCgpKTsKICAgICAgICAg
ICAgIHJldHVybiBzZXRJbnNlcnRpb25Nb2RlKEJlZm9yZUhlYWRNb2RlKTsKICAgICAgICAgfQpA
QCAtMjc4NSw3ICsyODIzLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NUb2tlbklu
Rm9yZWlnbkNvbnRlbnQoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgbV90cmVlLmlu
c2VydENvbW1lbnQodG9rZW4pOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBIVE1MVG9rZW5U
eXBlczo6Q2hhcmFjdGVyOiB7Ci0gICAgICAgIFN0cmluZyBjaGFyYWN0ZXJzID0gU3RyaW5nKHRv
a2VuLmNoYXJhY3RlcnMoKS5kYXRhKCksIHRva2VuLmNoYXJhY3RlcnMoKS5zaXplKCkpOworICAg
ICAgICBTdHJpbmcgY2hhcmFjdGVycyA9IFN0cmluZyh0b2tlbi5jaGFyYWN0ZXJEYXRhKCksIHRv
a2VuLmNoYXJhY3RlckRhdGFTaXplKCkpOwogICAgICAgICBtX3RyZWUuaW5zZXJ0VGV4dE5vZGUo
Y2hhcmFjdGVycyk7CiAgICAgICAgIGlmIChtX2ZyYW1lc2V0T2sgJiYgIWlzQWxsV2hpdGVzcGFj
ZU9yUmVwbGFjZW1lbnRDaGFyYWN0ZXJzKGNoYXJhY3RlcnMpKQogICAgICAgICAgICAgbV9mcmFt
ZXNldE9rID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCmluZGV4IDY0YTkzYjM0ZmZiZjFmMDRhYTBiNzM0MjIzN2M3OWQ5YWRkNWJiMjMuLmIy
ZmFiOWFlZDVmYmRlNmI4YTY4NjFlM2M1YmM5Mjg2MjRhMWI0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCkBAIC01MCw2ICs1MCw3IEBAIGNsYXNz
IERvY3VtZW50RnJhZ21lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxUb2tlbjsKIGNsYXNz
IEhUTUxEb2N1bWVudDsKK2NsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBOb2RlOwogY2xhc3Mg
SFRNTERvY3VtZW50UGFyc2VyOwogCkBAIC04NSw2ICs4Niw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0U2hvdWxkU2tpcExlYWRpbmdOZXdsaW5lKGJvb2wgc2hvdWxkU2tpcCkgeyBtX3Nob3Vs
ZFNraXBMZWFkaW5nTmV3bGluZSA9IHNob3VsZFNraXA7IH0KIAorICAgIGJvb2wgaW1wbGllZENv
bnRleHRUYWcoSFRNTFRva2VuJik7CisgICAgYm9vbCBjYW5Db250aW51ZShIVE1MVG9rZW4mIHRv
a2VuKSB7IHJldHVybiAhbV9mcmFnbWVudENvbnRleHQuZnJhZ21lbnQoKSB8fCBtX2ZyYWdtZW50
Q29udGV4dC5jb250ZXh0VGFnKCkgIT0gbnVsbFFOYW1lKCkgfHwgaW1wbGllZENvbnRleHRUYWco
dG9rZW4pOyB9CisKICAgICBzdGF0aWMgYm9vbCBzY3JpcHRFbmFibGVkKEZyYW1lKik7CiAgICAg
c3RhdGljIGJvb2wgcGx1Z2luc0VuYWJsZWQoRnJhbWUqKTsKIApAQCAtMTk1LDE2ICsxOTksMTcg
QEAgcHJpdmF0ZToKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRnJhZ21lbnRQYXJzaW5n
Q29udGV4dCk7CiAgICAgcHVibGljOgogICAgICAgICBGcmFnbWVudFBhcnNpbmdDb250ZXh0KCk7
Ci0gICAgICAgIEZyYWdtZW50UGFyc2luZ0NvbnRleHQoRG9jdW1lbnRGcmFnbWVudCosIEVsZW1l
bnQqIGNvbnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOworICAgICAg
ICBGcmFnbWVudFBhcnNpbmdDb250ZXh0KERvY3VtZW50RnJhZ21lbnQqLCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBjb250ZXh0VGFnLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgICAg
ICB+RnJhZ21lbnRQYXJzaW5nQ29udGV4dCgpOwogCiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQq
IGZyYWdtZW50KCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudDsgfQotICAgICAgICBFbGVtZW50
KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IHsgQVNTRVJUKG1fZnJhZ21lbnQpOyByZXR1cm4gbV9j
b250ZXh0RWxlbWVudDsgfQorICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZXh0VGFn
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0VGFnOyB9CisgICAgICAgIHZvaWQgc2V0Q29udGV4
dFRhZyhjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZXh0VGFnKSB7IG1fY29udGV4dFRhZyA9IGNv
bnRleHRUYWc7IH0KICAgICAgICAgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uIHNjcmlwdGlu
Z1Blcm1pc3Npb24oKSBjb25zdCB7IEFTU0VSVChtX2ZyYWdtZW50KTsgcmV0dXJuIG1fc2NyaXB0
aW5nUGVybWlzc2lvbjsgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgRG9jdW1lbnRGcmFnbWVu
dCogbV9mcmFnbWVudDsKLSAgICAgICAgRWxlbWVudCogbV9jb250ZXh0RWxlbWVudDsKKyAgICAg
ICAgUXVhbGlmaWVkTmFtZSBtX2NvbnRleHRUYWc7CiAKICAgICAgICAgLy8gRnJhZ21lbnRTY3Jp
cHRpbmdOb3RBbGxvd2VkIGNhdXNlcyB0aGUgUGFyc2VyIHRvIHJlbW92ZSBjaGlsZHJlbgogICAg
ICAgICAvLyBmcm9tIDxzY3JpcHQ+IHRhZ3MgKHNvIGphdmFzY3JpcHQgZG9lc24ndCBzaG93IHVw
IGluIHBhc3RlcykuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1
cFRva2VuQmFzZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbkJhc2Uu
aAppbmRleCBjOTYyYTZhYmEzM2E0YjVlNTE0YzFlYTNkZTAxMGM5OGQxYmRlYmYyLi4yYmRiZGVl
YzA0OWU1OTJmMjM4Mzk3NThkMDNjZDdmMTY2OTYxMjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvTWFya3VwVG9rZW5CYXNlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgTWFy
a3VwVG9rZW5CYXNlX2gKIAogI2luY2x1ZGUgIkVsZW1lbnRBdHRyaWJ1dGVEYXRhLmgiCisjaW5j
bHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWZu
ZGVmIE5ERUJVRwpAQCAtMzcyLDEyICszNzMsMTUgQEAgcHJvdGVjdGVkOgogICAgIEF0dHJpYnV0
ZSogbV9jdXJyZW50QXR0cmlidXRlOwogfTsKIAorZW51bSBDaGFyYWN0ZXJTdG9yYWdlTW9kZSB7
IEludGVybmFsaXplQ2hhcmFjdGVycywgUmVmZXJlbmNlRXh0ZXJuYWxDaGFyYWN0ZXJzIH07CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFRva2VuPgogY2xhc3MgQXRvbWljTWFya3VwVG9rZW5CYXNlIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBdG9taWNNYXJrdXBUb2tlbkJhc2UpOwogcHVibGlj
OgotICAgIEF0b21pY01hcmt1cFRva2VuQmFzZShUb2tlbiogdG9rZW4pCisgICAgQXRvbWljTWFy
a3VwVG9rZW5CYXNlKFRva2VuKiB0b2tlbiwgQ2hhcmFjdGVyU3RvcmFnZU1vZGUgY2hhcmFjdGVy
U3RvcmFnZSA9IFJlZmVyZW5jZUV4dGVybmFsQ2hhcmFjdGVycykKICAgICAgICAgOiBtX3R5cGUo
dG9rZW4tPnR5cGUoKSkKKyAgICAgICAgLCBtX2V4dGVybmFsQ2hhcmFjdGVycygwKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKHRva2VuKTsKIApAQCAtNDAyLDcgKzQwNiwxNSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBtX2RhdGEgPSBTdHJpbmcodG9rZW4tPmNvbW1lbnQoKS5kYXRhKCksIHRva2Vu
LT5jb21tZW50KCkuc2l6ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRv
a2VuOjpUeXBlOjpDaGFyYWN0ZXI6Ci0gICAgICAgICAgICBtX2V4dGVybmFsQ2hhcmFjdGVycyA9
ICZ0b2tlbi0+Y2hhcmFjdGVycygpOworICAgICAgICAgICAgaWYgKGNoYXJhY3RlclN0b3JhZ2Ug
PT0gUmVmZXJlbmNlRXh0ZXJuYWxDaGFyYWN0ZXJzKSB7CisgICAgICAgICAgICAgICAgbV9leHRl
cm5hbENoYXJhY3RlcnMgPSAmdG9rZW4tPmNoYXJhY3RlcnMoKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9pbnRlcm5hbENoYXJhY3RlcnNT
aXplID0gdG9rZW4tPmNoYXJhY3RlcnMoKS5zaXplKCk7CisgICAgICAgICAgICBtX2ludGVybmFs
Q2hhcmFjdGVycyA9IGFkb3B0QXJyYXlQdHIobmV3IFVDaGFyW21faW50ZXJuYWxDaGFyYWN0ZXJz
U2l6ZV0pOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faW50ZXJuYWxD
aGFyYWN0ZXJzU2l6ZTsgaSsrKQorICAgICAgICAgICAgICAgIG1faW50ZXJuYWxDaGFyYWN0ZXJz
W2ldID0gdG9rZW4tPmNoYXJhY3RlcnMoKS5kYXRhKClbaV07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDU2LDEwICs0NjgsMTYg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9hdHRyaWJ1dGVzOwogICAgIH0KIAotICAgIGNv
bnN0IHR5cGVuYW1lIFRva2VuOjpEYXRhVmVjdG9yJiBjaGFyYWN0ZXJzKCkgY29uc3QKKyAgICBj
b25zdCBVQ2hhciogY2hhcmFjdGVyRGF0YSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
bV90eXBlID09IFRva2VuOjpUeXBlOjpDaGFyYWN0ZXIpOworICAgICAgICByZXR1cm4gbV9leHRl
cm5hbENoYXJhY3RlcnMgPyBtX2V4dGVybmFsQ2hhcmFjdGVycy0+ZGF0YSgpIDogbV9pbnRlcm5h
bENoYXJhY3RlcnMuZ2V0KCk7CisgICAgfQorCisgICAgc2l6ZV90IGNoYXJhY3RlckRhdGFTaXpl
KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVG9rZW46OlR5cGU6OkNo
YXJhY3Rlcik7Ci0gICAgICAgIHJldHVybiAqbV9leHRlcm5hbENoYXJhY3RlcnM7CisgICAgICAg
IHJldHVybiBtX2V4dGVybmFsQ2hhcmFjdGVycyA/IG1fZXh0ZXJuYWxDaGFyYWN0ZXJzLT5zaXpl
KCkgOiBtX2ludGVybmFsQ2hhcmFjdGVyc1NpemU7CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5n
JiBjb21tZW50KCkgY29uc3QKQEAgLTUwMCwxMyArNTE4LDE5IEBAIHByb3RlY3RlZDoKIAogICAg
IC8vICJjaGFyYWN0ZXJzIiBmb3IgQ2hhcmFjdGVyCiAgICAgLy8KLSAgICAvLyBXZSBkb24ndCB3
YW50IHRvIGNvcHkgdGhlIHRoZSBjaGFyYWN0ZXJzIG91dCBvZiB0aGUgVG9rZW4sIHNvIHdlCi0g
ICAgLy8ga2VlcCBhIHBvaW50ZXIgdG8gaXRzIGJ1ZmZlciBpbnN0ZWFkLiBUaGlzIGJ1ZmZlciBp
cyBvd25lZCBieSB0aGUKLSAgICAvLyBUb2tlbiBhbmQgY2F1c2VzIGEgbGlmZXRpbWUgZGVwZW5k
ZW5jZSBiZXR3ZWVuIHRoZXNlIG9iamVjdHMuCisgICAgLy8gSW4gc3RlYWR5LXN0YXRlIGNhc2Us
IHdlIGRvbid0IHdhbnQgdG8gY29weSB0aGUgdGhlIGNoYXJhY3RlcnMgb3V0IG9mIHRoZQorICAg
IC8vIFRva2VuLCBzbyB3ZSBrZWVwIGEgcG9pbnRlciB0byBpdHMgYnVmZmVyIGluc3RlYWQuIFRo
aXMgYnVmZmVyIGlzIG93bmVkCisgICAgLy8gYnkgdGhlIFRva2VuIGFuZCBjYXVzZXMgYSBsaWZl
dGltZSBkZXBlbmRlbmNlIGJldHdlZW4gdGhlc2Ugb2JqZWN0cy4gVGhpcworICAgIC8vIGlzIHRo
ZSBiZWhhdmlvciB3aGVuIGNvbnN0cnVjdGVkIHdpdGggUmVmZXJlbmNlRXh0ZXJuYWxDaGFyYWN0
ZXJzLgogICAgIC8vCi0gICAgLy8gRklYTUU6IEFkZCBhIG1lY2hhbmlzbSBmb3IgImludGVybmFs
aXppbmciIHRoZSBjaGFyYWN0ZXJzIHdoZW4gdGhlCi0gICAgLy8gICAgICAgIEhUTUxUb2tlbiBp
cyBkZXN0cnVjdGVkLgorICAgIC8vIEluIHRoZSAiaW1wbGllZCBjb250ZXh0IiBmcmFnbWVudCBj
YXNlLCB3ZSBuZWVkIHRvIGxldCB0aGUgdG9rZW5pemVyCisgICAgLy8gc2NhbiBhaGVhZCBhbmQg
cXVldWUgdG9rZW5zIGZvciBsYXRlciBkZWxpdmVyeS4gSW4gdGhpcyBjYXNlLCB3ZSBtYWtlIGFu
CisgICAgLy8gaW50ZXJuYWwgY29weSBvZiB0aGUgY2hhcmFjdGVycyBzbyB0aGF0IGl0IGlzIHNh
ZmUgdG8gbGV0IHRoZSB1bmRlcmx5aW5nCisgICAgLy8gVG9rZW4gYmUgZnJlZWQuIFRoaXMgaXMg
dGhlIGJlaGF2aW9yIHdoZW4gY29uc3RydWN0ZWQgd2l0aAorICAgIC8vIEludGVybmFsaXplQ2hh
cmFjdGVycwogICAgIGNvbnN0IHR5cGVuYW1lIFRva2VuOjpEYXRhVmVjdG9yKiBtX2V4dGVybmFs
Q2hhcmFjdGVyczsKKyAgICBPd25BcnJheVB0cjxVQ2hhcj4gbV9pbnRlcm5hbENoYXJhY3RlcnM7
CisgICAgc2l6ZV90IG1faW50ZXJuYWxDaGFyYWN0ZXJzU2l6ZTsKIAogICAgIC8vIEZvciBET0NU
WVBFCiAgICAgT3duUHRyPHR5cGVuYW1lIFRva2VuOjpEb2N0eXBlRGF0YT4gbV9kb2N0eXBlRGF0
YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MVHJlZUJ1aWxkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUcmVlQnVpbGRlci5jcHAKaW5kZXgg
ZGIyMTNjZDYyZWU5M2Q1NDdhZjEzYzU5ZDNmMTAyZjVjZGNjNjc5Ny4uNTFlMTQ4ZGNjYzE5NzUy
NzZjZDg2Y2RmYzlmOGE0ZTYxNDVjYTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNl
ci9YTUxUcmVlQnVpbGRlci5jcHAKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIFhNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzRW5kVGFnKGNvbnN0IEF0b21pY1hNTFRva2VuJiB0b2tlbikKIAogdm9pZCBY
TUxUcmVlQnVpbGRlcjo6cHJvY2Vzc0NoYXJhY3Rlcihjb25zdCBBdG9taWNYTUxUb2tlbiYgdG9r
ZW4pCiB7Ci0gICAgYXBwZW5kVG9UZXh0KHRva2VuLmNoYXJhY3RlcnMoKS5kYXRhKCksIHRva2Vu
LmNoYXJhY3RlcnMoKS5zaXplKCkpOworICAgIGFwcGVuZFRvVGV4dCh0b2tlbi5jaGFyYWN0ZXJE
YXRhKCksIHRva2VuLmNoYXJhY3RlckRhdGFTaXplKCkpOwogfQogCiB2b2lkIFhNTFRyZWVCdWls
ZGVyOjpwcm9jZXNzQ0RBVEEoY29uc3QgQXRvbWljWE1MVG9rZW4mIHRva2VuKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>