<?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>100397</bug_id>
          
          <creation_ts>2012-10-25 10:57:45 -0700</creation_ts>
          <short_desc>Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement</short_desc>
          <delta_ts>2012-10-26 13:37:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Elliott Sprehn">esprehn</reporter>
          <assigned_to name="Elliott Sprehn">esprehn</assigned_to>
          <cc>aestes</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>751016</commentid>
    <comment_count>0</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 10:57:45 -0700</bug_when>
    <thetext>Eliminate setRenderStyle, you really want setNonRendererRenderStyle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751044</commentid>
    <comment_count>1</comment_count>
      <attachid>170692</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 11:25:09 -0700</bug_when>
    <thetext>Created attachment 170692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751052</commentid>
    <comment_count>2</comment_count>
      <attachid>170692</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-25 11:32:49 -0700</bug_when>
    <thetext>Comment on attachment 170692
Patch

Attachment 170692 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14563677</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751056</commentid>
    <comment_count>3</comment_count>
      <attachid>170692</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-25 11:34:09 -0700</bug_when>
    <thetext>Comment on attachment 170692
Patch

Attachment 170692 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14543745</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751059</commentid>
    <comment_count>4</comment_count>
      <attachid>170697</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 11:37:15 -0700</bug_when>
    <thetext>Created attachment 170697
Patch

Try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751086</commentid>
    <comment_count>5</comment_count>
      <attachid>170697</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-25 12:00:43 -0700</bug_when>
    <thetext>Comment on attachment 170697
Patch

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

Nice cleanup!

&gt; Source/WebCore/ChangeLog:8
&gt; +        Introduce a new method setNonRendererRenderStyle that more explicitly does

Bikeshed nit: setNonRendererStyle. It&apos;s less verbose and consistent with setStyleInternal and setAnimatableStyle.

&gt; Source/WebCore/ChangeLog:14
&gt; +        also hides the if statement protecting against null rendererers meaning we end up

typo: rendererers

&gt; Source/WebCore/ChangeLog:21
&gt; +

You need to update the list below. Specifically, it&apos;s missing the removal of setRenderStyle. I think that deserves a comment explaining why it&apos;s being removed.

&gt; Source/WebCore/ChangeLog:26
&gt; +        (WebCore::Element::pseudoStyleCacheIsInvalid):

Might be worth nothing that the only place this is called is in Element::recalcStyle.

&gt; Source/WebCore/dom/Element.cpp:1168
&gt; +                renderer-&gt;setAnimatableStyle(newStyle.get());

Technically, this is a one-line control clause and should not have curlies. May as well fix it while you&apos;re in this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751104</commentid>
    <comment_count>6</comment_count>
      <attachid>170697</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-25 12:18:50 -0700</bug_when>
    <thetext>Comment on attachment 170697
Patch

Attachment 170697 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14563685</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751205</commentid>
    <comment_count>7</comment_count>
      <attachid>170697</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-25 14:21:14 -0700</bug_when>
    <thetext>Comment on attachment 170697
Patch

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

&gt; Source/WebCore/dom/Node.h:533
&gt; +    virtual void setNonRendererRenderStyle(PassRefPtr&lt;RenderStyle&gt;) { };

I wouldn&apos;t bother even putting this in the header.  I don&apos;t see the advantage of it being inlined on gcc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751221</commentid>
    <comment_count>8</comment_count>
      <attachid>170697</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-25 14:42:14 -0700</bug_when>
    <thetext>Comment on attachment 170697
Patch

Attachment 170697 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14544751

New failing tests:
fast/text/international/pop-up-button-text-alignment-and-direction.html
fast/text/international/bidi-menulist.html
fast/repaint/control-clip.html
fast/events/tabindex-focus-blur-all.html
fast/forms/select/optgroup-rendering.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751227</commentid>
    <comment_count>9</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-25 14:48:34 -0700</bug_when>
    <thetext>These look like real failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751324</commentid>
    <comment_count>10</comment_count>
      <attachid>170760</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 16:08:49 -0700</bug_when>
    <thetext>Created attachment 170760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751327</commentid>
    <comment_count>11</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 16:09:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=170760) [details]
&gt; Patch

Want to look again Ojan? Turns out we need a little more finesse to make this work, but in the end this eliminates more virtual calls and that if else tree in recalcStyle turns out to actually only be 2 cases. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751328</commentid>
    <comment_count>12</comment_count>
      <attachid>170760</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-25 16:13:01 -0700</bug_when>
    <thetext>Comment on attachment 170760
Patch

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

&gt; Source/WebCore/dom/Element.cpp:1157
&gt; +        } else if (usesNonRendererStyle())

So this is now an extra virtual call in teh no-renderer case.  I&apos;m not sure how often we recalc style and don&apos;t have renderers (if at all).

It&apos;s interesting that SVGGradientStops already do somethign like this but w/o hacking into the normal recalc style.  They force their own recalc when their style is needed instead of signing up for a non-renderer style like this.  I&apos;m not sure which method is better, but we clearly don&apos;t need 2 in the long run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751367</commentid>
    <comment_count>13</comment_count>
      <attachid>170760</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-25 17:29:14 -0700</bug_when>
    <thetext>Comment on attachment 170760
Patch

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

&gt; Source/WebCore/ChangeLog:31
&gt; +        (Element):

Best to delete bogus lines like this even if the change log script spits them out.

&gt; Source/WebCore/ChangeLog:40
&gt; +        (Node):

Best to delete bogus lines like this even if the change log script spits them out.

&gt; Source/WebCore/ChangeLog:47
&gt; +        (WebCore):

Best to delete bogus lines like this even if the change log script spits them out.

&gt; Source/WebCore/WebCore.order:1540
&gt; -__ZN7WebCore4Node14setRenderStyleEN3WTF10PassRefPtrINS_11RenderStyleEEE
&gt; +__ZN7WebCore4Node25setNonRendererRenderStyleEN3WTF10PassRefPtrINS_11RenderStyleEEE

No need to edit order files. They are regenerated periodically and need not be maintained by hand.

&gt; Source/WebCore/html/HTMLOptGroupElement.h:58
&gt; +    virtual RenderStyle* nonRendererStyle() const;

Need OVERRIDE here.

&gt; Source/WebCore/html/HTMLOptionElement.h:86
&gt; +    virtual RenderStyle* nonRendererStyle() const;

Need OVERRIDE here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751445</commentid>
    <comment_count>14</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 19:04:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 170760 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170760&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:1157
&gt; &gt; +        } else if (usesNonRendererStyle())
&gt; 
&gt; So this is now an extra virtual call in teh no-renderer case.  I&apos;m not sure how often we recalc style and don&apos;t have renderers (if at all).
&gt; 
&gt; It&apos;s interesting that SVGGradientStops already do somethign like this but w/o hacking into the normal recalc style.  They force their own recalc when their style is needed instead of signing up for a non-renderer style like this.  I&apos;m not sure which method is better, but we clearly don&apos;t need 2 in the long run.

It&apos;s actually not an extra. We always made virtual calls before for setRenderStyle, now we only make them for the no-renderer case. So it&apos;s not any worse than before :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751454</commentid>
    <comment_count>15</comment_count>
      <attachid>170787</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 19:31:05 -0700</bug_when>
    <thetext>Created attachment 170787
Patch

Fix comments from darin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751476</commentid>
    <comment_count>16</comment_count>
      <attachid>170794</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 20:10:25 -0700</bug_when>
    <thetext>Created attachment 170794
Patch

Clean up of NodeRenderingContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751496</commentid>
    <comment_count>17</comment_count>
      <attachid>170794</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-25 20:46:54 -0700</bug_when>
    <thetext>Comment on attachment 170794
Patch

Attachment 170794 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14544876</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751547</commentid>
    <comment_count>18</comment_count>
      <attachid>170813</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-25 22:23:28 -0700</bug_when>
    <thetext>Created attachment 170813
Patch

If you stare at it long enough the simplest solution jumps out at you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751561</commentid>
    <comment_count>19</comment_count>
      <attachid>170813</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-25 22:45:26 -0700</bug_when>
    <thetext>Comment on attachment 170813
Patch

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

This looks great. I&apos;ll leave it in the review queue for now so others have a chance to take a look in case I&apos;m missing something. Otherwise, I&apos;ll r+ tomorrow.

&gt; Source/WebCore/html/HTMLOptGroupElement.cpp:121
&gt; +    updateNonRenderStyle();

This maybe deserve a comment explaining that we update the member variable here to avoid needing to have a virtual setRenderStyle called during recalcStyle. These two new instances are the only times we actually set m_style in customStyleForRenderer. I think this only works because these element types don&apos;t ever have renderers, right? Might be worth mentioning that in the comment as well.

&gt; Source/WebCore/html/HTMLOptionElement.cpp:321
&gt; +    updateNonRenderStyle();

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751803</commentid>
    <comment_count>20</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-26 03:42:01 -0700</bug_when>
    <thetext>I ran the html5-full-render.html perf test and there&apos;s no change, so it&apos;s a good clean up but doesn&apos;t seem to buy us much in recalcStyle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752144</commentid>
    <comment_count>21</comment_count>
      <attachid>170948</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-26 09:48:34 -0700</bug_when>
    <thetext>Created attachment 170948
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752146</commentid>
    <comment_count>22</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-26 09:52:11 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=170948) [details]
&gt; Patch for landing

I added some comments explaining what&apos;s going on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752236</commentid>
    <comment_count>23</comment_count>
      <attachid>170976</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-26 11:48:38 -0700</bug_when>
    <thetext>Created attachment 170976
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752280</commentid>
    <comment_count>24</comment_count>
      <attachid>170976</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 12:28:59 -0700</bug_when>
    <thetext>Comment on attachment 170976
Patch for landing

Clearing flags on attachment: 170976

Committed r132684: &lt;http://trac.webkit.org/changeset/132684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752281</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 12:29:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752313</commentid>
    <comment_count>26</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-10-26 13:10:23 -0700</bug_when>
    <thetext>This broke the Apple Windows build. See &lt;http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/56914/steps/compile-webkit/logs/stdio&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752335</commentid>
    <comment_count>27</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-26 13:37:13 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; This broke the Apple Windows build. See &lt;http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/56914/steps/compile-webkit/logs/stdio&gt;.

All those symbols are totally gone from the codebase so this is something weird on the bot. 

I created https://bugs.webkit.org/show_bug.cgi?id=100556 that touches all the files it references, hopefully that makes the bot fix itself.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170692</attachid>
            <date>2012-10-25 11:25:09 -0700</date>
            <delta_ts>2012-10-25 11:36:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100397-20121025112337.patch</filename>
            <type>text/plain</type>
            <size>13798</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxM2ZjZTc3ZjY1YTRk
NzUxNWRhNTBmNzY2ZjZhNjhjMGE5NTk2Ny4uMzFmMzU4MGFjYjRmNThjMGUzZjAyMGE4ODA3Y2Q1
NGYyNzIyMDA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsaW1pbmF0ZSBz
ZXRSZW5kZXJTdHlsZSwgeW91IHJlYWxseSB3YW50IHNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDM5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVj
ZSBhIG5ldyBtZXRob2Qgc2V0Tm9uUmVuZGVyZXJSZW5kZXJTdHlsZSB0aGF0IG1vcmUgZXhwbGlj
aXRseSBkb2VzCisgICAgICAgIHdoYXQgb3ZlcnJpZGVzIG9mIHNldFJlbmRlclN0eWxlIHdlcmUg
aW50ZW5kZWQgdG8gZG8uCisKKyAgICAgICAgc2V0UmVuZGVyU3R5bGUgb25seSBleGlzdGVkIHRv
IHN1cHBvcnQgSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxPcHRHcm91cEVsZW1lbnQKKyAgICAg
ICAgc28gdGhleSBjb3VsZCBzdG9yZSB0aGVpciBSZW5kZXJTdHlsZSBldmVuIHRob3VnaCB0aGV5
IGhhdmUgbm8gcmVuZGVyZXIuIFRoaXMKKyAgICAgICAgbWVhbnMgYWxsIHN0eWxlIHNldHRpbmcg
d2VudCB0aHJvdWdoIHRoZSB2aXJ0dWFsIGNhbGwgdG8gc2V0UmVuZGVyU3R5bGUsIGFuZCBpdAor
ICAgICAgICBhbHNvIGhpZGVzIHRoZSBpZiBzdGF0ZW1lbnQgcHJvdGVjdGluZyBhZ2FpbnN0IG51
bGwgcmVuZGVyZXJlcnMgbWVhbmluZyB3ZSBlbmQgdXAKKyAgICAgICAgY2hlY2tpbmcgaWYgdGhl
IHJlbmRlcmVyIGlzIG51bGwgcmVwZWF0ZWRseSBpbiByZWNhbGNTdHlsZS4gVGhpcyByZWZhY3Rv
ciBjbGVhbnMKKyAgICAgICAgdXAgcmVjYWxjU3R5bGUgdG8gYmUgbW9yZSBjbGVhciBhYm91dCB3
aGF0J3MgZ29pbmcgb24uCisKKyAgICAgICAgSW50cm9kdWNpbmcgc2V0Tm9uUmVuZGVyZXJSZW5k
ZXJTdHlsZSBhbHNvIGFsbG93cyB1cyB0byBlbGltaW5hdGUgdGhlIG92ZXJyaWRlcworICAgICAg
ICBvZiBhdHRhY2goKSBvbiBIVE1MT3B0aW9uRWxlbWVudCBhbmQgSFRNTE9wdEdyb3VwRWxlbWVu
dCByZW1vdmluZyBhIGR1cGxpY2F0ZQorICAgICAgICBjYWxsIHRvIHN0eWxlRm9yUmVuZGVyZXIo
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhIHJlZmFjdG9yLgorCisg
ICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBkb20vTm9kZS5j
cHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6c2V0Tm9uUmVuZGVyZXJSZW5kZXJTdHlsZSk6IENhbGxlZCBvbiBOb2RlcyB0
aGF0IGhhdmUgbm8gcmVuZGVyZXIuCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRl
cmVySWZOZWVkZWQpOgorICAgICAgICAgICAgQ2FsbCBzZXROb25SZW5kZXJlclJlbmRlclN0eWxl
IHdoZW4gdGhlcmUncyBubyByZW5kZXJlci4gVGhpcyBlbGltaW5hdGVzCisgICAgICAgICAgICB0
aGUgZHVwbGljYXRlIGNhbGwgdG8gc3R5bGVGb3JSZW5kZXJlcigpIGluIEhUTUxPcHRpb25FbGVt
ZW50IGFuZAorICAgICAgICAgICAgSFRNTE9wdEdyb3VwRWxlbWVudCBkdXJpbmcgYXR0YWNoKCku
CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUpOiBSZW5h
bWUgZnJvbSBzZXRSZW5kZXJTdHlsZS4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxPcHRHcm91cEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6
OnNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUpOiBSZW5hbWUgZnJvbSBzZXRSZW5kZXJTdHlsZS4K
KyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmg6CisgICAgICAgIChIVE1MT3B0aW9u
RWxlbWVudCk6CisKIDIwMTItMTAtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4ZWQgV2luZG93cyBwYXRoIGZvciBTaGFyZWRXb3JrZXJTdHJhdGVn
eS5oIC0gaXQncyBpbiB3b3JrZXJzLywgbm90IHBsYXRmb3JtLy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmlu
ZGV4IDUwM2ViZDczMTNmNjUzM2Q4MDEwOGQ4ZDkxMjQyN2M4OTlkMWFiMDUuLjllZjFjYzE1OTky
ZjVlYTFlNGIwZGNlYmQ1YjgzZTFmMDZmMzlhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTUz
Nyw3ICsxNTM3LDcgQEAgX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUxNmxvZ2ljYWxNaW5IZWln
aHRFdgogX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUxNmxvZ2ljYWxNYXhIZWlnaHRFdgogX19a
TjdXZWJDb3JlN0VsZW1lbnQxMXJlY2FsY1N0eWxlRU5TXzROb2RlMTFTdHlsZUNoYW5nZUUKIF9f
Wk5LN1dlYkNvcmUxMlN0eWxlQm94RGF0YWVxRVJLUzBfCi1fX1pON1dlYkNvcmU0Tm9kZTE0c2V0
UmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHlsZUVFRQorX19aTjdX
ZWJDb3JlNE5vZGUyNXNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfMTFSZW5kZXJTdHlsZUVFRQogX19aTjdXZWJDb3JlMTNSZW5kZXJDb3VudGVyMjByZW5kZXJl
clN0eWxlQ2hhbmdlZEVQTlNfMTJSZW5kZXJPYmplY3RFUEtOU18xMVJlbmRlclN0eWxlRVM1Xwog
X19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QzM3NldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1Jl
Y2FsY0V2CiBfX1pON1dlYkNvcmU3RWxlbWVudDZkZXRhY2hFdgpAQCAtNTA1NSw5ICs1MDU1LDgg
QEAgX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudDE4c2V0UmVjYWxjTGlzdEl0ZW1zRXYK
IF9fWk43V2ViQ29yZTE3SFRNTFNlbGVjdEVsZW1lbnQxN3Njcm9sbFRvU2VsZWN0aW9uRXYKIF9f
Wk43V2ViQ29yZTEzU2VsZWN0RWxlbWVudDE3c2Nyb2xsVG9TZWxlY3Rpb25FUk5TXzE3U2VsZWN0
RWxlbWVudERhdGFFUE5TXzdFbGVtZW50RQogX19aTjdXZWJDb3JlMTNSZW5kZXJMaXN0Qm94MTZz
ZWxlY3Rpb25DaGFuZ2VkRXYKLV9fWk43V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQ2YXR0YWNo
RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxPcHRpb25FbGVtZW50OGRpc2FibGVkRXYKLV9fWk43V2Vi
Q29yZTE3SFRNTE9wdGlvbkVsZW1lbnQxNHNldFJlbmRlclN0eWxlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzExUmVuZGVyU3R5bGVFRUUKK19fWk43V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQyNXNl
dE5vblJlbmRlcmVyUmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHls
ZUVFRQogX19aTjdXZWJDb3JlMTdIVE1MT3B0aW9uRWxlbWVudDE1Y2hpbGRyZW5DaGFuZ2VkRWJQ
TlNfNE5vZGVFUzJfaQogX19aTks3V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQyMm5vblJlbmRl
cmVyUmVuZGVyU3R5bGVFdgogX19aTks3V2ViQ29yZTE2SFRNTEVsZW1lbnRTdGFjazEzaW5TZWxl
Y3RTY29wZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCkBAIC0xMjQ4Myw4ICsxMjQ4Miw3IEBAIF9f
Wk43V2ViQ29yZUwxOW9wdGdyb3VwQ29uc3RydWN0b3JFUktOU18xM1F1YWxpZmllZE5hbWVFUE5T
XzhEb2N1bWVudEVQTlNfMTVIVE1MCiBfX1pON1dlYkNvcmUxOUhUTUxPcHRHcm91cEVsZW1lbnQ2
Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1F
bGVtZW50RQogX19aTjdXZWJDb3JlMTlIVE1MT3B0R3JvdXBFbGVtZW50MjBwYXJzZU1hcHBlZEF0
dHJpYnV0ZUVQTlNfOUF0dHJpYnV0ZUUKIF9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVu
dDE5cmVjYWxjU2VsZWN0T3B0aW9uc0V2Ci1fX1pON1dlYkNvcmUxOUhUTUxPcHRHcm91cEVsZW1l
bnQ2YXR0YWNoRXYKLV9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE0c2V0UmVuZGVy
U3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHlsZUVFRQorX19aTjdXZWJDb3Jl
MTlIVE1MT3B0R3JvdXBFbGVtZW50MjVzZXROb25SZW5kZXJlclJlbmRlclN0eWxlRU4zV1RGMTBQ
YXNzUmVmUHRySU5TXzExUmVuZGVyU3R5bGVFRUUKIF9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3Vw
RWxlbWVudDE1Y2hpbGRyZW5DaGFuZ2VkRWJQTlNfNE5vZGVFUzJfaQogX19aTks3V2ViQ29yZTE5
SFRNTE9wdEdyb3VwRWxlbWVudDIybm9uUmVuZGVyZXJSZW5kZXJTdHlsZUV2CiBfX1pON1dlYkNv
cmVMMzJjcmVhdGVIVE1MT3B0R3JvdXBFbGVtZW50V3JhcHBlckVQTjNKU0M5RXhlY1N0YXRlRVBO
U18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RGMTBQYXNzUmVmUHRySU5TXzExSFRNTEVsZW1lbnRF
RUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlODQ1NmY3MDQwYzcyMWFkZWY0ZDI0MjE2NTM4
YmJiNzI0Y2Y1MjcwLi40YWVmZTg2Nzc3NmU0NmZmMjE3YWFmYjUxNTMzYmM3MzUzNDQwNzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDYyLDggKzEwNjIsOSBAQCB2b2lkIEVsZW1lbnQ6
OmRldGFjaCgpCiBib29sIEVsZW1lbnQ6OnBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY29uc3Qg
UmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewogICAg
IEFTU0VSVChjdXJyZW50U3R5bGUgPT0gcmVuZGVyU3R5bGUoKSk7CisgICAgQVNTRVJUKHJlbmRl
cmVyKCkpOwogCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFjdXJyZW50U3R5bGUpCisgICAgaWYg
KCFjdXJyZW50U3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IFBzZXVk
b1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50U3R5bGUtPmNhY2hlZFBzZXVk
b1N0eWxlcygpOwpAQCAtMTExMyw3ICsxMTE0LDcgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Ly8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVk
IHdoZW4gc2V0UmVuZGVyU3R5bGUoKSBpcyBjYWxsZWQuCisgICAgLy8gUmVmIGN1cnJlbnRTdHls
ZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVkIHdoZW4gc2V0dGluZyB0aGUg
bmV3IHN0eWxlIGluIHRoZSByZW5kZXJlci4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJl
bnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKICAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgPyBzdGF0aWNfY2FzdDxib29sPihwYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKSkgOiBmYWxzZTsKICAgICBib29s
IGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5j
aGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CkBAIC0xMTYyLDE3ICsxMTYz
LDE3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAg
ICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2Vu
dFJ1bGVzKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY2ggIT0gTm9DaGFuZ2UgfHwgcHNl
dWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgp
KSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+cmVxdWly
ZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7Ci0gICAgICAgICAgICBzZXRSZW5k
ZXJTdHlsZShuZXdTdHlsZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAobmVlZHNTdHlsZVJlY2FsYygp
ICYmIHN0eWxlQ2hhbmdlVHlwZSgpICE9IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKSB7Ci0gICAgICAg
ICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3IHN0eWxl
IHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0Ci0gICAgICAg
ICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KLSAg
ICAgICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNl
dFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0KCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5ld1N0eWxlKTsKLSAgICAgICAgfSBlbHNlIGlmIChz
dHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkKLSAgICAgICAgICAgICBz
ZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7CisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKGNoICE9IE5vQ2hhbmdl
IHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY3VycmVudFN0eWxlLmdldCgpLCBuZXdTdHls
ZS5nZXQoKSkgfHwgKGNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3JjZWRT
dHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNl
dEFuaW1hdGFibGVTdHlsZShuZXdTdHlsZS5nZXQoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KG5lZWRzU3R5bGVSZWNhbGMoKSAmJiBzdHlsZUNoYW5nZVR5cGUoKSAhPSBTeW50aGV0aWNTdHls
ZUNoYW5nZSkgeworICAgICAgICAgICAgICAgIC8vIEFsdGhvdWdoIG5vIGNoYW5nZSBvY2N1cnJl
ZCwgd2UgdXNlIHRoZSBuZXcgc3R5bGUgc28gdGhhdCB0aGUgY291c2luIHN0eWxlIHNoYXJpbmcg
Y29kZSB3b24ndCBnZXQKKyAgICAgICAgICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcg
dGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KKyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5
bGVJbnRlcm5hbChuZXdTdHlsZS5nZXQoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxl
Q2hhbmdlVHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQorICAgICAgICAgICAgICAgIHJl
bmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUobmV3U3R5bGUuZ2V0KCkpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUobmV3U3R5bGUuZ2V0KCkp
OwogCiAgICAgICAgIC8vIElmICJyZW0iIHVuaXRzIGFyZSB1c2VkIGFueXdoZXJlIGluIHRoZSBk
b2N1bWVudCwgYW5kIGlmIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXplIGNoYW5nZXMs
IHRoZW4gZ28gYWhlYWQgYW5kIGZvcmNlIGZvbnQgdXBkYXRpbmcKICAgICAgICAgLy8gYWxsIHRo
ZSB3YXkgZG93biB0aGUgdHJlZS4gVGhpcyBpcyBzaW1wbGVyIHRoYW4gaGF2aW5nIHRvIG1haW50
YWluIGEgY2FjaGUgb2Ygb2JqZWN0cyAoYW5kIHN1Y2ggZm9udCBzaXplIGNoYW5nZXMgc2hvdWxk
IGJlIHJhcmUgYW55d2F5KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxNzBlZTM3MzdlNGQ1NmEzZjU3
ZTE5YTA2OGJiN2ExNDk4N2Y1ODZjLi4wYmU2ZGZmYzQwM2FlNDgyZjhkOTk5YzcyYTAzMTI0ZjFm
NmM4YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xNDIxLDEyICsxNDIxLDYgQEAgUmVuZGVyU3R5
bGUqIE5vZGU6Om5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKSBjb25zdAogICAgIHJldHVybiAwOyAK
IH0gICAKIAotdm9pZCBOb2RlOjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBzKQotewotICAgIGlmIChtX3JlbmRlcmVyKQotICAgICAgICBtX3JlbmRlcmVyLT5zZXRBbmlt
YXRhYmxlU3R5bGUocyk7IAotfQotCiBSZW5kZXJTdHlsZSogTm9kZTo6dmlydHVhbENvbXB1dGVk
U3R5bGUoUHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmllcikKIHsKICAgICByZXR1cm4gcGFy
ZW50T3JIb3N0Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgpLT5jb21wdXRlZFN0eWxlKHBzZXVk
b0VsZW1lbnRTcGVjaWZpZXIpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDAzNWFiYjM0ZTk0NjEyOWI1
YTRlZmI4MjQ0ODBiNzIwYWEyZTUxMDEuLjEzMjYxOWI1MzU4OTcyNWNhNWNiZDA3YzdiNzYxODJh
ODFlMGIxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTMwLDcgKzUzMCw2IEBAIHB1YmxpYzoKICAgICAK
ICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwgYnV0
IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAgUmVu
ZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRl
clN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKIAogICAgIFJlbmRlclN0eWxlKiBjb21w
dXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPSBOT1BTRVVETykgeyBy
ZXR1cm4gdmlydHVhbENvbXB1dGVkU3R5bGUocHNldWRvRWxlbWVudFNwZWNpZmllcik7IH0KIApA
QCAtNzU5LDYgKzc1OCw4IEBAIHByb3RlY3RlZDoKIAogICAgIERvY3VtZW50KiBkb2N1bWVudElu
dGVybmFsKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogCisgICAgdmlydHVhbCB2b2lk
IHNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pIHsgfTsK
KwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgVHJlZVNoYXJlZDxOb2RlLCBDb250YWluZXJO
b2RlPjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggMjFmMWMzZjg5OWZiMDkzZmJmZmI4MjQ2MWFjMWUwYzViNTNhODE5ZC4uNGVkOGI0Mzk3MThh
MjEwZDcwY2I0NWEwNTY2NGFmMmU4YjY2NWE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0yNDIsNiArMjQyLDcgQEAgdm9pZCBOb2RlUmVuZGVy
ZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICBpZiAoIW5vZGUtPnJlbmRl
cmVySXNOZWVkZWQobV9jb250ZXh0KSkgewogICAgICAgICBpZiAoZWxlbWVudCAmJiBtX2NvbnRl
eHQuc3R5bGUoKS0+YWZmZWN0ZWRCeUVtcHR5KCkpCiAgICAgICAgICAgICBlbGVtZW50LT5zZXRT
dHlsZUFmZmVjdGVkQnlFbXB0eSgpOworICAgICAgICBub2RlLT5zZXROb25SZW5kZXJlclJlbmRl
clN0eWxlKG1fY29udGV4dC5zdHlsZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKaW5kZXggMWZmNmE3ZDIy
MWE2NDEwYjY4NzQ5M2I0YTY0MmNhNGI2OTRhMjc4ZC4uODNjYjc5ODQ1MTQ2ZmVhMDk0NzQxODYw
YjJjOTE1YzdhNTMzYzI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVs
ZW1lbnQuY3BwCkBAIC05MiwyMCArOTIsMTMgQEAgdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50Ojpy
ZWNhbGNTZWxlY3RPcHRpb25zKCkKICAgICAgICAgdG9IVE1MU2VsZWN0RWxlbWVudChzZWxlY3Qp
LT5zZXRSZWNhbGNMaXN0SXRlbXMoKTsKIH0KIAotdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50Ojph
dHRhY2goKQotewotICAgIGlmIChwYXJlbnROb2RlKCktPnJlbmRlclN0eWxlKCkpCi0gICAgICAg
IHNldFJlbmRlclN0eWxlKHN0eWxlRm9yUmVuZGVyZXIoKSk7Ci0gICAgSFRNTEVsZW1lbnQ6OmF0
dGFjaCgpOwotfQotCiB2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmRldGFjaCgpCiB7CiAgICAg
bV9zdHlsZS5jbGVhcigpOwogICAgIEhUTUxFbGVtZW50OjpkZXRhY2goKTsKIH0KIAotdm9pZCBI
VE1MT3B0R3JvdXBFbGVtZW50OjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBuZXdTdHlsZSkKK3ZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJSZW5k
ZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKIHsKICAgICBtX3N0eWxl
ID0gbmV3U3R5bGU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5o
CmluZGV4IDBiNDM4NzMwNjEwZTVlZTdkN2U0N2RlODZkMTNiY2ExOTgwMmZjYzkuLmM4MTMzMzA0
OGRlN2Y3YTA3ZTgyY2FlZjcwMzZjNjA0MTc3NzIzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC00OCw5ICs0OCw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
IWRpc2FibGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0
cmlidXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Tm9uUmVuZGVyZXJSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPikg
T1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hh
bmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDhmY2MyMmMyN2ZjNzg4MTE1YWQyMDQ5ZmI4YWQ4
ZDYwODg2YzFiMGUuLmE1MmRjMDFlZTdmYmE5MzNhZWJmMzk2M2Q3M2Q1MmIwNDI1NDllNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC04OCwxMyArODgs
NiBAQCBQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVudDo6Y3Jl
YXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudAogICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2Uo
KTsKIH0KIAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6YXR0YWNoKCkKLXsKLSAgICBpZiAocGFy
ZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZv
clJlbmRlcmVyKCkpOwotICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKLX0KLQogdm9pZCBIVE1M
T3B0aW9uRWxlbWVudDo6ZGV0YWNoKCkKIHsKICAgICBtX3N0eWxlLmNsZWFyKCk7CkBAIC0zMDUs
NyArMjk4LDcgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0TGFiZWwoY29uc3QgU3RyaW5n
JiBsYWJlbCkKICAgICBzZXRBdHRyaWJ1dGUobGFiZWxBdHRyLCBsYWJlbCk7CiB9CiAKLXZvaWQg
SFRNTE9wdGlvbkVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJSZW5kZXJT
dHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKIHsKICAgICBtX3N0eWxlID0g
bmV3U3R5bGU7CiAgICAgaWYgKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBvd25lclNlbGVj
dEVsZW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCmluZGV4
IDI0Y2RjZGI1ZWNiODM5ODNkYWMyYjFkM2ZiZWRjODkwZjE3NzMxMGQuLjljNmMyODBhZjFkOWM4
MTJjOTM0YjQwYjc3ZjRlNjg0ZDIzODQxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25FbGVtZW50LmgKQEAgLTczLDkgKzczLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydHNGb2N1cygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0ZvY3VzYWJsZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJp
bmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7
CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJT
dHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CisgICAgdmlydHVhbCB2b2lkIHNldE5vblJl
bmRlcmVyUmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pIE9WRVJSSURFOwogCiAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURF
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170697</attachid>
            <date>2012-10-25 11:37:15 -0700</date>
            <delta_ts>2012-10-25 16:08:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100397-20121025113543.patch</filename>
            <type>text/plain</type>
            <size>13635</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxM2ZjZTc3ZjY1YTRk
