<?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>48957</bug_id>
          
          <creation_ts>2010-11-03 15:18:27 -0700</creation_ts>
          <short_desc>[Qt] Introduce QDRTNode for passing WebCore::Node across JS bridge</short_desc>
          <delta_ts>2011-02-07 09:33:05 -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 Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53921</dependson>
          <blocked>31099</blocked>
    
    <blocked>46601</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>304322</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-11-03 15:18:27 -0700</bug_when>
    <thetext>QDRTNode can be used for passing DOM nodes that are not HTMLElements across the JS bridge. Gives us a chance of passing nodesFromRect tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304323</commentid>
    <comment_count>1</comment_count>
      <attachid>72878</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-11-03 15:22:24 -0700</bug_when>
    <thetext>Created attachment 72878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304325</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-03 15:25:50 -0700</bug_when>
    <thetext>Attachment 72878 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;WebCore/ChangeLog&apos;, u&apos;WebCore/bridge/qt/qt_runtime.cpp&apos;, u&apos;WebKit/qt/ChangeLog&apos;, u&apos;WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp&apos;, u&apos;WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h&apos;]&quot; exit_code: 1
WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h:30:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305798</commentid>
    <comment_count>3</comment_count>
      <attachid>73173</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-11-06 11:14:27 -0700</bug_when>
    <thetext>Created attachment 73173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305799</commentid>
    <comment_count>4</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-11-06 11:14:50 -0700</bug_when>
    <thetext>This allows fast/dom/nodesFromRect-inner-documents.html an fast/dom/nodesFromRect-links-and-text.html to pass on Qt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306368</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-08 14:21:59 -0800</bug_when>
    <thetext>Looks reasonable, although I will review better soon.

All this path robert had to take is because qwebelement does not work well for text nodes. see bug 31099.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314615</commentid>
    <comment_count>6</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-11-29 13:47:42 -0800</bug_when>
    <thetext>Antonio, thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315105</commentid>
    <comment_count>7</comment_count>
      <attachid>73173</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-30 09:38:16 -0800</bug_when>
    <thetext>Comment on attachment 73173
Patch

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

&gt; WebCore/bridge/qt/qt_runtime.cpp:142
&gt; +    static QDRTNode create(Node* element)

&apos;Node* element&apos; looks strange to me, Robert. Could we just name it &apos;node&apos;?

&gt; WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h:74
&gt; +    WebCore::Node* m_element;

Ditto. m_node make more sense to me, and actually throughout the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318926</commentid>
    <comment_count>8</comment_count>
      <attachid>75941</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-12-08 11:59:57 -0800</bug_when>
    <thetext>Created attachment 75941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328393</commentid>
    <comment_count>9</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-01-02 07:02:56 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=75941) [details]
&gt; Patch

Hi Antonio,

Thoughts? ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328477</commentid>
    <comment_count>10</comment_count>
      <attachid>75941</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2011-01-02 21:03:05 -0800</bug_when>
    <thetext>Comment on attachment 75941
Patch

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

&gt; WebCore/bridge/qt/qt_runtime.cpp:137
&gt; +// this is here as a proxy, so we&apos;d have a class to friend in QDRTNode,

Capital T.

&gt; WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:91
&gt; +        m_node = static_cast&lt;Node*&gt;(node);

Do you need to static_cast Node* to Node*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329123</commentid>
    <comment_count>11</comment_count>
      <attachid>77915</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-01-04 12:22:41 -0800</bug_when>
    <thetext>Created attachment 77915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329124</commentid>
    <comment_count>12</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-01-04 12:24:12 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 75941 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75941&amp;action=review
&gt; 
&gt; &gt; WebCore/bridge/qt/qt_runtime.cpp:137
&gt; &gt; +// this is here as a proxy, so we&apos;d have a class to friend in QDRTNode,
&gt; 
&gt; Capital T.
&gt; 
&gt; &gt; WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:91
&gt; &gt; +        m_node = static_cast&lt;Node*&gt;(node);
&gt; 
&gt; Do you need to static_cast Node* to Node*?

When fixing up per your comments I realized we should make the expected results less platform-specific. Proposed change to results in the patch. Do you agree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329461</commentid>
    <comment_count>13</comment_count>
      <attachid>77915</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 00:10:31 -0800</bug_when>
    <thetext>Comment on attachment 77915
Patch

Rejecting attachment 77915 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 77915]&quot; exit_code: 1
Last 500 characters of output:
rks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py&quot;, line 361, in _call_chain
    result = func(*args)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_http.py&quot;, line 756, in https_open
    return self.do_open(conn_factory, req)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_http.py&quot;, line 706, in do_open
    raise URLError(err)
urllib2.URLError: &lt;urlopen error [Errno 60] Operation timed out&gt;

Full output: http://queues.webkit.org/results/7297400</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329778</commentid>
    <comment_count>14</comment_count>
      <attachid>78041</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-01-05 14:04:20 -0800</bug_when>
    <thetext>Created attachment 78041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330253</commentid>
    <comment_count>15</comment_count>
      <attachid>78135</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-01-06 11:26:36 -0800</bug_when>
    <thetext>Created attachment 78135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330343</commentid>
    <comment_count>16</comment_count>
      <attachid>78135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-06 12:55:04 -0800</bug_when>
    <thetext>Comment on attachment 78135
Patch

Clearing flags on attachment: 78135

Committed r75189: &lt;http://trac.webkit.org/changeset/75189&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330344</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-06 12:55:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72878</attachid>
            <date>2010-11-03 15:22:24 -0700</date>
            <delta_ts>2010-11-06 11:14:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48957-20101103222222.patch</filename>
            <type>text/plain</type>
            <size>6802</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTdiMmU5YjZhZmY4MDQ0ZmU0ZWZlN2ZiYTE2MGZmNTA2NjExZDkzYS4uZWJhN2UyNTRmZjBmOWY0
OGY5ODM1NjMxYzM1MmI0NGVmNmQzNjUzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0wMyAgUm9i
ZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbnRyb2R1Y2UgUURSVE5vZGUgZm9yIHBhc3Np
bmcgV2ViQ29yZTo6Tm9kZSBhY3Jvc3MgSlMgYnJpZGdlCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBicmlkZ2UvcXQv
cXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1l
OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXREUlROb2RlUnVudGltZTo6Z2V0
KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQpOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFFWYXJpYW50VG9WYWx1ZSk6CisKIDIwMTAtMTEt
MDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSm9obiBTdWxsaXZhbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwIGIvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggNjU5
NWI4NDIxYTRhMmM3YTY0NjA1MjI3MTQwMzExNzNhNTI2MDUyNy4uYTMwMzcwNjM3NGFmMDE3YTNh
NWE2ZWEwMzFjMWI2MWFjMTk1MjU1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
cnVudGltZS5jcHAKKysrIGIvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTI0
LDYgKzI0LDcgQEAKICNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEYXRlTWF0
aC5oIgogI2luY2x1ZGUgIkRhdGVQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAi
SW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCkBAIC0xMzMsNiArMTM0LDIyIEBA
IHB1YmxpYzoKICAgICB9CiB9OwogCisvLyB0aGlzIGlzIGhlcmUgYXMgYSBwcm94eSwgc28gd2Un
ZCBoYXZlIGEgY2xhc3MgdG8gZnJpZW5kIGluIFFEUlROb2RlLAorLy8gYXMgZ2V0dGluZy9zZXR0
aW5nIGEgV2ViQ29yZSBpbiBRRFJUTm9kZSBpcyBwcml2YXRlLgorLy8gV2Ugb25seSBuZWVkIHRv
IHBhc3MgV2ViQ29yZSBOb2RlcyBmb3IgbGF5b3V0IHRlc3RzLgorY2xhc3MgUXREUlROb2RlUnVu
dGltZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFFEUlROb2RlIGNyZWF0ZShOb2RlKiBlbGVtZW50
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFFEUlROb2RlKGVsZW1lbnQpOworICAgIH0KKworICAg
IHN0YXRpYyBOb2RlKiBnZXQoY29uc3QgUURSVE5vZGUmIGVsZW1lbnQpCisgICAgeworICAgICAg
ICByZXR1cm4gZWxlbWVudC5tX2VsZW1lbnQ7CisgICAgfQorfTsKKwogc3RhdGljIEpTUmVhbFR5
cGUgdmFsdWVSZWFsVHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsKQogewogICAgIGlm
ICh2YWwuaXNOdW1iZXIoKSkKQEAgLTc1Miw2ICs3NjksOSBAQCBRVmFyaWFudCBjb252ZXJ0VmFs
dWVUb1FWYXJpYW50KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSwgUU1ldGFUeXBlOjpU
eXBlCiAgICAgICAgICAgICAgICAgICAgIHJldCA9IFFWYXJpYW50Ojpmcm9tVmFsdWU8UVdlYkVs
ZW1lbnQ+KFF0V2ViRWxlbWVudFJ1bnRpbWU6OmNyZWF0ZSgoc3RhdGljX2Nhc3Q8SlNEb2N1bWVu
dCo+KG9iamVjdCkpLT5pbXBsKCktPmRvY3VtZW50RWxlbWVudCgpKSk7CiAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICByZXQgPSBRVmFyaWFudDo6ZnJvbVZhbHVlPFFX
ZWJFbGVtZW50PihRV2ViRWxlbWVudCgpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaGludCA9
PSAoUU1ldGFUeXBlOjpUeXBlKSBxTWV0YVR5cGVJZDxRRFJUTm9kZT4oKSkgeworICAgICAgICAg
ICAgICAgIGlmIChvYmplY3QgJiYgb2JqZWN0LT5pbmhlcml0cygmSlNOb2RlOjpzX2luZm8pKQor
ICAgICAgICAgICAgICAgICAgICByZXQgPSBRVmFyaWFudDo6ZnJvbVZhbHVlPFFEUlROb2RlPihR
dERSVE5vZGVSdW50aW1lOjpjcmVhdGUoKHN0YXRpY19jYXN0PEpTTm9kZSo+KG9iamVjdCkpLT5p
bXBsKCkpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGludCA9PSAoUU1ldGFUeXBlOjpUeXBl
KSBxTWV0YVR5cGVJZDxRVmFyaWFudD4oKSkgewogICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5p
c1VuZGVmaW5lZE9yTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSkK
QEAgLTg5OCw2ICs5MTgsMTcgQEAgSlNWYWx1ZSBjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKEV4ZWNT
dGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290LCBjb24KICAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgdG9KU0RPTUdsb2JhbE9iamVjdChkb2N1bWVudCwgZXhlYyksIFF0V2Vi
RWxlbWVudFJ1bnRpbWU6OmdldCh2YXJpYW50LnZhbHVlPFFXZWJFbGVtZW50PigpKSk7CiAgICAg
fQogCisgICAgaWYgKHR5cGUgPT0gcU1ldGFUeXBlSWQ8UURSVE5vZGU+KCkpIHsKKyAgICAgICAg
aWYgKCFyb290LT5nbG9iYWxPYmplY3QoKS0+aW5oZXJpdHMoJkpTRE9NV2luZG93OjpzX2luZm8p
KQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gKHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4ocm9vdC0+Z2xvYmFsT2JqZWN0
KCkpKS0+aW1wbCgpLT5kb2N1bWVudCgpOworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywg
dG9KU0RPTUdsb2JhbE9iamVjdChkb2N1bWVudCwgZXhlYyksIFF0RFJUTm9kZVJ1bnRpbWU6Omdl
dCh2YXJpYW50LnZhbHVlPFFEUlROb2RlPigpKSk7CisgICAgfQorCiAgICAgaWYgKHR5cGUgPT0g
UU1ldGFUeXBlOjpRVmFyaWFudE1hcCkgewogICAgICAgICAvLyBjcmVhdGUgYSBuZXcgb2JqZWN0
LCBhbmQgc3R1ZmYgcHJvcGVydGllcyBpbnRvIGl0CiAgICAgICAgIEpTT2JqZWN0KiByZXQgPSBj
b25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDZiYTIwM2M0NzVhNmY2Y2M1YWIwY2I2ZWRk
Yzg4MjRkYmE5NzhhZGYuLmU4ZDFiN2ZiZTcwZDFhYTRiYzdiYTU4YjMzMGUwZjY4YzUwYTk4MTIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTAzICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbUXRdIEludHJvZHVjZSBRRFJUTm9kZSBmb3IgcGFzc2luZyBXZWJDb3JlOjpOb2RlIGFjcm9z
cyBKUyBicmlkZ2UKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDg5NTcKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcDoKKyAgICAgICAgKFFEUlROb2RlOjpRRFJUTm9kZSk6CisgICAgICAgIChRRFJU
Tm9kZTo6flFEUlROb2RlKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpub2Rl
c0Zyb21SZWN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oOgorCiAyMDEwLTExLTAzICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CmluZGV4IGM0NzRkMjE4YjdmNDRmMTQ3NGQ2YTMwMDZlMjg1YzM0NmIzNmRkYTIuLmQyMzEwODky
MTQzYTVhNjRhNTU1ZWY1MzdmMGZiN2QzMmVkMDAyZjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNzksNiArNzks
MjcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFFNYXA8aW50LCBRV2ViU2NyaXB0V29y
bGQqPiBtX3dvcmxkTWFwOwogCitRRFJUTm9kZTo6UURSVE5vZGUoKQorICAgIDogbV9lbGVtZW50
KDApCit7Cit9CisKK1FEUlROb2RlOjpRRFJUTm9kZShXZWJDb3JlOjpOb2RlKiBub2RlKQorICAg
IDogbV9lbGVtZW50KDApCit7CisgICAgaWYgKG5vZGUpIHsKKyAgICAgICAgbV9lbGVtZW50ID0g
c3RhdGljX2Nhc3Q8Tm9kZSo+KG5vZGUpOworICAgICAgICBtX2VsZW1lbnQtPnJlZigpOworICAg
IH0KK30KKworUURSVE5vZGU6On5RRFJUTm9kZSgpCit7CisgICAgaWYgKG1fZWxlbWVudCkKKyAg
ICAgICAgbV9lbGVtZW50LT5kZXJlZigpOworfQorCisKIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdCgpCiB7CiB9CkBAIC03OTUsNyArODE2LDEwIEBAIFFW
YXJpYW50TGlzdCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bm9kZXNGcm9tUmVjdChjb25zdCBR
V2ViRWxlbWVudCYgZG9jdW1lbnQsCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBub2Rlcy0+bGVu
Z3RoKCk7IGkrKykgewogICAgICAgICBRVmFyaWFudCB2OwogICAgICAgICAvLyBRV2ViRWxlbWVu
dCB3aWxsIGJlIG51bGwgaWYgdGhlIE5vZGUgaXMgbm90IGFuIEhUTUwgRWxlbWVudAotICAgICAg
ICB2LnNldFZhbHVlKFFXZWJFbGVtZW50KG5vZGVzLT5pdGVtKGkpKSk7CisgICAgICAgIGlmIChu
b2Rlcy0+aXRlbShpKS0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgdi5zZXRWYWx1ZShR
V2ViRWxlbWVudChub2Rlcy0+aXRlbShpKSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2
LnNldFZhbHVlKFFEUlROb2RlKG5vZGVzLT5pdGVtKGkpKSk7CiAgICAgICAgIHJlcyA8PCB2Owog
ICAgIH0KICAgICByZXR1cm4gcmVzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCA4MmQ5MzE5OTNmYTc4YjRmNzA1ZmE4MzRi
NzkzNTA5YmM1ODNjM2Q0Li5iNTcyMTBjZWU1ZjIwNjFiZjBmMzJiOGY5OTc1YTJkMjMwZmE0ZDIy
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaApAQCAtMjYsNiArMjYsMjYgQEAKICNpbmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAj
aW5jbHVkZSA8UVZhcmlhbnQ+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICBjbGFzcyBUZXh0
OworICAgIGNsYXNzIE5vZGU7Cit9CisKKworI2lmIGRlZmluZWQoV1RGX1VTRV9WOCkgJiYgV1RG
X1VTRV9WOAorbmFtZXNwYWNlIFY4IHsKKyAgICBuYW1lc3BhY2UgQmluZGluZ3MgeworICAgIGNs
YXNzIFF0RFJUTm9kZVJ1bnRpbWU7CisgICAgfQorfQorI2Vsc2UKK25hbWVzcGFjZSBKU0Mgewor
ICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CisgICAgY2xhc3MgUXREUlROb2RlUnVudGltZTsKKyAg
ICB9Cit9CisjZW5kaWYKKwogY2xhc3MgUVdlYkVsZW1lbnQ7CiBjbGFzcyBRV2ViRnJhbWU7CiBj
bGFzcyBRV2ViUGFnZTsKQEAgLTM0LDYgKzU0LDI4IEBAIGNsYXNzIFFXZWJTY3JpcHRXb3JsZDsK
IAogZXh0ZXJuIFFNYXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dvcmxkTWFwOwogCisvLyBV
c2VkIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSdzIHRvIGxheW91dCB0ZXN0cyB1c2luZyBMYXlvdXRU
ZXN0Q29udHJvbGxlcgorY2xhc3MgUVdFQktJVF9FWFBPUlQgUURSVE5vZGUgeworcHVibGljOgor
ICAgIFFEUlROb2RlKCk7CisgICAgflFEUlROb2RlKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgUURSVE5vZGUoV2ViQ29yZTo6Tm9kZSopOworCisgICAgZnJpZW5kIGNsYXNzIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OworCisjaWYgZGVmaW5lZChXVEZfVVNFX1Y4KSAmJiBXVEZfVVNFX1Y4
CisgICAgZnJpZW5kIGNsYXNzIFY4OjpCaW5kaW5nczo6UXREUlROb2RlUnVudGltZTsKKyNlbHNl
CisgICAgZnJpZW5kIGNsYXNzIEpTQzo6QmluZGluZ3M6OlF0RFJUTm9kZVJ1bnRpbWU7CisjZW5k
aWYKKworICAgIFdlYkNvcmU6Ok5vZGUqIG1fZWxlbWVudDsKK307CisKK1FfREVDTEFSRV9NRVRB
VFlQRShRRFJUTm9kZSkKKwogY2xhc3MgUVdFQktJVF9FWFBPUlQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQgewogCiBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73173</attachid>
            <date>2010-11-06 11:14:27 -0700</date>
            <delta_ts>2010-12-08 11:59:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48957-20101106181424.patch</filename>
            <type>text/plain</type>
            <size>12004</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmODQ4YTY1ODkzODA5YWIxZDEyYzA4MTdiNDVhMzFjYjQzMmViY2E5Li5iYjZiMDAz
ZDNjYTlmMDIyODEyZjM2ODQyMTllZjg4MjU3NTJiYTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMDYgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFE
UlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAg
ICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9k
ZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBVbnNraXA6CisgICAg
ICAgIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBm
YXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBm
YXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sOgorICAgICAgICAqIGZh
c3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qczoKKyAgICAgICAgKGdldFRvcEZvcik6Cisg
ICAgICAgIChnZXRCb3R0b21Gb3IpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisK
IDIwMTAtMTEtMDYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLiBVcGRhdGUgUXQgc3BlY2lmaWMgZXhwZWN0ZWQgZmlsZXMgYWZ0ZXIg
cjcxNDY3LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1p
bm5lci1kb2N1bWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
aW5uZXItZG9jdW1lbnRzLmh0bWwKaW5kZXggYzEzYzliYmNmNWU1NTNiZDllNDE3NTE0Y2FjODUz
NmNjMDk5MTJiMC4uOTYyODg3YjBlYzc3YTMxOGQ1NGQ0YTU4YjcxY2QyMjlkZGRhNDdhOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVu
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRv
Y3VtZW50cy5odG1sCkBAIC0zOCw5ICszOCwxMSBAQAogICAgICAgdmFyIHAgPSBpbm5lckRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwJylbMF07CiAgICAgICB2YXIgYm9keSA9IGlubmVy
RG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXTsKICAgICAgIHZhciBkaXZD
ZW50ZXIgPSBnZXRDZW50ZXJGb3IoZGl2KTsKKyAgICAgIHZhciBkaXZCb3R0b20gPSBnZXRCb3R0
b21Gb3IoZGl2KTsKKyAgICAgIHZhciBwQ2VudGVyID0gZ2V0Q2VudGVyRm9yKHApOwogICAgICAg
Y2hlY2soZGl2Q2VudGVyLngsIGRpdkNlbnRlci55LCAwLCAwLCAwLCAwLCBbZGl2XSwgaW5uZXJE
b2N1bWVudCk7Ci0gICAgICBjaGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnksIDAsIDAsIDEw
LCAwLCBbZGl2LCBib2R5XSwgaW5uZXJEb2N1bWVudCk7Ci0gICAgICBjaGVjayhkaXZDZW50ZXIu
eCwgZGl2Q2VudGVyLnksIDAsIDAsIDI1LCAwLCBbcCwgZGl2LCBib2R5XSwgaW5uZXJEb2N1bWVu
dCk7CisgICAgICBjaGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnksIDAsIDAsIGRpdkJvdHRv
bS55IC0gZGl2Q2VudGVyLnksIDAsIFtkaXYsIGJvZHldLCBpbm5lckRvY3VtZW50KTsKKyAgICAg
IGNoZWNrKGRpdkNlbnRlci54LCBkaXZDZW50ZXIueSwgMCwgMCwgcENlbnRlci55IC0gZGl2Q2Vu
dGVyLnksIDAsIFtwLCBkaXYsIGJvZHldLCBpbm5lckRvY3VtZW50KTsKIAogICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9t
UmVjdC1saW5rcy1hbmQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9t
UmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCmluZGV4IDBiN2I5ODkwNzJjMDYxNTFhY2E3Y2IwOTI4
Y2ExNjJiYWJjNjg5ZjQuLjQ1NzExNzZiMGM5YmY0NTYwNWQxNjAyYmMzNGE1MWYxNGY4MzFiNzAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5k
LXRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtz
LWFuZC10ZXh0Lmh0bWwKQEAgLTI2LDEwICsyNiwxMiBAQAogICAgICAgdmFyIGNlbnRlckExID0g
Z2V0Q2VudGVyRm9yKGUuYTEpOwogICAgICAgdmFyIGNlbnRlckEyID0gZ2V0Q2VudGVyRm9yKGUu
YTIpOwogICAgICAgdmFyIGNlbnRlckEzID0gZ2V0Q2VudGVyRm9yKGUuYTMpOworICAgICAgdmFy
IHRvcFAxID0gZ2V0VG9wRm9yKGUucDEpOworICAgICAgdmFyIHRvcEExID0gZ2V0VG9wRm9yKGUu
YTEpOwogICAgICAgdmFyIGNlbnRlclRleHQgPSB7IHggOiAoY2VudGVyQTIueCArIGNlbnRlckEx
LngpIC8gMiwgeSA6IGNlbnRlckExLnkgfTsgLy90ZXh0IG5vZGUgYmV0d2VlbiBhMSBhbmQgYTIK
IAogICAgICAgY2hlY2soY2VudGVyQTEueCwgY2VudGVyQTEueSwgMCwgMCwgMCwgMCwgW2UuYTEu
Zmlyc3RDaGlsZF0pOwotICAgICAgY2hlY2soY2VudGVyQTEueCwgY2VudGVyQTEueSwgMTAsIDAs
IDAsIDAsIFtlLmExLmZpcnN0Q2hpbGQsIGUuYTEsIGUucDFdKTsKKyAgICAgIGNoZWNrKGNlbnRl
ckExLngsIGNlbnRlckExLnksIHRvcEExLnkgLSB0b3BQMS55LCAwLCAwLCAwLCBbZS5hMS5maXJz
dENoaWxkLCBlLmExLCBlLnAxXSk7CiAKICAgICAgIGNoZWNrKGNlbnRlckExLngsIGNlbnRlckEx
LnksIDAsIDAsIGNlbnRlckEzLnkgLSBjZW50ZXJBMS55LCAwLCBbZS5hMy5maXJzdENoaWxkLCBl
LmEzLCBlLnAxLCBlLmExLmZpcnN0Q2hpbGQsIGUuYTFdKTsKICAgICAgIGNoZWNrKGNlbnRlckEx
LngsIGNlbnRlckExLnksIDAsIGNlbnRlclRleHQueCAtIGNlbnRlckExLngsIDAsIDAsIFtlLnAx
LmNoaWxkTm9kZXNbMl0sIGUuYTEuZmlyc3RDaGlsZCwgZS5hMSwgZS5wMV0pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcwppbmRleCAyOWEwMmNm
MDY0MDQ4Zjk2ZWQ2NzE0ZGQ3YzJkYjU1MDY0Yzk5NzA4Li41YmMyYzJiMTlhNWYyMmIwMjU4MDNk
NTZhMTkwN2VkNmI5MDQzNzBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNv
dXJjZXMvbm9kZXNGcm9tUmVjdC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJj
ZXMvbm9kZXNGcm9tUmVjdC5qcwpAQCAtNDYsNCArNDYsMTYgQEAgZnVuY3Rpb24gZ2V0Q2VudGVy
Rm9yKGVsZW1lbnQpCiAgIHJldHVybiB7IHggOiBwYXJzZUludCgocmVjdC5sZWZ0ICsgcmVjdC5y
aWdodCkgLyAyKSAsIHkgOiBwYXJzZUludCgocmVjdC50b3AgKyByZWN0LmJvdHRvbSkgLyAyKX07
CiB9CiAKK2Z1bmN0aW9uIGdldFRvcEZvcihlbGVtZW50KQoreworICB2YXIgcmVjdCA9IGVsZW1l
bnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIHJldHVybiB7IHggOiBwYXJzZUludCgocmVj
dC5sZWZ0ICsgcmVjdC5yaWdodCkgLyAyKSAsIHkgOiBwYXJzZUludChyZWN0LnRvcCl9OworfQor
CitmdW5jdGlvbiBnZXRCb3R0b21Gb3IoZWxlbWVudCkKK3sKKyAgdmFyIHJlY3QgPSBlbGVtZW50
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4geyB4IDogcGFyc2VJbnQoKHJlY3Qu
bGVmdCArIHJlY3QucmlnaHQpIC8gMikgLCB5IDogcGFyc2VJbnQocmVjdC5ib3R0b20pfTsKK30K
KwogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApp
bmRleCAwNWVhYzljYzRkOTgzYWUwM2M3NDk2YTk2NDYzZTY1M2QzNWQ1YmJlLi5hNmFhN2U5Mjg4
MWUxN2M2MWIyOTM3Y2U1MWQ4NjQ0NmNmNjcwMzEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
QEAgLTU0MzgsMTAgKzU0MzgsNiBAQCBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJr
cy5odG1sCiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuCiBmYXN0L2ZpbGVzeXN0
ZW0KIAotIyBOZWVkcyBtb3JlIGludmVzdGlnYXRpb24uCi1mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWxpbmtzLWFuZC10ZXh0Lmh0bWwKLWZhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1l
bnRzLmh0bWwKLQogIyBJdCBmYWlscywgYmVjYXVzZSAzRCBjYW52YXMgaXMgZGlzYWJsZWQgYnkg
ZGVmYXVsdC4KIGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS5odG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMjc0ZjhjOTRlZmI0NTljZDA2ZjQxZTk3YzYwODEzZjBhOWQyNmM3OC4uOTc1ZTli
MTQzZmIwYWQzNDJkY2QyNzRhNGNjMWFhYWIzMTBlOWI5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0x
MS0wNiAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbnRyb2R1Y2UgUURSVE5vZGUg
Zm9yIHBhc3NpbmcgV2ViQ29yZTo6Tm9kZSBhY3Jvc3MgSlMgYnJpZGdlCisKKyAgICAgICAgVGhp
cyBhbGxvd3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8gcGFzcyBXZWJDb3JlOjpOb2RlIGJhY2sg
dG8KKyAgICAgICAgbGF5b3V0IHRlc3RzLgorCisgICAgICAgIFVuc2tpcDoKKyAgICAgICAgZmFz
dC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCisgICAgICAgIGZhc3QvZG9t
L25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5NTcKKworICAgICAgICAqIGJyaWRnZS9x
dC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0RFJUTm9kZVJ1bnRp
bWU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1lOjpn
ZXQpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFZhbHVlVG9RVmFyaWFudCk6Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjpjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKToKKwogMjAxMC0x
MS0wNSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFuIEJlcm5zdGVpbiBhbmQgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cAppbmRleCA2NTk1Yjg0MjFhNGEyYzdhNjQ2MDUyMjcxNDAzMTE3M2E1MjYwNTI3Li5hMzAzNzA2
Mzc0YWYwMTdhM2E1YTZlYTAzMWMxYjYxYWMxOTUyNTVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1l
LmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1
ZGUgIkRhdGVNYXRoLmgiCiAjaW5jbHVkZSAiRGF0ZVByb3RvdHlwZS5oIgorI2luY2x1ZGUgIkR1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCiAjaW5jbHVkZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIK
ICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKQEAgLTEzMyw2
ICsxMzQsMjIgQEAgcHVibGljOgogICAgIH0KIH07CiAKKy8vIHRoaXMgaXMgaGVyZSBhcyBhIHBy
b3h5LCBzbyB3ZSdkIGhhdmUgYSBjbGFzcyB0byBmcmllbmQgaW4gUURSVE5vZGUsCisvLyBhcyBn
ZXR0aW5nL3NldHRpbmcgYSBXZWJDb3JlIGluIFFEUlROb2RlIGlzIHByaXZhdGUuCisvLyBXZSBv
bmx5IG5lZWQgdG8gcGFzcyBXZWJDb3JlIE5vZGVzIGZvciBsYXlvdXQgdGVzdHMuCitjbGFzcyBR
dERSVE5vZGVSdW50aW1lIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUURSVE5vZGUgY3JlYXRlKE5v
ZGUqIGVsZW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gUURSVE5vZGUoZWxlbWVudCk7Cisg
ICAgfQorCisgICAgc3RhdGljIE5vZGUqIGdldChjb25zdCBRRFJUTm9kZSYgZWxlbWVudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBlbGVtZW50Lm1fZWxlbWVudDsKKyAgICB9Cit9OworCiBzdGF0
aWMgSlNSZWFsVHlwZSB2YWx1ZVJlYWxUeXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWwp
CiB7CiAgICAgaWYgKHZhbC5pc051bWJlcigpKQpAQCAtNzUyLDYgKzc2OSw5IEBAIFFWYXJpYW50
IGNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBR
TWV0YVR5cGU6OlR5cGUKICAgICAgICAgICAgICAgICAgICAgcmV0ID0gUVZhcmlhbnQ6OmZyb21W
YWx1ZTxRV2ViRWxlbWVudD4oUXRXZWJFbGVtZW50UnVudGltZTo6Y3JlYXRlKChzdGF0aWNfY2Fz
dDxKU0RvY3VtZW50Kj4ob2JqZWN0KSktPmltcGwoKS0+ZG9jdW1lbnRFbGVtZW50KCkpKTsKICAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJldCA9IFFWYXJpYW50Ojpm
cm9tVmFsdWU8UVdlYkVsZW1lbnQ+KFFXZWJFbGVtZW50KCkpOworICAgICAgICAgICAgfSBlbHNl
IGlmIChoaW50ID09IChRTWV0YVR5cGU6OlR5cGUpIHFNZXRhVHlwZUlkPFFEUlROb2RlPigpKSB7
CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCAmJiBvYmplY3QtPmluaGVyaXRzKCZKU05vZGU6
OnNfaW5mbykpCisgICAgICAgICAgICAgICAgICAgIHJldCA9IFFWYXJpYW50Ojpmcm9tVmFsdWU8
UURSVE5vZGU+KFF0RFJUTm9kZVJ1bnRpbWU6OmNyZWF0ZSgoc3RhdGljX2Nhc3Q8SlNOb2RlKj4o
b2JqZWN0KSktPmltcGwoKSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChoaW50ID09IChRTWV0
YVR5cGU6OlR5cGUpIHFNZXRhVHlwZUlkPFFWYXJpYW50PigpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KGRpc3RhbmNlKQpAQCAtODk4LDYgKzkxOCwxNyBAQCBKU1ZhbHVlIGNvbnZlcnRRVmFyaWFudFRv
VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJvb3QsIGNvbgog
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCB0b0pTRE9NR2xvYmFsT2JqZWN0KGRvY3VtZW50LCBl
eGVjKSwgUXRXZWJFbGVtZW50UnVudGltZTo6Z2V0KHZhcmlhbnQudmFsdWU8UVdlYkVsZW1lbnQ+
KCkpKTsKICAgICB9CiAKKyAgICBpZiAodHlwZSA9PSBxTWV0YVR5cGVJZDxRRFJUTm9kZT4oKSkg
eworICAgICAgICBpZiAoIXJvb3QtPmdsb2JhbE9iamVjdCgpLT5pbmhlcml0cygmSlNET01XaW5k
b3c6OnNfaW5mbykpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSAoc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihyb290LT5n
bG9iYWxPYmplY3QoKSkpLT5pbXBsKCktPmRvY3VtZW50KCk7CisgICAgICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCB0b0pTRE9NR2xvYmFsT2JqZWN0KGRvY3VtZW50LCBleGVjKSwgUXREUlROb2Rl
UnVudGltZTo6Z2V0KHZhcmlhbnQudmFsdWU8UURSVE5vZGU+KCkpKTsKKyAgICB9CisKICAgICBp
ZiAodHlwZSA9PSBRTWV0YVR5cGU6OlFWYXJpYW50TWFwKSB7CiAgICAgICAgIC8vIGNyZWF0ZSBh
IG5ldyBvYmplY3QsIGFuZCBzdHVmZiBwcm9wZXJ0aWVzIGludG8gaXQKICAgICAgICAgSlNPYmpl
Y3QqIHJldCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYmMwMDVkMjg1ZjBhYzQ4
YWE0MGE1Y2Y4YzkzZTI2MmY2Mzc5ZThiOC4uNjhlY2EzZjQxMmU1ZGZhOTBhNmVmY2UzMDExOWQy
NzI0MmM3OWNjMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
cXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMTEtMDYgIFJvYmVydCBIb2dhbiAg
PHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFEUlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6
Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAgICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RD
b250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0
ZXN0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAgIGZhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
bGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVy
LWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChRRFJUTm9kZTo6UURSVE5vZGUpOgorICAgICAgICAo
UURSVE5vZGU6On5RRFJUTm9kZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
bm9kZXNGcm9tUmVjdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuaDoKKwogMjAxMC0xMS0wNSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggZjVm
YTA2YmQ2MGM1MmNmNjhlZmE2ZmRkMThlMDM2NTFkM2FhNzc4OS4uYzI4MzUzNDU1NjY3N2U2Zjky
ZTMyNTkwYzVmNmRiYmQ1MThhYmJkMiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03OSw2ICs3OSwyNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUU1hcDxpbnQsIFFXZWJTY3JpcHRXb3JsZCo+IG1fd29y
bGRNYXA7CiAKK1FEUlROb2RlOjpRRFJUTm9kZSgpCisgICAgOiBtX2VsZW1lbnQoMCkKK3sKK30K
KworUURSVE5vZGU6OlFEUlROb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCisgICAgOiBtX2VsZW1l
bnQoMCkKK3sKKyAgICBpZiAobm9kZSkgeworICAgICAgICBtX2VsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxOb2RlKj4obm9kZSk7CisgICAgICAgIG1fZWxlbWVudC0+cmVmKCk7CisgICAgfQorfQorCitR
RFJUTm9kZTo6flFEUlROb2RlKCkKK3sKKyAgICBpZiAobV9lbGVtZW50KQorICAgICAgICBtX2Vs
ZW1lbnQtPmRlcmVmKCk7Cit9CisKKwogRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OkR1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0KCkKIHsKIH0KQEAgLTc5NSw3ICs4MTYsMTAgQEAgUVZhcmlhbnRMaXN0
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpub2Rlc0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50
JiBkb2N1bWVudCwKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG5vZGVzLT5sZW5ndGgoKTsgaSsr
KSB7CiAgICAgICAgIFFWYXJpYW50IHY7CiAgICAgICAgIC8vIFFXZWJFbGVtZW50IHdpbGwgYmUg
bnVsbCBpZiB0aGUgTm9kZSBpcyBub3QgYW4gSFRNTCBFbGVtZW50Ci0gICAgICAgIHYuc2V0VmFs
dWUoUVdlYkVsZW1lbnQobm9kZXMtPml0ZW0oaSkpKTsKKyAgICAgICAgaWYgKG5vZGVzLT5pdGVt
KGkpLT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICB2LnNldFZhbHVlKFFXZWJFbGVtZW50
KG5vZGVzLT5pdGVtKGkpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHYuc2V0VmFsdWUo
UURSVE5vZGUobm9kZXMtPml0ZW0oaSkpKTsKICAgICAgICAgcmVzIDw8IHY7CiAgICAgfQogICAg
IHJldHVybiByZXM7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5oCmluZGV4IDgyZDkzMTk5M2ZhNzhiNGY3MDVmYTgzNGI3OTM1MDliYzU4
M2MzZDQuLjcwM2EyNTg0NjhhNzg2NDQ0NTI0M2VmZGQ4NmNmOGE0YTg4MzM1OTkgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBA
IC0yNiw2ICsyNiwyNiBAQAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKICNpbmNsdWRlIDxR
VmFyaWFudD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVGV4dDsKK2NsYXNzIE5vZGU7
Cit9CisKKworI2lmIGRlZmluZWQoV1RGX1VTRV9WOCkgJiYgV1RGX1VTRV9WOAorbmFtZXNwYWNl
IFY4IHsKK25hbWVzcGFjZSBCaW5kaW5ncyB7CitjbGFzcyBRdERSVE5vZGVSdW50aW1lOworfQor
fQorI2Vsc2UKK25hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIEJpbmRpbmdzIHsKK2NsYXNzIFF0
RFJUTm9kZVJ1bnRpbWU7Cit9Cit9CisjZW5kaWYKKwogY2xhc3MgUVdlYkVsZW1lbnQ7CiBjbGFz
cyBRV2ViRnJhbWU7CiBjbGFzcyBRV2ViUGFnZTsKQEAgLTM0LDYgKzU0LDI4IEBAIGNsYXNzIFFX
ZWJTY3JpcHRXb3JsZDsKIAogZXh0ZXJuIFFNYXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dv
cmxkTWFwOwogCisvLyBVc2VkIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSdzIHRvIGxheW91dCB0ZXN0
cyB1c2luZyBMYXlvdXRUZXN0Q29udHJvbGxlcgorY2xhc3MgUVdFQktJVF9FWFBPUlQgUURSVE5v
ZGUgeworcHVibGljOgorICAgIFFEUlROb2RlKCk7CisgICAgflFEUlROb2RlKCk7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgUURSVE5vZGUoV2ViQ29yZTo6Tm9kZSopOworCisgICAgZnJpZW5k
IGNsYXNzIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OworCisjaWYgZGVmaW5lZChXVEZfVVNFX1Y4
KSAmJiBXVEZfVVNFX1Y4CisgICAgZnJpZW5kIGNsYXNzIFY4OjpCaW5kaW5nczo6UXREUlROb2Rl
UnVudGltZTsKKyNlbHNlCisgICAgZnJpZW5kIGNsYXNzIEpTQzo6QmluZGluZ3M6OlF0RFJUTm9k
ZVJ1bnRpbWU7CisjZW5kaWYKKworICAgIFdlYkNvcmU6Ok5vZGUqIG1fZWxlbWVudDsKK307CisK
K1FfREVDTEFSRV9NRVRBVFlQRShRRFJUTm9kZSkKKwogY2xhc3MgUVdFQktJVF9FWFBPUlQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQgewogCiBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75941</attachid>
            <date>2010-12-08 11:59:57 -0800</date>
            <delta_ts>2011-01-04 12:22:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48957-20101208195954.patch</filename>
            <type>text/plain</type>
            <size>11929</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YTQ3MDY3ZGUxMTBmYWI2ZWM5NjFhZTY5MjA5NjQ5NjM1MzIzYWI2Li44NzUwMDZk