NzUxNWRhNTBmNzY2ZjZhNjhjMGE5NTk2Ny4uMzFmMzU4MGFjYjRmNThjMGUzZjAyMGE4ODA3Y2Q1
NGYyNzIyMDA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsaW1pbmF0ZSBz
ZXRSZW5kZXJTdHlsZSwgeW91IHJlYWxseSB3YW50IHNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDM5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVj
ZSBhIG5ldyBtZXRob2Qgc2V0Tm9uUmVuZGVyZXJSZW5kZXJTdHlsZSB0aGF0IG1vcmUgZXhwbGlj
aXRseSBkb2VzCisgICAgICAgIHdoYXQgb3ZlcnJpZGVzIG9mIHNldFJlbmRlclN0eWxlIHdlcmUg
aW50ZW5kZWQgdG8gZG8uCisKKyAgICAgICAgc2V0UmVuZGVyU3R5bGUgb25seSBleGlzdGVkIHRv
IHN1cHBvcnQgSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxPcHRHcm91cEVsZW1lbnQKKyAgICAg
ICAgc28gdGhleSBjb3VsZCBzdG9yZSB0aGVpciBSZW5kZXJTdHlsZSBldmVuIHRob3VnaCB0aGV5
IGhhdmUgbm8gcmVuZGVyZXIuIFRoaXMKKyAgICAgICAgbWVhbnMgYWxsIHN0eWxlIHNldHRpbmcg
d2VudCB0aHJvdWdoIHRoZSB2aXJ0dWFsIGNhbGwgdG8gc2V0UmVuZGVyU3R5bGUsIGFuZCBpdAor
ICAgICAgICBhbHNvIGhpZGVzIHRoZSBpZiBzdGF0ZW1lbnQgcHJvdGVjdGluZyBhZ2FpbnN0IG51
bGwgcmVuZGVyZXJlcnMgbWVhbmluZyB3ZSBlbmQgdXAKKyAgICAgICAgY2hlY2tpbmcgaWYgdGhl
IHJlbmRlcmVyIGlzIG51bGwgcmVwZWF0ZWRseSBpbiByZWNhbGNTdHlsZS4gVGhpcyByZWZhY3Rv
ciBjbGVhbnMKKyAgICAgICAgdXAgcmVjYWxjU3R5bGUgdG8gYmUgbW9yZSBjbGVhciBhYm91dCB3
aGF0J3MgZ29pbmcgb24uCisKKyAgICAgICAgSW50cm9kdWNpbmcgc2V0Tm9uUmVuZGVyZXJSZW5k
ZXJTdHlsZSBhbHNvIGFsbG93cyB1cyB0byBlbGltaW5hdGUgdGhlIG92ZXJyaWRlcworICAgICAg
ICBvZiBhdHRhY2goKSBvbiBIVE1MT3B0aW9uRWxlbWVudCBhbmQgSFRNTE9wdEdyb3VwRWxlbWVu
dCByZW1vdmluZyBhIGR1cGxpY2F0ZQorICAgICAgICBjYWxsIHRvIHN0eWxlRm9yUmVuZGVyZXIo
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhIHJlZmFjdG9yLgorCisg
ICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKiBkb20vTm9kZS5j
cHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6c2V0Tm9uUmVuZGVyZXJSZW5kZXJTdHlsZSk6IENhbGxlZCBvbiBOb2RlcyB0
aGF0IGhhdmUgbm8gcmVuZGVyZXIuCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRl
cmVySWZOZWVkZWQpOgorICAgICAgICAgICAgQ2FsbCBzZXROb25SZW5kZXJlclJlbmRlclN0eWxl
IHdoZW4gdGhlcmUncyBubyByZW5kZXJlci4gVGhpcyBlbGltaW5hdGVzCisgICAgICAgICAgICB0
aGUgZHVwbGljYXRlIGNhbGwgdG8gc3R5bGVGb3JSZW5kZXJlcigpIGluIEhUTUxPcHRpb25FbGVt
ZW50IGFuZAorICAgICAgICAgICAgSFRNTE9wdEdyb3VwRWxlbWVudCBkdXJpbmcgYXR0YWNoKCku
CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUpOiBSZW5h
bWUgZnJvbSBzZXRSZW5kZXJTdHlsZS4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1l
bnQuaDoKKyAgICAgICAgKEhUTUxPcHRHcm91cEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRN
TE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6
OnNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUpOiBSZW5hbWUgZnJvbSBzZXRSZW5kZXJTdHlsZS4K
KyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmg6CisgICAgICAgIChIVE1MT3B0aW9u
RWxlbWVudCk6CisKIDIwMTItMTAtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4ZWQgV2luZG93cyBwYXRoIGZvciBTaGFyZWRXb3JrZXJTdHJhdGVn
eS5oIC0gaXQncyBpbiB3b3JrZXJzLywgbm90IHBsYXRmb3JtLy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmlu
ZGV4IDUwM2ViZDczMTNmNjUzM2Q4MDEwOGQ4ZDkxMjQyN2M4OTlkMWFiMDUuLjllZjFjYzE1OTky
ZjVlYTFlNGIwZGNlYmQ1YjgzZTFmMDZmMzlhMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTUz
Nyw3ICsxNTM3LDcgQEAgX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUxNmxvZ2ljYWxNaW5IZWln
aHRFdgogX19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUxNmxvZ2ljYWxNYXhIZWlnaHRFdgogX19a
TjdXZWJDb3JlN0VsZW1lbnQxMXJlY2FsY1N0eWxlRU5TXzROb2RlMTFTdHlsZUNoYW5nZUUKIF9f
Wk5LN1dlYkNvcmUxMlN0eWxlQm94RGF0YWVxRVJLUzBfCi1fX1pON1dlYkNvcmU0Tm9kZTE0c2V0
UmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHlsZUVFRQorX19aTjdX
ZWJDb3JlNE5vZGUyNXNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfMTFSZW5kZXJTdHlsZUVFRQogX19aTjdXZWJDb3JlMTNSZW5kZXJDb3VudGVyMjByZW5kZXJl
clN0eWxlQ2hhbmdlZEVQTlNfMTJSZW5kZXJPYmplY3RFUEtOU18xMVJlbmRlclN0eWxlRVM1Xwog
X19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QzM3NldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1Jl
Y2FsY0V2CiBfX1pON1dlYkNvcmU3RWxlbWVudDZkZXRhY2hFdgpAQCAtNTA1NSw5ICs1MDU1LDgg
QEAgX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0RWxlbWVudDE4c2V0UmVjYWxjTGlzdEl0ZW1zRXYK
IF9fWk43V2ViQ29yZTE3SFRNTFNlbGVjdEVsZW1lbnQxN3Njcm9sbFRvU2VsZWN0aW9uRXYKIF9f
Wk43V2ViQ29yZTEzU2VsZWN0RWxlbWVudDE3c2Nyb2xsVG9TZWxlY3Rpb25FUk5TXzE3U2VsZWN0
RWxlbWVudERhdGFFUE5TXzdFbGVtZW50RQogX19aTjdXZWJDb3JlMTNSZW5kZXJMaXN0Qm94MTZz
ZWxlY3Rpb25DaGFuZ2VkRXYKLV9fWk43V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQ2YXR0YWNo
RXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxPcHRpb25FbGVtZW50OGRpc2FibGVkRXYKLV9fWk43V2Vi
Q29yZTE3SFRNTE9wdGlvbkVsZW1lbnQxNHNldFJlbmRlclN0eWxlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzExUmVuZGVyU3R5bGVFRUUKK19fWk43V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQyNXNl
dE5vblJlbmRlcmVyUmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHls
ZUVFRQogX19aTjdXZWJDb3JlMTdIVE1MT3B0aW9uRWxlbWVudDE1Y2hpbGRyZW5DaGFuZ2VkRWJQ
TlNfNE5vZGVFUzJfaQogX19aTks3V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQyMm5vblJlbmRl
cmVyUmVuZGVyU3R5bGVFdgogX19aTks3V2ViQ29yZTE2SFRNTEVsZW1lbnRTdGFjazEzaW5TZWxl
Y3RTY29wZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCkBAIC0xMjQ4Myw4ICsxMjQ4Miw3IEBAIF9f
Wk43V2ViQ29yZUwxOW9wdGdyb3VwQ29uc3RydWN0b3JFUktOU18xM1F1YWxpZmllZE5hbWVFUE5T
XzhEb2N1bWVudEVQTlNfMTVIVE1MCiBfX1pON1dlYkNvcmUxOUhUTUxPcHRHcm91cEVsZW1lbnQ2
Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1F
bGVtZW50RQogX19aTjdXZWJDb3JlMTlIVE1MT3B0R3JvdXBFbGVtZW50MjBwYXJzZU1hcHBlZEF0
dHJpYnV0ZUVQTlNfOUF0dHJpYnV0ZUUKIF9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVu
dDE5cmVjYWxjU2VsZWN0T3B0aW9uc0V2Ci1fX1pON1dlYkNvcmUxOUhUTUxPcHRHcm91cEVsZW1l
bnQ2YXR0YWNoRXYKLV9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE0c2V0UmVuZGVy
U3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHlsZUVFRQorX19aTjdXZWJDb3Jl
MTlIVE1MT3B0R3JvdXBFbGVtZW50MjVzZXROb25SZW5kZXJlclJlbmRlclN0eWxlRU4zV1RGMTBQ
YXNzUmVmUHRySU5TXzExUmVuZGVyU3R5bGVFRUUKIF9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3Vw
RWxlbWVudDE1Y2hpbGRyZW5DaGFuZ2VkRWJQTlNfNE5vZGVFUzJfaQogX19aTks3V2ViQ29yZTE5
SFRNTE9wdEdyb3VwRWxlbWVudDIybm9uUmVuZGVyZXJSZW5kZXJTdHlsZUV2CiBfX1pON1dlYkNv
cmVMMzJjcmVhdGVIVE1MT3B0R3JvdXBFbGVtZW50V3JhcHBlckVQTjNKU0M5RXhlY1N0YXRlRVBO
U18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RGMTBQYXNzUmVmUHRySU5TXzExSFRNTEVsZW1lbnRF
RUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlODQ1NmY3MDQwYzcyMWFkZWY0ZDI0MjE2NTM4
YmJiNzI0Y2Y1MjcwLi40YWVmZTg2Nzc3NmU0NmZmMjE3YWFmYjUxNTMzYmM3MzUzNDQwNzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDYyLDggKzEwNjIsOSBAQCB2b2lkIEVsZW1lbnQ6
OmRldGFjaCgpCiBib29sIEVsZW1lbnQ6OnBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY29uc3Qg
UmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewogICAg
IEFTU0VSVChjdXJyZW50U3R5bGUgPT0gcmVuZGVyU3R5bGUoKSk7CisgICAgQVNTRVJUKHJlbmRl
cmVyKCkpOwogCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFjdXJyZW50U3R5bGUpCisgICAgaWYg
KCFjdXJyZW50U3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IFBzZXVk
b1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50U3R5bGUtPmNhY2hlZFBzZXVk
b1N0eWxlcygpOwpAQCAtMTExMyw3ICsxMTE0LDcgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Ly8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVk
IHdoZW4gc2V0UmVuZGVyU3R5bGUoKSBpcyBjYWxsZWQuCisgICAgLy8gUmVmIGN1cnJlbnRTdHls
ZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVkIHdoZW4gc2V0dGluZyB0aGUg
bmV3IHN0eWxlIGluIHRoZSByZW5kZXJlci4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJl
bnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKICAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgPyBzdGF0aWNfY2FzdDxib29sPihwYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKSkgOiBmYWxzZTsKICAgICBib29s
IGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5j
aGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CkBAIC0xMTYyLDE3ICsxMTYz
LDE3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAg
ICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2Vu
dFJ1bGVzKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY2ggIT0gTm9DaGFuZ2UgfHwgcHNl
dWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgp
KSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+cmVxdWly
ZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7Ci0gICAgICAgICAgICBzZXRSZW5k
ZXJTdHlsZShuZXdTdHlsZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAobmVlZHNTdHlsZVJlY2FsYygp
ICYmIHN0eWxlQ2hhbmdlVHlwZSgpICE9IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKSB7Ci0gICAgICAg
ICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3IHN0eWxl
IHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0Ci0gICAgICAg
ICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KLSAg
ICAgICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNl
dFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0KCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5ld1N0eWxlKTsKLSAgICAgICAgfSBlbHNlIGlmIChz
dHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkKLSAgICAgICAgICAgICBz
ZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7CisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKGNoICE9IE5vQ2hhbmdl
IHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY3VycmVudFN0eWxlLmdldCgpLCBuZXdTdHls
ZS5nZXQoKSkgfHwgKGNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3JjZWRT
dHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNl
dEFuaW1hdGFibGVTdHlsZShuZXdTdHlsZS5nZXQoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYg
KG5lZWRzU3R5bGVSZWNhbGMoKSAmJiBzdHlsZUNoYW5nZVR5cGUoKSAhPSBTeW50aGV0aWNTdHls
ZUNoYW5nZSkgeworICAgICAgICAgICAgICAgIC8vIEFsdGhvdWdoIG5vIGNoYW5nZSBvY2N1cnJl
ZCwgd2UgdXNlIHRoZSBuZXcgc3R5bGUgc28gdGhhdCB0aGUgY291c2luIHN0eWxlIHNoYXJpbmcg
Y29kZSB3b24ndCBnZXQKKyAgICAgICAgICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcg
dGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KKyAgICAgICAgICAgICAgICByZW5kZXJlci0+c2V0U3R5
bGVJbnRlcm5hbChuZXdTdHlsZS5nZXQoKSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHN0eWxl
Q2hhbmdlVHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQorICAgICAgICAgICAgICAgIHJl
bmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUobmV3U3R5bGUuZ2V0KCkpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGUobmV3U3R5bGUuZ2V0KCkp
OwogCiAgICAgICAgIC8vIElmICJyZW0iIHVuaXRzIGFyZSB1c2VkIGFueXdoZXJlIGluIHRoZSBk
b2N1bWVudCwgYW5kIGlmIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXplIGNoYW5nZXMs
IHRoZW4gZ28gYWhlYWQgYW5kIGZvcmNlIGZvbnQgdXBkYXRpbmcKICAgICAgICAgLy8gYWxsIHRo
ZSB3YXkgZG93biB0aGUgdHJlZS4gVGhpcyBpcyBzaW1wbGVyIHRoYW4gaGF2aW5nIHRvIG1haW50
YWluIGEgY2FjaGUgb2Ygb2JqZWN0cyAoYW5kIHN1Y2ggZm9udCBzaXplIGNoYW5nZXMgc2hvdWxk
IGJlIHJhcmUgYW55d2F5KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxNzBlZTM3MzdlNGQ1NmEzZjU3
ZTE5YTA2OGJiN2ExNDk4N2Y1ODZjLi4wYmU2ZGZmYzQwM2FlNDgyZjhkOTk5YzcyYTAzMTI0ZjFm
NmM4YmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xNDIxLDEyICsxNDIxLDYgQEAgUmVuZGVyU3R5
bGUqIE5vZGU6Om5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKSBjb25zdAogICAgIHJldHVybiAwOyAK
IH0gICAKIAotdm9pZCBOb2RlOjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiBzKQotewotICAgIGlmIChtX3JlbmRlcmVyKQotICAgICAgICBtX3JlbmRlcmVyLT5zZXRBbmlt
YXRhYmxlU3R5bGUocyk7IAotfQotCiBSZW5kZXJTdHlsZSogTm9kZTo6dmlydHVhbENvbXB1dGVk
U3R5bGUoUHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmllcikKIHsKICAgICByZXR1cm4gcGFy
ZW50T3JIb3N0Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgpLT5jb21wdXRlZFN0eWxlKHBzZXVk
b0VsZW1lbnRTcGVjaWZpZXIpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDAzNWFiYjM0ZTk0NjEyOWI1
YTRlZmI4MjQ0ODBiNzIwYWEyZTUxMDEuLjVlZjIzY2UyZWMxOTc4NmVhODk3OTIzMGVjZDY2YmYw
NjlhM2NkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTMwLDcgKzUzMCw3IEBAIHB1YmxpYzoKICAgICAK
ICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwgYnV0
IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAgUmVu
ZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRl
clN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9u
UmVuZGVyZXJSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPikgeyB9OwogCiAgICAg
UmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmll
ciA9IE5PUFNFVURPKSB7IHJldHVybiB2aXJ0dWFsQ29tcHV0ZWRTdHlsZShwc2V1ZG9FbGVtZW50
U3BlY2lmaWVyKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmNwcAppbmRleCAyMWYxYzNmODk5ZmIwOTNmYmZmYjgyNDYxYWMxZTBjNWI1M2E4MTlkLi40ZWQ4
YjQzOTcxOGEyMTBkNzBjYjQ1YTA1NjY0YWYyZThiNjY1YTdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI0Miw2ICsyNDIsNyBAQCB2b2lkIE5v
ZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogICAgIGlmICghbm9k
ZS0+cmVuZGVyZXJJc05lZWRlZChtX2NvbnRleHQpKSB7CiAgICAgICAgIGlmIChlbGVtZW50ICYm
IG1fY29udGV4dC5zdHlsZSgpLT5hZmZlY3RlZEJ5RW1wdHkoKSkKICAgICAgICAgICAgIGVsZW1l
bnQtPnNldFN0eWxlQWZmZWN0ZWRCeUVtcHR5KCk7CisgICAgICAgIG5vZGUtPnNldE5vblJlbmRl
cmVyUmVuZGVyU3R5bGUobV9jb250ZXh0LnN0eWxlKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCAx
ZmY2YTdkMjIxYTY0MTBiNjg3NDkzYjRhNjQyY2E0YjY5NGEyNzhkLi44M2NiNzk4NDUxNDZmZWEw
OTQ3NDE4NjBiMmM5MTVjN2E1MzNjMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAKQEAgLTkyLDIwICs5MiwxMyBAQCB2b2lkIEhUTUxPcHRHcm91cEVs
ZW1lbnQ6OnJlY2FsY1NlbGVjdE9wdGlvbnMoKQogICAgICAgICB0b0hUTUxTZWxlY3RFbGVtZW50
KHNlbGVjdCktPnNldFJlY2FsY0xpc3RJdGVtcygpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVs
ZW1lbnQ6OmF0dGFjaCgpCi17Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkK
LSAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKLSAgICBIVE1MRWxl
bWVudDo6YXR0YWNoKCk7Ci19Ci0KIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNoKCkK
IHsKICAgICBtX3N0eWxlLmNsZWFyKCk7CiAgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOwogfQog
Ci12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjpzZXROb25SZW5k
ZXJlclJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQogewogICAg
IG1fc3R5bGUgPSBuZXdTdHlsZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBF
bGVtZW50LmgKaW5kZXggMGI0Mzg3MzA2MTBlNWVlN2Q3ZTQ3ZGU4NmQxM2JjYTE5ODAyZmNjOS4u
YzgxMzMzMDQ4ZGU3ZjdhMDdlODJjYWVmNzAzNmM2MDQxNzc3MjM2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTQ4LDkgKzQ4LDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkRm9ybUNvbnRyb2woKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiAhZGlzYWJsZWQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIGF0dGFjaCgpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pOworICAg
IHZpcnR1YWwgdm9pZCBzZXROb25SZW5kZXJlclJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9v
bCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSog
YWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOGZjYzIyYzI3ZmM3ODgxMTVhZDIw
NDlmYjhhZDhkNjA4ODZjMWIwZS4uYTUyZGMwMWVlN2ZiYTkzM2FlYmYzOTYzZDczZDUyYjA0MjU0
OWU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTg4
LDEzICs4OCw2IEBAIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVt
ZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50CiAgICAgcmV0dXJuIGVsZW1lbnQu
cmVsZWFzZSgpOwogfQogCi12b2lkIEhUTUxPcHRpb25FbGVtZW50OjphdHRhY2goKQotewotICAg
IGlmIChwYXJlbnROb2RlKCktPnJlbmRlclN0eWxlKCkpCi0gICAgICAgIHNldFJlbmRlclN0eWxl
KHN0eWxlRm9yUmVuZGVyZXIoKSk7Ci0gICAgSFRNTEVsZW1lbnQ6OmF0dGFjaCgpOwotfQotCiB2
b2lkIEhUTUxPcHRpb25FbGVtZW50OjpkZXRhY2goKQogewogICAgIG1fc3R5bGUuY2xlYXIoKTsK
QEAgLTMwNSw3ICsyOTgsNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpzZXRMYWJlbChjb25z
dCBTdHJpbmcmIGxhYmVsKQogICAgIHNldEF0dHJpYnV0ZShsYWJlbEF0dHIsIGxhYmVsKTsKIH0K
IAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gbmV3U3R5bGUpCit2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpzZXROb25SZW5kZXJl
clJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQogewogICAgIG1f
c3R5bGUgPSBuZXdTdHlsZTsKICAgICBpZiAoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IG93
bmVyU2VsZWN0RWxlbWVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50
LmgKaW5kZXggMjRjZGNkYjVlY2I4Mzk4M2RhYzJiMWQzZmJlZGM4OTBmMTc3MzEwZC4uOWM2YzI4
MGFmMWQ5YzgxMmM5MzRiNDBiNzdmNGU2ODRkMjM4NDE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNzMsOSArNzMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNh
YmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9k
ZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Tm9uUmVuZGVyZXJSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPikgT1ZFUlJJ
REU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikg
T1ZFUlJJREU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170760</attachid>
            <date>2012-10-25 16:08:49 -0700</date>
            <delta_ts>2012-10-25 19:31:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100397-20121025160722.patch</filename>
            <type>text/plain</type>
            <size>17983</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVhNzFiNTIxMWE0YWU4
ZjBmZGJhMzY4OGNlMGFhODQ0ZTdmNGI1NC4uMDczNmFlMDhmYTA2MTc4ZjNmMzFlNTI2NmMwZGMy
ZjlhMTYzZmE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsaW1pbmF0ZSBz
ZXRSZW5kZXJTdHlsZSwgeW91IHJlYWxseSB3YW50IHNldE5vblJlbmRlcmVyU3R5bGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDM5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5l
dyBtZXRob2QgRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZSB0aGF0IG1vcmUgZXhwbGljaXRs
eSBkb2VzCisgICAgICAgIHdoYXQgb3ZlcnJpZGVzIG9mIE5vZGU6OnNldFJlbmRlclN0eWxlIHdl
cmUgaW50ZW5kZWQgdG8gZG8uCisKKyAgICAgICAgc2V0UmVuZGVyU3R5bGUgb25seSBleGlzdGVk
IHRvIHN1cHBvcnQgSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxPcHRHcm91cEVsZW1lbnQKKyAg
ICAgICAgc28gdGhleSBjb3VsZCBzdG9yZSB0aGVpciBSZW5kZXJTdHlsZSBldmVuIHRob3VnaCB0
aGV5IGhhdmUgbm8gcmVuZGVyZXIuIFRoaXMKKyAgICAgICAgbWVhbnMgYWxsIHN0eWxlIHNldHRp
bmcgd2VudCB0aHJvdWdoIHRoZSB2aXJ0dWFsIGNhbGwgdG8gc2V0UmVuZGVyU3R5bGUsIGFuZCBp
dAorICAgICAgICBhbHNvIGhpZGVzIHRoZSBpZiBzdGF0ZW1lbnQgcHJvdGVjdGluZyBhZ2FpbnN0
IG51bGwgcmVuZGVyZXJzIG1lYW5pbmcgd2UgZW5kIHVwCisgICAgICAgIGNoZWNraW5nIGlmIHRo
ZSByZW5kZXJlciBpcyBudWxsIHJlcGVhdGVkbHkgaW4gcmVjYWxjU3R5bGUuIFRoaXMgcmVmYWN0
b3IgY2xlYW5zCisgICAgICAgIHVwIHJlY2FsY1N0eWxlIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQg
d2hhdCdzIGdvaW5nIG9uLgorCisgICAgICAgIEludHJvZHVjaW5nIHNldE5vblJlbmRlcmVyU3R5
bGUgYWxzbyBhbGxvd3MgdXMgdG8gZWxpbWluYXRlIHRoZSBvdmVycmlkZXMKKyAgICAgICAgb2Yg
YXR0YWNoKCkgb24gSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxPcHRHcm91cEVsZW1lbnQgcmVt
b3ZpbmcgYSBkdXBsaWNhdGUKKyAgICAgICAgY2FsbCB0byBzdHlsZUZvclJlbmRlcmVyKCkuICAg
ICAgICAKKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMganVzdCBhIHJlZmFjdG9yLgor
CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKToKKyAg
ICAgICAgICBUaGlzIGlzIG9ubHkgY2FsbGVkIGluIHJlY2FsY1N0eWxlLCBhbmQgaXMgb25seSBu
ZWVkZWQgaWYgd2UgaGF2ZSBhIHJlbmRlcmVyLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
cmVjYWxjU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJT
dHlsZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dXNlc05vblJlbmRlcmVyU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6bm9uUmVuZGVyZXJTdHlsZSk6CisgICAgICAgICogZG9tL05vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y3JlYXRlUmVuZGVyZXIpOiBJbmNpZGVudGFs
IHdoaXRlc3BhY2UuCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRSZW5kZXJTdHlsZSk6Cisg
ICAgICAgICAgUmVtb3ZlZCBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0IGFueW1vcmUgYW5kIGl0IHdh
cyByZXBsYWNlZCBieQorICAgICAgICAgIEVsZW1lbnQ6OnNldE5vblJlbmRlcmVyU3R5bGUgYXMg
ZGVzY3JpYmVkIGFib3ZlLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChOb2RlKToK
KyAgICAgICAgKiBkb20vTm9kZVJlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZW5kZXJTdHlsZSk6IE9ubHkgcmV0dXJuIHRoZSBub25SZW5kZXJlclN0eWxlIGlmIGl0J3Mg
YW4gZWxlbWVudC4KKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRl
ZCk6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldE5vblJlbmRlcmVyU3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Ojpub25S
ZW5kZXJlclN0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaDoKKyAg
ICAgICAgKEhUTUxPcHRHcm91cEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnNldE5vblJl
bmRlcmVyU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6Om5vblJl
bmRlcmVyU3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoKKyAgICAg
ICAgKEhUTUxPcHRpb25FbGVtZW50KToKKwogMjAxMi0xMC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEzMjI2OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDUwM2ViZDczMTNmNjUzM2Q4MDEwOGQ4
ZDkxMjQyN2M4OTlkMWFiMDUuLjllZjFjYzE1OTkyZjVlYTFlNGIwZGNlYmQ1YjgzZTFmMDZmMzlh
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTUzNyw3ICsxNTM3LDcgQEAgX19aTks3V2ViQ29y
ZTExUmVuZGVyU3R5bGUxNmxvZ2ljYWxNaW5IZWlnaHRFdgogX19aTks3V2ViQ29yZTExUmVuZGVy
U3R5bGUxNmxvZ2ljYWxNYXhIZWlnaHRFdgogX19aTjdXZWJDb3JlN0VsZW1lbnQxMXJlY2FsY1N0
eWxlRU5TXzROb2RlMTFTdHlsZUNoYW5nZUUKIF9fWk5LN1dlYkNvcmUxMlN0eWxlQm94RGF0YWVx
RVJLUzBfCi1fX1pON1dlYkNvcmU0Tm9kZTE0c2V0UmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQ
dHJJTlNfMTFSZW5kZXJTdHlsZUVFRQorX19aTjdXZWJDb3JlNE5vZGUyNXNldE5vblJlbmRlcmVy
UmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHlsZUVFRQogX19aTjdX
ZWJDb3JlMTNSZW5kZXJDb3VudGVyMjByZW5kZXJlclN0eWxlQ2hhbmdlZEVQTlNfMTJSZW5kZXJP
YmplY3RFUEtOU18xMVJlbmRlclN0eWxlRVM1XwogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3Qz
M3NldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsY0V2CiBfX1pON1dlYkNvcmU3RWxlbWVu
dDZkZXRhY2hFdgpAQCAtNTA1NSw5ICs1MDU1LDggQEAgX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0
RWxlbWVudDE4c2V0UmVjYWxjTGlzdEl0ZW1zRXYKIF9fWk43V2ViQ29yZTE3SFRNTFNlbGVjdEVs
ZW1lbnQxN3Njcm9sbFRvU2VsZWN0aW9uRXYKIF9fWk43V2ViQ29yZTEzU2VsZWN0RWxlbWVudDE3
c2Nyb2xsVG9TZWxlY3Rpb25FUk5TXzE3U2VsZWN0RWxlbWVudERhdGFFUE5TXzdFbGVtZW50RQog
X19aTjdXZWJDb3JlMTNSZW5kZXJMaXN0Qm94MTZzZWxlY3Rpb25DaGFuZ2VkRXYKLV9fWk43V2Vi
Q29yZTE3SFRNTE9wdGlvbkVsZW1lbnQ2YXR0YWNoRXYKIF9fWk5LN1dlYkNvcmUxN0hUTUxPcHRp
b25FbGVtZW50OGRpc2FibGVkRXYKLV9fWk43V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQxNHNl
dFJlbmRlclN0eWxlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExUmVuZGVyU3R5bGVFRUUKK19fWk43
V2ViQ29yZTE3SFRNTE9wdGlvbkVsZW1lbnQyNXNldE5vblJlbmRlcmVyUmVuZGVyU3R5bGVFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfMTFSZW5kZXJTdHlsZUVFRQogX19aTjdXZWJDb3JlMTdIVE1MT3B0
aW9uRWxlbWVudDE1Y2hpbGRyZW5DaGFuZ2VkRWJQTlNfNE5vZGVFUzJfaQogX19aTks3V2ViQ29y
ZTE3SFRNTE9wdGlvbkVsZW1lbnQyMm5vblJlbmRlcmVyUmVuZGVyU3R5bGVFdgogX19aTks3V2Vi
Q29yZTE2SFRNTEVsZW1lbnRTdGFjazEzaW5TZWxlY3RTY29wZUVSS04zV1RGMTJBdG9taWNTdHJp
bmdFCkBAIC0xMjQ4Myw4ICsxMjQ4Miw3IEBAIF9fWk43V2ViQ29yZUwxOW9wdGdyb3VwQ29uc3Ry
dWN0b3JFUktOU18xM1F1YWxpZmllZE5hbWVFUE5TXzhEb2N1bWVudEVQTlNfMTVIVE1MCiBfX1pO
N1dlYkNvcmUxOUhUTUxPcHRHcm91cEVsZW1lbnQ2Y3JlYXRlRVJLTlNfMTNRdWFsaWZpZWROYW1l
RVBOU184RG9jdW1lbnRFUE5TXzE1SFRNTEZvcm1FbGVtZW50RQogX19aTjdXZWJDb3JlMTlIVE1M
T3B0R3JvdXBFbGVtZW50MjBwYXJzZU1hcHBlZEF0dHJpYnV0ZUVQTlNfOUF0dHJpYnV0ZUUKIF9f
Wk43V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE5cmVjYWxjU2VsZWN0T3B0aW9uc0V2Ci1f
X1pON1dlYkNvcmUxOUhUTUxPcHRHcm91cEVsZW1lbnQ2YXR0YWNoRXYKLV9fWk43V2ViQ29yZTE5
SFRNTE9wdEdyb3VwRWxlbWVudDE0c2V0UmVuZGVyU3R5bGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
MTFSZW5kZXJTdHlsZUVFRQorX19aTjdXZWJDb3JlMTlIVE1MT3B0R3JvdXBFbGVtZW50MjVzZXRO
b25SZW5kZXJlclJlbmRlclN0eWxlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzExUmVuZGVyU3R5bGVF
RUUKIF9fWk43V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDE1Y2hpbGRyZW5DaGFuZ2VkRWJQ
TlNfNE5vZGVFUzJfaQogX19aTks3V2ViQ29yZTE5SFRNTE9wdEdyb3VwRWxlbWVudDIybm9uUmVu
ZGVyZXJSZW5kZXJTdHlsZUV2CiBfX1pON1dlYkNvcmVMMzJjcmVhdGVIVE1MT3B0R3JvdXBFbGVt
ZW50V3JhcHBlckVQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RG
MTBQYXNzUmVmUHRySU5TXzExSFRNTEVsZW1lbnRFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRl
eCA5MWE5NmM3ZWU3MjI2ZTNjYjgyOGY0NzQ4NTRhNGIyOTM5NWRhMTgxLi5kYzUyODIxOWQ4MTk3
M2EzZGYzOThlMTUxYmE3MTI1YTMzMzExMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0x
MDQ1LDggKzEwNDUsOSBAQCB2b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiBib29sIEVsZW1lbnQ6OnBz
ZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY29uc3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwg
UmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewogICAgIEFTU0VSVChjdXJyZW50U3R5bGUgPT0gcmVu
ZGVyU3R5bGUoKSk7CisgICAgQVNTRVJUKHJlbmRlcmVyKCkpOwogCi0gICAgaWYgKCFyZW5kZXJl
cigpIHx8ICFjdXJyZW50U3R5bGUpCisgICAgaWYgKCFjdXJyZW50U3R5bGUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGNvbnN0IFBzZXVkb1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2Fj
aGUgPSBjdXJyZW50U3R5bGUtPmNhY2hlZFBzZXVkb1N0eWxlcygpOwpAQCAtMTA5Niw3ICsxMDk3
LDcgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNl
IGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVkIHdoZW4gc2V0UmVuZGVyU3R5bGUoKSBpcyBj
YWxsZWQuCisgICAgLy8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lz
ZSBiZSBkZWxldGVkIHdoZW4gc2V0dGluZyB0aGUgbmV3IHN0eWxlIGluIHRoZSByZW5kZXJlci4K
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKICAg
ICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkg
PyBzdGF0aWNfY2FzdDxib29sPihwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKS0+cmVu
ZGVyU3R5bGUoKSkgOiBmYWxzZTsKICAgICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBj
dXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGph
Y2VudFJ1bGVzKCk7CkBAIC0xMTQ1LDE3ICsxMTQ2LDE2IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxj
U3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRD
aGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBpZiAoY2ggIT0gTm9DaGFuZ2UgfHwgcHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJy
ZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgpKSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJl
bmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0
aW9uKCkpKSB7Ci0gICAgICAgICAgICBzZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAobmVlZHNTdHlsZVJlY2FsYygpICYmIHN0eWxlQ2hhbmdlVHlwZSgpICE9IFN5
bnRoZXRpY1N0eWxlQ2hhbmdlKSB7Ci0gICAgICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ug
b2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBz
aGFyaW5nIGNvZGUgd29uJ3QgZ2V0Ci0gICAgICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZp
bmcgdGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KLSAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKQot
ICAgICAgICAgICAgICAgIHJlbmRlcmVyKCktPnNldFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0
KCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5l
d1N0eWxlKTsKLSAgICAgICAgfSBlbHNlIGlmIChzdHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0
aWNTdHlsZUNoYW5nZSkKLSAgICAgICAgICAgICBzZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7Cisg
ICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewor
ICAgICAgICAgICAgaWYgKGNoICE9IE5vQ2hhbmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFs
aWQoY3VycmVudFN0eWxlLmdldCgpLCBuZXdTdHlsZS5nZXQoKSkgfHwgKGNoYW5nZSA9PSBGb3Jj
ZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpIHx8
IHN0eWxlQ2hhbmdlVHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQorICAgICAgICAgICAg
ICAgIHJlbmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUobmV3U3R5bGUuZ2V0KCkpOworICAgICAg
ICAgICAgZWxzZSBpZiAobmVlZHNTdHlsZVJlY2FsYygpKSB7CisgICAgICAgICAgICAgICAgLy8g
QWx0aG91Z2ggbm8gY2hhbmdlIG9jY3VycmVkLCB3ZSB1c2UgdGhlIG5ldyBzdHlsZSBzbyB0aGF0
IHRoZSBjb3VzaW4gc3R5bGUgc2hhcmluZyBjb2RlIHdvbid0IGdldAorICAgICAgICAgICAgICAg
IC8vIGZvb2xlZCBpbnRvIGJlbGlldmluZyB0aGlzIHN0eWxlIGlzIHRoZSBzYW1lLgorICAgICAg
ICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHlsZUludGVybmFsKG5ld1N0eWxlLmdldCgpKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmICh1c2VzTm9uUmVuZGVyZXJTdHlsZSgpKQor
ICAgICAgICAgICAgc2V0Tm9uUmVuZGVyZXJTdHlsZShuZXdTdHlsZS5nZXQoKSk7CiAKICAgICAg
ICAgLy8gSWYgInJlbSIgdW5pdHMgYXJlIHVzZWQgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCBh
bmQgaWYgdGhlIGRvY3VtZW50IGVsZW1lbnQncyBmb250IHNpemUgY2hhbmdlcywgdGhlbiBnbyBh
aGVhZCBhbmQgZm9yY2UgZm9udCB1cGRhdGluZwogICAgICAgICAvLyBhbGwgdGhlIHdheSBkb3du
IHRoZSB0cmVlLiBUaGlzIGlzIHNpbXBsZXIgdGhhbiBoYXZpbmcgdG8gbWFpbnRhaW4gYSBjYWNo
ZSBvZiBvYmplY3RzIChhbmQgc3VjaCBmb250IHNpemUgY2hhbmdlcyBzaG91bGQgYmUgcmFyZSBh
bnl3YXkpLgpAQCAtMjI5MSw2ICsyMjkxLDkgQEAgdm9pZCBFbGVtZW50OjpkaWRSZWNhbGNTdHls
ZShTdHlsZUNoYW5nZSkKICAgICBBU1NFUlQoaGFzQ3VzdG9tQ2FsbGJhY2tzKCkpOwogfQogCit2
b2lkIEVsZW1lbnQ6OnNldE5vblJlbmRlcmVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4p
Cit7Cit9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9y
UmVuZGVyZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggODkzYmJlZWYwNjcxZGQ1MzJmYWYx
OGNiNzA0OGQ5M2IyN2FkNzgxZS4uN2VkZGU1NDMxYTFmZThkODMxNzRkNDY3NjEzNTAyN2ZlZmZl
NmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yNzIsNiArMjcyLDEwIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5k
ZXJTdHlsZSopOwogICAgIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uUmVuZGVyZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRl
clN0eWxlPik7CisgICAgdmlydHVhbCBib29sIHVzZXNOb25SZW5kZXJlclN0eWxlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0
eWxlKCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93KCkg
Y29uc3Q7CiAgICAgRWxlbWVudFNoYWRvdyogZW5zdXJlU2hhZG93KCk7CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxBZGRBdXRob3JTaGFkb3dSb290KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNmE2
MTdkYTdjY2E5NTNiNmU4Y2RlZTYyNTYwNjdhMDI1OTY5YjhhOS4uOWY0OTVhNWYyNGJkYzMzNTM1
NGRmMDYxZWU5ZDFkMDRjMmVhNTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTQxNSwxNyArMTQx
NSw2IEBAIFJlbmRlck9iamVjdCogTm9kZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBS
ZW5kZXJTdHlsZSopCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9
Ci0gICAgCi1SZW5kZXJTdHlsZSogTm9kZTo6bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0
Ci17IAotICAgIHJldHVybiAwOyAKLX0gICAKLQotdm9pZCBOb2RlOjpzZXRSZW5kZXJTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzKQotewotICAgIGlmIChtX3JlbmRlcmVyKQotICAgICAg
ICBtX3JlbmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUocyk7IAotfQogCiBSZW5kZXJTdHlsZSog
Tm9kZTo6dmlydHVhbENvbXB1dGVkU3R5bGUoUHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmll
cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCmluZGV4IGI3MjAxMWM5MTk0YTkwNDU4NjUyODRjMWNlZDhkYjEzMTg2
M2I5OGEuLjFmMzUwZmM4NGIwZjg2NTNkYjE2N2E2N2YzMjg2Njc3MzQ1NTEzNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaApAQCAtNTI2LDEwICs1MjYsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNoaWxk
U2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKLSAgICAKLSAgICAvLyBXcmFwcGVyIGZvciBub2Rl
cyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAo
bGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCisKKyAgICAvLyBXcmFwcGVyIGZvciBlbGVtZW50cyB0
aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlr
ZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+KTsKIAogICAgIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0Vs
ZW1lbnRTcGVjaWZpZXIgPSBOT1BTRVVETykgeyByZXR1cm4gdmlydHVhbENvbXB1dGVkU3R5bGUo
cHNldWRvRWxlbWVudFNwZWNpZmllcik7IH0KIApAQCAtNzgzLDggKzc4Miw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBPd25QdHI8Tm9kZVJhcmVEYXRhPiBjcmVhdGVSYXJlRGF0YSgpOwogICAg
IGJvb2wgcmFyZURhdGFGb2N1c2VkKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclN0eWxl
KiBub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmlydHVhbFByZWZpeCgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiB2aXJ0dWFsTG9jYWxOYW1lKCkgY29uc3Q7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHZpcnR1YWxOYW1lc3BhY2VVUkkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyU3R5bGUuaAppbmRleCAxYTJkMmMzNGExOTE5ZGE2MTkyNzZhYmMxYzY5MzMzMWMx
OWRjZjJiLi42YjU0YWIwODQ3Nzc5OTU1NjdiYjRmOGNmN2U1NjI5YWYwZTM4Y2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5oCkBAIC0zNyw3ICszNyw5IEBAIGlubGluZSBSZW5k
ZXJTdHlsZSogTm9kZTo6cmVuZGVyU3R5bGUoKSBjb25zdAogICAgIC8vIEJ1ZyBpcyBDUiA2NTY5
MTk0LCAiUHJvYmxlbSB3aXRoIHF1ZXN0aW9uIG9wZXJhdG9yIGJpbmRpbmcgaW4gaW5saW5lIGZ1
bmN0aW9uIgogICAgIGlmIChtX3JlbmRlcmVyKSAKICAgICAgICAgcmV0dXJuIG1fcmVuZGVyZXIt
PnN0eWxlKCk7Ci0gICAgcmV0dXJuIG5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKTsKKyAgICBpZiAo
aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gdG9FbGVtZW50KHRoaXMpLT5ub25SZW5k
ZXJlclN0eWxlKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDIxZjFjM2Y4OTlmYjA5M2ZiZmZiODI0NjFh
YzFlMGM1YjUzYTgxOWQuLjdiMzcwNWYzMzE0MDM5ODJkZmZjZDQxMDVmNTI2YTkzODFmMjFkZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjMw
LDEwICsyMzAsMTMgQEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklm
TmVlZGVkKCkKICAgICBBU1NFUlQoIW5vZGUtPnJlbmRlcmVyKCkpOwogICAgIEFTU0VSVChkb2N1
bWVudC0+c2hvdWxkQ3JlYXRlUmVuZGVyZXJzKCkpOwogCi0gICAgaWYgKCFtX2NvbnRleHQuc2hv
dWxkQ3JlYXRlUmVuZGVyZXIoKSkKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVt
ZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpIDogMDsKKyAgICBpZiAoIW1fY29udGV4dC5zaG91
bGRDcmVhdGVSZW5kZXJlcigpKSB7CisgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPnVz
ZXNOb25SZW5kZXJlclN0eWxlKCkpCisgICAgICAgICAgICBlbGVtZW50LT5zZXROb25SZW5kZXJl
clN0eWxlKGVsZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9F
bGVtZW50KG5vZGUpIDogMDsKICAgICBpZiAoZWxlbWVudCkKICAgICAgICAgbV9jb250ZXh0LnNl
dFN0eWxlKGVsZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7CiAgICAgZWxzZSBpZiAoUmVuZGVy
T2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IG1fY29udGV4dC5wYXJlbnRSZW5kZXJlcigpKQpAQCAt
MjQyLDYgKzI0NSw4IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJ
Zk5lZWRlZCgpCiAgICAgaWYgKCFub2RlLT5yZW5kZXJlcklzTmVlZGVkKG1fY29udGV4dCkpIHsK
ICAgICAgICAgaWYgKGVsZW1lbnQgJiYgbV9jb250ZXh0LnN0eWxlKCktPmFmZmVjdGVkQnlFbXB0
eSgpKQogICAgICAgICAgICAgZWxlbWVudC0+c2V0U3R5bGVBZmZlY3RlZEJ5RW1wdHkoKTsKKyAg
ICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+dXNlc05vblJlbmRlcmVyU3R5bGUoKSkKKyAg
ICAgICAgICAgIGVsZW1lbnQtPnNldE5vblJlbmRlcmVyU3R5bGUobV9jb250ZXh0LnN0eWxlKCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmNwcAppbmRleCAxZmY2YTdkMjIxYTY0MTBiNjg3NDkzYjRhNjQyY2E0YjY5
NGEyNzhkLi42Mjk3MmNmYmUwZjM0YTY1ODNkYWVhMDk3MWYyNjQ3Yjk0OGY5NWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTkyLDI1ICs5Miwx
OCBAQCB2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnJlY2FsY1NlbGVjdE9wdGlvbnMoKQogICAg
ICAgICB0b0hUTUxTZWxlY3RFbGVtZW50KHNlbGVjdCktPnNldFJlY2FsY0xpc3RJdGVtcygpOwog
fQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmF0dGFjaCgpCi17Ci0gICAgaWYgKHBhcmVu
dE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JS
ZW5kZXJlcigpKTsKLSAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7Ci19Ci0KIHZvaWQgSFRNTE9w
dEdyb3VwRWxlbWVudDo6ZGV0YWNoKCkKIHsKICAgICBtX3N0eWxlLmNsZWFyKCk7CiAgICAgSFRN
TEVsZW1lbnQ6OmRldGFjaCgpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldFJl
bmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0
R3JvdXBFbGVtZW50OjpzZXROb25SZW5kZXJlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IG5ld1N0eWxlKQogewogICAgIG1fc3R5bGUgPSBuZXdTdHlsZTsKIH0KLSAgICAKLVJlbmRlclN0
eWxlKiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Qg
CisKK1JlbmRlclN0eWxlKiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclN0eWxlKCkg
Y29uc3QKIHsgCiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAppbmRleCAwYjQzODczMDYxMGU1ZWU3ZDdlNDdkZTg2
ZDEzYmNhMTk4MDJmY2M5Li5lZDQ4ZTY2YTg5NGUxNDNmZDNlMmIwMWNmNmU3YjNlNWQ3MDhlYTNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNDgsMTYg
KzQ4LDE2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZEZvcm1Db250cm9s
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIWRpc2FibGVkKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uUmVuZGVyZXJTdHlsZShQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5n
ZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwog
CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7
Ci0gICAgCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgp
IGNvbnN0OwotICAgIAorCisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHls
ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCB1c2VzTm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKwogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9u
cygpOwogCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA4ZmNjMjJjMjdmYzc4ODExNWFkMjA0OWZi
OGFkOGQ2MDg4NmMxYjBlLi5hMWFhZmRjNzNmNzgwNzBlZjAyMTk4NzlkYTI3Mjc5ZDczZTdhMjI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtODgsMTMg
Kzg4LDYgQEAgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6
OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQKICAgICByZXR1cm4gZWxlbWVudC5yZWxl
YXNlKCk7CiB9CiAKLXZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OmF0dGFjaCgpCi17Ci0gICAgaWYg
KHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5
bGVGb3JSZW5kZXJlcigpKTsKLSAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7Ci19Ci0KIHZvaWQg
SFRNTE9wdGlvbkVsZW1lbnQ6OmRldGFjaCgpCiB7CiAgICAgbV9zdHlsZS5jbGVhcigpOwpAQCAt
MzA1LDcgKzI5OCw3IEBAIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldExhYmVsKGNvbnN0IFN0
cmluZyYgbGFiZWwpCiAgICAgc2V0QXR0cmlidXRlKGxhYmVsQXR0ciwgbGFiZWwpOwogfQogCi12
b2lkIEhUTUxPcHRpb25FbGVtZW50OjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiBuZXdTdHlsZSkKK3ZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldE5vblJlbmRlcmVyU3R5
bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUpCiB7CiAgICAgbV9zdHlsZSA9IG5l
d1N0eWxlOwogICAgIGlmIChIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RF
bGVtZW50KCkpIHsKQEAgLTMxNCw3ICszMDcsNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50Ojpz
ZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKICAgICB9CiB9
CiAKLVJlbmRlclN0eWxlKiBIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVyZXJSZW5kZXJTdHls
ZSgpIGNvbnN0CitSZW5kZXJTdHlsZSogSFRNTE9wdGlvbkVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5
bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCmluZGV4IDI0Y2RjZGI1ZWNiODM5ODNkYWMyYjFkM2Zi
ZWRjODkwZjE3NzMxMGQuLjE4YTA3NmRjNTcwMjgxODU1N2E4YThhZjJiNTkxMzA5ZjViMmIwZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKQEAgLTczLDkgKzczLDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgp
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxl
Pik7CisgICAgdmlydHVhbCB2b2lkIHNldE5vblJlbmRlcmVyU3R5bGUoUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4pIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IEF0dHJpYnV0ZSYpIE9WRVJSSURFOwogCkBAIC04NCw3ICs4Myw4IEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0g
ZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50
IGNoaWxkQ291bnREZWx0YSA9IDApOwogCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVu
ZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIG5vblJl
bmRlcmVyU3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc05vblJlbmRlcmVyU3R5
bGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBTdHJpbmcgY29sbGVj
dE9wdGlvbklubmVyVGV4dCgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170787</attachid>
            <date>2012-10-25 19:31:05 -0700</date>
            <delta_ts>2012-10-25 20:10:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100397-20121025192938.patch</filename>
            <type>text/plain</type>
            <size>15523</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVhNzFiNTIxMWE0YWU4
ZjBmZGJhMzY4OGNlMGFhODQ0ZTdmNGI1NC4uZmJkMzNlYWJjMTk4ZjE5MDU2M2Q0YWNlNjhlMDlm
YTdmMWY3ZDUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsaW1pbmF0ZSBz
ZXRSZW5kZXJTdHlsZSwgeW91IHJlYWxseSB3YW50IHNldE5vblJlbmRlcmVyU3R5bGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDM5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5l
dyBtZXRob2QgRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZSB0aGF0IG1vcmUgZXhwbGljaXRs
eSBkb2VzCisgICAgICAgIHdoYXQgb3ZlcnJpZGVzIG9mIE5vZGU6OnNldFJlbmRlclN0eWxlIHdl
cmUgaW50ZW5kZWQgdG8gZG8uCisKKyAgICAgICAgc2V0UmVuZGVyU3R5bGUgb25seSBleGlzdGVk
IHRvIHN1cHBvcnQgSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxPcHRHcm91cEVsZW1lbnQKKyAg
ICAgICAgc28gdGhleSBjb3VsZCBzdG9yZSB0aGVpciBSZW5kZXJTdHlsZSBldmVuIHRob3VnaCB0
aGV5IGhhdmUgbm8gcmVuZGVyZXIuIFRoaXMKKyAgICAgICAgbWVhbnMgYWxsIHN0eWxlIHNldHRp
bmcgd2VudCB0aHJvdWdoIHRoZSB2aXJ0dWFsIGNhbGwgdG8gc2V0UmVuZGVyU3R5bGUsIGFuZCBp
dAorICAgICAgICBhbHNvIGhpZGVzIHRoZSBpZiBzdGF0ZW1lbnQgcHJvdGVjdGluZyBhZ2FpbnN0
IG51bGwgcmVuZGVyZXJzIG1lYW5pbmcgd2UgZW5kIHVwCisgICAgICAgIGNoZWNraW5nIGlmIHRo
ZSByZW5kZXJlciBpcyBudWxsIHJlcGVhdGVkbHkgaW4gcmVjYWxjU3R5bGUuIFRoaXMgcmVmYWN0
b3IgY2xlYW5zCisgICAgICAgIHVwIHJlY2FsY1N0eWxlIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQg
d2hhdCdzIGdvaW5nIG9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBpcyBqdXN0IGEg
cmVmYWN0b3IuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKToKKyAgICAgICAgICBUaGlzIGlz
IG9ubHkgY2FsbGVkIGluIHJlY2FsY1N0eWxlLCBhbmQgaXMgb25seSBuZWVkZWQgaWYgd2UgaGF2
ZSBhIHJlbmRlcmVyLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVzZXNOb25SZW5k
ZXJlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5bGUp
OgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNyZWF0
ZVJlbmRlcmVyKTogSW5jaWRlbnRhbCB3aGl0ZXNwYWNlLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0UmVuZGVyU3R5bGUpOgorICAgICAgICAgIFJlbW92ZWQgc2luY2Ugd2UgZG9uJ3QgbmVl
ZCBpdCBhbnltb3JlIGFuZCBpdCB3YXMgcmVwbGFjZWQgYnkKKyAgICAgICAgICBFbGVtZW50Ojpz
ZXROb25SZW5kZXJlclN0eWxlIGFzIGRlc2NyaWJlZCBhYm92ZS4gSXQgd2FzIG9ubHkgaGVyZSB0
byBzdXBwb3J0CisgICAgICAgICAgPG9wdGlvbj4gYW5kIDxvcHRncm91cD4gYW5kIHdlIGNhbiBz
ZXJ2ZSB0aGF0IHB1cnBvc2UgYmV0dGVyIHdpdGggbWV0aG9kcyBvbgorICAgICAgICAgIEVsZW1l
bnQgYW5kIHNwZWNpYWwgY2FzaW5nIGZvciB0aGUgbm8tcmVuZGVyZXIgY2FzZS4KKyAgICAgICAg
KiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OnJlbmRlclN0eWxlKTogT25seSByZXR1cm4gdGhlIG5vblJlbmRlcmVy
U3R5bGUgaWYgaXQncyBhbiBlbGVtZW50LgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVS
ZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJT
dHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJl
clN0eWxlKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaDoKKyAgICAgICAg
KEhUTUxPcHRHcm91cEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnNldE5vblJlbmRlcmVy
U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6Om5vblJlbmRlcmVy
U3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoKKyAgICAgICAgKEhU
TUxPcHRpb25FbGVtZW50KToKKwogMjAxMi0xMC0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEz
MjI2OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5MWE5NmM3ZWU3MjI2ZTNjYjgyOGY0NzQ4
NTRhNGIyOTM5NWRhMTgxLi5kYzUyODIxOWQ4MTk3M2EzZGYzOThlMTUxYmE3MTI1YTMzMzExMmQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDQ1LDggKzEwNDUsOSBAQCB2b2lkIEVsZW1l
bnQ6OmRldGFjaCgpCiBib29sIEVsZW1lbnQ6OnBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY29u
c3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewog
ICAgIEFTU0VSVChjdXJyZW50U3R5bGUgPT0gcmVuZGVyU3R5bGUoKSk7CisgICAgQVNTRVJUKHJl
bmRlcmVyKCkpOwogCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFjdXJyZW50U3R5bGUpCisgICAg
aWYgKCFjdXJyZW50U3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGNvbnN0IFBz
ZXVkb1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50U3R5bGUtPmNhY2hlZFBz
ZXVkb1N0eWxlcygpOwpAQCAtMTA5Niw3ICsxMDk3LDcgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNT
dHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgLy8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxl
dGVkIHdoZW4gc2V0UmVuZGVyU3R5bGUoKSBpcyBjYWxsZWQuCisgICAgLy8gUmVmIGN1cnJlbnRT
dHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVkIHdoZW4gc2V0dGluZyB0
aGUgbmV3IHN0eWxlIGluIHRoZSByZW5kZXJlci4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1
cnJlbnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKICAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFy
ZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgPyBzdGF0aWNfY2FzdDxib29sPihwYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKSkgOiBmYWxzZTsKICAgICBi
b29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxl
LT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CkBAIC0xMTQ1LDE3ICsx
MTQ2LDE2IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQog
ICAgICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGph
Y2VudFJ1bGVzKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY2ggIT0gTm9DaGFuZ2UgfHwg
cHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdl
dCgpKSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+cmVx
dWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7Ci0gICAgICAgICAgICBzZXRS
ZW5kZXJTdHlsZShuZXdTdHlsZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAobmVlZHNTdHlsZVJlY2Fs
YygpICYmIHN0eWxlQ2hhbmdlVHlwZSgpICE9IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKSB7Ci0gICAg
ICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3IHN0
eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0Ci0gICAg
ICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4K
LSAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAgICAgIHJlbmRlcmVyKCkt
PnNldFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0KCkpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5ld1N0eWxlKTsKLSAgICAgICAgfSBlbHNlIGlm
IChzdHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkKLSAgICAgICAgICAg
ICBzZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7CisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgaWYgKGNoICE9IE5vQ2hh
bmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY3VycmVudFN0eWxlLmdldCgpLCBuZXdT
dHlsZS5nZXQoKSkgfHwgKGNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJlci0+cmVxdWlyZXNGb3Jj
ZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpIHx8IHN0eWxlQ2hhbmdlVHlwZSgpID09IFN5bnRo
ZXRpY1N0eWxlQ2hhbmdlKQorICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRBbmltYXRhYmxl
U3R5bGUobmV3U3R5bGUuZ2V0KCkpOworICAgICAgICAgICAgZWxzZSBpZiAobmVlZHNTdHlsZVJl
Y2FsYygpKSB7CisgICAgICAgICAgICAgICAgLy8gQWx0aG91Z2ggbm8gY2hhbmdlIG9jY3VycmVk
LCB3ZSB1c2UgdGhlIG5ldyBzdHlsZSBzbyB0aGF0IHRoZSBjb3VzaW4gc3R5bGUgc2hhcmluZyBj
b2RlIHdvbid0IGdldAorICAgICAgICAgICAgICAgIC8vIGZvb2xlZCBpbnRvIGJlbGlldmluZyB0
aGlzIHN0eWxlIGlzIHRoZSBzYW1lLgorICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTdHls
ZUludGVybmFsKG5ld1N0eWxlLmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmICh1c2VzTm9uUmVuZGVyZXJTdHlsZSgpKQorICAgICAgICAgICAgc2V0Tm9uUmVuZGVyZXJT
dHlsZShuZXdTdHlsZS5nZXQoKSk7CiAKICAgICAgICAgLy8gSWYgInJlbSIgdW5pdHMgYXJlIHVz
ZWQgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCBhbmQgaWYgdGhlIGRvY3VtZW50IGVsZW1lbnQn
cyBmb250IHNpemUgY2hhbmdlcywgdGhlbiBnbyBhaGVhZCBhbmQgZm9yY2UgZm9udCB1cGRhdGlu
ZwogICAgICAgICAvLyBhbGwgdGhlIHdheSBkb3duIHRoZSB0cmVlLiBUaGlzIGlzIHNpbXBsZXIg
dGhhbiBoYXZpbmcgdG8gbWFpbnRhaW4gYSBjYWNoZSBvZiBvYmplY3RzIChhbmQgc3VjaCBmb250
IHNpemUgY2hhbmdlcyBzaG91bGQgYmUgcmFyZSBhbnl3YXkpLgpAQCAtMjI5MSw2ICsyMjkxLDkg
QEAgdm9pZCBFbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkKICAgICBBU1NFUlQo
aGFzQ3VzdG9tQ2FsbGJhY2tzKCkpOwogfQogCit2b2lkIEVsZW1lbnQ6OnNldE5vblJlbmRlcmVy
U3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pCit7Cit9CiAKIFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggODkzYmJlZWYwNjcxZGQ1MzJmYWYxOGNiNzA0OGQ5M2IyN2FkNzgxZS4uN2VkZGU1
NDMxYTFmZThkODMxNzRkNDY3NjEzNTAyN2ZlZmZlNmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0yNzIsNiArMjcyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZvaWQgcmVjYWxj
U3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9u
UmVuZGVyZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CisgICAgdmlydHVhbCBib29s
IHVzZXNOb25SZW5kZXJlclN0eWxlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgeyByZXR1cm4gMDsgfQor
CiAgICAgRWxlbWVudFNoYWRvdyogc2hhZG93KCkgY29uc3Q7CiAgICAgRWxlbWVudFNoYWRvdyog
ZW5zdXJlU2hhZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxBZGRBdXRob3JTaGFkb3dSb290
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNmE2MTdkYTdjY2E5NTNiNmU4Y2RlZTYyNTYwNjdh
MDI1OTY5YjhhOS4uOWY0OTVhNWYyNGJkYzMzNTM1NGRmMDYxZWU5ZDFkMDRjMmVhNTcxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcApAQCAtMTQxNSwxNyArMTQxNSw2IEBAIFJlbmRlck9iamVjdCogTm9kZTo6
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopCiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9Ci0gICAgCi1SZW5kZXJTdHlsZSogTm9kZTo6
bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0Ci17IAotICAgIHJldHVybiAwOyAKLX0gICAK
LQotdm9pZCBOb2RlOjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzKQot
ewotICAgIGlmIChtX3JlbmRlcmVyKQotICAgICAgICBtX3JlbmRlcmVyLT5zZXRBbmltYXRhYmxl
U3R5bGUocyk7IAotfQogCiBSZW5kZXJTdHlsZSogTm9kZTo6dmlydHVhbENvbXB1dGVkU3R5bGUo
UHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmllcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGI3MjAx
MWM5MTk0YTkwNDU4NjUyODRjMWNlZDhkYjEzMTg2M2I5OGEuLjFmMzUwZmM4NGIwZjg2NTNkYjE2
N2E2N2YzMjg2Njc3MzQ1NTEzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtNTI2LDEwICs1MjYsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3Qg
Tm9kZVJlbmRlcmluZ0NvbnRleHQmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KTsKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsK
LSAgICAKLSAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJl
ciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCisK
KyAgICAvLyBXcmFwcGVyIGZvciBlbGVtZW50cyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwg
YnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAg
UmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJl
bmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKIAogICAgIFJlbmRlclN0eWxlKiBj
b21wdXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPSBOT1BTRVVETykg
eyByZXR1cm4gdmlydHVhbENvbXB1dGVkU3R5bGUocHNldWRvRWxlbWVudFNwZWNpZmllcik7IH0K
IApAQCAtNzgzLDggKzc4Miw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBPd25QdHI8Tm9kZVJh
cmVEYXRhPiBjcmVhdGVSYXJlRGF0YSgpOwogICAgIGJvb2wgcmFyZURhdGFGb2N1c2VkKCkgY29u
c3Q7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclJlbmRlclN0eWxlKCkg
Y29uc3Q7Ci0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgdmlydHVhbFByZWZpeCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB2aXJ0dWFsTG9jYWxOYW1l
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHZpcnR1YWxOYW1lc3Bh
Y2VVUkkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
U3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUuaAppbmRleCAxYTJk
MmMzNGExOTE5ZGE2MTkyNzZhYmMxYzY5MzMzMWMxOWRjZjJiLi42YjU0YWIwODQ3Nzc5OTU1Njdi
YjRmOGNmN2U1NjI5YWYwZTM4Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5o
CkBAIC0zNyw3ICszNyw5IEBAIGlubGluZSBSZW5kZXJTdHlsZSogTm9kZTo6cmVuZGVyU3R5bGUo
KSBjb25zdAogICAgIC8vIEJ1ZyBpcyBDUiA2NTY5MTk0LCAiUHJvYmxlbSB3aXRoIHF1ZXN0aW9u
IG9wZXJhdG9yIGJpbmRpbmcgaW4gaW5saW5lIGZ1bmN0aW9uIgogICAgIGlmIChtX3JlbmRlcmVy
KSAKICAgICAgICAgcmV0dXJuIG1fcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIG5vblJl
bmRlcmVyUmVuZGVyU3R5bGUoKTsKKyAgICBpZiAoaXNFbGVtZW50Tm9kZSgpKQorICAgICAgICBy
ZXR1cm4gdG9FbGVtZW50KHRoaXMpLT5ub25SZW5kZXJlclN0eWxlKCk7CisgICAgcmV0dXJuIDA7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IDIxZjFjM2Y4OTlmYjA5M2ZiZmZiODI0NjFhYzFlMGM1YjUzYTgxOWQuLjdiMzcwNWYzMzE0
MDM5ODJkZmZjZDQxMDVmNTI2YTkzODFmMjFkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjMwLDEwICsyMzAsMTMgQEAgdm9pZCBOb2RlUmVu
ZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICBBU1NFUlQoIW5vZGUt
PnJlbmRlcmVyKCkpOwogICAgIEFTU0VSVChkb2N1bWVudC0+c2hvdWxkQ3JlYXRlUmVuZGVyZXJz
KCkpOwogCi0gICAgaWYgKCFtX2NvbnRleHQuc2hvdWxkQ3JlYXRlUmVuZGVyZXIoKSkKKyAgICBF
bGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUp
IDogMDsKKyAgICBpZiAoIW1fY29udGV4dC5zaG91bGRDcmVhdGVSZW5kZXJlcigpKSB7CisgICAg
ICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQtPnVzZXNOb25SZW5kZXJlclN0eWxlKCkpCisgICAg
ICAgICAgICBlbGVtZW50LT5zZXROb25SZW5kZXJlclN0eWxlKGVsZW1lbnQtPnN0eWxlRm9yUmVu
ZGVyZXIoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBFbGVtZW50KiBlbGVtZW50
ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUpIDogMDsKICAgICBpZiAo
ZWxlbWVudCkKICAgICAgICAgbV9jb250ZXh0LnNldFN0eWxlKGVsZW1lbnQtPnN0eWxlRm9yUmVu
ZGVyZXIoKSk7CiAgICAgZWxzZSBpZiAoUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IG1f
Y29udGV4dC5wYXJlbnRSZW5kZXJlcigpKQpAQCAtMjQyLDYgKzI0NSw4IEBAIHZvaWQgTm9kZVJl
bmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAgICAgaWYgKCFub2RlLT5y
ZW5kZXJlcklzTmVlZGVkKG1fY29udGV4dCkpIHsKICAgICAgICAgaWYgKGVsZW1lbnQgJiYgbV9j
b250ZXh0LnN0eWxlKCktPmFmZmVjdGVkQnlFbXB0eSgpKQogICAgICAgICAgICAgZWxlbWVudC0+
c2V0U3R5bGVBZmZlY3RlZEJ5RW1wdHkoKTsKKyAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVu
dC0+dXNlc05vblJlbmRlcmVyU3R5bGUoKSkKKyAgICAgICAgICAgIGVsZW1lbnQtPnNldE5vblJl
bmRlcmVyU3R5bGUobV9jb250ZXh0LnN0eWxlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCAxZmY2
YTdkMjIxYTY0MTBiNjg3NDkzYjRhNjQyY2E0YjY5NGEyNzhkLi42Mjk3MmNmYmUwZjM0YTY1ODNk
YWVhMDk3MWYyNjQ3Yjk0OGY5NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdy
b3VwRWxlbWVudC5jcHAKQEAgLTkyLDI1ICs5MiwxOCBAQCB2b2lkIEhUTUxPcHRHcm91cEVsZW1l
bnQ6OnJlY2FsY1NlbGVjdE9wdGlvbnMoKQogICAgICAgICB0b0hUTUxTZWxlY3RFbGVtZW50KHNl
bGVjdCktPnNldFJlY2FsY0xpc3RJdGVtcygpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1l
bnQ6OmF0dGFjaCgpCi17Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAg
ICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKLSAgICBIVE1MRWxlbWVu
dDo6YXR0YWNoKCk7Ci19Ci0KIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNoKCkKIHsK
ICAgICBtX3N0eWxlLmNsZWFyKCk7CiAgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOwogfQogCi12
b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjpzZXROb25SZW5kZXJl
clN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQogewogICAgIG1fc3R5bGUg
PSBuZXdTdHlsZTsKIH0KLSAgICAKLVJlbmRlclN0eWxlKiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpu
b25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3QgCisKK1JlbmRlclN0eWxlKiBIVE1MT3B0R3Jv
dXBFbGVtZW50Ojpub25SZW5kZXJlclN0eWxlKCkgY29uc3QKIHsgCiAgICAgcmV0dXJuIG1fc3R5
bGUuZ2V0KCk7IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3Jv
dXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApp
bmRleCAwYjQzODczMDYxMGU1ZWU3ZDdlNDdkZTg2ZDEzYmNhMTk4MDJmY2M5Li5mMmE5ZDlmY2Qy
ZWZlNjYxNDM1Y2Q3Mjk2MTE1NWNmNDJmMTZmODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNDgsMTYgKzQ4LDE2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
IWRpc2FibGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0
cmlidXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Tm9uUmVuZGVyZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPikgT1ZFUlJJ
REU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFy
c2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0g
MCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tl
eUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7Ci0gICAgCi0gICAgdmlydHVhbCBSZW5kZXJT
dHlsZSogbm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0OwotICAgIAorCisgICAgdmlydHVh
bCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCB1c2VzTm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IHRydWU7IH0KKwogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogCiAgICAgUmVmUHRy
PFJlbmRlclN0eWxlPiBtX3N0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVt
ZW50LmNwcAppbmRleCA4ZmNjMjJjMjdmYzc4ODExNWFkMjA0OWZiOGFkOGQ2MDg4NmMxYjBlLi5h
MWFhZmRjNzNmNzgwNzBlZjAyMTk4NzlkYTI3Mjc5ZDczZTdhMjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtODgsMTMgKzg4LDYgQEAgUGFzc1JlZlB0
cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3Ry
dWN0b3IoRG9jdW1lbnQKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CiAKLXZvaWQg
SFRNTE9wdGlvbkVsZW1lbnQ6OmF0dGFjaCgpCi17Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVu
ZGVyU3R5bGUoKSkKLSAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsK
LSAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7Ci19Ci0KIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6
OmRldGFjaCgpCiB7CiAgICAgbV9zdHlsZS5jbGVhcigpOwpAQCAtMzA1LDcgKzI5OCw3IEBAIHZv
aWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpCiAgICAg
c2V0QXR0cmlidXRlKGxhYmVsQXR0ciwgbGFiZWwpOwogfQogCi12b2lkIEhUTUxPcHRpb25FbGVt
ZW50OjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKK3Zv
aWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldE5vblJlbmRlcmVyU3R5bGUoUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gbmV3U3R5bGUpCiB7CiAgICAgbV9zdHlsZSA9IG5ld1N0eWxlOwogICAgIGlmIChI
VE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCkpIHsKQEAgLTMx
NCw3ICszMDcsNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpzZXRSZW5kZXJTdHlsZShQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKICAgICB9CiB9CiAKLVJlbmRlclN0eWxlKiBI
VE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0CitSZW5kZXJT
dHlsZSogSFRNTE9wdGlvbkVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5bGUoKSBjb25zdAogewogICAg
IHJldHVybiBtX3N0eWxlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxl
bWVudC5oCmluZGV4IDI0Y2RjZGI1ZWNiODM5ODNkYWMyYjFkM2ZiZWRjODkwZjE3NzMxMGQuLjI5
YzM3MDc3ODA3ZTliN2EwZjE5NTI2NWU2YWRmOTQ1NWViZGYzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRpb25FbGVtZW50LmgKQEAgLTczLDkgKzczLDggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0Zv
Y3VzYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CisgICAgdmlydHVhbCB2
b2lkIHNldE5vblJlbmRlcmVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4pIE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIE9W
RVJSSURFOwogCkBAIC04NCw3ICs4Myw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9y
ZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9
IDApOwogCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIG5vblJlbmRlcmVyU3R5bGUoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc05vblJlbmRlcmVyU3R5bGUoKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBTdHJpbmcgY29sbGVjdE9wdGlvbklu
bmVyVGV4dCgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170794</attachid>
            <date>2012-10-25 20:10:25 -0700</date>
            <delta_ts>2012-10-25 22:23:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100397-20121025200858.patch</filename>
            <type>text/plain</type>
            <size>16626</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVhNzFiNTIxMWE0YWU4
ZjBmZGJhMzY4OGNlMGFhODQ0ZTdmNGI1NC4uY2NhMDhkM2RmNGEzMjMwNWMwZmVmYmYxMTQzMGVh
NDJhZjI4OTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEVsaW1pbmF0ZSBz
ZXRSZW5kZXJTdHlsZSwgeW91IHJlYWxseSB3YW50IHNldE5vblJlbmRlcmVyU3R5bGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDM5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBhIG5l
dyBtZXRob2QgRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZSB0aGF0IG1vcmUgZXhwbGljaXRs
eSBkb2VzCisgICAgICAgIHdoYXQgb3ZlcnJpZGVzIG9mIE5vZGU6OnNldFJlbmRlclN0eWxlIHdl
cmUgaW50ZW5kZWQgdG8gZG8uCisKKyAgICAgICAgc2V0UmVuZGVyU3R5bGUgb25seSBleGlzdGVk
IHRvIHN1cHBvcnQgSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxPcHRHcm91cEVsZW1lbnQKKyAg
ICAgICAgc28gdGhleSBjb3VsZCBzdG9yZSB0aGVpciBSZW5kZXJTdHlsZSBldmVuIHRob3VnaCB0
aGV5IGhhdmUgbm8gcmVuZGVyZXIuIFRoaXMKKyAgICAgICAgbWVhbnMgYWxsIHN0eWxlIHNldHRp
bmcgd2VudCB0aHJvdWdoIHRoZSB2aXJ0dWFsIGNhbGwgdG8gc2V0UmVuZGVyU3R5bGUsIGFuZCBp
dAorICAgICAgICBhbHNvIGhpZGVzIHRoZSBpZiBzdGF0ZW1lbnQgcHJvdGVjdGluZyBhZ2FpbnN0
IG51bGwgcmVuZGVyZXJzIG1lYW5pbmcgd2UgZW5kIHVwCisgICAgICAgIGNoZWNraW5nIGlmIHRo
ZSByZW5kZXJlciBpcyBudWxsIHJlcGVhdGVkbHkgaW4gcmVjYWxjU3R5bGUuIFRoaXMgcmVmYWN0
b3IgY2xlYW5zCisgICAgICAgIHVwIHJlY2FsY1N0eWxlIHRvIGJlIG1vcmUgY2xlYXIgYWJvdXQg
d2hhdCdzIGdvaW5nIG9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBpcyBqdXN0IGEg
cmVmYWN0b3IuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKToKKyAgICAgICAgICBUaGlzIGlz
IG9ubHkgY2FsbGVkIGluIHJlY2FsY1N0eWxlLCBhbmQgaXMgb25seSBuZWVkZWQgaWYgd2UgaGF2
ZSBhIHJlbmRlcmVyLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZSk6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnVzZXNOb25SZW5k
ZXJlclN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5bGUp
OgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNyZWF0
ZVJlbmRlcmVyKTogSW5jaWRlbnRhbCB3aGl0ZXNwYWNlLgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6c2V0UmVuZGVyU3R5bGUpOgorICAgICAgICAgIFJlbW92ZWQgc2luY2Ugd2UgZG9uJ3QgbmVl
ZCBpdCBhbnltb3JlIGFuZCBpdCB3YXMgcmVwbGFjZWQgYnkKKyAgICAgICAgICBFbGVtZW50Ojpz
ZXROb25SZW5kZXJlclN0eWxlIGFzIGRlc2NyaWJlZCBhYm92ZS4gSXQgd2FzIG9ubHkgaGVyZSB0
byBzdXBwb3J0CisgICAgICAgICAgPG9wdGlvbj4gYW5kIDxvcHRncm91cD4gYW5kIHdlIGNhbiBz
ZXJ2ZSB0aGF0IHB1cnBvc2UgYmV0dGVyIHdpdGggbWV0aG9kcyBvbgorICAgICAgICAgIEVsZW1l
bnQgYW5kIHNwZWNpYWwgY2FzaW5nIGZvciB0aGUgbm8tcmVuZGVyZXIgY2FzZS4KKyAgICAgICAg
KiBkb20vTm9kZS5oOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyU3R5bGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OnJlbmRlclN0eWxlKTogT25seSByZXR1cm4gdGhlIG5vblJlbmRlcmVy
U3R5bGUgaWYgaXQncyBhbiBlbGVtZW50LgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVOb25SZW5kZXJlclN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVk
ZWQpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50OjpzZXROb25SZW5kZXJlclN0eWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5bGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oOgorICAgICAgICAoSFRNTE9wdEdyb3Vw
RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVyZXJTdHlsZSk6CisgICAg
ICAgICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAoSFRNTE9wdGlvbkVsZW1l
bnQpOgorCiAyMDEyLTEwLTI1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMyMjY5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDkxYTk2YzdlZTcyMjZlM2NiODI4ZjQ3NDg1NGE0YjI5Mzk1ZGEx
ODEuLmRjNTI4MjE5ZDgxOTczYTNkZjM5OGUxNTFiYTcxMjVhMzMzMTEyZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTEwNDUsOCArMTA0NSw5IEBAIHZvaWQgRWxlbWVudDo6ZGV0YWNoKCkK
IGJvb2wgRWxlbWVudDo6cHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChjb25zdCBSZW5kZXJTdHls
ZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpCiB7CiAgICAgQVNTRVJUKGN1
cnJlbnRTdHlsZSA9PSByZW5kZXJTdHlsZSgpKTsKKyAgICBBU1NFUlQocmVuZGVyZXIoKSk7CiAK
LSAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWN1cnJlbnRTdHlsZSkKKyAgICBpZiAoIWN1cnJlbnRT
dHlsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgUHNldWRvU3R5bGVDYWNo
ZSogcHNldWRvU3R5bGVDYWNoZSA9IGN1cnJlbnRTdHlsZS0+Y2FjaGVkUHNldWRvU3R5bGVzKCk7
CkBAIC0xMDk2LDcgKzEwOTcsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hh
bmdlIGNoYW5nZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBSZWYgY3Vy
cmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRS
ZW5kZXJTdHlsZSgpIGlzIGNhbGxlZC4KKyAgICAvLyBSZWYgY3VycmVudFN0eWxlIGluIGNhc2Ug
aXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXR0aW5nIHRoZSBuZXcgc3R5bGUg
aW4gdGhlIHJlbmRlcmVyLgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VycmVudFN0eWxlKHJl
bmRlclN0eWxlKCkpOwogICAgIGJvb2wgaGFzUGFyZW50U3R5bGUgPSBwYXJlbnROb2RlRm9yUmVu
ZGVyaW5nQW5kU3R5bGUoKSA/IHN0YXRpY19jYXN0PGJvb2w+KHBhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSgpLT5yZW5kZXJTdHlsZSgpKSA6IGZhbHNlOwogICAgIGJvb2wgaGFzRGlyZWN0
QWRqYWNlbnRSdWxlcyA9IGN1cnJlbnRTdHlsZSAmJiBjdXJyZW50U3R5bGUtPmNoaWxkcmVuQWZm
ZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKQEAgLTExNDUsMTcgKzExNDYsMTYgQEAgdm9p
ZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICAg
ICAgbmV3U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGlmIChjaCAhPSBOb0NoYW5nZSB8fCBwc2V1ZG9TdHlsZUNh
Y2hlSXNJbnZhbGlkKGN1cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUuZ2V0KCkpIHx8IChjaGFu
Z2UgPT0gRm9yY2UgJiYgcmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5yZXF1aXJlc0ZvcmNlZFN0
eWxlUmVjYWxjUHJvcGFnYXRpb24oKSkpIHsKLSAgICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5l
d1N0eWxlKTsKLSAgICAgICAgfSBlbHNlIGlmIChuZWVkc1N0eWxlUmVjYWxjKCkgJiYgc3R5bGVD
aGFuZ2VUeXBlKCkgIT0gU3ludGhldGljU3R5bGVDaGFuZ2UpIHsKLSAgICAgICAgICAgIC8vIEFs
dGhvdWdoIG5vIGNoYW5nZSBvY2N1cnJlZCwgd2UgdXNlIHRoZSBuZXcgc3R5bGUgc28gdGhhdCB0
aGUgY291c2luIHN0eWxlIHNoYXJpbmcgY29kZSB3b24ndCBnZXQKLSAgICAgICAgICAgIC8vIGZv
b2xlZCBpbnRvIGJlbGlldmluZyB0aGlzIHN0eWxlIGlzIHRoZSBzYW1lLgotICAgICAgICAgICAg
aWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGVJbnRl
cm5hbChuZXdTdHlsZS5nZXQoKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
c2V0UmVuZGVyU3R5bGUobmV3U3R5bGUpOwotICAgICAgICB9IGVsc2UgaWYgKHN0eWxlQ2hhbmdl
VHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQotICAgICAgICAgICAgIHNldFJlbmRlclN0
eWxlKG5ld1N0eWxlKTsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAoY2ggIT0gTm9DaGFuZ2UgfHwgcHNldWRv
U3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUuZ2V0KCksIG5ld1N0eWxlLmdldCgpKSB8
fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyLT5yZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxj
UHJvcGFnYXRpb24oKSkgfHwgc3R5bGVDaGFuZ2VUeXBlKCkgPT0gU3ludGhldGljU3R5bGVDaGFu
Z2UpCisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldEFuaW1hdGFibGVTdHlsZShuZXdTdHls
ZS5nZXQoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChuZWVkc1N0eWxlUmVjYWxjKCkpIHsKKyAg
ICAgICAgICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUg
bmV3IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0
CisgICAgICAgICAgICAgICAgLy8gZm9vbGVkIGludG8gYmVsaWV2aW5nIHRoaXMgc3R5bGUgaXMg
dGhlIHNhbWUuCisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNldFN0eWxlSW50ZXJuYWwobmV3
U3R5bGUuZ2V0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHVzZXNOb25S
ZW5kZXJlclN0eWxlKCkpCisgICAgICAgICAgICBzZXROb25SZW5kZXJlclN0eWxlKG5ld1N0eWxl
LmdldCgpKTsKIAogICAgICAgICAvLyBJZiAicmVtIiB1bml0cyBhcmUgdXNlZCBhbnl3aGVyZSBp
biB0aGUgZG9jdW1lbnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBj
aGFuZ2VzLCB0aGVuIGdvIGFoZWFkIGFuZCBmb3JjZSBmb250IHVwZGF0aW5nCiAgICAgICAgIC8v
IGFsbCB0aGUgd2F5IGRvd24gdGhlIHRyZWUuIFRoaXMgaXMgc2ltcGxlciB0aGFuIGhhdmluZyB0
byBtYWludGFpbiBhIGNhY2hlIG9mIG9iamVjdHMgKGFuZCBzdWNoIGZvbnQgc2l6ZSBjaGFuZ2Vz
IHNob3VsZCBiZSByYXJlIGFueXdheSkuCkBAIC0yMjkxLDYgKzIyOTEsOSBAQCB2b2lkIEVsZW1l
bnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKQogICAgIEFTU0VSVChoYXNDdXN0b21DYWxs
YmFja3MoKSk7CiB9CiAKK3ZvaWQgRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJTdHlsZShQYXNzUmVm
UHRyPFJlbmRlclN0eWxlPikKK3sKK30KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gRWxlbWVu
dDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA4OTNi
YmVlZjA2NzFkZDUzMmZhZjE4Y2I3MDQ4ZDkzYjI3YWQ3ODFlLi43ZWRkZTU0MzFhMWZlOGQ4MzE3
NGQ0Njc2MTM1MDI3ZmVmZmU2YjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTI3Miw2ICsyNzIs
MTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihS
ZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNo
YW5nZSA9IE5vQ2hhbmdlKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXROb25SZW5kZXJlclN0eWxl
KFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc05vblJlbmRl
cmVyU3R5bGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUmVuZGVyU3R5
bGUqIG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCB7IHJldHVybiAwOyB9CisKICAgICBFbGVtZW50
U2hhZG93KiBzaGFkb3coKSBjb25zdDsKICAgICBFbGVtZW50U2hhZG93KiBlbnN1cmVTaGFkb3co
KTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEFkZEF1dGhvclNoYWRvd1Jvb3QoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAppbmRleCA2YTYxN2RhN2NjYTk1M2I2ZThjZGVlNjI1NjA2N2EwMjU5NjliOGE5Li45
ZjQ5NWE1ZjI0YmRjMzM1MzU0ZGYwNjFlZTlkMWQwNGMyZWE1NzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CkBAIC0xNDE1LDE3ICsxNDE1LDYgQEAgUmVuZGVyT2JqZWN0KiBOb2RlOjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gMDsKIH0KLSAgICAKLVJlbmRlclN0eWxlKiBOb2RlOjpub25SZW5kZXJlclJl
bmRlclN0eWxlKCkgY29uc3QKLXsgCi0gICAgcmV0dXJuIDA7IAotfSAgIAotCi12b2lkIE5vZGU6
OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHMpCi17Ci0gICAgaWYgKG1f
cmVuZGVyZXIpCi0gICAgICAgIG1fcmVuZGVyZXItPnNldEFuaW1hdGFibGVTdHlsZShzKTsgCi19
CiAKIFJlbmRlclN0eWxlKiBOb2RlOjp2aXJ0dWFsQ29tcHV0ZWRTdHlsZShQc2V1ZG9JZCBwc2V1
ZG9FbGVtZW50U3BlY2lmaWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYjcyMDExYzkxOTRhOTA0NTg2
NTI4NGMxY2VkOGRiMTMxODYzYjk4YS4uMWYzNTBmYzg0YjBmODY1M2RiMTY3YTY3ZjMyODY2Nzcz
NDU1MTM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01MjYsMTAgKzUyNiw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlUmVuZGVyaW5n
Q29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIENvbnRh
aW5lck5vZGUqIHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwotICAgIAotICAgIC8v
IFdyYXBwZXIgZm9yIG5vZGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyLCBidXQgc3RpbGwg
Y2FjaGUgdGhlIHN0eWxlIChsaWtlIEhUTUxPcHRpb25FbGVtZW50KS4KKworICAgIC8vIFdyYXBw
ZXIgZm9yIGVsZW1lbnRzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyLCBidXQgc3RpbGwgY2Fj
aGUgdGhlIHN0eWxlIChsaWtlIEhUTUxPcHRpb25FbGVtZW50KS4KICAgICBSZW5kZXJTdHlsZSog
cmVuZGVyU3R5bGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyU3R5bGUoUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4pOwogCiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUo
UHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmllciA9IE5PUFNFVURPKSB7IHJldHVybiB2aXJ0
dWFsQ29tcHV0ZWRTdHlsZShwc2V1ZG9FbGVtZW50U3BlY2lmaWVyKTsgfQogCkBAIC03ODMsOCAr
NzgyLDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIE93blB0cjxOb2RlUmFyZURhdGE+IGNyZWF0
ZVJhcmVEYXRhKCk7CiAgICAgYm9vbCByYXJlRGF0YUZvY3VzZWQoKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgUmVuZGVyU3R5bGUqIG5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKSBjb25zdDsKLQogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB2aXJ0dWFsUHJlZml4KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHZpcnR1YWxMb2NhbE5hbWUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgdmlydHVhbE5hbWVzcGFjZVVSSSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5oCmluZGV4IDFhMmQyYzM0YTE5MTlkYTYx
OTI3NmFiYzFjNjkzMzMxYzE5ZGNmMmIuLjZiNTRhYjA4NDc3Nzk5NTU2N2JiNGY4Y2Y3ZTU2Mjlh
ZjBlMzhjYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlclN0eWxlLmgKQEAgLTM3LDcgKzM3
LDkgQEAgaW5saW5lIFJlbmRlclN0eWxlKiBOb2RlOjpyZW5kZXJTdHlsZSgpIGNvbnN0CiAgICAg
Ly8gQnVnIGlzIENSIDY1NjkxOTQsICJQcm9ibGVtIHdpdGggcXVlc3Rpb24gb3BlcmF0b3IgYmlu
ZGluZyBpbiBpbmxpbmUgZnVuY3Rpb24iCiAgICAgaWYgKG1fcmVuZGVyZXIpIAogICAgICAgICBy
ZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gbm9uUmVuZGVyZXJSZW5kZXJT
dHlsZSgpOworICAgIGlmIChpc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVybiB0b0VsZW1l
bnQodGhpcyktPm5vblJlbmRlcmVyU3R5bGUoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMjFmMWMzZjg5
OWZiMDkzZmJmZmI4MjQ2MWFjMWUwYzViNTNhODE5ZC4uZDVmYzAwM2Q0MTc1ZTExZmZmZDQ2YmFi
MTVkOWY4MTZjMmZiYTg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwCkBAIC01MCw2ICs1MCwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVOb25SZW5k
ZXJlclN0eWxlKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAgICBp
ZiAoZWxlbWVudCAmJiBlbGVtZW50LT51c2VzTm9uUmVuZGVyZXJTdHlsZSgpKQorICAgICAgICBl
bGVtZW50LT5zZXROb25SZW5kZXJlclN0eWxlKGVsZW1lbnQtPnN0eWxlRm9yUmVuZGVyZXIoKSk7
Cit9CisKIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBu
b2RlKQogICAgIDogbV9ub2RlKG5vZGUpCiAgICAgLCBtX3N0eWxlKDApCkBAIC0yMDcsNiArMjEz
LDcgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcigp
CiB7CiAgICAgTm9kZSogbm9kZSA9IG1fY29udGV4dC5ub2RlKCk7CiAgICAgUmVuZGVyT2JqZWN0
KiBuZXdSZW5kZXJlciA9IG5vZGUtPmNyZWF0ZVJlbmRlcmVyKG5vZGUtPmRvY3VtZW50KCktPnJl
bmRlckFyZW5hKCksIG1fY29udGV4dC5zdHlsZSgpKTsKKyAgICAvLyBGSVhNRTogY3JlYXRlUmVu
ZGVyZXIgd2lsbCBuZXZlciBhY3R1YWxseSByZXR1cm4gMC4KICAgICBpZiAoIW5ld1JlbmRlcmVy
KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjMwLDEwICsyMzcsMTIgQEAgdm9pZCBOb2RlUmVu
ZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICBBU1NFUlQoIW5vZGUt
PnJlbmRlcmVyKCkpOwogICAgIEFTU0VSVChkb2N1bWVudC0+c2hvdWxkQ3JlYXRlUmVuZGVyZXJz
KCkpOwogCi0gICAgaWYgKCFtX2NvbnRleHQuc2hvdWxkQ3JlYXRlUmVuZGVyZXIoKSkKKyAgICBF
bGVtZW50KiBlbGVtZW50ID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUp
IDogMDsKKyAgICBpZiAoIW1fY29udGV4dC5zaG91bGRDcmVhdGVSZW5kZXJlcigpKSB7CisgICAg
ICAgIHVwZGF0ZU5vblJlbmRlcmVyU3R5bGUoZWxlbWVudCwgZWxlbWVudC0+c3R5bGVGb3JSZW5k
ZXJlcigpLmdldCgpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBub2RlLT5pc0VsZW1lbnROb2RlKCkgPyB0b0VsZW1lbnQobm9kZSkgOiAwOwogICAg
IGlmIChlbGVtZW50KQogICAgICAgICBtX2NvbnRleHQuc2V0U3R5bGUoZWxlbWVudC0+c3R5bGVG
b3JSZW5kZXJlcigpKTsKICAgICBlbHNlIGlmIChSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVy
ID0gbV9jb250ZXh0LnBhcmVudFJlbmRlcmVyKCkpCkBAIC0yNDIsNiArMjUxLDcgQEAgdm9pZCBO
b2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICBpZiAoIW5v
ZGUtPnJlbmRlcmVySXNOZWVkZWQobV9jb250ZXh0KSkgewogICAgICAgICBpZiAoZWxlbWVudCAm
JiBtX2NvbnRleHQuc3R5bGUoKS0+YWZmZWN0ZWRCeUVtcHR5KCkpCiAgICAgICAgICAgICBlbGVt
ZW50LT5zZXRTdHlsZUFmZmVjdGVkQnlFbXB0eSgpOworICAgICAgICB1cGRhdGVOb25SZW5kZXJl
clN0eWxlKGVsZW1lbnQsIG1fY29udGV4dC5zdHlsZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtMjU2LDggKzI2NiwxMCBAQCB2b2lkIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0
ZVJlbmRlcmVySWZOZWVkZWQoKQogICAgICAgICBuZXdSZW5kZXJlciA9IFJlbmRlckZ1bGxTY3Jl
ZW46OndyYXBSZW5kZXJlcihuZXdSZW5kZXJlciwgcGFyZW50UmVuZGVyZXIsIGRvY3VtZW50KTsK
ICNlbmRpZgogCi0gICAgaWYgKCFuZXdSZW5kZXJlcikKKyAgICBpZiAoIW5ld1JlbmRlcmVyKSB7
CisgICAgICAgIHVwZGF0ZU5vblJlbmRlcmVyU3R5bGUoZWxlbWVudCwgbV9jb250ZXh0LnN0eWxl
KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgLy8gTm90ZTogQWRkaW5nIG5ld1Jl
bmRlcmVyIGluc3RlYWQgb2YgcmVuZGVyZXIoKS4gcmVuZGVyZXIoKSBtYXkgYmUgYSBjaGlsZCBv
ZiBuZXdSZW5kZXJlci4KICAgICBwYXJlbnRSZW5kZXJlci0+YWRkQ2hpbGQobmV3UmVuZGVyZXIs
IG5leHRSZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50
LmNwcAppbmRleCAxZmY2YTdkMjIxYTY0MTBiNjg3NDkzYjRhNjQyY2E0YjY5NGEyNzhkLi43NDMx
ZDQ0NjJhNjM3ODY2NDc0ZmVlN2NlY2U5ZjE5YTMxNjI2MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTkyLDI2ICs5MiwxOSBAQCB2b2lkIEhU
TUxPcHRHcm91cEVsZW1lbnQ6OnJlY2FsY1NlbGVjdE9wdGlvbnMoKQogICAgICAgICB0b0hUTUxT
ZWxlY3RFbGVtZW50KHNlbGVjdCktPnNldFJlY2FsY0xpc3RJdGVtcygpOwogfQogCi12b2lkIEhU
TUxPcHRHcm91cEVsZW1lbnQ6OmF0dGFjaCgpCi17Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVu
ZGVyU3R5bGUoKSkKLSAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsK
LSAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7Ci19Ci0KIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVu
dDo6ZGV0YWNoKCkKIHsKICAgICBtX3N0eWxlLmNsZWFyKCk7CiAgICAgSFRNTEVsZW1lbnQ6OmRl
dGFjaCgpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50
OjpzZXROb25SZW5kZXJlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQog
ewogICAgIG1fc3R5bGUgPSBuZXdTdHlsZTsKIH0KLSAgICAKLVJlbmRlclN0eWxlKiBIVE1MT3B0
R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3QgCi17IAorCitSZW5k
ZXJTdHlsZSogSFRNTE9wdEdyb3VwRWxlbWVudDo6bm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0Cit7
CiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdEdyb3VwRWxlbWVudC5oCmluZGV4IDBiNDM4NzMwNjEwZTVlZTdkN2U0N2RlODZkMTNiY2Ex
OTgwMmZjYzkuLmYyYTlkOWZjZDJlZmU2NjE0MzVjZDcyOTYxMTU1Y2Y0MmYxNmY4ODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC00OCwxNiArNDgsMTYg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkRm9ybUNvbnRyb2woKSBjb25z
dCBPVkVSUklERSB7IHJldHVybiAhZGlzYWJsZWQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBOb2RlUmVuZGVyaW5nQ29udGV4dCYpIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRh
Y2goKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4pOworICAgIHZpcnR1YWwgdm9pZCBzZXROb25SZW5kZXJlclN0eWxlKFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwg
Tm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKTsKLSAgICAK
LSAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Q7
Ci0gICAgCisKKyAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHVzZXNOb25SZW5kZXJlclN0eWxlKCkgY29u
c3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdm9pZCByZWNhbGNTZWxlY3RPcHRp
b25zKCk7CiAKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDhmY2MyMmMyN2ZjNzg4MTE1YWQyMDQ5
ZmI4YWQ4ZDYwODg2YzFiMGUuLmExYWFmZGM3M2Y3ODA3MGVmMDIxOTg3OWRhMjcyNzlkNzNlN2Ey
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC04OCwx
MyArODgsNiBAQCBQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9uRWxlbWVu
dDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3RvcihEb2N1bWVudAogICAgIHJldHVybiBlbGVtZW50LnJl
bGVhc2UoKTsKIH0KIAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6YXR0YWNoKCkKLXsKLSAgICBp
ZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAgICAgICBzZXRSZW5kZXJTdHlsZShz
dHlsZUZvclJlbmRlcmVyKCkpOwotICAgIEhUTUxFbGVtZW50OjphdHRhY2goKTsKLX0KLQogdm9p
ZCBIVE1MT3B0aW9uRWxlbWVudDo6ZGV0YWNoKCkKIHsKICAgICBtX3N0eWxlLmNsZWFyKCk7CkBA
IC0zMDUsNyArMjk4LDcgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0TGFiZWwoY29uc3Qg
U3RyaW5nJiBsYWJlbCkKICAgICBzZXRBdHRyaWJ1dGUobGFiZWxBdHRyLCBsYWJlbCk7CiB9CiAK
LXZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0Tm9uUmVuZGVyZXJT
dHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKIHsKICAgICBtX3N0eWxlID0g
bmV3U3R5bGU7CiAgICAgaWYgKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBvd25lclNlbGVj
dEVsZW1lbnQoKSkgewpAQCAtMzE0LDcgKzMwNyw3IEBAIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6
OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQogICAgIH0K
IH0KIAotUmVuZGVyU3R5bGUqIEhUTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclJlbmRlclN0
eWxlKCkgY29uc3QKK1JlbmRlclN0eWxlKiBIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVyZXJT
dHlsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggMjRjZGNkYjVlY2I4Mzk4M2RhYzJiMWQz
ZmJlZGM4OTBmMTc3MzEwZC4uMjljMzcwNzc4MDdlOWI3YTBmMTk1MjY1ZTZhZGY5NDU1ZWJkZjM5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNzMsOSArNzMs
OCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uUmVuZGVyZXJTdHlsZShQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CiAKQEAgLTg0LDcgKzgzLDggQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIg
PSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBp
bnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKLSAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25S
ZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9u
UmVuZGVyZXJTdHlsZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB1c2VzTm9u
UmVuZGVyZXJTdHlsZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFN0
cmluZyBjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KCkgY29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170813</attachid>
            <date>2012-10-25 22:23:28 -0700</date>
            <delta_ts>2012-10-26 09:48:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100397-20121025222200.patch</filename>
            <type>text/plain</type>
            <size>14290</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxM2ZjZTc3ZjY1YTRk