NzQ1ZTE5OWIxZTg1ZGQ4NjJjM2UzNzJkNWRhZGY5ZTJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMTAtMTEtMDYgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFE
UlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAg
ICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9k
ZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBVbnNraXA6CisgICAg
ICAgIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBm
YXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBm
YXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sOgorICAgICAgICAqIGZh
c3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qczoKKyAgICAgICAgKGdldFRvcEZvcik6Cisg
ICAgICAgIChnZXRCb3R0b21Gb3IpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisK
IDIwMTAtMTItMDggIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCmluZGV4IGMxM2M5YmJjZjVl
NTUzYmQ5ZTQxNzUxNGNhYzg1MzZjYzA5OTEyYjAuLjk2Mjg4N2IwZWM3N2EzMThkNTRkNGE1OGI3
MWNkMjI5ZGRkYTQ3YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJv
bVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9k
ZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbApAQCAtMzgsOSArMzgsMTEgQEAKICAgICAg
IHZhciBwID0gaW5uZXJEb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncCcpWzBdOwogICAg
ICAgdmFyIGJvZHkgPSBpbm5lckRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5Jylb
MF07CiAgICAgICB2YXIgZGl2Q2VudGVyID0gZ2V0Q2VudGVyRm9yKGRpdik7CisgICAgICB2YXIg
ZGl2Qm90dG9tID0gZ2V0Qm90dG9tRm9yKGRpdik7CisgICAgICB2YXIgcENlbnRlciA9IGdldENl
bnRlckZvcihwKTsKICAgICAgIGNoZWNrKGRpdkNlbnRlci54LCBkaXZDZW50ZXIueSwgMCwgMCwg
MCwgMCwgW2Rpdl0sIGlubmVyRG9jdW1lbnQpOwotICAgICAgY2hlY2soZGl2Q2VudGVyLngsIGRp
dkNlbnRlci55LCAwLCAwLCAxMCwgMCwgW2RpdiwgYm9keV0sIGlubmVyRG9jdW1lbnQpOwotICAg
ICAgY2hlY2soZGl2Q2VudGVyLngsIGRpdkNlbnRlci55LCAwLCAwLCAyNSwgMCwgW3AsIGRpdiwg
Ym9keV0sIGlubmVyRG9jdW1lbnQpOworICAgICAgY2hlY2soZGl2Q2VudGVyLngsIGRpdkNlbnRl
ci55LCAwLCAwLCBkaXZCb3R0b20ueSAtIGRpdkNlbnRlci55LCAwLCBbZGl2LCBib2R5XSwgaW5u
ZXJEb2N1bWVudCk7CisgICAgICBjaGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnksIDAsIDAs
IHBDZW50ZXIueSAtIGRpdkNlbnRlci55LCAwLCBbcCwgZGl2LCBib2R5XSwgaW5uZXJEb2N1bWVu
dCk7CiAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAppbmRleCAwYjdiOTg5
MDcyYzA2MTUxYWNhN2NiMDkyOGNhMTYyYmFiYzY4OWY0Li40NTcxMTc2YjBjOWJmNDU2MDVkMTYw
MmJjMzRhNTFmMTRmODMxYjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCkBAIC0yNiwxMCArMjYsMTIgQEAKICAg
ICAgIHZhciBjZW50ZXJBMSA9IGdldENlbnRlckZvcihlLmExKTsKICAgICAgIHZhciBjZW50ZXJB
MiA9IGdldENlbnRlckZvcihlLmEyKTsKICAgICAgIHZhciBjZW50ZXJBMyA9IGdldENlbnRlckZv
cihlLmEzKTsKKyAgICAgIHZhciB0b3BQMSA9IGdldFRvcEZvcihlLnAxKTsKKyAgICAgIHZhciB0
b3BBMSA9IGdldFRvcEZvcihlLmExKTsKICAgICAgIHZhciBjZW50ZXJUZXh0ID0geyB4IDogKGNl
bnRlckEyLnggKyBjZW50ZXJBMS54KSAvIDIsIHkgOiBjZW50ZXJBMS55IH07IC8vdGV4dCBub2Rl
IGJldHdlZW4gYTEgYW5kIGEyCiAKICAgICAgIGNoZWNrKGNlbnRlckExLngsIGNlbnRlckExLnks
IDAsIDAsIDAsIDAsIFtlLmExLmZpcnN0Q2hpbGRdKTsKLSAgICAgIGNoZWNrKGNlbnRlckExLngs
IGNlbnRlckExLnksIDEwLCAwLCAwLCAwLCBbZS5hMS5maXJzdENoaWxkLCBlLmExLCBlLnAxXSk7
CisgICAgICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCB0b3BBMS55IC0gdG9wUDEueSwg
MCwgMCwgMCwgW2UuYTEuZmlyc3RDaGlsZCwgZS5hMSwgZS5wMV0pOwogCiAgICAgICBjaGVjayhj
ZW50ZXJBMS54LCBjZW50ZXJBMS55LCAwLCAwLCBjZW50ZXJBMy55IC0gY2VudGVyQTEueSwgMCwg
W2UuYTMuZmlyc3RDaGlsZCwgZS5hMywgZS5wMSwgZS5hMS5maXJzdENoaWxkLCBlLmExXSk7CiAg
ICAgICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCAwLCBjZW50ZXJUZXh0LnggLSBjZW50
ZXJBMS54LCAwLCAwLCBbZS5wMS5jaGlsZE5vZGVzWzJdLCBlLmExLmZpcnN0Q2hpbGQsIGUuYTEs
IGUucDFdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rl
c0Zyb21SZWN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJl
Y3QuanMKaW5kZXggMjlhMDJjZjA2NDA0OGY5NmVkNjcxNGRkN2MyZGI1NTA2NGM5OTcwOC4uNWJj
MmMyYjE5YTVmMjJiMDI1ODAzZDU2YTE5MDdlZDZiOTA0MzcwYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMKQEAgLTQ2LDQgKzQ2LDE2IEBA
IGZ1bmN0aW9uIGdldENlbnRlckZvcihlbGVtZW50KQogICByZXR1cm4geyB4IDogcGFyc2VJbnQo
KHJlY3QubGVmdCArIHJlY3QucmlnaHQpIC8gMikgLCB5IDogcGFyc2VJbnQoKHJlY3QudG9wICsg
cmVjdC5ib3R0b20pIC8gMil9OwogfQogCitmdW5jdGlvbiBnZXRUb3BGb3IoZWxlbWVudCkKK3sK
KyAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4g
eyB4IDogcGFyc2VJbnQoKHJlY3QubGVmdCArIHJlY3QucmlnaHQpIC8gMikgLCB5IDogcGFyc2VJ
bnQocmVjdC50b3ApfTsKK30KKworZnVuY3Rpb24gZ2V0Qm90dG9tRm9yKGVsZW1lbnQpCit7Cisg
IHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIHsg
eCA6IHBhcnNlSW50KChyZWN0LmxlZnQgKyByZWN0LnJpZ2h0KSAvIDIpICwgeSA6IHBhcnNlSW50
KHJlY3QuYm90dG9tKX07Cit9CisKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNTE0NTI4M2Q3YTE2NmEwZmM5NWU2NWZkZGRiODYwZmEz
N2IwYjY4OS4uZmFhZjU4ZGE0MTNlYjA3MjBkNzNjNzVhYWI3OWQzNTlmNzY4MmM2MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC01MzA4LDEwICs1MzA4LDYgQEAgZmFzdC9wYXJzZXIvcHJl
LWh0bWw1LXBhcnNlci1xdWlya3MuaHRtbAogIyBGaWxlU3lzdGVtIEFQSSBpcyBub3Qgc3VwcG9y
dGVkLgogZmFzdC9maWxlc3lzdGVtCiAKLSMgTmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uLgotZmFz
dC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCi1mYXN0L2RvbS9ub2Rlc0Zy
b21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCi0KICMgSXQgZmFpbHMsIGJlY2F1c2UgM0QgY2Fu
dmFzIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCiBodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9vcmln
aW4tY2xlYW4tY29uZm9ybWFuY2UuaHRtbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNkNzc2MDEyNDJlYTY5MjMzOTcyNTJkMGJkYmE5
ZDllMDZjZjkwNjcuLmJhMDBjMTNhZGE0ZTIyYTE3YTBmZTYwZWY5ZmY4NWYwY2JiNjdhNjUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTAtMTEtMDYgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0g
SW50cm9kdWNlIFFEUlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJy
aWRnZQorCisgICAgICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3Mg
V2ViQ29yZTo6Tm9kZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBV
bnNraXA6CisgICAgICAgIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRt
bAorICAgICAgICBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisK
KyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpRdERSVE5vZGVSdW50aW1lOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6
UXREUlROb2RlUnVudGltZTo6Z2V0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRW
YWx1ZVRvUVZhcmlhbnQpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFFWYXJpYW50
VG9WYWx1ZSk6CisKIDIwMTAtMTItMDcgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcCBiL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X3J1bnRpbWUuY3BwCmluZGV4IDY1OTViODQyMWE0YTJjN2E2NDYwNTIyNzE0MDMxMTczYTUyNjA1
MjcuLjBmYjgxMWI0ZGIxN2ViZjQ2N2YyNzA1MGFiNzhiYjljOWNhMWQwZmIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1dlYkNvcmUvYnJpZGdlL3F0
L3F0X3J1bnRpbWUuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiRGF0ZUluc3RhbmNl
LmgiCiAjaW5jbHVkZSAiRGF0ZU1hdGguaCIKICNpbmNsdWRlICJEYXRlUHJvdG90eXBlLmgiCisj
aW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCIKICNpbmNsdWRlICJGdW5jdGlvblBy
b3RvdHlwZS5oIgogI2luY2x1ZGUgIkludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiSlNBcnJheS5o
IgpAQCAtMTMzLDYgKzEzNCwyMiBAQCBwdWJsaWM6CiAgICAgfQogfTsKIAorLy8gdGhpcyBpcyBo
ZXJlIGFzIGEgcHJveHksIHNvIHdlJ2QgaGF2ZSBhIGNsYXNzIHRvIGZyaWVuZCBpbiBRRFJUTm9k
ZSwKKy8vIGFzIGdldHRpbmcvc2V0dGluZyBhIFdlYkNvcmUgaW4gUURSVE5vZGUgaXMgcHJpdmF0
ZS4KKy8vIFdlIG9ubHkgbmVlZCB0byBwYXNzIFdlYkNvcmUgTm9kZXMgZm9yIGxheW91dCB0ZXN0
cy4KK2NsYXNzIFF0RFJUTm9kZVJ1bnRpbWUgeworcHVibGljOgorICAgIHN0YXRpYyBRRFJUTm9k
ZSBjcmVhdGUoTm9kZSogbm9kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBRRFJUTm9kZShub2Rl
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgTm9kZSogZ2V0KGNvbnN0IFFEUlROb2RlJiBub2RlKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG5vZGUubV9ub2RlOworICAgIH0KK307CisKIHN0YXRpYyBK
U1JlYWxUeXBlIHZhbHVlUmVhbFR5cGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbCkKIHsK
ICAgICBpZiAodmFsLmlzTnVtYmVyKCkpCkBAIC03NTIsNiArNzY5LDkgQEAgUVZhcmlhbnQgY29u
dmVydFZhbHVlVG9RVmFyaWFudChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFFNZXRh
VHlwZTo6VHlwZQogICAgICAgICAgICAgICAgICAgICByZXQgPSBRVmFyaWFudDo6ZnJvbVZhbHVl
PFFXZWJFbGVtZW50PihRdFdlYkVsZW1lbnRSdW50aW1lOjpjcmVhdGUoKHN0YXRpY19jYXN0PEpT
RG9jdW1lbnQqPihvYmplY3QpKS0+aW1wbCgpLT5kb2N1bWVudEVsZW1lbnQoKSkpOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgcmV0ID0gUVZhcmlhbnQ6OmZyb21W
YWx1ZTxRV2ViRWxlbWVudD4oUVdlYkVsZW1lbnQoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KGhpbnQgPT0gKFFNZXRhVHlwZTo6VHlwZSkgcU1ldGFUeXBlSWQ8UURSVE5vZGU+KCkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAob2JqZWN0ICYmIG9iamVjdC0+aW5oZXJpdHMoJkpTTm9kZTo6c19p
bmZvKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gUVZhcmlhbnQ6OmZyb21WYWx1ZTxRRFJU
Tm9kZT4oUXREUlROb2RlUnVudGltZTo6Y3JlYXRlKChzdGF0aWNfY2FzdDxKU05vZGUqPihvYmpl
Y3QpKS0+aW1wbCgpKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGhpbnQgPT0gKFFNZXRhVHlw
ZTo6VHlwZSkgcU1ldGFUeXBlSWQ8UVZhcmlhbnQ+KCkpIHsKICAgICAgICAgICAgICAgICBpZiAo
dmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoZGlz
dGFuY2UpCkBAIC04OTgsNiArOTE4LDE3IEBAIEpTVmFsdWUgY29udmVydFFWYXJpYW50VG9WYWx1
ZShFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8Um9vdE9iamVjdD4gcm9vdCwgY29uCiAgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIHRvSlNET01HbG9iYWxPYmplY3QoZG9jdW1lbnQsIGV4ZWMp
LCBRdFdlYkVsZW1lbnRSdW50aW1lOjpnZXQodmFyaWFudC52YWx1ZTxRV2ViRWxlbWVudD4oKSkp
OwogICAgIH0KIAorICAgIGlmICh0eXBlID09IHFNZXRhVHlwZUlkPFFEUlROb2RlPigpKSB7Cisg
ICAgICAgIGlmICghcm9vdC0+Z2xvYmFsT2JqZWN0KCktPmluaGVyaXRzKCZKU0RPTVdpbmRvdzo6
c19pbmZvKSkKKyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IChzdGF0aWNfY2FzdDxKU0RPTVdpbmRvdyo+KHJvb3QtPmdsb2Jh
bE9iamVjdCgpKSktPmltcGwoKS0+ZG9jdW1lbnQoKTsKKyAgICAgICAgaWYgKCFkb2N1bWVudCkK
KyAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIHRvSlNET01HbG9iYWxPYmplY3QoZG9jdW1lbnQsIGV4ZWMpLCBRdERSVE5vZGVSdW50
aW1lOjpnZXQodmFyaWFudC52YWx1ZTxRRFJUTm9kZT4oKSkpOworICAgIH0KKwogICAgIGlmICh0
eXBlID09IFFNZXRhVHlwZTo6UVZhcmlhbnRNYXApIHsKICAgICAgICAgLy8gY3JlYXRlIGEgbmV3
IG9iamVjdCwgYW5kIHN0dWZmIHByb3BlcnRpZXMgaW50byBpdAogICAgICAgICBKU09iamVjdCog
cmV0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA0NWQ0MTZkNTBlNGMxZmY5YWI1
ZTcwM2E3ZjkyZGU1M2RiZDc1N2M5Li4wZTczODIyM2I5YThlMmZjMzhmNDFmNWYwYjZhODQ2ZTQ0
YjZjYmQ1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMS0wNiAgUm9iZXJ0IEhvZ2FuICA8cm9i
ZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW1F0XSBJbnRyb2R1Y2UgUURSVE5vZGUgZm9yIHBhc3NpbmcgV2ViQ29yZTo6Tm9k
ZSBhY3Jvc3MgSlMgYnJpZGdlCisKKyAgICAgICAgVGhpcyBhbGxvd3MgTGF5b3V0VGVzdENvbnRy
b2xsZXIgdG8gcGFzcyBXZWJDb3JlOjpOb2RlIGJhY2sgdG8KKyAgICAgICAgbGF5b3V0IHRlc3Rz
LgorCisgICAgICAgIFVuc2tpcDoKKyAgICAgICAgZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5r
cy1hbmQtdGV4dC5odG1sCisgICAgICAgIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9j
dW1lbnRzLmh0bWwKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDg5NTcKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcDoKKyAgICAgICAgKFFEUlROb2RlOjpRRFJUTm9kZSk6CisgICAgICAgIChRRFJU
Tm9kZTo6flFEUlROb2RlKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpub2Rl
c0Zyb21SZWN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oOgorCiAyMDEwLTEyLTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXgg
YTI4NjNiMTFkMGNmZTQ0ZDU2MzNiOTUyMmI3ZGVjMGQ2YmI3YmNmMC4uN2RhNDE1YWQ1OGM5MmZl
YTgyZmJkYzYwOWMxMzUyNjA4NjgzMGVkZiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC03OSw2ICs3OSwyNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUU1hcDxpbnQsIFFXZWJTY3JpcHRXb3JsZCo+IG1f
d29ybGRNYXA7CiAKK1FEUlROb2RlOjpRRFJUTm9kZSgpCisgICAgOiBtX25vZGUoMCkKK3sKK30K
KworUURSVE5vZGU6OlFEUlROb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCisgICAgOiBtX25vZGUo
MCkKK3sKKyAgICBpZiAobm9kZSkgeworICAgICAgICBtX25vZGUgPSBzdGF0aWNfY2FzdDxOb2Rl
Kj4obm9kZSk7CisgICAgICAgIG1fbm9kZS0+cmVmKCk7CisgICAgfQorfQorCitRRFJUTm9kZTo6
flFEUlROb2RlKCkKK3sKKyAgICBpZiAobV9ub2RlKQorICAgICAgICBtX25vZGUtPmRlcmVmKCk7
Cit9CisKKwogRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
KCkKIHsKIH0KQEAgLTgyMSw3ICs4NDIsMTAgQEAgUVZhcmlhbnRMaXN0IER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0Ojpub2Rlc0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwKICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IG5vZGVzLT5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgIFFW
YXJpYW50IHY7CiAgICAgICAgIC8vIFFXZWJFbGVtZW50IHdpbGwgYmUgbnVsbCBpZiB0aGUgTm9k
ZSBpcyBub3QgYW4gSFRNTCBFbGVtZW50Ci0gICAgICAgIHYuc2V0VmFsdWUoUVdlYkVsZW1lbnQo
bm9kZXMtPml0ZW0oaSkpKTsKKyAgICAgICAgaWYgKG5vZGVzLT5pdGVtKGkpLT5pc0hUTUxFbGVt
ZW50KCkpCisgICAgICAgICAgICB2LnNldFZhbHVlKFFXZWJFbGVtZW50KG5vZGVzLT5pdGVtKGkp
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHYuc2V0VmFsdWUoUURSVE5vZGUobm9kZXMt
Pml0ZW0oaSkpKTsKICAgICAgICAgcmVzIDw8IHY7CiAgICAgfQogICAgIHJldHVybiByZXM7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
CmluZGV4IDk4ZjJiOTQyM2ZiNWQzNzAwNjVlMGQwY2RjZDdjZTg4ZWYyMTMxODkuLjczNDc1Yzhm
NTU1NTg0MzMzYzQ4OGRjNTYzZmFhYmFkNmU4Yjg1NjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC0yNiw2ICsyNiwyNiBA
QAogI2luY2x1ZGUgInF3ZWJraXRnbG9iYWwuaCIKICNpbmNsdWRlIDxRVmFyaWFudD4KIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgVGV4dDsKK2NsYXNzIE5vZGU7Cit9CisKKworI2lmIGRl
ZmluZWQoV1RGX1VTRV9WOCkgJiYgV1RGX1VTRV9WOAorbmFtZXNwYWNlIFY4IHsKK25hbWVzcGFj
ZSBCaW5kaW5ncyB7CitjbGFzcyBRdERSVE5vZGVSdW50aW1lOworfQorfQorI2Vsc2UKK25hbWVz
cGFjZSBKU0MgeworbmFtZXNwYWNlIEJpbmRpbmdzIHsKK2NsYXNzIFF0RFJUTm9kZVJ1bnRpbWU7
Cit9Cit9CisjZW5kaWYKKwogY2xhc3MgUVdlYkVsZW1lbnQ7CiBjbGFzcyBRV2ViRnJhbWU7CiBj
bGFzcyBRV2ViUGFnZTsKQEAgLTM0LDYgKzU0LDI4IEBAIGNsYXNzIFFXZWJTY3JpcHRXb3JsZDsK
IAogZXh0ZXJuIFFNYXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dvcmxkTWFwOwogCisvLyBV
c2VkIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSdzIHRvIGxheW91dCB0ZXN0cyB1c2luZyBMYXlvdXRU
ZXN0Q29udHJvbGxlcgorY2xhc3MgUVdFQktJVF9FWFBPUlQgUURSVE5vZGUgeworcHVibGljOgor
ICAgIFFEUlROb2RlKCk7CisgICAgflFEUlROb2RlKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGlj
aXQgUURSVE5vZGUoV2ViQ29yZTo6Tm9kZSopOworCisgICAgZnJpZW5kIGNsYXNzIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OworCisjaWYgZGVmaW5lZChXVEZfVVNFX1Y4KSAmJiBXVEZfVVNFX1Y4
CisgICAgZnJpZW5kIGNsYXNzIFY4OjpCaW5kaW5nczo6UXREUlROb2RlUnVudGltZTsKKyNlbHNl
CisgICAgZnJpZW5kIGNsYXNzIEpTQzo6QmluZGluZ3M6OlF0RFJUTm9kZVJ1bnRpbWU7CisjZW5k
aWYKKworICAgIFdlYkNvcmU6Ok5vZGUqIG1fbm9kZTsKK307CisKK1FfREVDTEFSRV9NRVRBVFlQ
RShRRFJUTm9kZSkKKwogY2xhc3MgUVdFQktJVF9FWFBPUlQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQgewogCiBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77915</attachid>
            <date>2011-01-04 12:22:41 -0800</date>
            <delta_ts>2011-01-05 14:04:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48957-20110104202239.patch</filename>
            <type>text/plain</type>
            <size>15072</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZmFiMGM4MDYzMjU2MTYxMTM1MTM0ODAwYjQ3MDE2NjY1NGFlMDhkLi5kNzk5NWJl