NzUxNWRhNTBmNzY2ZjZhNjhjMGE5NTk2Ny4uZjUyNmUzNGQxZWUyMjIyMGJiNWQwODFmNmQwZjdj
MWE0MjAxZGNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBzZXRS
ZW5kZXJTdHlsZSBpbiBmYXZvciBvZiBjYWxsYmFja3Mgb24gSFRNTE9wdGlvbkVsZW1lbnQgYW5k
IEhUTUxPcHRHcm91cEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBOb2RlIGN1c3RvbSBjYWxsYmFja3MgdG8gc3VwcG9ydCB0aGUgbm9u
LXJlbmRlcmVyIHN0eWxlIGNhY2hpbmcgZm9yIG9wdGlvbgorICAgICAgICBhbmQgb3B0Z3JvdXAg
ZWxpbWluYXRpbmcgdGhlIG5lZWQgZm9yIHNldFJlbmRlclN0eWxlLgorCisgICAgICAgIHNldFJl
bmRlclN0eWxlIG9ubHkgZXhpc3RlZCB0byBzdXBwb3J0IEhUTUxPcHRpb25FbGVtZW50IGFuZCBI
VE1MT3B0R3JvdXBFbGVtZW50CisgICAgICAgIHNvIHRoZXkgY291bGQgc3RvcmUgdGhlaXIgUmVu
ZGVyU3R5bGUgZXZlbiB0aG91Z2ggdGhleSBoYXZlIG5vIHJlbmRlcmVyLiBUaGlzCisgICAgICAg
IG1lYW5zIGFsbCBzdHlsZSBzZXR0aW5nIHdlbnQgdGhyb3VnaCB0aGUgdmlydHVhbCBjYWxsIHRv
IHNldFJlbmRlclN0eWxlLCBhbmQgaXQKKyAgICAgICAgYWxzbyBoaWQgdGhlIGlmIHN0YXRlbWVu
dCBwcm90ZWN0aW5nIGFnYWluc3QgbnVsbCByZW5kZXJlcnMgbWVhbmluZyB3ZSBlbmQgdXAKKyAg
ICAgICAgY2hlY2tpbmcgaWYgdGhlIHJlbmRlcmVyIGlzIG51bGwgcmVwZWF0ZWRseSBpbiByZWNh
bGNTdHlsZS4gVGhpcyByZWZhY3RvciBjbGVhbnMKKyAgICAgICAgdXAgcmVjYWxjU3R5bGUgdG8g
YmUgbW9yZSBjbGVhciBhYm91dCB3aGF0J3MgZ29pbmcgb24uCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzIG5lZWRlZCwgdGhpcyBpcyBqdXN0IGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiBkb20vRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJ
bnZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAg
ICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjcmVhdGVSZW5kZXJl
cik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRSZW5kZXJTdHlsZSk6CisgICAgICAgICAg
ICBSZW1vdmVkIHRoaXMgbWV0aG9kIGJlY2F1c2UgaXQgd2FzIG9ubHkgaGVyZSB0byBzdXBwb3J0
IEhUTUxPcHRpb25FbGVtZW50CisgICAgICAgICAgICBhbmQgSFRNTE9wdEdyb3VwRWxlbWVudC4g
SW5zdGVhZCB3ZSBjYW4gdXNlIG5vZGUgY3VzdG9tIGNhbGxiYWNrcy4KKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bm9uUmVuZGVyZXJTdHlsZSk6IFJlbmFt
ZWQgZnJvbSBub25SZW5kZXJlclJlbmRlclN0eWxlIHRvIG1hdGNoIG90aGVyIHN0eWxlIG1ldGhv
ZHMuCisgICAgICAgICogZG9tL05vZGVSZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZTo6cmVuZGVyU3R5bGUpOgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50OjpIVE1MT3B0R3JvdXBF
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OmF0dGFjaCk6
IFJlb3JkZXIgdGhlIGxvZ2ljIHRvIGF2b2lkIGNhbGxpbmcgc3R5bGVGb3JSZW5kZXJlciB0d2lj
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OnVwZGF0ZU5vblJlbmRl
clN0eWxlKTogVXBkYXRlcyB0aGUgY2FjaGVkIG5vbi1yZW5kZXJlciBzdHlsZS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcik6
CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MT3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVu
dDo6SFRNTE9wdGlvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1l
bnQ6OmF0dGFjaCk6IFJlb3JkZXIgdGhlIGxvZ2ljIHRvIGF2b2lkIGNhbGxpbmcgc3R5bGVGb3JS
ZW5kZXJlciB0d2ljZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojp1cGRh
dGVOb25SZW5kZXJTdHlsZSk6IFVwZGF0ZXMgdGhlIGNhY2hlZCBub24tcmVuZGVyZXIgc3R5bGUu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVyZXJTdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6ZGlkUmVjYWxjU3R5
bGUpOiBSZXF1ZXN0cyB0aGUgcmVwYWludCBvZiB0aGUgc2VsZWN0IGxpa2Ugc2V0UmVuZGVyU3R5
bGUgdXNlZCB0by4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmg6CisKIDIwMTIt
MTAtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4
ZWQgV2luZG93cyBwYXRoIGZvciBTaGFyZWRXb3JrZXJTdHJhdGVneS5oIC0gaXQncyBpbiB3b3Jr
ZXJzLywgbm90IHBsYXRmb3JtLy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBlODQ1NmY3MDQw
YzcyMWFkZWY0ZDI0MjE2NTM4YmJiNzI0Y2Y1MjcwLi5lYTZkYjkyNTUwMmE3MmRlNTFiYjE4NWFk
NWRkNjMxYzI5OWNhMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDYyLDggKzEwNjIs
OSBAQCB2b2lkIEVsZW1lbnQ6OmRldGFjaCgpCiBib29sIEVsZW1lbnQ6OnBzZXVkb1N0eWxlQ2Fj
aGVJc0ludmFsaWQoY29uc3QgUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUq
IG5ld1N0eWxlKQogewogICAgIEFTU0VSVChjdXJyZW50U3R5bGUgPT0gcmVuZGVyU3R5bGUoKSk7
CisgICAgQVNTRVJUKHJlbmRlcmVyKCkpOwogCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFjdXJy
ZW50U3R5bGUpCisgICAgaWYgKCFjdXJyZW50U3R5bGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGNvbnN0IFBzZXVkb1N0eWxlQ2FjaGUqIHBzZXVkb1N0eWxlQ2FjaGUgPSBjdXJyZW50
U3R5bGUtPmNhY2hlZFBzZXVkb1N0eWxlcygpOwpAQCAtMTExMyw3ICsxMTE0LDcgQEAgdm9pZCBF
bGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgLy8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90
aGVyd2lzZSBiZSBkZWxldGVkIHdoZW4gc2V0UmVuZGVyU3R5bGUoKSBpcyBjYWxsZWQuCisgICAg
Ly8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVk
IHdoZW4gc2V0dGluZyB0aGUgbmV3IHN0eWxlIGluIHRoZSByZW5kZXJlci4KICAgICBSZWZQdHI8
UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKICAgICBib29sIGhhc1Bh
cmVudFN0eWxlID0gcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgPyBzdGF0aWNfY2Fz
dDxib29sPihwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKS0+cmVuZGVyU3R5bGUoKSkg
OiBmYWxzZTsKICAgICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUg
JiYgY3VycmVudFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7
CkBAIC0xMTYyLDE3ICsxMTYzLDE1IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVD
aGFuZ2UgY2hhbmdlKQogICAgICAgICAgICAgICAgIG5ld1N0eWxlLT5zZXRDaGlsZHJlbkFmZmVj
dGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY2gg
IT0gTm9DaGFuZ2UgfHwgcHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUuZ2V0
KCksIG5ld1N0eWxlLmdldCgpKSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyKCkgJiYg
cmVuZGVyZXIoKS0+cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpKSB7Ci0g
ICAgICAgICAgICBzZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
bmVlZHNTdHlsZVJlY2FsYygpICYmIHN0eWxlQ2hhbmdlVHlwZSgpICE9IFN5bnRoZXRpY1N0eWxl
Q2hhbmdlKSB7Ci0gICAgICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFuZ2Ugb2NjdXJyZWQsIHdl
IHVzZSB0aGUgbmV3IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHlsZSBzaGFyaW5nIGNvZGUg
d29uJ3QgZ2V0Ci0gICAgICAgICAgICAvLyBmb29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBzdHls
ZSBpcyB0aGUgc2FtZS4KLSAgICAgICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAg
ICAgIHJlbmRlcmVyKCktPnNldFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0KCkpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5ld1N0eWxlKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChzdHlsZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5n
ZSkKLSAgICAgICAgICAgICBzZXRSZW5kZXJTdHlsZShuZXdTdHlsZSk7CisgICAgICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAg
aWYgKGNoICE9IE5vQ2hhbmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY3VycmVudFN0
eWxlLmdldCgpLCBuZXdTdHlsZS5nZXQoKSkgfHwgKGNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJl
ci0+cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkpIHx8IHN0eWxlQ2hhbmdl
VHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQorICAgICAgICAgICAgICAgIHJlbmRlcmVy
LT5zZXRBbmltYXRhYmxlU3R5bGUobmV3U3R5bGUuZ2V0KCkpOworICAgICAgICAgICAgZWxzZSBp
ZiAobmVlZHNTdHlsZVJlY2FsYygpKSB7CisgICAgICAgICAgICAgICAgLy8gQWx0aG91Z2ggbm8g
Y2hhbmdlIG9jY3VycmVkLCB3ZSB1c2UgdGhlIG5ldyBzdHlsZSBzbyB0aGF0IHRoZSBjb3VzaW4g
c3R5bGUgc2hhcmluZyBjb2RlIHdvbid0IGdldAorICAgICAgICAgICAgICAgIC8vIGZvb2xlZCBp
bnRvIGJlbGlldmluZyB0aGlzIHN0eWxlIGlzIHRoZSBzYW1lLgorICAgICAgICAgICAgICAgIHJl
bmRlcmVyLT5zZXRTdHlsZUludGVybmFsKG5ld1N0eWxlLmdldCgpKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQogCiAgICAgICAgIC8vIElmICJyZW0iIHVuaXRzIGFyZSB1c2VkIGFueXdoZXJl
IGluIHRoZSBkb2N1bWVudCwgYW5kIGlmIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXpl
IGNoYW5nZXMsIHRoZW4gZ28gYWhlYWQgYW5kIGZvcmNlIGZvbnQgdXBkYXRpbmcKICAgICAgICAg
Ly8gYWxsIHRoZSB3YXkgZG93biB0aGUgdHJlZS4gVGhpcyBpcyBzaW1wbGVyIHRoYW4gaGF2aW5n
IHRvIG1haW50YWluIGEgY2FjaGUgb2Ygb2JqZWN0cyAoYW5kIHN1Y2ggZm9udCBzaXplIGNoYW5n
ZXMgc2hvdWxkIGJlIHJhcmUgYW55d2F5KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxNzBlZTM3Mzdl
NGQ1NmEzZjU3ZTE5YTA2OGJiN2ExNDk4N2Y1ODZjLi5hMTdlZmEwMDMxOTNiYjRiNDAwNWZjNjNm
YzJkYmE0NmNmY2E5MmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xNDE1LDE3ICsxNDE1LDYgQEAg
UmVuZGVyT2JqZWN0KiBOb2RlOjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gMDsKIH0KLSAgICAK
LVJlbmRlclN0eWxlKiBOb2RlOjpub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3QKLXsgCi0g
ICAgcmV0dXJuIDA7IAotfSAgIAotCi12b2lkIE5vZGU6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IHMpCi17Ci0gICAgaWYgKG1fcmVuZGVyZXIpCi0gICAgICAgIG1fcmVu
ZGVyZXItPnNldEFuaW1hdGFibGVTdHlsZShzKTsgCi19CiAKIFJlbmRlclN0eWxlKiBOb2RlOjp2
aXJ0dWFsQ29tcHV0ZWRTdHlsZShQc2V1ZG9JZCBwc2V1ZG9FbGVtZW50U3BlY2lmaWVyKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmgKaW5kZXggMDM1YWJiMzRlOTQ2MTI5YjVhNGVmYjgyNDQ4MGI3MjBhYTJlNTEwMS4u
NWIwY2I1NWU0Y2RmMjhkNDQ3MGY4NGZkOWI1NDg2OGNlYTkyMTg5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBA
IC01MzAsNyArNTMwLDYgQEAgcHVibGljOgogICAgIAogICAgIC8vIFdyYXBwZXIgZm9yIG5vZGVz
IHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyLCBidXQgc3RpbGwgY2FjaGUgdGhlIHN0eWxlIChs
aWtlIEhUTUxPcHRpb25FbGVtZW50KS4KICAgICBSZW5kZXJTdHlsZSogcmVuZGVyU3R5bGUoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4pOwogCiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgcHNldWRv
RWxlbWVudFNwZWNpZmllciA9IE5PUFNFVURPKSB7IHJldHVybiB2aXJ0dWFsQ29tcHV0ZWRTdHls
ZShwc2V1ZG9FbGVtZW50U3BlY2lmaWVyKTsgfQogCkBAIC03ODQsNyArNzgzLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIE93blB0cjxOb2RlUmFyZURhdGE+IGNyZWF0ZVJhcmVEYXRhKCk7CiAg
ICAgYm9vbCByYXJlRGF0YUZvY3VzZWQoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgUmVuZGVyU3R5
bGUqIG5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFJlbmRlclN0
eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIHZpcnR1YWxQcmVmaXgoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgdmlydHVhbExvY2FsTmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJTdHlsZS5oCmluZGV4IDFhMmQyYzM0YTE5MTlkYTYxOTI3NmFiYzFjNjkz
MzMxYzE5ZGNmMmIuLjA3NGUyMTE0YjE4OTZkNWIzMjg2OWQyMDRlOGRiMmI2MjFmYzM3MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlclN0eWxlLmgKQEAgLTM1LDkgKzM1LDkgQEAgaW5saW5l
IFJlbmRlclN0eWxlKiBOb2RlOjpyZW5kZXJTdHlsZSgpIGNvbnN0CiB7CiAgICAgLy8gVXNpbmcg
YSB0ZXJuYXJ5IGhlcmUgY29uZnVzZXMgdGhlIFNvbGFyaXMgU3R1ZGlvIDEyLzEyLjEvMTIuMiBj
b21waWxlcnM6CiAgICAgLy8gQnVnIGlzIENSIDY1NjkxOTQsICJQcm9ibGVtIHdpdGggcXVlc3Rp
b24gb3BlcmF0b3IgYmluZGluZyBpbiBpbmxpbmUgZnVuY3Rpb24iCi0gICAgaWYgKG1fcmVuZGVy
ZXIpIAorICAgIGlmIChtX3JlbmRlcmVyKQogICAgICAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5
bGUoKTsKLSAgICByZXR1cm4gbm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpOworICAgIHJldHVybiBu
b25SZW5kZXJlclN0eWxlKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuY3BwCmluZGV4IDFmZjZhN2QyMjFhNjQxMGI2ODc0OTNiNGE2NDJjYTRiNjk0
YTI3OGQuLjZjMDhmOTFjNTlhOGFhZmIzYmM2MWFkMDE0NzZjNDc3N2U3OTZiYWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtNDIsNiArNDIsNyBA
QCBpbmxpbmUgSFRNTE9wdEdyb3VwRWxlbWVudDo6SFRNTE9wdEdyb3VwRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEbwogICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUob3B0Z3JvdXBUYWcpKTsKKyAgICBzZXRI
YXNDdXN0b21DYWxsYmFja3MoKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MT3B0R3JvdXBFbGVtZW50
PiBIVE1MT3B0R3JvdXBFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtOTQsOSArOTUsOSBAQCB2b2lkIEhUTUxPcHRHcm91
cEVsZW1lbnQ6OnJlY2FsY1NlbGVjdE9wdGlvbnMoKQogCiB2b2lkIEhUTUxPcHRHcm91cEVsZW1l
bnQ6OmF0dGFjaCgpCiB7Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAg
ICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKICAgICBIVE1MRWxlbWVu
dDo6YXR0YWNoKCk7CisgICAgaWYgKCFtX3N0eWxlICYmIHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5
bGUoKSkKKyAgICAgICAgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKIH0KIAogdm9pZCBIVE1MT3B0
R3JvdXBFbGVtZW50OjpkZXRhY2goKQpAQCAtMTA1LDE0ICsxMDYsMjAgQEAgdm9pZCBIVE1MT3B0
R3JvdXBFbGVtZW50OjpkZXRhY2goKQogICAgIEhUTUxFbGVtZW50OjpkZXRhY2goKTsKIH0KIAot
dm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjpzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRl
clN0eWxlPiBuZXdTdHlsZSkKK3ZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6dXBkYXRlTm9uUmVu
ZGVyU3R5bGUoKQogewotICAgIG1fc3R5bGUgPSBuZXdTdHlsZTsKKyAgICBtX3N0eWxlID0gZG9j
dW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvckVsZW1lbnQodGhpcyk7CiB9Ci0gICAg
Ci1SZW5kZXJTdHlsZSogSFRNTE9wdEdyb3VwRWxlbWVudDo6bm9uUmVuZGVyZXJSZW5kZXJTdHls
ZSgpIGNvbnN0IAoteyAKLSAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsgCisKK1JlbmRlclN0eWxl
KiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclN0eWxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zdHlsZS5nZXQoKTsKK30KKworUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gSFRNTE9w
dEdyb3VwRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpCit7CisgICAgdXBkYXRlTm9u
UmVuZGVyU3R5bGUoKTsKKyAgICByZXR1cm4gbV9zdHlsZTsKIH0KIAogU3RyaW5nIEhUTUxPcHRH
cm91cEVsZW1lbnQ6Omdyb3VwTGFiZWxUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggMGI0Mzg3MzA2MTBlNWVlN2Q3ZTQ3ZGU4NmQxM2Jj
YTE5ODAyZmNjOS4uYmFlM2JmZTZkY2E3NmZiM2IwMGVlMGQ2ZTE2ODBkYzc2YmNlMzQxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTUwLDEzICs1MCwx
NCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5v
ZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJl
Zm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0
YSA9IDApOwogCiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3Vz
ZUV2ZW50cyk7CiAgICAgCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJSZW5k
ZXJTdHlsZSgpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKKyAgICB2
aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVy
KCkgT1ZFUlJJREU7CiAgICAgCiAgICAgdm9pZCByZWNhbGNTZWxlY3RPcHRpb25zKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggOGZjYzIyYzI3ZmM3
ODgxMTVhZDIwNDlmYjhhZDhkNjA4ODZjMWIwZS4uMDNkN2Q5M2M5NWFmYzY2YjM5NzVkNWFiM2Nk
ZTc0YmQ2ZWVhODBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9u
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKQEAgLTU1LDYgKzU1LDcgQEAgSFRNTE9wdGlvbkVsZW1lbnQ6OkhUTUxPcHRpb25FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MKICAgICAsIG1faXNT
ZWxlY3RlZChmYWxzZSkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShvcHRpb25UYWcpKTsKKyAg
ICBzZXRIYXNDdXN0b21DYWxsYmFja3MoKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxl
bWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCkBAIC05
MCw5ICs5MSw5IEBAIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVt
ZW50OjpjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50CiAKIHZvaWQgSFRNTE9wdGlvbkVs
ZW1lbnQ6OmF0dGFjaCgpCiB7Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkK
LSAgICAgICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKICAgICBIVE1MRWxl
bWVudDo6YXR0YWNoKCk7CisgICAgaWYgKCFtX3N0eWxlICYmIHBhcmVudE5vZGUoKS0+cmVuZGVy
U3R5bGUoKSkKKyAgICAgICAgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKIH0KIAogdm9pZCBIVE1M
T3B0aW9uRWxlbWVudDo6ZGV0YWNoKCkKQEAgLTMwNSwyMCArMzA2LDMyIEBAIHZvaWQgSFRNTE9w
dGlvbkVsZW1lbnQ6OnNldExhYmVsKGNvbnN0IFN0cmluZyYgbGFiZWwpCiAgICAgc2V0QXR0cmli
dXRlKGxhYmVsQXR0ciwgbGFiZWwpOwogfQogCi12b2lkIEhUTUxPcHRpb25FbGVtZW50OjpzZXRS
ZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSkKK3ZvaWQgSFRNTE9w
dGlvbkVsZW1lbnQ6OnVwZGF0ZU5vblJlbmRlclN0eWxlKCkKIHsKLSAgICBtX3N0eWxlID0gbmV3
U3R5bGU7Ci0gICAgaWYgKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBvd25lclNlbGVjdEVs
ZW1lbnQoKSkgewotICAgICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNlbGVjdC0+
cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7Ci0gICAgfQorICAg
IG1fc3R5bGUgPSBkb2N1bWVudCgpLT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yRWxlbWVudCh0
aGlzKTsKIH0KIAotUmVuZGVyU3R5bGUqIEhUTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclJl
bmRlclN0eWxlKCkgY29uc3QKK1JlbmRlclN0eWxlKiBIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVu
ZGVyZXJTdHlsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7CiB9CiAKK1Bh
c3NSZWZQdHI8UmVuZGVyU3R5bGU+IEhUTUxPcHRpb25FbGVtZW50OjpjdXN0b21TdHlsZUZvclJl
bmRlcmVyKCkKK3sKKyAgICB1cGRhdGVOb25SZW5kZXJTdHlsZSgpOworICAgIHJldHVybiBtX3N0
eWxlOworfQorCit2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZUNo
YW5nZSkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBuYXN0eSwgd2UgYXNrIG91ciBvd25lciBz
ZWxlY3QgdG8gcmVwYWludCBldmVuIGlmIHRoZSBuZXcKKyAgICAvLyBzdHlsZSBpcyBleGFjdGx5
IHRoZSBzYW1lLgorICAgIGlmIChIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxl
Y3RFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzZWxl
Y3QtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOworICAgIH0K
K30KKwogU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojp0ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91
cExhYmVsKCkgY29uc3QKIHsKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2Rl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggMjRjZGNkYjVl
Y2I4Mzk4M2RhYzJiMWQzZmJlZGM4OTBmMTc3MzEwZC4uNWIxN2RmOGI1NjA3M2Y5OTY4MzcyNGM3
ODczMTNkZGQ1Yjc4NjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aApAQCAtNzUsNyArNzUsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJ
REU7CiAKQEAgLTg0LDcgKzgzLDEwIEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNo
YW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDAp
OwogCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNv
bnN0OworICAgIHZvaWQgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKKyAgICB2aXJ0dWFsIFJlbmRl
clN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZFUlJJREU7
CisgICAgdm9pZCBkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkgT1ZFUlJJREU7CiAKICAgICBT
dHJpbmcgY29sbGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170948</attachid>
            <date>2012-10-26 09:48:34 -0700</date>
            <delta_ts>2012-10-26 11:48:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100397-20121026094705.patch</filename>
            <type>text/plain</type>
            <size>12240</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZTg0