ODMyMjVlZGYzYWI1YzBmMGU5YjQ5NjU3NzQyMDE3ZGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTEtMDEtMDQgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFE
UlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAg
ICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9k
ZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBBbHNvIGFtZW5kIG5v
ZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbCBhbmQKKyAgICAgICAgbm9kZXNGcm9tUmVj
dC1pbm5lci1kb2N1bWVudHMuaHRtbCBzbyB0aGF0IHRoZXkgZG8gbm90IHByb2R1Y2UKKyAgICAg
ICAgcGxhdGZvcm0tc3BlY2lmaWMgcmVzdWx0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAg
IGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWw6CisgICAg
ICAgICogZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanM6CisgICAgICAgIChjaGVj
ayk6CisgICAgICAgIChnZXRUb3BGb3IpOgorICAgICAgICAoZ2V0Qm90dG9tRm9yKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDExLTAxLTAzICBNaWhhaSBQYXJwYXJpdGEg
IDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVtIHRl
c3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMtZXhwZWN0ZWQudHh0CmluZGV4
IGU4NjFlYzMyODNjMmM5YzRhNTE2ZDAyMTg1MDZkZTE0Njc2M2Q4ODUuLjkxMmFmMTUyYjQ3MTU4
YWE5OTU5MThkNzVlNWI0NTc5YjUxZTU0N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy1leHBlY3RlZC50
eHQKQEAgLTEsMTAgKzEsMTAgQEAKIEEgICBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3Qg
WzE3NiwxMjBdLCBbMCwwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJl
Y3QgWzE3NiwxMjBdLCBbMTAsMTAsMTAsMTBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0IFsxNCwxNjddLCBbMCwxMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0IFsxNTAsMTddLCBbMCwwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMg
Zm91bmQgZm9yIHJlY3QgWzE1MCwxN10sIFswLDAsMTAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9k
ZXMgZm91bmQgZm9yIHJlY3QgWzE1MCwxN10sIFswLDAsMjUsMF0KK1BBU1MgQWxsIGNvcnJlY3Qg
bm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJl
Y3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9y
IHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0
bWwKaW5kZXggYzEzYzliYmNmNWU1NTNiZDllNDE3NTE0Y2FjODUzNmNjMDk5MTJiMC4uOTYyODg3
YjBlYzc3YTMxOGQ1NGQ0YTU4YjcxY2QyMjlkZGRhNDdhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCkBAIC0z
OCw5ICszOCwxMSBAQAogICAgICAgdmFyIHAgPSBpbm5lckRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdwJylbMF07CiAgICAgICB2YXIgYm9keSA9IGlubmVyRG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2JvZHknKVswXTsKICAgICAgIHZhciBkaXZDZW50ZXIgPSBnZXRDZW50ZXJG
b3IoZGl2KTsKKyAgICAgIHZhciBkaXZCb3R0b20gPSBnZXRCb3R0b21Gb3IoZGl2KTsKKyAgICAg
IHZhciBwQ2VudGVyID0gZ2V0Q2VudGVyRm9yKHApOwogICAgICAgY2hlY2soZGl2Q2VudGVyLngs
IGRpdkNlbnRlci55LCAwLCAwLCAwLCAwLCBbZGl2XSwgaW5uZXJEb2N1bWVudCk7Ci0gICAgICBj
aGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnksIDAsIDAsIDEwLCAwLCBbZGl2LCBib2R5XSwg
aW5uZXJEb2N1bWVudCk7Ci0gICAgICBjaGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnksIDAs
IDAsIDI1LCAwLCBbcCwgZGl2LCBib2R5XSwgaW5uZXJEb2N1bWVudCk7CisgICAgICBjaGVjayhk
aXZDZW50ZXIueCwgZGl2Q2VudGVyLnksIDAsIDAsIGRpdkJvdHRvbS55IC0gZGl2Q2VudGVyLnks
IDAsIFtkaXYsIGJvZHldLCBpbm5lckRvY3VtZW50KTsKKyAgICAgIGNoZWNrKGRpdkNlbnRlci54
LCBkaXZDZW50ZXIueSwgMCwgMCwgcENlbnRlci55IC0gZGl2Q2VudGVyLnksIDAsIFtwLCBkaXYs
IGJvZHldLCBpbm5lckRvY3VtZW50KTsKIAogICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtz
LWFuZC10ZXh0LWV4cGVjdGVkLnR4dAppbmRleCBjOWJkOTZlOTEyYTNiMjU2MzdjZjNjMDZiZTA2
NDg4MTkxNDdhZTExLi5hNjJlMWM3OTBkNzRhMTVjZGI3NTYyY2ZkNmM3ZWQwNjFmNTU2MzEyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10
ZXh0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWxpbmtzLWFuZC10ZXh0LWV4cGVjdGVkLnR4dApAQCAtNCwxMCArNCwxMCBAQCBDCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLVBBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzM3LDMyXSwgWzAsMCwwLDBdCi1QQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFszNywzMl0sIFsxMCwwLDAsMF0KLVBBU1MgQWxsIGNv
cnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzM3LDMyXSwgWzAsMCwxOCwwXQotUEFTUyBBbGwg
Y29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMzcsMzJdLCBbMCwxMS41LDAsMF0KLVBBU1Mg
QWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzM3LDMyXSwgWzAsMjMsMCwwXQotUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMzcsMzJdLCBbMCwyMywxOCwwXQor
UEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBu
b2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxp
bmtzLWFuZC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxp
bmtzLWFuZC10ZXh0Lmh0bWwKaW5kZXggMGI3Yjk4OTA3MmMwNjE1MWFjYTdjYjA5MjhjYTE2MmJh
YmM2ODlmNC4uNDU3MTE3NmIwYzliZjQ1NjA1ZDE2MDJiYzM0YTUxZjE0ZjgzMWI3MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRl
eHQuaHRtbApAQCAtMjYsMTAgKzI2LDEyIEBACiAgICAgICB2YXIgY2VudGVyQTEgPSBnZXRDZW50
ZXJGb3IoZS5hMSk7CiAgICAgICB2YXIgY2VudGVyQTIgPSBnZXRDZW50ZXJGb3IoZS5hMik7CiAg
ICAgICB2YXIgY2VudGVyQTMgPSBnZXRDZW50ZXJGb3IoZS5hMyk7CisgICAgICB2YXIgdG9wUDEg
PSBnZXRUb3BGb3IoZS5wMSk7CisgICAgICB2YXIgdG9wQTEgPSBnZXRUb3BGb3IoZS5hMSk7CiAg
ICAgICB2YXIgY2VudGVyVGV4dCA9IHsgeCA6IChjZW50ZXJBMi54ICsgY2VudGVyQTEueCkgLyAy
LCB5IDogY2VudGVyQTEueSB9OyAvL3RleHQgbm9kZSBiZXR3ZWVuIGExIGFuZCBhMgogCiAgICAg
ICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCAwLCAwLCAwLCAwLCBbZS5hMS5maXJzdENo
aWxkXSk7Ci0gICAgICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCAxMCwgMCwgMCwgMCwg
W2UuYTEuZmlyc3RDaGlsZCwgZS5hMSwgZS5wMV0pOworICAgICAgY2hlY2soY2VudGVyQTEueCwg
Y2VudGVyQTEueSwgdG9wQTEueSAtIHRvcFAxLnksIDAsIDAsIDAsIFtlLmExLmZpcnN0Q2hpbGQs
IGUuYTEsIGUucDFdKTsKIAogICAgICAgY2hlY2soY2VudGVyQTEueCwgY2VudGVyQTEueSwgMCwg
MCwgY2VudGVyQTMueSAtIGNlbnRlckExLnksIDAsIFtlLmEzLmZpcnN0Q2hpbGQsIGUuYTMsIGUu
cDEsIGUuYTEuZmlyc3RDaGlsZCwgZS5hMV0pOwogICAgICAgY2hlY2soY2VudGVyQTEueCwgY2Vu
dGVyQTEueSwgMCwgY2VudGVyVGV4dC54IC0gY2VudGVyQTEueCwgMCwgMCwgW2UucDEuY2hpbGRO
b2Rlc1syXSwgZS5hMS5maXJzdENoaWxkLCBlLmExLCBlLnAxXSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzCmluZGV4IDI5YTAyY2YwNjQwNDhm
OTZlZDY3MTRkZDdjMmRiNTUwNjRjOTk3MDguLjVlOGQ4MjVjYjBjZjJlNjkyNWJmYWUwZDE0MjMw
MTAzOWVkZjAxYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9u
b2Rlc0Zyb21SZWN0LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy9ub2Rl
c0Zyb21SZWN0LmpzCkBAIC0zNCwxMCArMzQsNyBAQCBmdW5jdGlvbiBjaGVjayh4LCB5LCB0b3BQ
YWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCBsaXN0LAog
ICAgIH0KICAgfQogCi0gIHRlc3RQYXNzZWQoIkFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0ICIgICsKLSAgICAgICAgICAgICAiWyIgKyB4ICsgIiwiICsgeSArICJdLCAiICsKLSAgICAg
ICAgICAgICAiWyIgKyB0b3BQYWRkaW5nICsgIiwiICsgcmlnaHRQYWRkaW5nICsKLSAgICAgICAg
ICAgICAiLCIgKyBib3R0b21QYWRkaW5nICsgIiwiICsgbGVmdFBhZGRpbmcgKyAiXSIpOworICB0
ZXN0UGFzc2VkKCJBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCIpOwogfQogCiBmdW5j
dGlvbiBnZXRDZW50ZXJGb3IoZWxlbWVudCkKQEAgLTQ2LDQgKzQzLDE2IEBAIGZ1bmN0aW9uIGdl
dENlbnRlckZvcihlbGVtZW50KQogICByZXR1cm4geyB4IDogcGFyc2VJbnQoKHJlY3QubGVmdCAr
IHJlY3QucmlnaHQpIC8gMikgLCB5IDogcGFyc2VJbnQoKHJlY3QudG9wICsgcmVjdC5ib3R0b20p
IC8gMil9OwogfQogCitmdW5jdGlvbiBnZXRUb3BGb3IoZWxlbWVudCkKK3sKKyAgdmFyIHJlY3Qg
PSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4geyB4IDogcGFyc2VJ
bnQoKHJlY3QubGVmdCArIHJlY3QucmlnaHQpIC8gMikgLCB5IDogcGFyc2VJbnQocmVjdC50b3Ap
fTsKK30KKworZnVuY3Rpb24gZ2V0Qm90dG9tRm9yKGVsZW1lbnQpCit7CisgIHZhciByZWN0ID0g
ZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIHsgeCA6IHBhcnNlSW50
KChyZWN0LmxlZnQgKyByZWN0LnJpZ2h0KSAvIDIpICwgeSA6IHBhcnNlSW50KHJlY3QuYm90dG9t
KX07Cit9CisKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKaW5kZXggNDBmZDAzOTkwMDA1MDA0NDI0MGJhNWM2MmY5ZDFmY2E5ZjI5YTgxMi4uODBj
ZDE3ODRiNjA5ODc0MDI4NjcwZDk5OTFlMDYxYTFhOGJmOTkzZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCkBAIC01MzA0LDEwICs1MzA0LDYgQEAgZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBhcnNl
ci1xdWlya3MuaHRtbAogIyBGaWxlU3lzdGVtIEFQSSBpcyBub3Qgc3VwcG9ydGVkLgogZmFzdC9m
aWxlc3lzdGVtCiAKLSMgTmVlZHMgbW9yZSBpbnZlc3RpZ2F0aW9uLgotZmFzdC9kb20vbm9kZXNG
cm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCi1mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVy
LWRvY3VtZW50cy5odG1sCi0KICMgSXQgZmFpbHMsIGJlY2F1c2UgM0QgY2FudmFzIGlzIGRpc2Fi
bGVkIGJ5IGRlZmF1bHQuCiBodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9vcmlnaW4tY2xlYW4tY29u
Zm9ybWFuY2UuaHRtbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDljMGE5ZDNkMDgwYjcyOThlNWEyYzRmNDU3MzQ1MWNhMmNiNWFmMzUu
LmI1ZjFjNWFjODUzNGE5YzQ5NWNjNzZiZmJmMzE0MzQ0OTg0YmE3YmIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTEtMDEtMDQgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFE
UlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAg
ICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9k
ZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBBbHNvIGFtZW5kIG5v
ZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbCBhbmQKKyAgICAgICAgbm9kZXNGcm9tUmVj
dC1pbm5lci1kb2N1bWVudHMuaHRtbCBzbyB0aGF0IHRoZXkgZG8gbm90IHByb2R1Y2UKKyAgICAg
ICAgcGxhdGZvcm0tc3BlY2lmaWMgcmVzdWx0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAg
IGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBicmlk
Z2UvcXQvcXRfcnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVS
dW50aW1lOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXREUlROb2RlUnVudGlt
ZTo6Z2V0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQp
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFFWYXJpYW50VG9WYWx1ZSk6CisKIDIw
MTEtMDEtMDMgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUu
Y3BwIGIvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggNjU5NWI4NDIxYTRh
MmM3YTY0NjA1MjI3MTQwMzExNzNhNTI2MDUyNy4uMGZiODExYjRkYjE3ZWJmNDY3ZjI3MDUwYWI3
OGJiOWM5Y2ExZDBmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5j
cHAKKysrIGIvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTI0LDYgKzI0LDcg
QEAKICNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEYXRlTWF0aC5oIgogI2lu
Y2x1ZGUgIkRhdGVQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oIgogI2luY2x1ZGUgIkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0
ZXIuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCkBAIC0xMzMsNiArMTM0LDIyIEBAIHB1YmxpYzoK
ICAgICB9CiB9OwogCisvLyB0aGlzIGlzIGhlcmUgYXMgYSBwcm94eSwgc28gd2UnZCBoYXZlIGEg
Y2xhc3MgdG8gZnJpZW5kIGluIFFEUlROb2RlLAorLy8gYXMgZ2V0dGluZy9zZXR0aW5nIGEgV2Vi
Q29yZSBpbiBRRFJUTm9kZSBpcyBwcml2YXRlLgorLy8gV2Ugb25seSBuZWVkIHRvIHBhc3MgV2Vi
Q29yZSBOb2RlcyBmb3IgbGF5b3V0IHRlc3RzLgorY2xhc3MgUXREUlROb2RlUnVudGltZSB7Citw
dWJsaWM6CisgICAgc3RhdGljIFFEUlROb2RlIGNyZWF0ZShOb2RlKiBub2RlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFFEUlROb2RlKG5vZGUpOworICAgIH0KKworICAgIHN0YXRpYyBOb2RlKiBn
ZXQoY29uc3QgUURSVE5vZGUmIG5vZGUpCisgICAgeworICAgICAgICByZXR1cm4gbm9kZS5tX25v
ZGU7CisgICAgfQorfTsKKwogc3RhdGljIEpTUmVhbFR5cGUgdmFsdWVSZWFsVHlwZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsKQogewogICAgIGlmICh2YWwuaXNOdW1iZXIoKSkKQEAgLTc1
Miw2ICs3NjksOSBAQCBRVmFyaWFudCBjb252ZXJ0VmFsdWVUb1FWYXJpYW50KEV4ZWNTdGF0ZSog
ZXhlYywgSlNWYWx1ZSB2YWx1ZSwgUU1ldGFUeXBlOjpUeXBlCiAgICAgICAgICAgICAgICAgICAg
IHJldCA9IFFWYXJpYW50Ojpmcm9tVmFsdWU8UVdlYkVsZW1lbnQ+KFF0V2ViRWxlbWVudFJ1bnRp
bWU6OmNyZWF0ZSgoc3RhdGljX2Nhc3Q8SlNEb2N1bWVudCo+KG9iamVjdCkpLT5pbXBsKCktPmRv
Y3VtZW50RWxlbWVudCgpKSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICByZXQgPSBRVmFyaWFudDo6ZnJvbVZhbHVlPFFXZWJFbGVtZW50PihRV2ViRWxlbWVudCgp
KTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaGludCA9PSAoUU1ldGFUeXBlOjpUeXBlKSBxTWV0
YVR5cGVJZDxRRFJUTm9kZT4oKSkgeworICAgICAgICAgICAgICAgIGlmIChvYmplY3QgJiYgb2Jq
ZWN0LT5pbmhlcml0cygmSlNOb2RlOjpzX2luZm8pKQorICAgICAgICAgICAgICAgICAgICByZXQg
PSBRVmFyaWFudDo6ZnJvbVZhbHVlPFFEUlROb2RlPihRdERSVE5vZGVSdW50aW1lOjpjcmVhdGUo
KHN0YXRpY19jYXN0PEpTTm9kZSo+KG9iamVjdCkpLT5pbXBsKCkpKTsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoaGludCA9PSAoUU1ldGFUeXBlOjpUeXBlKSBxTWV0YVR5cGVJZDxRVmFyaWFudD4o
KSkgewogICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSkKQEAgLTg5OCw2ICs5MTgsMTcgQEAgSlNW
YWx1ZSBjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxS
b290T2JqZWN0PiByb290LCBjb24KICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdG9KU0RPTUds
b2JhbE9iamVjdChkb2N1bWVudCwgZXhlYyksIFF0V2ViRWxlbWVudFJ1bnRpbWU6OmdldCh2YXJp
YW50LnZhbHVlPFFXZWJFbGVtZW50PigpKSk7CiAgICAgfQogCisgICAgaWYgKHR5cGUgPT0gcU1l
dGFUeXBlSWQ8UURSVE5vZGU+KCkpIHsKKyAgICAgICAgaWYgKCFyb290LT5nbG9iYWxPYmplY3Qo
KS0+aW5oZXJpdHMoJkpTRE9NV2luZG93OjpzX2luZm8pKQorICAgICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKHN0YXRpY19jYXN0
PEpTRE9NV2luZG93Kj4ocm9vdC0+Z2xvYmFsT2JqZWN0KCkpKS0+aW1wbCgpLT5kb2N1bWVudCgp
OworICAgICAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CisKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdG9KU0RPTUdsb2JhbE9iamVjdChkb2N1
bWVudCwgZXhlYyksIFF0RFJUTm9kZVJ1bnRpbWU6OmdldCh2YXJpYW50LnZhbHVlPFFEUlROb2Rl
PigpKSk7CisgICAgfQorCiAgICAgaWYgKHR5cGUgPT0gUU1ldGFUeXBlOjpRVmFyaWFudE1hcCkg
ewogICAgICAgICAvLyBjcmVhdGUgYSBuZXcgb2JqZWN0LCBhbmQgc3R1ZmYgcHJvcGVydGllcyBp
bnRvIGl0CiAgICAgICAgIEpTT2JqZWN0KiByZXQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVj
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9n
CmluZGV4IGZiNjgyODM4MDMzZDY1MGVkMmRkZGQ4Y2UyYmY4Mzg3YzQxOGVkZjUuLjVmOThkY2Q4
NWRkNTFiZWZjZjc5NGNlYWQ3OTAwNDcyNWVhMWQwNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEx
LTAxLTA0ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIEludHJvZHVjZSBRRFJUTm9k
ZSBmb3IgcGFzc2luZyBXZWJDb3JlOjpOb2RlIGFjcm9zcyBKUyBicmlkZ2UKKworICAgICAgICBU
aGlzIGFsbG93cyBMYXlvdXRUZXN0Q29udHJvbGxlciB0byBwYXNzIFdlYkNvcmU6Ok5vZGUgYmFj
ayB0bworICAgICAgICBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgQWxzbyBhbWVuZCBub2Rlc0Zy
b21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWwgYW5kCisgICAgICAgIG5vZGVzRnJvbVJlY3QtaW5u
ZXItZG9jdW1lbnRzLmh0bWwgc28gdGhhdCB0aGV5IGRvIG5vdCBwcm9kdWNlCisgICAgICAgIHBs
YXRmb3JtLXNwZWNpZmljIHJlc3VsdHMuCisKKyAgICAgICAgVW5za2lwOgorICAgICAgICBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWwKKyAgICAgICAgZmFzdC9kb20v
bm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbAorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODk1NworCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoUURSVE5vZGU6OlFE
UlROb2RlKToKKyAgICAgICAgKFFEUlROb2RlOjp+UURSVE5vZGUpOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTEtMDEtMDIgIEFudG9uaW8gR29t
ZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDc1NGIyMGFlYmYyZjQyNDczOTY4N2VhMTVmOTNi
MDM1YmVhNWQ5Y2QuLmU5NTg3NTE1YmU5YWY5NzZlM2MyNmVmZDNkYWE3YzM2N2MxNGRiZGIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcApAQCAtODIsNiArODIsMjcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFFN
YXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dvcmxkTWFwOwogCitRRFJUTm9kZTo6UURSVE5v
ZGUoKQorICAgIDogbV9ub2RlKDApCit7Cit9CisKK1FEUlROb2RlOjpRRFJUTm9kZShXZWJDb3Jl
OjpOb2RlKiBub2RlKQorICAgIDogbV9ub2RlKDApCit7CisgICAgaWYgKG5vZGUpIHsKKyAgICAg
ICAgbV9ub2RlID0gbm9kZTsKKyAgICAgICAgbV9ub2RlLT5yZWYoKTsKKyAgICB9Cit9CisKK1FE
UlROb2RlOjp+UURSVE5vZGUoKQoreworICAgIGlmIChtX25vZGUpCisgICAgICAgIG1fbm9kZS0+
ZGVyZWYoKTsKK30KKworCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6RHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQoKQogewogfQpAQCAtODU0LDcgKzg3NSwxMCBAQCBRVmFyaWFudExpc3QgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3QoY29uc3QgUVdlYkVsZW1lbnQmIGRvY3Vt
ZW50LAogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm9kZXMtPmxlbmd0aCgpOyBpKyspIHsKICAg
ICAgICAgUVZhcmlhbnQgdjsKICAgICAgICAgLy8gUVdlYkVsZW1lbnQgd2lsbCBiZSBudWxsIGlm
IHRoZSBOb2RlIGlzIG5vdCBhbiBIVE1MIEVsZW1lbnQKLSAgICAgICAgdi5zZXRWYWx1ZShRV2Vi
RWxlbWVudChub2Rlcy0+aXRlbShpKSkpOworICAgICAgICBpZiAobm9kZXMtPml0ZW0oaSktPmlz
SFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIHYuc2V0VmFsdWUoUVdlYkVsZW1lbnQobm9kZXMt
Pml0ZW0oaSkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdi5zZXRWYWx1ZShRRFJUTm9k
ZShub2Rlcy0+aXRlbShpKSkpOwogICAgICAgICByZXMgPDwgdjsKICAgICB9CiAgICAgcmV0dXJu
IHJlczsKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmgKaW5kZXggZTA4ZDk2MjFkODhhNDQxZTQwMDg1NDRmODIxNWQyZWQwYWI5ODg1Zi4u
NjkxNzAzOWNjZTdiNzkxMGU4OWExYzExOGIwOTczZTRhOGJlNzVlZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTI2LDYg
KzI2LDI2IEBACiAjaW5jbHVkZSAicXdlYmtpdGdsb2JhbC5oIgogI2luY2x1ZGUgPFFWYXJpYW50
PgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBUZXh0OworY2xhc3MgTm9kZTsKK30KKwor
CisjaWYgZGVmaW5lZChXVEZfVVNFX1Y4KSAmJiBXVEZfVVNFX1Y4CituYW1lc3BhY2UgVjggewor
bmFtZXNwYWNlIEJpbmRpbmdzIHsKK2NsYXNzIFF0RFJUTm9kZVJ1bnRpbWU7Cit9Cit9CisjZWxz
ZQorbmFtZXNwYWNlIEpTQyB7CituYW1lc3BhY2UgQmluZGluZ3MgeworY2xhc3MgUXREUlROb2Rl
UnVudGltZTsKK30KK30KKyNlbmRpZgorCiBjbGFzcyBRV2ViRWxlbWVudDsKIGNsYXNzIFFXZWJG
cmFtZTsKIGNsYXNzIFFXZWJQYWdlOwpAQCAtMzQsNiArNTQsMjggQEAgY2xhc3MgUVdlYlNjcmlw
dFdvcmxkOwogCiBleHRlcm4gUU1hcDxpbnQsIFFXZWJTY3JpcHRXb3JsZCo+IG1fd29ybGRNYXA7
CiAKKy8vIFVzZWQgdG8gcGFzcyBXZWJDb3JlOjpOb2RlJ3MgdG8gbGF5b3V0IHRlc3RzIHVzaW5n
IExheW91dFRlc3RDb250cm9sbGVyCitjbGFzcyBRV0VCS0lUX0VYUE9SVCBRRFJUTm9kZSB7Citw
dWJsaWM6CisgICAgUURSVE5vZGUoKTsKKyAgICB+UURSVE5vZGUoKTsKKworcHJpdmF0ZToKKyAg
ICBleHBsaWNpdCBRRFJUTm9kZShXZWJDb3JlOjpOb2RlKik7CisKKyAgICBmcmllbmQgY2xhc3Mg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ7CisKKyNpZiBkZWZpbmVkKFdURl9VU0VfVjgpICYmIFdU
Rl9VU0VfVjgKKyAgICBmcmllbmQgY2xhc3MgVjg6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1l
OworI2Vsc2UKKyAgICBmcmllbmQgY2xhc3MgSlNDOjpCaW5kaW5nczo6UXREUlROb2RlUnVudGlt
ZTsKKyNlbmRpZgorCisgICAgV2ViQ29yZTo6Tm9kZSogbV9ub2RlOworfTsKKworUV9ERUNMQVJF
X01FVEFUWVBFKFFEUlROb2RlKQorCiBjbGFzcyBRV0VCS0lUX0VYUE9SVCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdCB7CiAKIHB1YmxpYzoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78041</attachid>
            <date>2011-01-05 14:04:20 -0800</date>
            <delta_ts>2011-01-06 11:26:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48957-20110105220417.patch</filename>
            <type>text/plain</type>
            <size>19847</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZmFiMGM4MDYzMjU2MTYxMTM1MTM0ODAwYjQ3MDE2NjY1NGFlMDhkLi5kNzk5NWJl
ODMyMjVlZGYzYWI1YzBmMGU5YjQ5NjU3NzQyMDE3ZGFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTEtMDEtMDQgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFE
UlROb2RlIGZvciBwYXNzaW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAg
ICAgIFRoaXMgYWxsb3dzIExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9k
ZSBiYWNrIHRvCisgICAgICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBBbHNvIGFtZW5kIG5v
ZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbCBhbmQKKyAgICAgICAgbm9kZXNGcm9tUmVj
dC1pbm5lci1kb2N1bWVudHMuaHRtbCBzbyB0aGF0IHRoZXkgZG8gbm90IHByb2R1Y2UKKyAgICAg
ICAgcGxhdGZvcm0tc3BlY2lmaWMgcmVzdWx0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAg
IGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBmYXN0
L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0LWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWw6CisgICAg
ICAgICogZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanM6CisgICAgICAgIChjaGVj
ayk6CisgICAgICAgIChnZXRUb3BGb3IpOgorICAgICAgICAoZ2V0Qm90dG9tRm9yKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDExLTAxLTAzICBNaWhhaSBQYXJwYXJpdGEg
IDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVtIHRl
c3QgZXhwZWN0YXRpb24gdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
bm9kZXNGcm9tUmVjdC1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9u
b2Rlc0Zyb21SZWN0LWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCA2Zjg3YmNhYjgyNTRlMmNiNTE5
NzVmMmEyMWZkMTYyNzg1NTYyZThmLi45MzE5YjE0MTg2YWE2OTI1N2E2YWUyODQ3MDVjN2IzOTBk
YTA1ZmExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWJh
c2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMSw0OCArMSw0OCBAQAogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0IFs1Myw3MV0sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdCBbNTMsNzFdLCBbMTAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVz
IGZvdW5kIGZvciByZWN0IFs1Myw3MV0sIFswLDEwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9k
ZXMgZm91bmQgZm9yIHJlY3QgWzUzLDcxXSwgWzAsMCwxMCwwXQotUEFTUyBBbGwgY29ycmVjdCBu
b2RlcyBmb3VuZCBmb3IgcmVjdCBbNTMsNzFdLCBbMCwwLDAsMTBdCi1QQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0IFs1Myw3MV0sIFswLDEwLDAsMTBdCi1QQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFs1Myw3MV0sIFsxMCwwLDEwLDBdCi1QQVNTIEFsbCBj
b3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFs1Myw3MV0sIFsxMCwxMCwxMCwxMF0KLVBBU1Mg
QWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE1MiwxMDVdLCBbMTAsMCwwLDBdCi1Q
QVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFsxNTIsMTA1XSwgWzAsMTAsMCww
XQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTUyLDEwNV0sIFswLDAs
MTAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE1MiwxMDVdLCBb
MCwwLDAsMTBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFsxNTIsMTA1
XSwgWzEwLDAsMTAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE1
MiwxMDVdLCBbMCwxMCwwLDEwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dCBbMTUyLDEwNV0sIFsxMCwxMCwxMCwxMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQg
Zm9yIHJlY3QgWzE1MywxOTNdLCBbMCwwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91
bmQgZm9yIHJlY3QgWzE1MywxOTNdLCBbMCwyMCwwLDIwXQotUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdCBbMTUzLDE5M10sIFsyMCwwLDIwLDBdCi1QQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0IFs3NywyNDBdLCBbMCwwLDAsMF0KLVBBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzc3LDI0MF0sIFsxLDAsMCwwXQotUEFTUyBBbGwgY29y
cmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbNzcsMjQwXSwgWzAsMCwxLDBdCi1QQVNTIEFsbCBj
b3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFs3NywyNDBdLCBbMSwwLDEsMF0KLVBBU1MgQWxs
IGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNdLCBbMCwwLDAsMF0KLVBBU1Mg
QWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNdLCBbMSwwLDEsMF0KLVBB
U1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNdLCBbMCwxLDAsMV0K
LVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNdLCBbMCwwLDEs
MF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNdLCBbMCww
LDAsMV0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNdLCBb
MCwwLDEsMV0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0NCwxODNd
LCBbMSwxLDEsMV0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzc3LDI0
MF0sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbNzcs
MjQwXSwgWzAsMSwwLDFdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFs3
NywyNDBdLCBbMSwwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3Qg
Wzc3LDI0MF0sIFswLDAsMSwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dCBbNzcsMjQwXSwgWzEsMCwxLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0IFs3NywyNDBdLCBbMSwxLDEsMV0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9y
IHJlY3QgWzM5LDIxMl0sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdCBbMzksMjEyXSwgWzEwLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdCBbMzksMjEyXSwgWzAsMCwxMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdCBbMzksMjEyXSwgWzEwLDEsMzAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9k
ZXMgZm91bmQgZm9yIHJlY3QgWzM5LDIxMl0sIFsxMCw1LDMwLDBdCi1QQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0IFszOSwyMTJdLCBbMTAsMTUsMzAsMF0KLVBBU1MgQWxsIGNv
cnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzM5LDIxMl0sIFsxMCwwLDEwLDBdCi1QQVNTIEFs
bCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFszOSwyMTJdLCBbMCwxMCwwLDEwXQotUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMzksMjEyXSwgWzEwLDEwLDEwLDEw
XQorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29y
cmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwg
Y29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBB
bGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAor
UEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBu
b2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29y
cmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwg
Y29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBB
bGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAor
UEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBu
b2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29y
cmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWlubmVyLWRvY3VtZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rl
c0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy1leHBlY3RlZC50eHQKaW5kZXggZTg2MWVjMzI4M2My
YzljNGE1MTZkMDIxODUwNmRlMTQ2NzYzZDg4NS4uOTEyYWYxNTJiNDcxNThhYTk5NTkxOGQ3NWU1
YjQ1NzliNTFlNTQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9t
UmVjdC1pbm5lci1kb2N1bWVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLWV4cGVjdGVkLnR4dApAQCAtMSwxMCAr
MSwxMCBAQAogQSAgIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTc2LDEyMF0sIFsw
LDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTc2LDEyMF0s
IFsxMCwxMCwxMCwxMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE0
LDE2N10sIFswLDEwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3Qg
WzE1MCwxN10sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVj
dCBbMTUwLDE3XSwgWzAsMCwxMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdCBbMTUwLDE3XSwgWzAsMCwyNSwwXQorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwg
Y29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdAorUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAorUEFTUyBB
bGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbAppbmRleCBjMTNj
OWJiY2Y1ZTU1M2JkOWU0MTc1MTRjYWM4NTM2Y2MwOTkxMmIwLi45NjI4ODdiMGVjNzdhMzE4ZDU0
ZDRhNThiNzFjZDIyOWRkZGE0N2E5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9u
b2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKQEAgLTM4LDkgKzM4LDExIEBA
CiAgICAgICB2YXIgcCA9IGlubmVyRG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3AnKVsw
XTsKICAgICAgIHZhciBib2R5ID0gaW5uZXJEb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
Ym9keScpWzBdOwogICAgICAgdmFyIGRpdkNlbnRlciA9IGdldENlbnRlckZvcihkaXYpOworICAg
ICAgdmFyIGRpdkJvdHRvbSA9IGdldEJvdHRvbUZvcihkaXYpOworICAgICAgdmFyIHBDZW50ZXIg
PSBnZXRDZW50ZXJGb3IocCk7CiAgICAgICBjaGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnks
IDAsIDAsIDAsIDAsIFtkaXZdLCBpbm5lckRvY3VtZW50KTsKLSAgICAgIGNoZWNrKGRpdkNlbnRl
ci54LCBkaXZDZW50ZXIueSwgMCwgMCwgMTAsIDAsIFtkaXYsIGJvZHldLCBpbm5lckRvY3VtZW50
KTsKLSAgICAgIGNoZWNrKGRpdkNlbnRlci54LCBkaXZDZW50ZXIueSwgMCwgMCwgMjUsIDAsIFtw
LCBkaXYsIGJvZHldLCBpbm5lckRvY3VtZW50KTsKKyAgICAgIGNoZWNrKGRpdkNlbnRlci54LCBk
aXZDZW50ZXIueSwgMCwgMCwgZGl2Qm90dG9tLnkgLSBkaXZDZW50ZXIueSwgMCwgW2RpdiwgYm9k
eV0sIGlubmVyRG9jdW1lbnQpOworICAgICAgY2hlY2soZGl2Q2VudGVyLngsIGRpdkNlbnRlci55
LCAwLCAwLCBwQ2VudGVyLnkgLSBkaXZDZW50ZXIueSwgMCwgW3AsIGRpdiwgYm9keV0sIGlubmVy
RG9jdW1lbnQpOwogCiAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQtZXhw
ZWN0ZWQudHh0CmluZGV4IGM5YmQ5NmU5MTJhM2IyNTYzN2NmM2MwNmJlMDY0ODgxOTE0N2FlMTEu
LmE2MmUxYzc5MGQ3NGExNWNkYjc1NjJjZmQ2YzdlZDA2MWY1NTYzMTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRl
eHQtZXhwZWN0ZWQudHh0CkBAIC00LDEwICs0LDEwIEBAIEMKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdCBbMzcsMzJdLCBbMCwwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91
bmQgZm9yIHJlY3QgWzM3LDMyXSwgWzEwLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBm
b3VuZCBmb3IgcmVjdCBbMzcsMzJdLCBbMCwwLDE4LDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVz
IGZvdW5kIGZvciByZWN0IFszNywzMl0sIFswLDExLjUsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBu
b2RlcyBmb3VuZCBmb3IgcmVjdCBbMzcsMzJdLCBbMCwyMywwLDBdCi1QQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0IFszNywzMl0sIFswLDIzLDE4LDBdCitQQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBj
b3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQu
aHRtbAppbmRleCAwYjdiOTg5MDcyYzA2MTUxYWNhN2NiMDkyOGNhMTYyYmFiYzY4OWY0Li40NTcx
MTc2YjBjOWJmNDU2MDVkMTYwMmJjMzRhNTFmMTRmODMxYjcwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCkBAIC0y
NiwxMCArMjYsMTIgQEAKICAgICAgIHZhciBjZW50ZXJBMSA9IGdldENlbnRlckZvcihlLmExKTsK
ICAgICAgIHZhciBjZW50ZXJBMiA9IGdldENlbnRlckZvcihlLmEyKTsKICAgICAgIHZhciBjZW50
ZXJBMyA9IGdldENlbnRlckZvcihlLmEzKTsKKyAgICAgIHZhciB0b3BQMSA9IGdldFRvcEZvcihl
LnAxKTsKKyAgICAgIHZhciB0b3BBMSA9IGdldFRvcEZvcihlLmExKTsKICAgICAgIHZhciBjZW50
ZXJUZXh0ID0geyB4IDogKGNlbnRlckEyLnggKyBjZW50ZXJBMS54KSAvIDIsIHkgOiBjZW50ZXJB
MS55IH07IC8vdGV4dCBub2RlIGJldHdlZW4gYTEgYW5kIGEyCiAKICAgICAgIGNoZWNrKGNlbnRl
ckExLngsIGNlbnRlckExLnksIDAsIDAsIDAsIDAsIFtlLmExLmZpcnN0Q2hpbGRdKTsKLSAgICAg
IGNoZWNrKGNlbnRlckExLngsIGNlbnRlckExLnksIDEwLCAwLCAwLCAwLCBbZS5hMS5maXJzdENo
aWxkLCBlLmExLCBlLnAxXSk7CisgICAgICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCB0
b3BBMS55IC0gdG9wUDEueSwgMCwgMCwgMCwgW2UuYTEuZmlyc3RDaGlsZCwgZS5hMSwgZS5wMV0p
OwogCiAgICAgICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCAwLCAwLCBjZW50ZXJBMy55
IC0gY2VudGVyQTEueSwgMCwgW2UuYTMuZmlyc3RDaGlsZCwgZS5hMywgZS5wMSwgZS5hMS5maXJz
dENoaWxkLCBlLmExXSk7CiAgICAgICBjaGVjayhjZW50ZXJBMS54LCBjZW50ZXJBMS55LCAwLCBj
ZW50ZXJUZXh0LnggLSBjZW50ZXJBMS54LCAwLCAwLCBbZS5wMS5jaGlsZE5vZGVzWzJdLCBlLmEx
LmZpcnN0Q2hpbGQsIGUuYTEsIGUucDFdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Jlc291cmNlcy9ub2Rlc0Zyb21SZWN0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVz
b3VyY2VzL25vZGVzRnJvbVJlY3QuanMKaW5kZXggMjlhMDJjZjA2NDA0OGY5NmVkNjcxNGRkN2My
ZGI1NTA2NGM5OTcwOC4uNWU4ZDgyNWNiMGNmMmU2OTI1YmZhZTBkMTQyMzAxMDM5ZWRmMDFiZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3Qu
anMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMK
QEAgLTM0LDEwICszNCw3IEBAIGZ1bmN0aW9uIGNoZWNrKHgsIHksIHRvcFBhZGRpbmcsIHJpZ2h0
UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcsIGxpc3QsCiAgICAgfQogICB9CiAK
LSAgdGVzdFBhc3NlZCgiQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgIiAgKwotICAg
ICAgICAgICAgICJbIiArIHggKyAiLCIgKyB5ICsgIl0sICIgKwotICAgICAgICAgICAgICJbIiAr
IHRvcFBhZGRpbmcgKyAiLCIgKyByaWdodFBhZGRpbmcgKwotICAgICAgICAgICAgICIsIiArIGJv
dHRvbVBhZGRpbmcgKyAiLCIgKyBsZWZ0UGFkZGluZyArICJdIik7CisgIHRlc3RQYXNzZWQoIkFs
bCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0Iik7CiB9CiAKIGZ1bmN0aW9uIGdldENlbnRl
ckZvcihlbGVtZW50KQpAQCAtNDYsNCArNDMsMTYgQEAgZnVuY3Rpb24gZ2V0Q2VudGVyRm9yKGVs
ZW1lbnQpCiAgIHJldHVybiB7IHggOiBwYXJzZUludCgocmVjdC5sZWZ0ICsgcmVjdC5yaWdodCkg
LyAyKSAsIHkgOiBwYXJzZUludCgocmVjdC50b3AgKyByZWN0LmJvdHRvbSkgLyAyKX07CiB9CiAK
K2Z1bmN0aW9uIGdldFRvcEZvcihlbGVtZW50KQoreworICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgIHJldHVybiB7IHggOiBwYXJzZUludCgocmVjdC5sZWZ0
ICsgcmVjdC5yaWdodCkgLyAyKSAsIHkgOiBwYXJzZUludChyZWN0LnRvcCl9OworfQorCitmdW5j
dGlvbiBnZXRCb3R0b21Gb3IoZWxlbWVudCkKK3sKKyAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICByZXR1cm4geyB4IDogcGFyc2VJbnQoKHJlY3QubGVmdCAr
IHJlY3QucmlnaHQpIC8gMikgLCB5IDogcGFyc2VJbnQocmVjdC5ib3R0b20pfTsKK30KKwogdmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA0
MGZkMDM5OTAwMDUwMDQ0MjQwYmE1YzYyZjlkMWZjYTlmMjlhODEyLi44MGNkMTc4NGI2MDk4NzQw
Mjg2NzBkOTk5MWUwNjFhMWE4YmY5OTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTUz
MDQsMTAgKzUzMDQsNiBAQCBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1aXJrcy5odG1s
CiAjIEZpbGVTeXN0ZW0gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuCiBmYXN0L2ZpbGVzeXN0ZW0KIAot
IyBOZWVkcyBtb3JlIGludmVzdGlnYXRpb24uCi1mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtz
LWFuZC10ZXh0Lmh0bWwKLWZhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0
bWwKLQogIyBJdCBmYWlscywgYmVjYXVzZSAzRCBjYW52YXMgaXMgZGlzYWJsZWQgYnkgZGVmYXVs
dC4KIGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1s
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggOWMwYTlkM2QwODBiNzI5OGU1YTJjNGY0NTczNDUxY2EyY2I1YWYzNS4uYjVmMWM1YWM4NTM0
YTljNDk1Y2M3NmJmYmYzMTQzNDQ5ODRiYTdiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wMS0wNCAg
Um9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBJbnRyb2R1Y2UgUURSVE5vZGUgZm9yIHBh
c3NpbmcgV2ViQ29yZTo6Tm9kZSBhY3Jvc3MgSlMgYnJpZGdlCisKKyAgICAgICAgVGhpcyBhbGxv
d3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8gcGFzcyBXZWJDb3JlOjpOb2RlIGJhY2sgdG8KKyAg
ICAgICAgbGF5b3V0IHRlc3RzLgorCisgICAgICAgIEFsc28gYW1lbmQgbm9kZXNGcm9tUmVjdC1s
aW5rcy1hbmQtdGV4dC5odG1sIGFuZAorICAgICAgICBub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3Vt
ZW50cy5odG1sIHNvIHRoYXQgdGhleSBkbyBub3QgcHJvZHVjZQorICAgICAgICBwbGF0Zm9ybS1z
cGVjaWZpYyByZXN1bHRzLgorCisgICAgICAgIFVuc2tpcDoKKyAgICAgICAgZmFzdC9kb20vbm9k
ZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCisgICAgICAgIGZhc3QvZG9tL25vZGVzRnJv
bVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5NTcKKworICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50
aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0RFJUTm9kZVJ1bnRpbWU6OmNyZWF0
ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1lOjpnZXQpOgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6Y29udmVydFZhbHVlVG9RVmFyaWFudCk6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpjb252ZXJ0UVZhcmlhbnRUb1ZhbHVlKToKKwogMjAxMS0wMS0wMyAgTWlo
YWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCA2NTk1Yjg0MjFhNGEyYzdhNjQ2MDUyMjcx
NDAzMTE3M2E1MjYwNTI3Li4wZmI4MTFiNGRiMTdlYmY0NjdmMjcwNTBhYjc4YmI5YzljYTFkMGZi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAorKysgYi9XZWJD
b3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUg
IkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkRhdGVNYXRoLmgiCiAjaW5jbHVkZSAiRGF0ZVBy
b3RvdHlwZS5oIgorI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCiAjaW5jbHVk
ZSAiRnVuY3Rpb25Qcm90b3R5cGUuaCIKICNpbmNsdWRlICJJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIkpTQXJyYXkuaCIKQEAgLTEzMyw2ICsxMzQsMjIgQEAgcHVibGljOgogICAgIH0KIH07CiAK
Ky8vIHRoaXMgaXMgaGVyZSBhcyBhIHByb3h5LCBzbyB3ZSdkIGhhdmUgYSBjbGFzcyB0byBmcmll
bmQgaW4gUURSVE5vZGUsCisvLyBhcyBnZXR0aW5nL3NldHRpbmcgYSBXZWJDb3JlIGluIFFEUlRO
b2RlIGlzIHByaXZhdGUuCisvLyBXZSBvbmx5IG5lZWQgdG8gcGFzcyBXZWJDb3JlIE5vZGVzIGZv
ciBsYXlvdXQgdGVzdHMuCitjbGFzcyBRdERSVE5vZGVSdW50aW1lIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUURSVE5vZGUgY3JlYXRlKE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICByZXR1cm4g
UURSVE5vZGUobm9kZSk7CisgICAgfQorCisgICAgc3RhdGljIE5vZGUqIGdldChjb25zdCBRRFJU
Tm9kZSYgbm9kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBub2RlLm1fbm9kZTsKKyAgICB9Cit9
OworCiBzdGF0aWMgSlNSZWFsVHlwZSB2YWx1ZVJlYWxUeXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNW
YWx1ZSB2YWwpCiB7CiAgICAgaWYgKHZhbC5pc051bWJlcigpKQpAQCAtNzUyLDYgKzc2OSw5IEBA
IFFWYXJpYW50IGNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlLCBRTWV0YVR5cGU6OlR5cGUKICAgICAgICAgICAgICAgICAgICAgcmV0ID0gUVZhcmlh
bnQ6OmZyb21WYWx1ZTxRV2ViRWxlbWVudD4oUXRXZWJFbGVtZW50UnVudGltZTo6Y3JlYXRlKChz
dGF0aWNfY2FzdDxKU0RvY3VtZW50Kj4ob2JqZWN0KSktPmltcGwoKS0+ZG9jdW1lbnRFbGVtZW50
KCkpKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHJldCA9IFFW
YXJpYW50Ojpmcm9tVmFsdWU8UVdlYkVsZW1lbnQ+KFFXZWJFbGVtZW50KCkpOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChoaW50ID09IChRTWV0YVR5cGU6OlR5cGUpIHFNZXRhVHlwZUlkPFFEUlRO
b2RlPigpKSB7CisgICAgICAgICAgICAgICAgaWYgKG9iamVjdCAmJiBvYmplY3QtPmluaGVyaXRz
KCZKU05vZGU6OnNfaW5mbykpCisgICAgICAgICAgICAgICAgICAgIHJldCA9IFFWYXJpYW50Ojpm
cm9tVmFsdWU8UURSVE5vZGU+KFF0RFJUTm9kZVJ1bnRpbWU6OmNyZWF0ZSgoc3RhdGljX2Nhc3Q8
SlNOb2RlKj4ob2JqZWN0KSktPmltcGwoKSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChoaW50
ID09IChRTWV0YVR5cGU6OlR5cGUpIHFNZXRhVHlwZUlkPFFWYXJpYW50PigpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGRpc3RhbmNlKQpAQCAtODk4LDYgKzkxOCwxNyBAQCBKU1ZhbHVlIGNvbnZlcnRR
VmFyaWFudFRvVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPFJvb3RPYmplY3Q+IHJv
b3QsIGNvbgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCB0b0pTRE9NR2xvYmFsT2JqZWN0KGRv
Y3VtZW50LCBleGVjKSwgUXRXZWJFbGVtZW50UnVudGltZTo6Z2V0KHZhcmlhbnQudmFsdWU8UVdl
YkVsZW1lbnQ+KCkpKTsKICAgICB9CiAKKyAgICBpZiAodHlwZSA9PSBxTWV0YVR5cGVJZDxRRFJU
Tm9kZT4oKSkgeworICAgICAgICBpZiAoIXJvb3QtPmdsb2JhbE9iamVjdCgpLT5pbmhlcml0cygm
SlNET01XaW5kb3c6OnNfaW5mbykpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
KworICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAoc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cq
Pihyb290LT5nbG9iYWxPYmplY3QoKSkpLT5pbXBsKCktPmRvY3VtZW50KCk7CisgICAgICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKworICAgICAg
ICByZXR1cm4gdG9KUyhleGVjLCB0b0pTRE9NR2xvYmFsT2JqZWN0KGRvY3VtZW50LCBleGVjKSwg
UXREUlROb2RlUnVudGltZTo6Z2V0KHZhcmlhbnQudmFsdWU8UURSVE5vZGU+KCkpKTsKKyAgICB9
CisKICAgICBpZiAodHlwZSA9PSBRTWV0YVR5cGU6OlFWYXJpYW50TWFwKSB7CiAgICAgICAgIC8v
IGNyZWF0ZSBhIG5ldyBvYmplY3QsIGFuZCBzdHVmZiBwcm9wZXJ0aWVzIGludG8gaXQKICAgICAg
ICAgSlNPYmplY3QqIHJldCA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZmI2ODI4
MzgwMzNkNjUwZWQyZGRkZDhjZTJiZjgzODdjNDE4ZWRmNS4uNWY5OGRjZDg1ZGQ1MWJlZmNmNzk0
Y2VhZDc5MDA0NzI1ZWExZDA0YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDEtMDQgIFJvYmVy
dCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFEUlROb2RlIGZvciBwYXNzaW5n
IFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAgICAgIFRoaXMgYWxsb3dzIExh
eW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSBiYWNrIHRvCisgICAgICAg
IGxheW91dCB0ZXN0cy4KKworICAgICAgICBBbHNvIGFtZW5kIG5vZGVzRnJvbVJlY3QtbGlua3Mt
YW5kLXRleHQuaHRtbCBhbmQKKyAgICAgICAgbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMu
aHRtbCBzbyB0aGF0IHRoZXkgZG8gbm90IHByb2R1Y2UKKyAgICAgICAgcGxhdGZvcm0tc3BlY2lm
aWMgcmVzdWx0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAgIGZhc3QvZG9tL25vZGVzRnJv
bVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0
LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChRRFJUTm9kZTo6UURSVE5vZGUpOgorICAg
ICAgICAoUURSVE5vZGU6On5RRFJUTm9kZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6bm9kZXNGcm9tUmVjdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMS0wMS0wMiAgQW50b25pbyBHb21lcyAgPGFnb21lc0By
aW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5jcHAKaW5kZXggNzU0YjIwYWViZjJmNDI0NzM5Njg3ZWExNWY5M2IwMzViZWE1ZDljZC4u
ZTk1ODc1MTViZTlhZjk3NmUzYzI2ZWZkM2RhYTdjMzY3YzE0ZGJkYiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC04
Miw2ICs4MiwyNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUU1hcDxpbnQsIFFXZWJT
Y3JpcHRXb3JsZCo+IG1fd29ybGRNYXA7CiAKK1FEUlROb2RlOjpRRFJUTm9kZSgpCisgICAgOiBt
X25vZGUoMCkKK3sKK30KKworUURSVE5vZGU6OlFEUlROb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUp
CisgICAgOiBtX25vZGUoMCkKK3sKKyAgICBpZiAobm9kZSkgeworICAgICAgICBtX25vZGUgPSBu
b2RlOworICAgICAgICBtX25vZGUtPnJlZigpOworICAgIH0KK30KKworUURSVE5vZGU6On5RRFJU
Tm9kZSgpCit7CisgICAgaWYgKG1fbm9kZSkKKyAgICAgICAgbV9ub2RlLT5kZXJlZigpOworfQor
CisKIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdCgpCiB7
CiB9CkBAIC04NTQsNyArODc1LDEwIEBAIFFWYXJpYW50TGlzdCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6bm9kZXNGcm9tUmVjdChjb25zdCBRV2ViRWxlbWVudCYgZG9jdW1lbnQsCiAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBub2Rlcy0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBRVmFyaWFu
dCB2OwogICAgICAgICAvLyBRV2ViRWxlbWVudCB3aWxsIGJlIG51bGwgaWYgdGhlIE5vZGUgaXMg
bm90IGFuIEhUTUwgRWxlbWVudAotICAgICAgICB2LnNldFZhbHVlKFFXZWJFbGVtZW50KG5vZGVz
LT5pdGVtKGkpKSk7CisgICAgICAgIGlmIChub2Rlcy0+aXRlbShpKS0+aXNIVE1MRWxlbWVudCgp
KQorICAgICAgICAgICAgdi5zZXRWYWx1ZShRV2ViRWxlbWVudChub2Rlcy0+aXRlbShpKSkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB2LnNldFZhbHVlKFFEUlROb2RlKG5vZGVzLT5pdGVt
KGkpKSk7CiAgICAgICAgIHJlcyA8PCB2OwogICAgIH0KICAgICByZXR1cm4gcmVzOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmgg
Yi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRl
eCBlMDhkOTYyMWQ4OGE0NDFlNDAwODU0NGY4MjE1ZDJlZDBhYjk4ODVmLi42OTE3MDM5Y2NlN2I3
OTEwZTg5YTFjMTE4YjA5NzNlNGE4YmU3NWVmIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMjYsNiArMjYsMjYgQEAKICNp
bmNsdWRlICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UVZhcmlhbnQ+CiAKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKK2NsYXNzIFRleHQ7CitjbGFzcyBOb2RlOworfQorCisKKyNpZiBkZWZpbmVk
KFdURl9VU0VfVjgpICYmIFdURl9VU0VfVjgKK25hbWVzcGFjZSBWOCB7CituYW1lc3BhY2UgQmlu
ZGluZ3MgeworY2xhc3MgUXREUlROb2RlUnVudGltZTsKK30KK30KKyNlbHNlCituYW1lc3BhY2Ug
SlNDIHsKK25hbWVzcGFjZSBCaW5kaW5ncyB7CitjbGFzcyBRdERSVE5vZGVSdW50aW1lOworfQor
fQorI2VuZGlmCisKIGNsYXNzIFFXZWJFbGVtZW50OwogY2xhc3MgUVdlYkZyYW1lOwogY2xhc3Mg
UVdlYlBhZ2U7CkBAIC0zNCw2ICs1NCwyOCBAQCBjbGFzcyBRV2ViU2NyaXB0V29ybGQ7CiAKIGV4
dGVybiBRTWFwPGludCwgUVdlYlNjcmlwdFdvcmxkKj4gbV93b3JsZE1hcDsKIAorLy8gVXNlZCB0
byBwYXNzIFdlYkNvcmU6Ok5vZGUncyB0byBsYXlvdXQgdGVzdHMgdXNpbmcgTGF5b3V0VGVzdENv
bnRyb2xsZXIKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFEUlROb2RlIHsKK3B1YmxpYzoKKyAgICBR
RFJUTm9kZSgpOworICAgIH5RRFJUTm9kZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFFE
UlROb2RlKFdlYkNvcmU6Ok5vZGUqKTsKKworICAgIGZyaWVuZCBjbGFzcyBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDsKKworI2lmIGRlZmluZWQoV1RGX1VTRV9WOCkgJiYgV1RGX1VTRV9WOAorICAg
IGZyaWVuZCBjbGFzcyBWODo6QmluZGluZ3M6OlF0RFJUTm9kZVJ1bnRpbWU7CisjZWxzZQorICAg
IGZyaWVuZCBjbGFzcyBKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1lOworI2VuZGlmCisK
KyAgICBXZWJDb3JlOjpOb2RlKiBtX25vZGU7Cit9OworCitRX0RFQ0xBUkVfTUVUQVRZUEUoUURS
VE5vZGUpCisKIGNsYXNzIFFXRUJLSVRfRVhQT1JUIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0IHsK
IAogcHVibGljOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78135</attachid>
            <date>2011-01-06 11:26:36 -0800</date>
            <delta_ts>2011-01-06 12:55:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48957-20110106192634.patch</filename>
            <type>text/plain</type>
            <size>19844</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZmFiMGM4MDYzMjU2MTYxMTM1MTM0ODAwYjQ3MDE2NjY1NGFlMDhkLi5jNTMxYTk4