NTZmNzA0MGM3MjFhZGVmNGQyNDIxNjUzOGJiYjcyNGNmNTI3MC4uZWE2ZGI5MjU1MDJhNzJkZTUx
YmIxODVhZDVkZDYzMWMyOTljYTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTA2Miw4
ICsxMDYyLDkgQEAgdm9pZCBFbGVtZW50OjpkZXRhY2goKQogYm9vbCBFbGVtZW50Ojpwc2V1ZG9T
dHlsZUNhY2hlSXNJbnZhbGlkKGNvbnN0IFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRl
clN0eWxlKiBuZXdTdHlsZSkKIHsKICAgICBBU1NFUlQoY3VycmVudFN0eWxlID09IHJlbmRlclN0
eWxlKCkpOworICAgIEFTU0VSVChyZW5kZXJlcigpKTsKIAotICAgIGlmICghcmVuZGVyZXIoKSB8
fCAhY3VycmVudFN0eWxlKQorICAgIGlmICghY3VycmVudFN0eWxlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBjb25zdCBQc2V1ZG9TdHlsZUNhY2hlKiBwc2V1ZG9TdHlsZUNhY2hlID0g
Y3VycmVudFN0eWxlLT5jYWNoZWRQc2V1ZG9TdHlsZXMoKTsKQEAgLTExMTMsNyArMTExNCw3IEBA
IHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIFJlZiBjdXJyZW50U3R5bGUgaW4gY2FzZSBpdCB3
b3VsZCBvdGhlcndpc2UgYmUgZGVsZXRlZCB3aGVuIHNldFJlbmRlclN0eWxlKCkgaXMgY2FsbGVk
LgorICAgIC8vIFJlZiBjdXJyZW50U3R5bGUgaW4gY2FzZSBpdCB3b3VsZCBvdGhlcndpc2UgYmUg
ZGVsZXRlZCB3aGVuIHNldHRpbmcgdGhlIG5ldyBzdHlsZSBpbiB0aGUgcmVuZGVyZXIuCiAgICAg
UmVmUHRyPFJlbmRlclN0eWxlPiBjdXJyZW50U3R5bGUocmVuZGVyU3R5bGUoKSk7CiAgICAgYm9v
bCBoYXNQYXJlbnRTdHlsZSA9IHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8gc3Rh
dGljX2Nhc3Q8Ym9vbD4ocGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCktPnJlbmRlclN0
eWxlKCkpIDogZmFsc2U7CiAgICAgYm9vbCBoYXNEaXJlY3RBZGphY2VudFJ1bGVzID0gY3VycmVu
dFN0eWxlICYmIGN1cnJlbnRTdHlsZS0+Y2hpbGRyZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRS
dWxlcygpOwpAQCAtMTE2MiwxNyArMTE2MywxNSBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxl
KFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgICAgICAgICBuZXdTdHlsZS0+c2V0Q2hpbGRy
ZW5BZmZlY3RlZEJ5RGlyZWN0QWRqYWNlbnRSdWxlcygpOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKGNoICE9IE5vQ2hhbmdlIHx8IHBzZXVkb1N0eWxlQ2FjaGVJc0ludmFsaWQoY3VycmVudFN0
eWxlLmdldCgpLCBuZXdTdHlsZS5nZXQoKSkgfHwgKGNoYW5nZSA9PSBGb3JjZSAmJiByZW5kZXJl
cigpICYmIHJlbmRlcmVyKCktPnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigp
KSkgewotICAgICAgICAgICAgc2V0UmVuZGVyU3R5bGUobmV3U3R5bGUpOwotICAgICAgICB9IGVs
c2UgaWYgKG5lZWRzU3R5bGVSZWNhbGMoKSAmJiBzdHlsZUNoYW5nZVR5cGUoKSAhPSBTeW50aGV0
aWNTdHlsZUNoYW5nZSkgewotICAgICAgICAgICAgLy8gQWx0aG91Z2ggbm8gY2hhbmdlIG9jY3Vy
cmVkLCB3ZSB1c2UgdGhlIG5ldyBzdHlsZSBzbyB0aGF0IHRoZSBjb3VzaW4gc3R5bGUgc2hhcmlu
ZyBjb2RlIHdvbid0IGdldAotICAgICAgICAgICAgLy8gZm9vbGVkIGludG8gYmVsaWV2aW5nIHRo
aXMgc3R5bGUgaXMgdGhlIHNhbWUuCi0gICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAg
ICAgICAgICAgICByZW5kZXJlcigpLT5zZXRTdHlsZUludGVybmFsKG5ld1N0eWxlLmdldCgpKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzZXRSZW5kZXJTdHlsZShuZXdTdHls
ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoc3R5bGVDaGFuZ2VUeXBlKCkgPT0gU3ludGhldGljU3R5
bGVDaGFuZ2UpCi0gICAgICAgICAgICAgc2V0UmVuZGVyU3R5bGUobmV3U3R5bGUpOworICAgICAg
ICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgICAgIGlmIChjaCAhPSBOb0NoYW5nZSB8fCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKGN1
cnJlbnRTdHlsZS5nZXQoKSwgbmV3U3R5bGUuZ2V0KCkpIHx8IChjaGFuZ2UgPT0gRm9yY2UgJiYg
cmVuZGVyZXItPnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpKSB8fCBzdHls
ZUNoYW5nZVR5cGUoKSA9PSBTeW50aGV0aWNTdHlsZUNoYW5nZSkKKyAgICAgICAgICAgICAgICBy
ZW5kZXJlci0+c2V0QW5pbWF0YWJsZVN0eWxlKG5ld1N0eWxlLmdldCgpKTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKG5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICAgICAgICAgIC8vIEFsdGhv
dWdoIG5vIGNoYW5nZSBvY2N1cnJlZCwgd2UgdXNlIHRoZSBuZXcgc3R5bGUgc28gdGhhdCB0aGUg
Y291c2luIHN0eWxlIHNoYXJpbmcgY29kZSB3b24ndCBnZXQKKyAgICAgICAgICAgICAgICAvLyBm
b29sZWQgaW50byBiZWxpZXZpbmcgdGhpcyBzdHlsZSBpcyB0aGUgc2FtZS4KKyAgICAgICAgICAg
ICAgICByZW5kZXJlci0+c2V0U3R5bGVJbnRlcm5hbChuZXdTdHlsZS5nZXQoKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KIAogICAgICAgICAvLyBJZiAicmVtIiB1bml0cyBhcmUgdXNlZCBh
bnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQsIGFuZCBpZiB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZv
bnQgc2l6ZSBjaGFuZ2VzLCB0aGVuIGdvIGFoZWFkIGFuZCBmb3JjZSBmb250IHVwZGF0aW5nCiAg
ICAgICAgIC8vIGFsbCB0aGUgd2F5IGRvd24gdGhlIHRyZWUuIFRoaXMgaXMgc2ltcGxlciB0aGFu
IGhhdmluZyB0byBtYWludGFpbiBhIGNhY2hlIG9mIG9iamVjdHMgKGFuZCBzdWNoIGZvbnQgc2l6
ZSBjaGFuZ2VzIHNob3VsZCBiZSByYXJlIGFueXdheSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggMTcw
ZWUzNzM3ZTRkNTZhM2Y1N2UxOWEwNjhiYjdhMTQ5ODdmNTg2Yy4uYTE3ZWZhMDAzMTkzYmI0YjQw
MDVmYzYzZmMyZGJhNDZjZmNhOTJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTQxNSwxNyArMTQx
NSw2IEBAIFJlbmRlck9iamVjdCogTm9kZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBS
ZW5kZXJTdHlsZSopCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIDA7CiB9
Ci0gICAgCi1SZW5kZXJTdHlsZSogTm9kZTo6bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0
Ci17IAotICAgIHJldHVybiAwOyAKLX0gICAKLQotdm9pZCBOb2RlOjpzZXRSZW5kZXJTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzKQotewotICAgIGlmIChtX3JlbmRlcmVyKQotICAgICAg
ICBtX3JlbmRlcmVyLT5zZXRBbmltYXRhYmxlU3R5bGUocyk7IAotfQogCiBSZW5kZXJTdHlsZSog
Tm9kZTo6dmlydHVhbENvbXB1dGVkU3R5bGUoUHNldWRvSWQgcHNldWRvRWxlbWVudFNwZWNpZmll
cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCmluZGV4IDAzNWFiYjM0ZTk0NjEyOWI1YTRlZmI4MjQ0ODBiNzIwYWEy
ZTUxMDEuLjViMGNiNTVlNGNkZjI4ZDQ0NzBmODRmZDliNTQ4NjhjZWE5MjE4OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaApAQCAtNTMwLDcgKzUzMCw2IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBXcmFwcGVyIGZv
ciBub2RlcyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBz
dHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0
eWxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+KTsKIAogICAgIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0eWxlKFBzZXVkb0lk
IHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIgPSBOT1BTRVVETykgeyByZXR1cm4gdmlydHVhbENvbXB1
dGVkU3R5bGUocHNldWRvRWxlbWVudFNwZWNpZmllcik7IH0KIApAQCAtNzg0LDcgKzc4Myw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBPd25QdHI8Tm9kZVJhcmVEYXRhPiBjcmVhdGVSYXJlRGF0
YSgpOwogICAgIGJvb2wgcmFyZURhdGFGb2N1c2VkKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlclN0eWxlKiBub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBS
ZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiB2aXJ0dWFsUHJlZml4KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHZpcnR1YWxMb2NhbE5hbWUoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUuaAppbmRleCAxYTJkMmMzNGExOTE5ZGE2MTkyNzZh
YmMxYzY5MzMzMWMxOWRjZjJiLi4wNzRlMjExNGIxODk2ZDViMzI4NjlkMjA0ZThkYjJiNjIxZmMz
NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5oCkBAIC0zNSw5ICszNSw5IEBA
IGlubGluZSBSZW5kZXJTdHlsZSogTm9kZTo6cmVuZGVyU3R5bGUoKSBjb25zdAogewogICAgIC8v
IFVzaW5nIGEgdGVybmFyeSBoZXJlIGNvbmZ1c2VzIHRoZSBTb2xhcmlzIFN0dWRpbyAxMi8xMi4x
LzEyLjIgY29tcGlsZXJzOgogICAgIC8vIEJ1ZyBpcyBDUiA2NTY5MTk0LCAiUHJvYmxlbSB3aXRo
IHF1ZXN0aW9uIG9wZXJhdG9yIGJpbmRpbmcgaW4gaW5saW5lIGZ1bmN0aW9uIgotICAgIGlmICht
X3JlbmRlcmVyKSAKKyAgICBpZiAobV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIG1fcmVuZGVy
ZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIG5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKTsKKyAgICBy
ZXR1cm4gbm9uUmVuZGVyZXJTdHlsZSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCAxZmY2YTdkMjIxYTY0MTBiNjg3NDkzYjRhNjQy
Y2E0YjY5NGEyNzhkLi5jOTViMWZmNDFiNDU4M2M3ZTk0Nzc1NjdkZDY5MmU3YjM3MzQzMGU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKQEAgLTQyLDYg
KzQyLDcgQEAgaW5saW5lIEhUTUxPcHRHcm91cEVsZW1lbnQ6OkhUTUxPcHRHcm91cEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG8KICAgICA6IEhUTUxFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9wdGdyb3VwVGFnKSk7Cisg
ICAgc2V0SGFzQ3VzdG9tQ2FsbGJhY2tzKCk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTE9wdEdyb3Vw
RWxlbWVudD4gSFRNTE9wdEdyb3VwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTk0LDkgKzk1LDEyIEBAIHZvaWQgSFRN
TE9wdEdyb3VwRWxlbWVudDo6cmVjYWxjU2VsZWN0T3B0aW9ucygpCiAKIHZvaWQgSFRNTE9wdEdy
b3VwRWxlbWVudDo6YXR0YWNoKCkKIHsKLSAgICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHls
ZSgpKQotICAgICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKCkpOwogICAgIEhU
TUxFbGVtZW50OjphdHRhY2goKTsKKyAgICAvLyBJZiBhZnRlciBhdHRhY2hpbmcgbm90aGluZyBj
YWxsZWQgc3R5bGVGb3JSZW5kZXJlcigpIG9uIHRoaXMgbm9kZSB3ZQorICAgIC8vIG1hbnVhbGx5
IGNhY2hlIHRoZSB2YWx1ZS4gVGhpcyBoYXBwZW5zIGlmIG91ciBwYXJlbnQgZG9lc24ndCBoYXZl
IGEKKyAgICAvLyByZW5kZXJlciBsaWtlIDxvcHRncm91cD4gb3IgaWYgaXQgZG9lc24ndCBhbGxv
dyBjaGlsZHJlbiBsaWtlIDxzZWxlY3Q+LgorICAgIGlmICghbV9zdHlsZSAmJiBwYXJlbnROb2Rl
KCktPnJlbmRlclN0eWxlKCkpCisgICAgICAgIHVwZGF0ZU5vblJlbmRlclN0eWxlKCk7CiB9CiAK
IHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNoKCkKQEAgLTEwNSwxNCArMTA5LDIyIEBA
IHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6ZGV0YWNoKCkKICAgICBIVE1MRWxlbWVudDo6ZGV0
YWNoKCk7CiB9CiAKLXZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6c2V0UmVuZGVyU3R5bGUoUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUpCit2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6
OnVwZGF0ZU5vblJlbmRlclN0eWxlKCkKIHsKLSAgICBtX3N0eWxlID0gbmV3U3R5bGU7CisgICAg
bV9zdHlsZSA9IGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JFbGVtZW50KHRo
aXMpOwogfQotICAgIAotUmVuZGVyU3R5bGUqIEhUTUxPcHRHcm91cEVsZW1lbnQ6Om5vblJlbmRl
cmVyUmVuZGVyU3R5bGUoKSBjb25zdCAKLXsgCi0gICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IAor
CitSZW5kZXJTdHlsZSogSFRNTE9wdEdyb3VwRWxlbWVudDo6bm9uUmVuZGVyZXJTdHlsZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVy
U3R5bGU+IEhUTUxPcHRHcm91cEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQorewor
ICAgIC8vIHN0eWxlRm9yUmVuZGVyZXIgaXMgY2FsbGVkIHdoZW5ldmVyIGEgbmV3IHN0eWxlIHNo
b3VsZCBiZSBhc3NvY2lhdGVkCisgICAgLy8gd2l0aCBhbiBFbGVtZW50IHNvIG5vdyBpcyBhIGdv
b2QgdGltZSB0byB1cGRhdGUgb3VyIGNhY2hlZCBzdHlsZS4KKyAgICB1cGRhdGVOb25SZW5kZXJT
dHlsZSgpOworICAgIHJldHVybiBtX3N0eWxlOwogfQogCiBTdHJpbmcgSFRNTE9wdEdyb3VwRWxl
bWVudDo6Z3JvdXBMYWJlbFRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRH
cm91cEVsZW1lbnQuaAppbmRleCAwYjQzODczMDYxMGU1ZWU3ZDdlNDdkZTg2ZDEzYmNhMTk4MDJm
Y2M5Li5jNmFkMzU5YjQ1YWFlZTViMmI1MjkwOWQ3MzBhZTVhODk4OGJmOGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNTAsMTQgKzUwLDE2IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJlbmRl
cmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2go
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJlbmRl
clN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hh
bmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRz
KTsKLSAgICAKLSAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBub25SZW5kZXJlclJlbmRlclN0eWxl
KCkgY29uc3Q7Ci0gICAgCisKKyAgICAvLyA8b3B0Z3JvdXA+IG5ldmVyIGhhcyBhIHJlbmRlcmVy
IHNvIHdlIG1hbnVhbGx5IG1hbmFnZSBhIGNhY2hlZCBzdHlsZS4KKyAgICB2b2lkIHVwZGF0ZU5v
blJlbmRlclN0eWxlKCk7CisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJTdHls
ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4g
Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpIE9WRVJSSURFOworCiAgICAgdm9pZCByZWNhbGNTZWxl
Y3RPcHRpb25zKCk7CiAKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fc3R5bGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IDhmY2MyMmMyN2ZjNzg4MTE1
YWQyMDQ5ZmI4YWQ4ZDYwODg2YzFiMGUuLmIwM2M3ZjlhZGIxZjA2ZTgwNmM2NzFjMTRiZTFiM2Uz
YmY2YzgwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBA
IC01NSw2ICs1NSw3IEBAIEhUTUxPcHRpb25FbGVtZW50OjpIVE1MT3B0aW9uRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jCiAgICAgLCBtX2lzU2VsZWN0
ZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUob3B0aW9uVGFnKSk7CisgICAgc2V0
SGFzQ3VzdG9tQ2FsbGJhY2tzKCk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+
IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtOTAsOSAr
OTEsMTIgQEAgUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gSFRNTE9wdGlvbkVsZW1lbnQ6
OmNyZWF0ZUZvckpTQ29uc3RydWN0b3IoRG9jdW1lbnQKIAogdm9pZCBIVE1MT3B0aW9uRWxlbWVu
dDo6YXR0YWNoKCkKIHsKLSAgICBpZiAocGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQotICAg
ICAgICBzZXRSZW5kZXJTdHlsZShzdHlsZUZvclJlbmRlcmVyKCkpOwogICAgIEhUTUxFbGVtZW50
OjphdHRhY2goKTsKKyAgICAvLyBJZiBhZnRlciBhdHRhY2hpbmcgbm90aGluZyBjYWxsZWQgc3R5
bGVGb3JSZW5kZXJlcigpIG9uIHRoaXMgbm9kZSB3ZQorICAgIC8vIG1hbnVhbGx5IGNhY2hlIHRo
ZSB2YWx1ZS4gVGhpcyBoYXBwZW5zIGlmIG91ciBwYXJlbnQgZG9lc24ndCBoYXZlIGEKKyAgICAv
LyByZW5kZXJlciBsaWtlIDxvcHRncm91cD4gb3IgaWYgaXQgZG9lc24ndCBhbGxvdyBjaGlsZHJl
biBsaWtlIDxzZWxlY3Q+LgorICAgIGlmICghbV9zdHlsZSAmJiBwYXJlbnROb2RlKCktPnJlbmRl
clN0eWxlKCkpCisgICAgICAgIHVwZGF0ZU5vblJlbmRlclN0eWxlKCk7CiB9CiAKIHZvaWQgSFRN
TE9wdGlvbkVsZW1lbnQ6OmRldGFjaCgpCkBAIC0zMDUsMjAgKzMwOSwzNCBAQCB2b2lkIEhUTUxP
cHRpb25FbGVtZW50OjpzZXRMYWJlbChjb25zdCBTdHJpbmcmIGxhYmVsKQogICAgIHNldEF0dHJp
YnV0ZShsYWJlbEF0dHIsIGxhYmVsKTsKIH0KIAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6c2V0
UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUpCit2b2lkIEhUTUxP
cHRpb25FbGVtZW50Ojp1cGRhdGVOb25SZW5kZXJTdHlsZSgpCiB7Ci0gICAgbV9zdHlsZSA9IG5l
d1N0eWxlOwotICAgIGlmIChIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RF
bGVtZW50KCkpIHsKLSAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBzZWxlY3Qt
PnJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOwotICAgIH0KKyAg
ICBtX3N0eWxlID0gZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlcigpLT5zdHlsZUZvckVsZW1lbnQo
dGhpcyk7CiB9CiAKLVJlbmRlclN0eWxlKiBIVE1MT3B0aW9uRWxlbWVudDo6bm9uUmVuZGVyZXJS
ZW5kZXJTdHlsZSgpIGNvbnN0CitSZW5kZXJTdHlsZSogSFRNTE9wdGlvbkVsZW1lbnQ6Om5vblJl
bmRlcmVyU3R5bGUoKSBjb25zdAogewogICAgIHJldHVybiBtX3N0eWxlLmdldCgpOwogfQogCitQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBIVE1MT3B0aW9uRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JS
ZW5kZXJlcigpCit7CisgICAgLy8gc3R5bGVGb3JSZW5kZXJlciBpcyBjYWxsZWQgd2hlbmV2ZXIg
YSBuZXcgc3R5bGUgc2hvdWxkIGJlIGFzc29jaWF0ZWQKKyAgICAvLyB3aXRoIGFuIEVsZW1lbnQg
c28gbm93IGlzIGEgZ29vZCB0aW1lIHRvIHVwZGF0ZSBvdXIgY2FjaGVkIHN0eWxlLgorICAgIHVw
ZGF0ZU5vblJlbmRlclN0eWxlKCk7CisgICAgcmV0dXJuIG1fc3R5bGU7Cit9CisKK3ZvaWQgSFRN
TE9wdGlvbkVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKQoreworICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIG5hc3R5LCB3ZSBhc2sgb3VyIG93bmVyIHNlbGVjdCB0byByZXBhaW50IGV2
ZW4gaWYgdGhlIG5ldworICAgIC8vIHN0eWxlIGlzIGV4YWN0bHkgdGhlIHNhbWUuCisgICAgaWYg
KEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSBvd25lclNlbGVjdEVsZW1lbnQoKSkgeworICAg
ICAgICBpZiAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHNlbGVjdC0+cmVuZGVyZXIoKSkKKyAg
ICAgICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgfQorfQorCiBTdHJpbmcgSFRNTE9w
dGlvbkVsZW1lbnQ6OnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKSBjb25zdAogewog
ICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHBhcmVudE5vZGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRleCAyNGNkY2RiNWVjYjgzOTgzZGFjMmIxZDNmYmVk
Yzg5MGYxNzczMTBkLi44ZjYxYjMwNGU0YWE2YzRlM2Q1NzMxNmNlY2VhM2RhNDE0ZDA0ZWRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCkBAIC03NSw3ICs3NSw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgTm9kZVJl
bmRlcmluZ0NvbnRleHQmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJl
bmRlclN0eWxlKFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsKIApAQCAtODQsNyArODMs
MTIgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBj
aGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0
ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CiAKLSAgICB2aXJ0dWFsIFJl
bmRlclN0eWxlKiBub25SZW5kZXJlclJlbmRlclN0eWxlKCkgY29uc3Q7CisgICAgLy8gPG9wdGlv
bj4gbmV2ZXIgaGFzIGEgcmVuZGVyZXIgc28gd2UgbWFudWFsbHkgbWFuYWdlIGEgY2FjaGVkIHN0
eWxlLgorICAgIHZvaWQgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKKyAgICB2aXJ0dWFsIFJlbmRl
clN0eWxlKiBub25SZW5kZXJlclN0eWxlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZFUlJJREU7
CisKKyAgICB2b2lkIGRpZFJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKSBPVkVSUklERTsKIAogICAg
IFN0cmluZyBjb2xsZWN0T3B0aW9uSW5uZXJUZXh0KCkgY29uc3Q7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170976</attachid>
            <date>2012-10-26 11:48:38 -0700</date>
            <delta_ts>2012-10-26 12:28:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-100397-20121026114709.patch</filename>
            <type>text/plain</type>
            <size>15250</size>
            <attacher name="Elliott Sprehn">esprehn</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYxM2ZjZTc3ZjY1YTRk