MjQwMDViY2U5ODNkZGRiNjJiNmU4NTkyNWUzOTU1YmI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAK
KzIwMTEtMDEtMDQgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCisKKyAgICAgICAgW1F0XSBJbnRyb2R1Y2UgUURS
VE5vZGUgZm9yIHBhc3NpbmcgV2ViQ29yZTo6Tm9kZSBhY3Jvc3MgSlMgYnJpZGdlCisKKyAgICAg
ICAgVGhpcyBhbGxvd3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8gcGFzcyBXZWJDb3JlOjpOb2Rl
IGJhY2sgdG8KKyAgICAgICAgbGF5b3V0IHRlc3RzLgorCisgICAgICAgIEFsc28gYW1lbmQgbm9k
ZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sIGFuZAorICAgICAgICBub2Rlc0Zyb21SZWN0
LWlubmVyLWRvY3VtZW50cy5odG1sIHNvIHRoYXQgdGhleSBkbyBub3QgcHJvZHVjZQorICAgICAg
ICBwbGF0Zm9ybS1zcGVjaWZpYyByZXN1bHRzLgorCisgICAgICAgIFVuc2tpcDoKKyAgICAgICAg
ZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5odG1sCisgICAgICAgIGZhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg5NTcKKworICAgICAgICAqIGZhc3Qv
ZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qczoKKyAgICAgICAgKGNoZWNr
KToKKyAgICAgICAgKGdldFRvcEZvcik6CisgICAgICAgIChnZXRCb3R0b21Gb3IpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisKIDIwMTEtMDEtMDMgIE1paGFpIFBhcnBhcml0YSAg
PG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgQ2hyb21pdW0gdGVz
dCBleHBlY3RhdGlvbiB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9u
b2Rlc0Zyb21SZWN0LWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGVzRnJvbVJlY3QtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IDZmODdiY2FiODI1NGUyY2I1MTk3
NWYyYTIxZmQxNjI3ODU1NjJlOGYuLjkzMTliMTQxODZhYTY5MjU3YTZhZTI4NDcwNWM3YjM5MGRh
MDVmYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtYmFz
aWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
YmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0xLDQ4ICsxLDQ4IEBACiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91
bmQgZm9yIHJlY3QgWzUzLDcxXSwgWzAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0IFs1Myw3MV0sIFsxMCwwLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMg
Zm91bmQgZm9yIHJlY3QgWzUzLDcxXSwgWzAsMTAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdCBbNTMsNzFdLCBbMCwwLDEwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5v
ZGVzIGZvdW5kIGZvciByZWN0IFs1Myw3MV0sIFswLDAsMCwxMF0KLVBBU1MgQWxsIGNvcnJlY3Qg
bm9kZXMgZm91bmQgZm9yIHJlY3QgWzUzLDcxXSwgWzAsMTAsMCwxMF0KLVBBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzUzLDcxXSwgWzEwLDAsMTAsMF0KLVBBU1MgQWxsIGNv
cnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzUzLDcxXSwgWzEwLDEwLDEwLDEwXQotUEFTUyBB
bGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTUyLDEwNV0sIFsxMCwwLDAsMF0KLVBB
U1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE1MiwxMDVdLCBbMCwxMCwwLDBd
Ci1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFsxNTIsMTA1XSwgWzAsMCwx
MCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTUyLDEwNV0sIFsw
LDAsMCwxMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzE1MiwxMDVd
LCBbMTAsMCwxMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTUy
LDEwNV0sIFswLDEwLDAsMTBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
IFsxNTIsMTA1XSwgWzEwLDEwLDEwLDEwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBm
b3IgcmVjdCBbMTUzLDE5M10sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdCBbMTUzLDE5M10sIFswLDIwLDAsMjBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVz
IGZvdW5kIGZvciByZWN0IFsxNTMsMTkzXSwgWzIwLDAsMjAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qg
bm9kZXMgZm91bmQgZm9yIHJlY3QgWzc3LDI0MF0sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVj
dCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbNzcsMjQwXSwgWzEsMCwwLDBdCi1QQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFs3NywyNDBdLCBbMCwwLDEsMF0KLVBBU1MgQWxsIGNv
cnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzc3LDI0MF0sIFsxLDAsMSwwXQotUEFTUyBBbGwg
Y29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10sIFswLDAsMCwwXQotUEFTUyBB
bGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10sIFsxLDAsMSwwXQotUEFT
UyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10sIFswLDEsMCwxXQot
UEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10sIFswLDAsMSww
XQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10sIFswLDAs
MCwxXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10sIFsw
LDAsMSwxXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQ0LDE4M10s
IFsxLDEsMSwxXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbNzcsMjQw
XSwgWzAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFs3Nywy
NDBdLCBbMCwxLDAsMV0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzc3
LDI0MF0sIFsxLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBb
NzcsMjQwXSwgWzAsMCwxLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
IFs3NywyNDBdLCBbMSwwLDEsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJl
Y3QgWzc3LDI0MF0sIFsxLDEsMSwxXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3Ig
cmVjdCBbMzksMjEyXSwgWzAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0IFszOSwyMTJdLCBbMTAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0IFszOSwyMTJdLCBbMCwwLDEwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0IFszOSwyMTJdLCBbMTAsMSwzMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2Rl
cyBmb3VuZCBmb3IgcmVjdCBbMzksMjEyXSwgWzEwLDUsMzAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qg
bm9kZXMgZm91bmQgZm9yIHJlY3QgWzM5LDIxMl0sIFsxMCwxNSwzMCwwXQotUEFTUyBBbGwgY29y
cmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMzksMjEyXSwgWzEwLDAsMTAsMF0KLVBBU1MgQWxs
IGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QgWzM5LDIxMl0sIFswLDEwLDAsMTBdCi1QQVNT
IEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFszOSwyMTJdLCBbMTAsMTAsMTAsMTBd
CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBj
b3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFs
bCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNT
IEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVz
IGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQ
QVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5v
ZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBj
b3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFs
bCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNT
IEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVz
IGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQ
QVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5v
ZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0
IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3Jy
ZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3Qt
aW5uZXItZG9jdW1lbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVz
RnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLWV4cGVjdGVkLnR4dAppbmRleCBlODYxZWMzMjgzYzJj
OWM0YTUxNmQwMjE4NTA2ZGUxNDY3NjNkODg1Li45MTJhZjE1MmI0NzE1OGFhOTk1OTE4ZDc1ZTVi
NDU3OWI1MWU1NDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21S
ZWN0LWlubmVyLWRvY3VtZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsx
LDEwIEBACiBBICAgUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFsxNzYsMTIwXSwgWzAs
MCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0IFsxNzYsMTIwXSwg
WzEwLDEwLDEwLDEwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBbMTQs
MTY3XSwgWzAsMTAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCBb
MTUwLDE3XSwgWzAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
IFsxNTAsMTddLCBbMCwwLDEwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciBy
ZWN0IFsxNTAsMTddLCBbMCwwLDI1LDBdCitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZv
ciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBj
b3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0CitQQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CitQQVNTIEFs
bCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCmluZGV4IGMxM2M5
YmJjZjVlNTUzYmQ5ZTQxNzUxNGNhYzg1MzZjYzA5OTEyYjAuLjk2Mjg4N2IwZWM3N2EzMThkNTRk
NGE1OGI3MWNkMjI5ZGRkYTQ3YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25v
ZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbApAQCAtMzgsOSArMzgsMTEgQEAK
ICAgICAgIHZhciBwID0gaW5uZXJEb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgncCcpWzBd
OwogICAgICAgdmFyIGJvZHkgPSBpbm5lckRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdi
b2R5JylbMF07CiAgICAgICB2YXIgZGl2Q2VudGVyID0gZ2V0Q2VudGVyRm9yKGRpdik7CisgICAg
ICB2YXIgZGl2Qm90dG9tID0gZ2V0Qm90dG9tRm9yKGRpdik7CisgICAgICB2YXIgcENlbnRlciA9
IGdldENlbnRlckZvcihwKTsKICAgICAgIGNoZWNrKGRpdkNlbnRlci54LCBkaXZDZW50ZXIueSwg
MCwgMCwgMCwgMCwgW2Rpdl0sIGlubmVyRG9jdW1lbnQpOwotICAgICAgY2hlY2soZGl2Q2VudGVy
LngsIGRpdkNlbnRlci55LCAwLCAwLCAxMCwgMCwgW2RpdiwgYm9keV0sIGlubmVyRG9jdW1lbnQp
OwotICAgICAgY2hlY2soZGl2Q2VudGVyLngsIGRpdkNlbnRlci55LCAwLCAwLCAyNSwgMCwgW3As
IGRpdiwgYm9keV0sIGlubmVyRG9jdW1lbnQpOworICAgICAgY2hlY2soZGl2Q2VudGVyLngsIGRp
dkNlbnRlci55LCAwLCAwLCBkaXZCb3R0b20ueSAtIGRpdkNlbnRlci55LCAwLCBbZGl2LCBib2R5
XSwgaW5uZXJEb2N1bWVudCk7CisgICAgICBjaGVjayhkaXZDZW50ZXIueCwgZGl2Q2VudGVyLnks
IDAsIDAsIHBDZW50ZXIueSAtIGRpdkNlbnRlci55LCAwLCBbcCwgZGl2LCBib2R5XSwgaW5uZXJE
b2N1bWVudCk7CiAKICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggYzliZDk2ZTkxMmEzYjI1NjM3Y2YzYzA2YmUwNjQ4ODE5MTQ3YWUxMS4u
YTYyZTFjNzkwZDc0YTE1Y2RiNzU2MmNmZDZjN2VkMDYxZjU1NjMxMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4
dC1leHBlY3RlZC50eHQKQEAgLTQsMTAgKzQsMTAgQEAgQwogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZvdW5k
IGZvciByZWN0IFszNywzMl0sIFswLDAsMCwwXQotUEFTUyBBbGwgY29ycmVjdCBub2RlcyBmb3Vu
ZCBmb3IgcmVjdCBbMzcsMzJdLCBbMTAsMCwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5vZGVzIGZv
dW5kIGZvciByZWN0IFszNywzMl0sIFswLDAsMTgsMF0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMg
Zm91bmQgZm9yIHJlY3QgWzM3LDMyXSwgWzAsMTEuNSwwLDBdCi1QQVNTIEFsbCBjb3JyZWN0IG5v
ZGVzIGZvdW5kIGZvciByZWN0IFszNywzMl0sIFswLDIzLDAsMF0KLVBBU1MgQWxsIGNvcnJlY3Qg
bm9kZXMgZm91bmQgZm9yIHJlY3QgWzM3LDMyXSwgWzAsMjMsMTgsMF0KK1BBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9y
IHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNv
cnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQg
Zm9yIHJlY3QKK1BBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1saW5rcy1hbmQtdGV4dC5o
dG1sCmluZGV4IDBiN2I5ODkwNzJjMDYxNTFhY2E3Y2IwOTI4Y2ExNjJiYWJjNjg5ZjQuLjQ1NzEx
NzZiMGM5YmY0NTYwNWQxNjAyYmMzNGE1MWYxNGY4MzFiNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWxpbmtzLWFuZC10ZXh0Lmh0bWwKQEAgLTI2
LDEwICsyNiwxMiBAQAogICAgICAgdmFyIGNlbnRlckExID0gZ2V0Q2VudGVyRm9yKGUuYTEpOwog
ICAgICAgdmFyIGNlbnRlckEyID0gZ2V0Q2VudGVyRm9yKGUuYTIpOwogICAgICAgdmFyIGNlbnRl
ckEzID0gZ2V0Q2VudGVyRm9yKGUuYTMpOworICAgICAgdmFyIHRvcFAxID0gZ2V0VG9wRm9yKGUu
cDEpOworICAgICAgdmFyIHRvcEExID0gZ2V0VG9wRm9yKGUuYTEpOwogICAgICAgdmFyIGNlbnRl
clRleHQgPSB7IHggOiAoY2VudGVyQTIueCArIGNlbnRlckExLngpIC8gMiwgeSA6IGNlbnRlckEx
LnkgfTsgLy90ZXh0IG5vZGUgYmV0d2VlbiBhMSBhbmQgYTIKIAogICAgICAgY2hlY2soY2VudGVy
QTEueCwgY2VudGVyQTEueSwgMCwgMCwgMCwgMCwgW2UuYTEuZmlyc3RDaGlsZF0pOwotICAgICAg
Y2hlY2soY2VudGVyQTEueCwgY2VudGVyQTEueSwgMTAsIDAsIDAsIDAsIFtlLmExLmZpcnN0Q2hp
bGQsIGUuYTEsIGUucDFdKTsKKyAgICAgIGNoZWNrKGNlbnRlckExLngsIGNlbnRlckExLnksIHRv
cEExLnkgLSB0b3BQMS55LCAwLCAwLCAwLCBbZS5hMS5maXJzdENoaWxkLCBlLmExLCBlLnAxXSk7
CiAKICAgICAgIGNoZWNrKGNlbnRlckExLngsIGNlbnRlckExLnksIDAsIDAsIGNlbnRlckEzLnkg
LSBjZW50ZXJBMS55LCAwLCBbZS5hMy5maXJzdENoaWxkLCBlLmEzLCBlLnAxLCBlLmExLmZpcnN0
Q2hpbGQsIGUuYTFdKTsKICAgICAgIGNoZWNrKGNlbnRlckExLngsIGNlbnRlckExLnksIDAsIGNl
bnRlclRleHQueCAtIGNlbnRlckExLngsIDAsIDAsIFtlLnAxLmNoaWxkTm9kZXNbMl0sIGUuYTEu
Zmlyc3RDaGlsZCwgZS5hMSwgZS5wMV0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNv
dXJjZXMvbm9kZXNGcm9tUmVjdC5qcwppbmRleCAyOWEwMmNmMDY0MDQ4Zjk2ZWQ2NzE0ZGQ3YzJk
YjU1MDY0Yzk5NzA4Li41ZThkODI1Y2IwY2YyZTY5MjViZmFlMGQxNDIzMDEwMzllZGYwMWJlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5q
cworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcwpA
QCAtMzQsMTAgKzM0LDcgQEAgZnVuY3Rpb24gY2hlY2soeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQ
YWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZywgbGlzdCwKICAgICB9CiAgIH0KIAot
ICB0ZXN0UGFzc2VkKCJBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCAiICArCi0gICAg
ICAgICAgICAgIlsiICsgeCArICIsIiArIHkgKyAiXSwgIiArCi0gICAgICAgICAgICAgIlsiICsg
dG9wUGFkZGluZyArICIsIiArIHJpZ2h0UGFkZGluZyArCi0gICAgICAgICAgICAgIiwiICsgYm90
dG9tUGFkZGluZyArICIsIiArIGxlZnRQYWRkaW5nICsgIl0iKTsKKyAgdGVzdFBhc3NlZCgiQWxs
IGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QiKTsKIH0KIAogZnVuY3Rpb24gZ2V0Q2VudGVy
Rm9yKGVsZW1lbnQpCkBAIC00Niw0ICs0MywxNiBAQCBmdW5jdGlvbiBnZXRDZW50ZXJGb3IoZWxl
bWVudCkKICAgcmV0dXJuIHsgeCA6IHBhcnNlSW50KChyZWN0LmxlZnQgKyByZWN0LnJpZ2h0KSAv
IDIpICwgeSA6IHBhcnNlSW50KChyZWN0LnRvcCArIHJlY3QuYm90dG9tKSAvIDIpfTsKIH0KIAor
ZnVuY3Rpb24gZ2V0VG9wRm9yKGVsZW1lbnQpCit7CisgIHZhciByZWN0ID0gZWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgcmV0dXJuIHsgeCA6IHBhcnNlSW50KChyZWN0LmxlZnQg
KyByZWN0LnJpZ2h0KSAvIDIpICwgeSA6IHBhcnNlSW50KHJlY3QudG9wKX07Cit9CisKK2Z1bmN0
aW9uIGdldEJvdHRvbUZvcihlbGVtZW50KQoreworICB2YXIgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgIHJldHVybiB7IHggOiBwYXJzZUludCgocmVjdC5sZWZ0ICsg
cmVjdC5yaWdodCkgLyAyKSAsIHkgOiBwYXJzZUludChyZWN0LmJvdHRvbSl9OworfQorCiB2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDQw
ZmQwMzk5MDAwNTAwNDQyNDBiYTVjNjJmOWQxZmNhOWYyOWE4MTIuLjgwY2QxNzg0YjYwOTg3NDAy
ODY3MGQ5OTkxZTA2MWExYThiZjk5M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtNTMw
NCwxMCArNTMwNCw2IEBAIGZhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLmh0bWwK
ICMgRmlsZVN5c3RlbSBBUEkgaXMgbm90IHN1cHBvcnRlZC4KIGZhc3QvZmlsZXN5c3RlbQogCi0j
IE5lZWRzIG1vcmUgaW52ZXN0aWdhdGlvbi4KLWZhc3QvZG9tL25vZGVzRnJvbVJlY3QtbGlua3Mt
YW5kLXRleHQuaHRtbAotZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRt
bAotCiAjIEl0IGZhaWxzLCBiZWNhdXNlIDNEIGNhbnZhcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0
LgogaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA5YzBhOWQzZDA4MGI3Mjk4ZTVhMmM0ZjQ1NzM0NTFjYTJjYjVhZjM1Li5iYjVhYTkyMjg4M2Fh
ZDcyOTBlNzRmM2M3MzE2OGUwMTFmNTEwNzA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTAxLTA0ICBS
b2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBB
bnRvbmlvIEdvbWVzLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFEUlROb2RlIGZvciBwYXNz
aW5nIFdlYkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAgICAgIFRoaXMgYWxsb3dz
IExheW91dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSBiYWNrIHRvCisgICAg
ICAgIGxheW91dCB0ZXN0cy4KKworICAgICAgICBBbHNvIGFtZW5kIG5vZGVzRnJvbVJlY3QtbGlu
a3MtYW5kLXRleHQuaHRtbCBhbmQKKyAgICAgICAgbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVu
dHMuaHRtbCBzbyB0aGF0IHRoZXkgZG8gbm90IHByb2R1Y2UKKyAgICAgICAgcGxhdGZvcm0tc3Bl
Y2lmaWMgcmVzdWx0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAgIGZhc3QvZG9tL25vZGVz
RnJvbVJlY3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0L2RvbS9ub2Rlc0Zyb21S
ZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGlt
ZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1lOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXREUlROb2RlUnVudGltZTo6Z2V0KToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OmNvbnZlcnRWYWx1ZVRvUVZhcmlhbnQpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6Y29udmVydFFWYXJpYW50VG9WYWx1ZSk6CisKIDIwMTEtMDEtMDMgIE1paGFp
IFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggNjU5NWI4NDIxYTRhMmM3YTY0NjA1MjI3MTQw
MzExNzNhNTI2MDUyNy4uMGZiODExYjRkYjE3ZWJmNDY3ZjI3MDUwYWI3OGJiOWM5Y2ExZDBmYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKKysrIGIvV2ViQ29y
ZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJE
YXRlSW5zdGFuY2UuaCIKICNpbmNsdWRlICJEYXRlTWF0aC5oIgogI2luY2x1ZGUgIkRhdGVQcm90
b3R5cGUuaCIKKyNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIgogI2luY2x1ZGUg
IkZ1bmN0aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRl
ICJKU0FycmF5LmgiCkBAIC0xMzMsNiArMTM0LDIyIEBAIHB1YmxpYzoKICAgICB9CiB9OwogCisv
LyB0aGlzIGlzIGhlcmUgYXMgYSBwcm94eSwgc28gd2UnZCBoYXZlIGEgY2xhc3MgdG8gZnJpZW5k
IGluIFFEUlROb2RlLAorLy8gYXMgZ2V0dGluZy9zZXR0aW5nIGEgV2ViQ29yZSBpbiBRRFJUTm9k
ZSBpcyBwcml2YXRlLgorLy8gV2Ugb25seSBuZWVkIHRvIHBhc3MgV2ViQ29yZSBOb2RlcyBmb3Ig
bGF5b3V0IHRlc3RzLgorY2xhc3MgUXREUlROb2RlUnVudGltZSB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFFEUlROb2RlIGNyZWF0ZShOb2RlKiBub2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFFE
UlROb2RlKG5vZGUpOworICAgIH0KKworICAgIHN0YXRpYyBOb2RlKiBnZXQoY29uc3QgUURSVE5v
ZGUmIG5vZGUpCisgICAgeworICAgICAgICByZXR1cm4gbm9kZS5tX25vZGU7CisgICAgfQorfTsK
Kwogc3RhdGljIEpTUmVhbFR5cGUgdmFsdWVSZWFsVHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFs
dWUgdmFsKQogewogICAgIGlmICh2YWwuaXNOdW1iZXIoKSkKQEAgLTc1Miw2ICs3NjksOSBAQCBR
VmFyaWFudCBjb252ZXJ0VmFsdWVUb1FWYXJpYW50KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2
YWx1ZSwgUU1ldGFUeXBlOjpUeXBlCiAgICAgICAgICAgICAgICAgICAgIHJldCA9IFFWYXJpYW50
Ojpmcm9tVmFsdWU8UVdlYkVsZW1lbnQ+KFF0V2ViRWxlbWVudFJ1bnRpbWU6OmNyZWF0ZSgoc3Rh
dGljX2Nhc3Q8SlNEb2N1bWVudCo+KG9iamVjdCkpLT5pbXBsKCktPmRvY3VtZW50RWxlbWVudCgp
KSk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICByZXQgPSBRVmFy
aWFudDo6ZnJvbVZhbHVlPFFXZWJFbGVtZW50PihRV2ViRWxlbWVudCgpKTsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoaGludCA9PSAoUU1ldGFUeXBlOjpUeXBlKSBxTWV0YVR5cGVJZDxRRFJUTm9k
ZT4oKSkgeworICAgICAgICAgICAgICAgIGlmIChvYmplY3QgJiYgb2JqZWN0LT5pbmhlcml0cygm
SlNOb2RlOjpzX2luZm8pKQorICAgICAgICAgICAgICAgICAgICByZXQgPSBRVmFyaWFudDo6ZnJv
bVZhbHVlPFFEUlROb2RlPihRdERSVE5vZGVSdW50aW1lOjpjcmVhdGUoKHN0YXRpY19jYXN0PEpT
Tm9kZSo+KG9iamVjdCkpLT5pbXBsKCkpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGludCA9
PSAoUU1ldGFUeXBlOjpUeXBlKSBxTWV0YVR5cGVJZDxRVmFyaWFudD4oKSkgewogICAgICAgICAg
ICAgICAgIGlmICh2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChkaXN0YW5jZSkKQEAgLTg5OCw2ICs5MTgsMTcgQEAgSlNWYWx1ZSBjb252ZXJ0UVZh
cmlhbnRUb1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxSb290T2JqZWN0PiByb290
LCBjb24KICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgdG9KU0RPTUdsb2JhbE9iamVjdChkb2N1
bWVudCwgZXhlYyksIFF0V2ViRWxlbWVudFJ1bnRpbWU6OmdldCh2YXJpYW50LnZhbHVlPFFXZWJF
bGVtZW50PigpKSk7CiAgICAgfQogCisgICAgaWYgKHR5cGUgPT0gcU1ldGFUeXBlSWQ8UURSVE5v
ZGU+KCkpIHsKKyAgICAgICAgaWYgKCFyb290LT5nbG9iYWxPYmplY3QoKS0+aW5oZXJpdHMoJkpT
RE9NV2luZG93OjpzX2luZm8pKQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisK
KyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gKHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4o
cm9vdC0+Z2xvYmFsT2JqZWN0KCkpKS0+aW1wbCgpLT5kb2N1bWVudCgpOworICAgICAgICBpZiAo
IWRvY3VtZW50KQorICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisKKyAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgdG9KU0RPTUdsb2JhbE9iamVjdChkb2N1bWVudCwgZXhlYyksIFF0
RFJUTm9kZVJ1bnRpbWU6OmdldCh2YXJpYW50LnZhbHVlPFFEUlROb2RlPigpKSk7CisgICAgfQor
CiAgICAgaWYgKHR5cGUgPT0gUU1ldGFUeXBlOjpRVmFyaWFudE1hcCkgewogICAgICAgICAvLyBj
cmVhdGUgYSBuZXcgb2JqZWN0LCBhbmQgc3R1ZmYgcHJvcGVydGllcyBpbnRvIGl0CiAgICAgICAg
IEpTT2JqZWN0KiByZXQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGZiNjgyODM4
MDMzZDY1MGVkMmRkZGQ4Y2UyYmY4Mzg3YzQxOGVkZjUuLjM3NjAxY2ZiNThiZjI0NDg3N2YzY2Y2
YTVmMDIyZDUxYjkyMjc2ZjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTAxLTA0ICBSb2JlcnQg
SG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlv
IEdvbWVzLgorCisgICAgICAgIFtRdF0gSW50cm9kdWNlIFFEUlROb2RlIGZvciBwYXNzaW5nIFdl
YkNvcmU6Ok5vZGUgYWNyb3NzIEpTIGJyaWRnZQorCisgICAgICAgIFRoaXMgYWxsb3dzIExheW91
dFRlc3RDb250cm9sbGVyIHRvIHBhc3MgV2ViQ29yZTo6Tm9kZSBiYWNrIHRvCisgICAgICAgIGxh
eW91dCB0ZXN0cy4KKworICAgICAgICBBbHNvIGFtZW5kIG5vZGVzRnJvbVJlY3QtbGlua3MtYW5k
LXRleHQuaHRtbCBhbmQKKyAgICAgICAgbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRt
bCBzbyB0aGF0IHRoZXkgZG8gbm90IHByb2R1Y2UKKyAgICAgICAgcGxhdGZvcm0tc3BlY2lmaWMg
cmVzdWx0cy4KKworICAgICAgICBVbnNraXA6CisgICAgICAgIGZhc3QvZG9tL25vZGVzRnJvbVJl
Y3QtbGlua3MtYW5kLXRleHQuaHRtbAorICAgICAgICBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0LWlu
bmVyLWRvY3VtZW50cy5odG1sCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ4OTU3CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChRRFJUTm9kZTo6UURSVE5vZGUpOgorICAgICAg
ICAoUURSVE5vZGU6On5RRFJUTm9kZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6bm9kZXNGcm9tUmVjdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuaDoKKwogMjAxMS0wMS0wMiAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0u
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHAKaW5kZXggNzU0YjIwYWViZjJmNDI0NzM5Njg3ZWExNWY5M2IwMzViZWE1ZDljZC4uZTk1
ODc1MTViZTlhZjk3NmUzYzI2ZWZkM2RhYTdjMzY3YzE0ZGJkYiAxMDA2NDQKLS0tIGEvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC04Miw2
ICs4MiwyNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUU1hcDxpbnQsIFFXZWJTY3Jp
cHRXb3JsZCo+IG1fd29ybGRNYXA7CiAKK1FEUlROb2RlOjpRRFJUTm9kZSgpCisgICAgOiBtX25v
ZGUoMCkKK3sKK30KKworUURSVE5vZGU6OlFEUlROb2RlKFdlYkNvcmU6Ok5vZGUqIG5vZGUpCisg
ICAgOiBtX25vZGUoMCkKK3sKKyAgICBpZiAobm9kZSkgeworICAgICAgICBtX25vZGUgPSBub2Rl
OworICAgICAgICBtX25vZGUtPnJlZigpOworICAgIH0KK30KKworUURSVE5vZGU6On5RRFJUTm9k
ZSgpCit7CisgICAgaWYgKG1fbm9kZSkKKyAgICAgICAgbV9ub2RlLT5kZXJlZigpOworfQorCisK
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdCgpCiB7CiB9
CkBAIC04NTQsNyArODc1LDEwIEBAIFFWYXJpYW50TGlzdCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6bm9kZXNGcm9tUmVjdChjb25zdCBRV2ViRWxlbWVudCYgZG9jdW1lbnQsCiAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBub2Rlcy0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICBRVmFyaWFudCB2
OwogICAgICAgICAvLyBRV2ViRWxlbWVudCB3aWxsIGJlIG51bGwgaWYgdGhlIE5vZGUgaXMgbm90
IGFuIEhUTUwgRWxlbWVudAotICAgICAgICB2LnNldFZhbHVlKFFXZWJFbGVtZW50KG5vZGVzLT5p
dGVtKGkpKSk7CisgICAgICAgIGlmIChub2Rlcy0+aXRlbShpKS0+aXNIVE1MRWxlbWVudCgpKQor
ICAgICAgICAgICAgdi5zZXRWYWx1ZShRV2ViRWxlbWVudChub2Rlcy0+aXRlbShpKSkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB2LnNldFZhbHVlKFFEUlROb2RlKG5vZGVzLT5pdGVtKGkp
KSk7CiAgICAgICAgIHJlcyA8PCB2OwogICAgIH0KICAgICByZXR1cm4gcmVzOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCBl
MDhkOTYyMWQ4OGE0NDFlNDAwODU0NGY4MjE1ZDJlZDBhYjk4ODVmLi42OTE3MDM5Y2NlN2I3OTEw
ZTg5YTFjMTE4YjA5NzNlNGE4YmU3NWVmIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMjYsNiArMjYsMjYgQEAKICNpbmNs
dWRlICJxd2Via2l0Z2xvYmFsLmgiCiAjaW5jbHVkZSA8UVZhcmlhbnQ+CiAKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIFRleHQ7CitjbGFzcyBOb2RlOworfQorCisKKyNpZiBkZWZpbmVkKFdU
Rl9VU0VfVjgpICYmIFdURl9VU0VfVjgKK25hbWVzcGFjZSBWOCB7CituYW1lc3BhY2UgQmluZGlu
Z3MgeworY2xhc3MgUXREUlROb2RlUnVudGltZTsKK30KK30KKyNlbHNlCituYW1lc3BhY2UgSlND
IHsKK25hbWVzcGFjZSBCaW5kaW5ncyB7CitjbGFzcyBRdERSVE5vZGVSdW50aW1lOworfQorfQor
I2VuZGlmCisKIGNsYXNzIFFXZWJFbGVtZW50OwogY2xhc3MgUVdlYkZyYW1lOwogY2xhc3MgUVdl
YlBhZ2U7CkBAIC0zNCw2ICs1NCwyOCBAQCBjbGFzcyBRV2ViU2NyaXB0V29ybGQ7CiAKIGV4dGVy
biBRTWFwPGludCwgUVdlYlNjcmlwdFdvcmxkKj4gbV93b3JsZE1hcDsKIAorLy8gVXNlZCB0byBw
YXNzIFdlYkNvcmU6Ok5vZGUncyB0byBsYXlvdXQgdGVzdHMgdXNpbmcgTGF5b3V0VGVzdENvbnRy
b2xsZXIKK2NsYXNzIFFXRUJLSVRfRVhQT1JUIFFEUlROb2RlIHsKK3B1YmxpYzoKKyAgICBRRFJU
Tm9kZSgpOworICAgIH5RRFJUTm9kZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFFEUlRO
b2RlKFdlYkNvcmU6Ok5vZGUqKTsKKworICAgIGZyaWVuZCBjbGFzcyBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDsKKworI2lmIGRlZmluZWQoV1RGX1VTRV9WOCkgJiYgV1RGX1VTRV9WOAorICAgIGZy
aWVuZCBjbGFzcyBWODo6QmluZGluZ3M6OlF0RFJUTm9kZVJ1bnRpbWU7CisjZWxzZQorICAgIGZy
aWVuZCBjbGFzcyBKU0M6OkJpbmRpbmdzOjpRdERSVE5vZGVSdW50aW1lOworI2VuZGlmCisKKyAg
ICBXZWJDb3JlOjpOb2RlKiBtX25vZGU7Cit9OworCitRX0RFQ0xBUkVfTUVUQVRZUEUoUURSVE5v
ZGUpCisKIGNsYXNzIFFXRUJLSVRfRVhQT1JUIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0IHsKIAog
cHVibGljOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>