NzUxNWRhNTBmNzY2ZjZhNjhjMGE5NTk2Ny4uOTkwNDBkMjY5NjJjYzk2MTgzYWI5YjU4NWYwMTg5
MDIzYWI1OTk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTI1ICBFbGxp
b3R0IFNwcmVobiAgPGVzcHJlaG5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBzZXRS
ZW5kZXJTdHlsZSBpbiBmYXZvciBvZiBjYWxsYmFja3Mgb24gSFRNTE9wdGlvbkVsZW1lbnQgYW5k
IEhUTUxPcHRHcm91cEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCisK
KyAgICAgICAgVXNlIE5vZGUgY3VzdG9tIGNhbGxiYWNrcyB0byBzdXBwb3J0IHRoZSBub24tcmVu
ZGVyZXIgc3R5bGUgY2FjaGluZyBmb3Igb3B0aW9uCisgICAgICAgIGFuZCBvcHRncm91cCBlbGlt
aW5hdGluZyB0aGUgbmVlZCBmb3Igc2V0UmVuZGVyU3R5bGUuCisKKyAgICAgICAgc2V0UmVuZGVy
U3R5bGUgb25seSBleGlzdGVkIHRvIHN1cHBvcnQgSFRNTE9wdGlvbkVsZW1lbnQgYW5kIEhUTUxP
cHRHcm91cEVsZW1lbnQKKyAgICAgICAgc28gdGhleSBjb3VsZCBzdG9yZSB0aGVpciBSZW5kZXJT
dHlsZSBldmVuIHRob3VnaCB0aGV5IGhhdmUgbm8gcmVuZGVyZXIuIFRoaXMKKyAgICAgICAgbWVh
bnMgYWxsIHN0eWxlIHNldHRpbmcgd2VudCB0aHJvdWdoIHRoZSB2aXJ0dWFsIGNhbGwgdG8gc2V0
UmVuZGVyU3R5bGUsIGFuZCBpdAorICAgICAgICBhbHNvIGhpZCB0aGUgaWYgc3RhdGVtZW50IHBy
b3RlY3RpbmcgYWdhaW5zdCBudWxsIHJlbmRlcmVycyBtZWFuaW5nIHdlIGVuZCB1cAorICAgICAg
ICBjaGVja2luZyBpZiB0aGUgcmVuZGVyZXIgaXMgbnVsbCByZXBlYXRlZGx5IGluIHJlY2FsY1N0
eWxlLiBUaGlzIHJlZmFjdG9yIGNsZWFucworICAgICAgICB1cCByZWNhbGNTdHlsZSB0byBiZSBt
b3JlIGNsZWFyIGFib3V0IHdoYXQncyBnb2luZyBvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMg
bmVlZGVkLCB0aGlzIGlzIGp1c3QgYSByZWZhY3Rvci4KKworICAgICAgICAqIGRvbS9FbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnBzZXVkb1N0eWxlQ2FjaGVJc0ludmFs
aWQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAq
IGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldFJlbmRlclN0eWxlKToKKyAgICAgICAgICAgIFJl
bW92ZWQgdGhpcyBtZXRob2QgYmVjYXVzZSBpdCB3YXMgb25seSBoZXJlIHRvIHN1cHBvcnQgSFRN
TE9wdGlvbkVsZW1lbnQKKyAgICAgICAgICAgIGFuZCBIVE1MT3B0R3JvdXBFbGVtZW50LiBJbnN0
ZWFkIHdlIGNhbiB1c2Ugbm9kZSBjdXN0b20gY2FsbGJhY2tzLgorICAgICAgICAqIGRvbS9Ob2Rl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpub25SZW5kZXJlclN0eWxlKTogUmVuYW1lZCBm
cm9tIG5vblJlbmRlcmVyUmVuZGVyU3R5bGUgdG8gbWF0Y2ggb3RoZXIgc3R5bGUgbWV0aG9kcy4K
KyAgICAgICAgKiBkb20vTm9kZVJlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpyZW5kZXJTdHlsZSk6CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRHcm91cEVsZW1lbnQ6OkhUTUxPcHRHcm91cEVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6YXR0YWNoKTogUmVv
cmRlciB0aGUgbG9naWMgdG8gYXZvaWQgY2FsbGluZyBzdHlsZUZvclJlbmRlcmVyIHR3aWNlLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6dXBkYXRlTm9uUmVuZGVyU3R5
bGUpOiBVcGRhdGVzIHRoZSBjYWNoZWQgbm9uLXJlbmRlcmVyIHN0eWxlLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE9wdEdyb3VwRWxlbWVudDo6bm9uUmVuZGVyZXJTdHlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKToKKyAg
ICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpI
VE1MT3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudDo6
YXR0YWNoKTogUmVvcmRlciB0aGUgbG9naWMgdG8gYXZvaWQgY2FsbGluZyBzdHlsZUZvclJlbmRl
cmVyIHR3aWNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQ6OnVwZGF0ZU5v
blJlbmRlclN0eWxlKTogVXBkYXRlcyB0aGUgY2FjaGVkIG5vbi1yZW5kZXJlciBzdHlsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclN0eWxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPcHRpb25FbGVtZW50OjpkaWRSZWNhbGNTdHlsZSk6
IFJlcXVlc3RzIHRoZSByZXBhaW50IG9mIHRoZSBzZWxlY3QgbGlrZSBzZXRSZW5kZXJTdHlsZSB1
c2VkIHRvLgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaDoKKwogMjAxMi0xMC0y
NCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhlZCBX
aW5kb3dzIHBhdGggZm9yIFNoYXJlZFdvcmtlclN0cmF0ZWd5LmggLSBpdCdzIGluIHdvcmtlcnMv
LCBub3QgcGxhdGZvcm0vLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGU4NDU2ZjcwNDBjNzIx
YWRlZjRkMjQyMTY1MzhiYmI3MjRjZjUyNzAuLmVhNmRiOTI1NTAyYTcyZGU1MWJiMTg1YWQ1ZGQ2
MzFjMjk5Y2ExM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEwNjIsOCArMTA2Miw5IEBA
IHZvaWQgRWxlbWVudDo6ZGV0YWNoKCkKIGJvb2wgRWxlbWVudDo6cHNldWRvU3R5bGVDYWNoZUlz
SW52YWxpZChjb25zdCBSZW5kZXJTdHlsZSogY3VycmVudFN0eWxlLCBSZW5kZXJTdHlsZSogbmV3
U3R5bGUpCiB7CiAgICAgQVNTRVJUKGN1cnJlbnRTdHlsZSA9PSByZW5kZXJTdHlsZSgpKTsKKyAg
ICBBU1NFUlQocmVuZGVyZXIoKSk7CiAKLSAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIWN1cnJlbnRT
dHlsZSkKKyAgICBpZiAoIWN1cnJlbnRTdHlsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgY29uc3QgUHNldWRvU3R5bGVDYWNoZSogcHNldWRvU3R5bGVDYWNoZSA9IGN1cnJlbnRTdHls
ZS0+Y2FjaGVkUHNldWRvU3R5bGVzKCk7CkBAIC0xMTEzLDcgKzExMTQsNyBAQCB2b2lkIEVsZW1l
bnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICAvLyBSZWYgY3VycmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3
aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5kZXJTdHlsZSgpIGlzIGNhbGxlZC4KKyAgICAvLyBS
ZWYgY3VycmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hl
biBzZXR0aW5nIHRoZSBuZXcgc3R5bGUgaW4gdGhlIHJlbmRlcmVyLgogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gY3VycmVudFN0eWxlKHJlbmRlclN0eWxlKCkpOwogICAgIGJvb2wgaGFzUGFyZW50
U3R5bGUgPSBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA/IHN0YXRpY19jYXN0PGJv
b2w+KHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpLT5yZW5kZXJTdHlsZSgpKSA6IGZh
bHNlOwogICAgIGJvb2wgaGFzRGlyZWN0QWRqYWNlbnRSdWxlcyA9IGN1cnJlbnRTdHlsZSAmJiBj
dXJyZW50U3R5bGUtPmNoaWxkcmVuQWZmZWN0ZWRCeURpcmVjdEFkamFjZW50UnVsZXMoKTsKQEAg
LTExNjIsMTcgKzExNjMsMTUgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5n
ZSBjaGFuZ2UpCiAgICAgICAgICAgICAgICAgbmV3U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRC
eURpcmVjdEFkamFjZW50UnVsZXMoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChjaCAhPSBO
b0NoYW5nZSB8fCBwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkKGN1cnJlbnRTdHlsZS5nZXQoKSwg
bmV3U3R5bGUuZ2V0KCkpIHx8IChjaGFuZ2UgPT0gRm9yY2UgJiYgcmVuZGVyZXIoKSAmJiByZW5k
ZXJlcigpLT5yZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSkpIHsKLSAgICAg
ICAgICAgIHNldFJlbmRlclN0eWxlKG5ld1N0eWxlKTsKLSAgICAgICAgfSBlbHNlIGlmIChuZWVk
c1N0eWxlUmVjYWxjKCkgJiYgc3R5bGVDaGFuZ2VUeXBlKCkgIT0gU3ludGhldGljU3R5bGVDaGFu
Z2UpIHsKLSAgICAgICAgICAgIC8vIEFsdGhvdWdoIG5vIGNoYW5nZSBvY2N1cnJlZCwgd2UgdXNl
IHRoZSBuZXcgc3R5bGUgc28gdGhhdCB0aGUgY291c2luIHN0eWxlIHNoYXJpbmcgY29kZSB3b24n
dCBnZXQKLSAgICAgICAgICAgIC8vIGZvb2xlZCBpbnRvIGJlbGlldmluZyB0aGlzIHN0eWxlIGlz
IHRoZSBzYW1lLgotICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAgICAgICAg
cmVuZGVyZXIoKS0+c2V0U3R5bGVJbnRlcm5hbChuZXdTdHlsZS5nZXQoKSk7Ci0gICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgc2V0UmVuZGVyU3R5bGUobmV3U3R5bGUpOwotICAgICAg
ICB9IGVsc2UgaWYgKHN0eWxlQ2hhbmdlVHlwZSgpID09IFN5bnRoZXRpY1N0eWxlQ2hhbmdlKQot
ICAgICAgICAgICAgIHNldFJlbmRlclN0eWxlKG5ld1N0eWxlKTsKKyAgICAgICAgaWYgKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CisgICAgICAgICAgICBpZiAo
Y2ggIT0gTm9DaGFuZ2UgfHwgcHNldWRvU3R5bGVDYWNoZUlzSW52YWxpZChjdXJyZW50U3R5bGUu
Z2V0KCksIG5ld1N0eWxlLmdldCgpKSB8fCAoY2hhbmdlID09IEZvcmNlICYmIHJlbmRlcmVyLT5y
ZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSkgfHwgc3R5bGVDaGFuZ2VUeXBl
KCkgPT0gU3ludGhldGljU3R5bGVDaGFuZ2UpCisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnNl
dEFuaW1hdGFibGVTdHlsZShuZXdTdHlsZS5nZXQoKSk7CisgICAgICAgICAgICBlbHNlIGlmIChu
ZWVkc1N0eWxlUmVjYWxjKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBBbHRob3VnaCBubyBjaGFu
Z2Ugb2NjdXJyZWQsIHdlIHVzZSB0aGUgbmV3IHN0eWxlIHNvIHRoYXQgdGhlIGNvdXNpbiBzdHls
ZSBzaGFyaW5nIGNvZGUgd29uJ3QgZ2V0CisgICAgICAgICAgICAgICAgLy8gZm9vbGVkIGludG8g
YmVsaWV2aW5nIHRoaXMgc3R5bGUgaXMgdGhlIHNhbWUuCisgICAgICAgICAgICAgICAgcmVuZGVy
ZXItPnNldFN0eWxlSW50ZXJuYWwobmV3U3R5bGUuZ2V0KCkpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CiAKICAgICAgICAgLy8gSWYgInJlbSIgdW5pdHMgYXJlIHVzZWQgYW55d2hlcmUgaW4g
dGhlIGRvY3VtZW50LCBhbmQgaWYgdGhlIGRvY3VtZW50IGVsZW1lbnQncyBmb250IHNpemUgY2hh
bmdlcywgdGhlbiBnbyBhaGVhZCBhbmQgZm9yY2UgZm9udCB1cGRhdGluZwogICAgICAgICAvLyBh
bGwgdGhlIHdheSBkb3duIHRoZSB0cmVlLiBUaGlzIGlzIHNpbXBsZXIgdGhhbiBoYXZpbmcgdG8g
bWFpbnRhaW4gYSBjYWNoZSBvZiBvYmplY3RzIChhbmQgc3VjaCBmb250IHNpemUgY2hhbmdlcyBz
aG91bGQgYmUgcmFyZSBhbnl3YXkpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDE3MGVlMzczN2U0ZDU2
YTNmNTdlMTlhMDY4YmI3YTE0OTg3ZjU4NmMuLmExN2VmYTAwMzE5M2JiNGI0MDA1ZmM2M2ZjMmRi
YTQ2Y2ZjYTkyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE0MTUsMTcgKzE0MTUsNiBAQCBSZW5k
ZXJPYmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQotICAgIAotUmVu
ZGVyU3R5bGUqIE5vZGU6Om5vblJlbmRlcmVyUmVuZGVyU3R5bGUoKSBjb25zdAoteyAKLSAgICBy
ZXR1cm4gMDsgCi19ICAgCi0KLXZvaWQgTm9kZTo6c2V0UmVuZGVyU3R5bGUoUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gcykKLXsKLSAgICBpZiAobV9yZW5kZXJlcikKLSAgICAgICAgbV9yZW5kZXJl
ci0+c2V0QW5pbWF0YWJsZVN0eWxlKHMpOyAKLX0KIAogUmVuZGVyU3R5bGUqIE5vZGU6OnZpcnR1
YWxDb21wdXRlZFN0eWxlKFBzZXVkb0lkIHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCAwMzVhYmIzNGU5NDYxMjliNWE0ZWZiODI0NDgwYjcyMGFhMmU1MTAxLi41YjBj
YjU1ZTRjZGYyOGQ0NDcwZjg0ZmQ5YjU0ODY4Y2VhOTIxODljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTUz
MCw3ICs1MzAsNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gV3JhcHBlciBmb3Igbm9kZXMgdGhh
dCBkb24ndCBoYXZlIGEgcmVuZGVyZXIsIGJ1dCBzdGlsbCBjYWNoZSB0aGUgc3R5bGUgKGxpa2Ug
SFRNTE9wdGlvbkVsZW1lbnQpLgogICAgIFJlbmRlclN0eWxlKiByZW5kZXJTdHlsZSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQYXNzUmVmUHRyPFJlbmRlclN0eWxl
Pik7CiAKICAgICBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHlsZShQc2V1ZG9JZCBwc2V1ZG9FbGVt
ZW50U3BlY2lmaWVyID0gTk9QU0VVRE8pIHsgcmV0dXJuIHZpcnR1YWxDb21wdXRlZFN0eWxlKHBz
ZXVkb0VsZW1lbnRTcGVjaWZpZXIpOyB9CiAKQEAgLTc4NCw3ICs3ODMsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgT3duUHRyPE5vZGVSYXJlRGF0YT4gY3JlYXRlUmFyZURhdGEoKTsKICAgICBi
b29sIHJhcmVEYXRhRm9jdXNlZCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSog
bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUq
IG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmlydHVhbFByZWZpeCgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiB2aXJ0dWFsTG9jYWxOYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlclN0eWxlLmgKaW5kZXggMWEyZDJjMzRhMTkxOWRhNjE5Mjc2YWJjMWM2OTMzMzFj
MTlkY2YyYi4uMDc0ZTIxMTRiMTg5NmQ1YjMyODY5ZDIwNGU4ZGIyYjYyMWZjMzcxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmVuZGVyU3R5bGUuaApAQCAtMzUsOSArMzUsOSBAQCBpbmxpbmUgUmVu
ZGVyU3R5bGUqIE5vZGU6OnJlbmRlclN0eWxlKCkgY29uc3QKIHsKICAgICAvLyBVc2luZyBhIHRl
cm5hcnkgaGVyZSBjb25mdXNlcyB0aGUgU29sYXJpcyBTdHVkaW8gMTIvMTIuMS8xMi4yIGNvbXBp
bGVyczoKICAgICAvLyBCdWcgaXMgQ1IgNjU2OTE5NCwgIlByb2JsZW0gd2l0aCBxdWVzdGlvbiBv
cGVyYXRvciBiaW5kaW5nIGluIGlubGluZSBmdW5jdGlvbiIKLSAgICBpZiAobV9yZW5kZXJlcikg
CisgICAgaWYgKG1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBtX3JlbmRlcmVyLT5zdHlsZSgp
OwotICAgIHJldHVybiBub25SZW5kZXJlclJlbmRlclN0eWxlKCk7CisgICAgcmV0dXJuIG5vblJl
bmRlcmVyU3R5bGUoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3Vw
RWxlbWVudC5jcHAKaW5kZXggMWZmNmE3ZDIyMWE2NDEwYjY4NzQ5M2I0YTY0MmNhNGI2OTRhMjc4
ZC4uYzk1YjFmZjQxYjQ1ODNjN2U5NDc3NTY3ZGQ2OTJlN2IzNzM0MzBlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBAIGlu
bGluZSBIVE1MT3B0R3JvdXBFbGVtZW50OjpIVE1MT3B0R3JvdXBFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShvcHRncm91cFRhZykpOworICAgIHNldEhhc0N1
c3RvbUNhbGxiYWNrcygpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxPcHRHcm91cEVsZW1lbnQ+IEhU
TUxPcHRHcm91cEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCkBAIC05NCw5ICs5NSwxMiBAQCB2b2lkIEhUTUxPcHRHcm91cEVs
ZW1lbnQ6OnJlY2FsY1NlbGVjdE9wdGlvbnMoKQogCiB2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6
OmF0dGFjaCgpCiB7Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAgICAg
ICAgc2V0UmVuZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKICAgICBIVE1MRWxlbWVudDo6
YXR0YWNoKCk7CisgICAgLy8gSWYgYWZ0ZXIgYXR0YWNoaW5nIG5vdGhpbmcgY2FsbGVkIHN0eWxl
Rm9yUmVuZGVyZXIoKSBvbiB0aGlzIG5vZGUgd2UKKyAgICAvLyBtYW51YWxseSBjYWNoZSB0aGUg
dmFsdWUuIFRoaXMgaGFwcGVucyBpZiBvdXIgcGFyZW50IGRvZXNuJ3QgaGF2ZSBhCisgICAgLy8g
cmVuZGVyZXIgbGlrZSA8b3B0Z3JvdXA+IG9yIGlmIGl0IGRvZXNuJ3QgYWxsb3cgY2hpbGRyZW4g
bGlrZSA8c2VsZWN0Pi4KKyAgICBpZiAoIW1fc3R5bGUgJiYgcGFyZW50Tm9kZSgpLT5yZW5kZXJT
dHlsZSgpKQorICAgICAgICB1cGRhdGVOb25SZW5kZXJTdHlsZSgpOwogfQogCiB2b2lkIEhUTUxP
cHRHcm91cEVsZW1lbnQ6OmRldGFjaCgpCkBAIC0xMDUsMTQgKzEwOSwyMiBAQCB2b2lkIEhUTUxP
cHRHcm91cEVsZW1lbnQ6OmRldGFjaCgpCiAgICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOwogfQog
Ci12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnNldFJlbmRlclN0eWxlKFBhc3NSZWZQdHI8UmVu
ZGVyU3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50Ojp1cGRhdGVOb25S
ZW5kZXJTdHlsZSgpCiB7Ci0gICAgbV9zdHlsZSA9IG5ld1N0eWxlOworICAgIG1fc3R5bGUgPSBk
b2N1bWVudCgpLT5zdHlsZVJlc29sdmVyKCktPnN0eWxlRm9yRWxlbWVudCh0aGlzKTsKIH0KLSAg
ICAKLVJlbmRlclN0eWxlKiBIVE1MT3B0R3JvdXBFbGVtZW50Ojpub25SZW5kZXJlclJlbmRlclN0
eWxlKCkgY29uc3QgCi17IAotICAgIHJldHVybiBtX3N0eWxlLmdldCgpOyAKKworUmVuZGVyU3R5
bGUqIEhUTUxPcHRHcm91cEVsZW1lbnQ6Om5vblJlbmRlcmVyU3R5bGUoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N0eWxlLmdldCgpOworfQorCitQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBIVE1M
T3B0R3JvdXBFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkKK3sKKyAgICAvLyBzdHls
ZUZvclJlbmRlcmVyIGlzIGNhbGxlZCB3aGVuZXZlciBhIG5ldyBzdHlsZSBzaG91bGQgYmUgYXNz
b2NpYXRlZAorICAgIC8vIHdpdGggYW4gRWxlbWVudCBzbyBub3cgaXMgYSBnb29kIHRpbWUgdG8g
dXBkYXRlIG91ciBjYWNoZWQgc3R5bGUuCisgICAgdXBkYXRlTm9uUmVuZGVyU3R5bGUoKTsKKyAg
ICByZXR1cm4gbV9zdHlsZTsKIH0KIAogU3RyaW5nIEhUTUxPcHRHcm91cEVsZW1lbnQ6Omdyb3Vw
TGFiZWxUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50
LmgKaW5kZXggMGI0Mzg3MzA2MTBlNWVlN2Q3ZTQ3ZGU4NmQxM2JjYTE5ODAyZmNjOS4uYzZhZDM1
OWI0NWFhZWU1YjJiNTI5MDlkNzMwYWU1YTg5ODhiZjhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTUwLDE0ICs1MCwxNiBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0
JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAgdmly
dHVhbCB2b2lkIGRldGFjaCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQYXNz
UmVmUHRyPFJlbmRlclN0eWxlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5v
ZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCiAgICAgdmly
dHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cyk7Ci0gICAgCi0g
ICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0Owot
ICAgIAorCisgICAgLy8gPG9wdGdyb3VwPiBuZXZlciBoYXMgYSByZW5kZXJlciBzbyB3ZSBtYW51
YWxseSBtYW5hZ2UgYSBjYWNoZWQgc3R5bGUuCisgICAgdm9pZCB1cGRhdGVOb25SZW5kZXJTdHls
ZSgpOworICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIG5vblJlbmRlcmVyU3R5bGUoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxl
Rm9yUmVuZGVyZXIoKSBPVkVSUklERTsKKwogICAgIHZvaWQgcmVjYWxjU2VsZWN0T3B0aW9ucygp
OwogCiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBtX3N0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA4ZmNjMjJjMjdmYzc4ODExNWFkMjA0OWZiOGFk
OGQ2MDg4NmMxYjBlLi5iMDNjN2Y5YWRiMWYwNmU4MDZjNjcxYzE0YmUxYjNlM2JmNmM4MDAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcApAQCAtNTUsNiArNTUs
NyBAQCBIVE1MT3B0aW9uRWxlbWVudDo6SFRNTE9wdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYwogICAgICwgbV9pc1NlbGVjdGVkKGZhbHNlKQog
ewogICAgIEFTU0VSVChoYXNUYWdOYW1lKG9wdGlvblRhZykpOworICAgIHNldEhhc0N1c3RvbUNh
bGxiYWNrcygpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBIVE1MT3B0aW9u
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTkwLDkgKzkxLDEyIEBAIFBh
c3NSZWZQdHI8SFRNTE9wdGlvbkVsZW1lbnQ+IEhUTUxPcHRpb25FbGVtZW50OjpjcmVhdGVGb3JK
U0NvbnN0cnVjdG9yKERvY3VtZW50CiAKIHZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OmF0dGFjaCgp
CiB7Ci0gICAgaWYgKHBhcmVudE5vZGUoKS0+cmVuZGVyU3R5bGUoKSkKLSAgICAgICAgc2V0UmVu
ZGVyU3R5bGUoc3R5bGVGb3JSZW5kZXJlcigpKTsKICAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7
CisgICAgLy8gSWYgYWZ0ZXIgYXR0YWNoaW5nIG5vdGhpbmcgY2FsbGVkIHN0eWxlRm9yUmVuZGVy
ZXIoKSBvbiB0aGlzIG5vZGUgd2UKKyAgICAvLyBtYW51YWxseSBjYWNoZSB0aGUgdmFsdWUuIFRo
aXMgaGFwcGVucyBpZiBvdXIgcGFyZW50IGRvZXNuJ3QgaGF2ZSBhCisgICAgLy8gcmVuZGVyZXIg
bGlrZSA8b3B0Z3JvdXA+IG9yIGlmIGl0IGRvZXNuJ3QgYWxsb3cgY2hpbGRyZW4gbGlrZSA8c2Vs
ZWN0Pi4KKyAgICBpZiAoIW1fc3R5bGUgJiYgcGFyZW50Tm9kZSgpLT5yZW5kZXJTdHlsZSgpKQor
ICAgICAgICB1cGRhdGVOb25SZW5kZXJTdHlsZSgpOwogfQogCiB2b2lkIEhUTUxPcHRpb25FbGVt
ZW50OjpkZXRhY2goKQpAQCAtMzA1LDIwICszMDksMzQgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVu
dDo6c2V0TGFiZWwoY29uc3QgU3RyaW5nJiBsYWJlbCkKICAgICBzZXRBdHRyaWJ1dGUobGFiZWxB
dHRyLCBsYWJlbCk7CiB9CiAKLXZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnNldFJlbmRlclN0eWxl
KFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlKQordm9pZCBIVE1MT3B0aW9uRWxlbWVu
dDo6dXBkYXRlTm9uUmVuZGVyU3R5bGUoKQogewotICAgIG1fc3R5bGUgPSBuZXdTdHlsZTsKLSAg
ICBpZiAoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IG93bmVyU2VsZWN0RWxlbWVudCgpKSB7
Ci0gICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc2VsZWN0LT5yZW5kZXJlcigp
KQotICAgICAgICAgICAgcmVuZGVyZXItPnJlcGFpbnQoKTsKLSAgICB9CisgICAgbV9zdHlsZSA9
IGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JFbGVtZW50KHRoaXMpOwogfQog
Ci1SZW5kZXJTdHlsZSogSFRNTE9wdGlvbkVsZW1lbnQ6Om5vblJlbmRlcmVyUmVuZGVyU3R5bGUo
KSBjb25zdAorUmVuZGVyU3R5bGUqIEhUTUxPcHRpb25FbGVtZW50Ojpub25SZW5kZXJlclN0eWxl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zdHlsZS5nZXQoKTsKIH0KIAorUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gSFRNTE9wdGlvbkVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQor
eworICAgIC8vIHN0eWxlRm9yUmVuZGVyZXIgaXMgY2FsbGVkIHdoZW5ldmVyIGEgbmV3IHN0eWxl
IHNob3VsZCBiZSBhc3NvY2lhdGVkCisgICAgLy8gd2l0aCBhbiBFbGVtZW50IHNvIG5vdyBpcyBh
IGdvb2QgdGltZSB0byB1cGRhdGUgb3VyIGNhY2hlZCBzdHlsZS4KKyAgICB1cGRhdGVOb25SZW5k
ZXJTdHlsZSgpOworICAgIHJldHVybiBtX3N0eWxlOworfQorCit2b2lkIEhUTUxPcHRpb25FbGVt
ZW50OjpkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBp
cyBuYXN0eSwgd2UgYXNrIG91ciBvd25lciBzZWxlY3QgdG8gcmVwYWludCBldmVuIGlmIHRoZSBu
ZXcKKyAgICAvLyBzdHlsZSBpcyBleGFjdGx5IHRoZSBzYW1lLgorICAgIGlmIChIVE1MU2VsZWN0
RWxlbWVudCogc2VsZWN0ID0gb3duZXJTZWxlY3RFbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKFJl
bmRlck9iamVjdCogcmVuZGVyZXIgPSBzZWxlY3QtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICBy
ZW5kZXJlci0+cmVwYWludCgpOworICAgIH0KK30KKwogU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50
Ojp0ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCkgY29uc3QKIHsKICAgICBDb250YWlu
ZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRp
b25FbGVtZW50LmgKaW5kZXggMjRjZGNkYjVlY2I4Mzk4M2RhYzJiMWQzZmJlZGM4OTBmMTc3MzEw
ZC4uOGY2MWIzMDRlNGFhNmM0ZTNkNTczMTZjZWNlYTNkYTQxNGQwNGVkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNzUsNyArNzUsNiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250
ZXh0JikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRldGFjaCgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJTdHlsZShQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgQXR0cmlidXRlJikgT1ZFUlJJREU7CiAKQEAgLTg0LDcgKzgzLDEyIEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFy
c2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0g
MCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCi0gICAgdmlydHVhbCBSZW5kZXJTdHlsZSog
bm9uUmVuZGVyZXJSZW5kZXJTdHlsZSgpIGNvbnN0OworICAgIC8vIDxvcHRpb24+IG5ldmVyIGhh
cyBhIHJlbmRlcmVyIHNvIHdlIG1hbnVhbGx5IG1hbmFnZSBhIGNhY2hlZCBzdHlsZS4KKyAgICB2
b2lkIHVwZGF0ZU5vblJlbmRlclN0eWxlKCk7CisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogbm9u
UmVuZGVyZXJTdHlsZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gY3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpIE9WRVJSSURFOworCisgICAgdm9p
ZCBkaWRSZWNhbGNTdHlsZShTdHlsZUNoYW5nZSkgT1ZFUlJJREU7CiAKICAgICBTdHJpbmcgY29s
bGVjdE9wdGlvbklubmVyVGV4dCgpIGNvbnN0OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>