<?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>64126</bug_id>
          
          <creation_ts>2011-07-07 14:10:58 -0700</creation_ts>
          <short_desc>Turn antialiasing on only for rects which are are rotated or not scaled</short_desc>
          <delta_ts>2014-02-05 10:48:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Dmitry Gorbik">socket.h</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>koivisto</cc>
    
    <cc>leviw</cc>
    
    <cc>reed</cc>
    
    <cc>schenney</cc>
    
    <cc>vswap65</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433691</commentid>
    <comment_count>0</comment_count>
      <attachid>100029</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-07 14:10:58 -0700</bug_when>
    <thetext>Created attachment 100029
reduction

If we have two nested divs with different background color, and scaling is applied, border appears.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437446</commentid>
    <comment_count>1</comment_count>
      <attachid>100907</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-14 18:07:27 -0700</bug_when>
    <thetext>Created attachment 100907
Proposed fix 0.1

Proposed fix 0.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437847</commentid>
    <comment_count>2</comment_count>
      <attachid>100907</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-15 11:24:23 -0700</bug_when>
    <thetext>Comment on attachment 100907
Proposed fix 0.1

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

&gt; LayoutTests/transforms/2d/antialiasing-pixel-cracks.html:10
&gt; +			There should not be a border

We try to avoid text in pixel results because of platform differences. You can make it an HTML comment.

&gt; Source/WebCore/ChangeLog:8
&gt; +        we need to turn antialiasing in the cases when we do not need it: when

... turn off...

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:721
&gt; +    if (!canEnableAntialiasing())
&gt; +        CGContextSetShouldAntialias(platformContext(), false);

I think this is going to have unwanted side effects. You&apos;re changing a lot of behavior here.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:845
&gt; +    if (!canEnableAntialiasing())
&gt; +        CGContextSetShouldAntialias(platformContext(), false);

You should call canEnableAntialiasing() just once, and use a flag to reset it.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:851
&gt; +    if (!canEnableAntialiasing())
&gt; +        CGContextSetShouldAntialias(platformContext(), true);

These aren&apos;t going to nest correctly if you always set it back to true.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1159
&gt; +bool GraphicsContext::canEnableAntialiasing(void)

How is this different from !AffineTransform::isIdentityOrTranslationOrFlipped()?

&gt; Source/WebCore/platform/graphics/cg/ImageCG.cpp:188
&gt; +    if (!ctxt-&gt;canEnableAntialiasing())
&gt; +        CGContextSetShouldAntialias(ctxt-&gt;platformContext(), false);

I think this is going to have unwanted side effects. You&apos;re changing a lot of behavior here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438005</commentid>
    <comment_count>3</comment_count>
      <attachid>101050</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-15 15:01:53 -0700</bug_when>
    <thetext>Created attachment 101050
Proposed fix 0.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438016</commentid>
    <comment_count>4</comment_count>
      <attachid>101053</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-15 15:15:06 -0700</bug_when>
    <thetext>Created attachment 101053
Proposed fix 0.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438077</commentid>
    <comment_count>5</comment_count>
      <attachid>101076</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-15 17:29:18 -0700</bug_when>
    <thetext>Created attachment 101076
Proposed fix 0.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438772</commentid>
    <comment_count>6</comment_count>
      <attachid>101221</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-18 15:30:27 -0700</bug_when>
    <thetext>Created attachment 101221
Proposed fix 0.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438791</commentid>
    <comment_count>7</comment_count>
      <attachid>101221</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-07-18 15:59:37 -0700</bug_when>
    <thetext>Comment on attachment 101221
Proposed fix 0.5

Attachment 101221 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9115441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438793</commentid>
    <comment_count>8</comment_count>
      <attachid>101221</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-07-18 16:01:13 -0700</bug_when>
    <thetext>Comment on attachment 101221
Proposed fix 0.5

Attachment 101221 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9111492</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438800</commentid>
    <comment_count>9</comment_count>
      <attachid>101221</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-07-18 16:08:47 -0700</bug_when>
    <thetext>Comment on attachment 101221
Proposed fix 0.5

Attachment 101221 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9110582</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438803</commentid>
    <comment_count>10</comment_count>
      <attachid>101221</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-18 16:13:32 -0700</bug_when>
    <thetext>Comment on attachment 101221
Proposed fix 0.5

Attachment 101221 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9115445</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438833</commentid>
    <comment_count>11</comment_count>
      <attachid>101237</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-07-18 16:54:46 -0700</bug_when>
    <thetext>Created attachment 101237
Proposed fix 0.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450480</commentid>
    <comment_count>12</comment_count>
      <attachid>101237</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-08-12 10:18:03 -0700</bug_when>
    <thetext>Comment on attachment 101237
Proposed fix 0.6

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:724
&gt; +    bool restoreAntialiasMode = false;
&gt; +    if (shouldAntialias()) {
&gt; +        CGContextSetShouldAntialias(platformContext(), false);
&gt; +        restoreAntialiasMode = true;
&gt; +    }

I think this is too general a fix. You&apos;ll affect all rendering here, including canvas rendering.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1165
&gt; +bool GraphicsContext::needsAntialiasing()

Should be const.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1175
&gt; +    // Enable AA for any rotated objects.
&gt; +    if (ctm.a() == -ctm.d() &amp;&amp; ctm.b() == ctm.c() &amp;&amp; !ctm.b())
&gt; +        return false;

The comment doesn&apos;t match the code.

&gt; Source/WebCore/platform/graphics/cg/ImageCG.cpp:191
&gt; +    bool restoreAntialiasMode = false;
&gt; +    if (ctxt-&gt;shouldAntialias()) {
&gt; +        CGContextSetShouldAntialias(ctxt-&gt;platformContext(), false);
&gt; +        restoreAntialiasMode = true;
&gt; +    }

Again, this is too general. You&apos;ll change canvas rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451309</commentid>
    <comment_count>13</comment_count>
      <attachid>103959</attachid>
    <who name="Dmitry Gorbik">socket.h</who>
    <bug_when>2011-08-15 14:53:27 -0700</bug_when>
    <thetext>Created attachment 103959
Proposed fix 0.7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976812</commentid>
    <comment_count>14</comment_count>
      <attachid>103959</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-05 10:48:05 -0800</bug_when>
    <thetext>Comment on attachment 103959
Proposed fix 0.7

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>100029</attachid>
            <date>2011-07-07 14:10:58 -0700</date>
            <delta_ts>2011-07-07 14:10:58 -0700</delta_ts>
            <desc>reduction</desc>
            <filename>reduction2.html</filename>
            <type>text/html</type>
            <size>395</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs
Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L2xvb3NlLmR0ZCI+CjxodG1sPgo8aGVh
ZD4KCTx0aXRsZT5pUGhvbmUgcGl4ZWwgY3JhY2sgcmVkdWN0aW9uPC90aXRsZT4KPC9oZWFkPgoK
PGJvZHkgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjI0KTsgbWFyZ2luOiAxMDBw
eDsiPgoJPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogIzAwMDAwMDsgbWFyZ2luOjEwMHB4Ij4KCQk8
ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYiPgoJCQlUaGVyZSBzaG91bGQgbm90
IGJlIGEgYm9yZGVyCgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+Cgo8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100907</attachid>
            <date>2011-07-14 18:07:27 -0700</date>
            <delta_ts>2011-07-15 15:01:53 -0700</delta_ts>
            <desc>Proposed fix 0.1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15423</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDE5NmM5Li5hODMxMTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTQgIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNSAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgYnVpbGRib3QgbmVlZHMgdG8gdW5kZXJzdGFuZCB3
aGV0aGVyIE5SV1QgZXhpdGVkIGVhcmx5IGFmdGVyIGhhdmluZyB0b28gbWFueSBmYWlsdXJlcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFs
aWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mOTY1MTE1ZmQ0YjM5ZGMyZjM2ZGU4ZTViNzE0M2ZmY2RmZTA4MDcwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNTc2Ngp6Y21lSE9YPFg5VCpHSjI7dGtpTztUKGM9XzM/MFc1
Y1RGPX0jajtUb20wWiRYZlhzeXk2fEhRTSlLKUR3Vz9Ge0kKemgxfGR1JVooOzhEXmU2eDUpIXUl
SHhAPFUhVEx9Qy1hSWQjJip5bztFOHU+OV91TztOSkA8UmdgUTlKYkp3NHBsCnp1aWQmOTAwNjgl
YmE0TCgwQVBoNzBIRWxyeWg9OGJwSyRTPD58PU1GbntRbW0qKXQoZ3ZHRml+UmhVKWk/OysrUAp6
SFdvR0B0SSlqYFZPQk9GN0QyeVIrdF5xSjFxV0cmUikxQiYlY1NUPnhWbX5DYSY8TklKZFgmQWgm
fUBWVHV7aDMKeiQldndPWURqMmppZTN6M1l7UypwSUcoKSk1QX0rM0VoSSR3KU9ZeiFTUHsxIUVj
aEdkcFdwRWRDLXVlWmVoazk0Cno5WFlld2FiZmtreyEwa2Q/ZSFmUkxCaTUmTW8wTlpSbUJCK2p+
UlFkczFyMFc3TiVeQk41MklBeGUoKD0oSilpaAp6X2A/Z18tbT12OE1UMFNgNVVBXkZ2VUsocz04
RCRnbyRrKTZsKiZZSSkhWVhDal85fjQxZnhVfSh2eUYwbyUqensKekE/ZERWbzYrIzhLT183PCNj
bGZCZCExV2taclJkeEd9YWZsYSphV19INmtRXl8oczxEK18xZnQmaVFMdlI9MnlACno5O3RQPHo4
fj48WmhoYW9iZDR7QEpEPVMpI25failvaUd+LWIqbyYqcEVpaVNHeikkNF56THs7KntFNjtFUHNv
fgp6aHZkdjUxRGxqe0hgc3VsUzVEQilQNVd3IyZpUHVnOSRCV2ticDJBVXpPIWpgRGxYemE9UytV
eXNvZmlRPT5GMGUKemU2cmprSSliZ1Q7KDkpdCFrUEVIe1F8cVVkOVRIKElUcHdCLXBXYnlie194
OGYlKkMtRCplYC0paHRVIy0wb2hxCnp2IXFHREpEKWp7Y3piJVhUMGc2MjkmKzIobkA8MUlfNG9H
SEhzbz1xNiRmMXxYNnVJVGBoM2V9VH5LflYrakhTagp6dHUwMX1BQWdMOUpERkglLUR8aCZQQSo1
K3tsWSljNFloJDxKVjwzTnxGZnVnYTBmTkpROFN+Ul9eOXRWcnpVOzgKenpIKEUoNG12KlEkc19u
TXNCV1l7MlVlbkBkfForX1FnSlp3JXAzNTw8SjVSN19EISQ2ckZmT0AtfHRUQ05aOURSCnp1RCow
U1EyMS1+VDV5SlRPSjRKKipZQWVQKUh+QitfQmZVbGR2JGV1LVNQNDAkSH55ej0xaVZUJEw1OGI9
QnxFNAp6cStnQnxYND1mc0pYTVRXQXVtcHtuZl8rZil4YH5PMUJNc3RsKj4lZFpfalNnPUQ4KHJu
PGlQMTlIQihTd0lDZHcKekw8eWFJV2JRWkZLKUZAX3VwO1NoNCY5alZrb3xucW1kWGxKTVhJOzVO
JWd+ISRpcjF9VjhEdFVGcHM9QnI4YHtwCnolUFBzJiU3TkUmTmBpZkVmPSQqVTk7XiRAVFh6VjV1
OzI4QlRAR2dqIUsqaWI5UlpFQ25mdndKeFFAN1coaUhUXgp6cz16SFRLZzYxOXw3ajhiV3pDRF56
Jig/aWJPWlpoViVqWWBkUHRjQUVUfHNpPXZfak9HbGwzWUdebSNKVjdzNjkKejQzMig1dDZYQHJ3
Q2RVUndZQEVXTDRPQVQzO35Ecz8+bCl4Zml0TDczaVJRdns9RDFjOUNGdUdgKFYrLVNLRGVFCno+
fFUrJCtqQTM7e2BwbWElUVZ3X3B5XjRpMkNfZ0pEOGt5PGE3anBSTChWSzhRa3JfbG5kQEtgbEBn
VS0lJkBUIwp6T0BXQjhOXzlpJEc9UEhRTkBYPWU9aEpCfktkayFOWVAkVVctQCo0dkU3ZXZqe154
PF4hUGI+NFp3N3J6KiNHWVgKeiZTX30/PUh+eFNhNld4TTRlPEw3VEp9IzspU1B1IWR8VG9CcTs7
RnJvVWFfR3ROJGNiQG1rMSMxcD9CODZjdTBwCno3SE1ibkxrKHdWSytMK0kpY1duSEdob1hCbkVP
dnNsP302aDYxZWlwOGZDLVFyPGBtNThZZEk0Jn1STiRmb1UmKQp6USYwJXFUJS00czJNcDchU04p
eys9QURMVj5tQ3VkZkFgS2V7Wl5geGUtYkVuaFRJd2QyQmtiUTxpfHZZTXNtI2YKenpYNEdHez9E
cHRWUVpYbF8kdjF3dU1fdENZdW1IJHIlTDlxc2AheWBDc0ZAPWV8S3NFUTYlUSEoR0tEPGNQQVEk
CnojY3k5QlM/RVQ0RmMjaCtgUihQemZsK0YrZ2FfbUAzWHFhe29Lc1FpTE1MPnBFOHFnYFRqMmlZ
RlV1JCVzaD89Vwp6TztocHNAaGA/czN2cm9WZ343ST57JSVMVGIxeE4yN184QSs7MXFeRHopY2t0
a2k7QVc3KnpYZXtVUjVpJH01cUUKenpoSEpyfDBxOXlaflA/QXdrS30tKW9ScmUoTXtKNDU2ViU0
bE84dytQNlRkUSY0TVhgN2syU2VUK3lVSWp3JT11CnprZFBFSTJWPDh5ZGsxP0lOdCFEWHkpe15Q
P0xMTHNtX1FxYU4qQWYpPk55d007XzR8eUBPbFhrLSVKc3NMe3xpagp6cVlqaTJRKUNAVWljY09m
TDd8WD0qbCMkelBFKGR3Jmx+VSh3NkhAUkkkd21MYmByc2U4OUZmJnVfamUyVmhGSCMKemJYRUs1
bSpZT29pIz43S3Y0dFQ/ZVhhVWRWbGZ2aiNrU09zeHRaQXglRVVnOUVyZWNRQ0pOU1c9JG43Mi1F
PW04CnpHX2d9MElEMCM8YTRIVUdjV2VnT1lNenQkN0hINF9uITE0cXc0eGk/PiYzbV9OMEU3QHAt
Y2J3QnxifWMpUzdhcQp6Yz5lS2pOdTMhWCVBZDhCa19DQEA8VmEwMSRFU1IjTzQlcVk3RzU1QWNM
dnhAeWlMTiFFeXxXaENCMkkrd2tRJnwKejg0dHh0VzF6YE4yOGlxczQ4bTJTTy0lVSVuUzgwYmhf
bTA9X0JndWxMciZeRSQ5fTFxZjFrMCQyMnUyOyZScXBVCnomOWMpJmJYbDdyaiR6UCZJKCpwSHJt
MiFkaiFMLWI3Z0BHWGYwWE0/a30/ZnltTzdDcnRZeyRJX1NHN1g3aiNFKAp6TGdrJWYlYnJBdnRX
flhONi02OCg7fS1mQmpNVCFBQFFMR1dRMWlrKDJEJWhuJl5gU2tPTDY7WE8kO058Xyo/YVcKemEo
eExoTTdqMXZtOUojbF5FdlFfcV8xUjBlI0pPfSp1O3NPaXA4U3BDais/a2x4TEA2VUxwUE1IamEp
JWBJVUpeCnojaj5ASSY2Rkw5akBlNDM1QWd9OVA9Q25tK2k9RyE9JXZ7IXB2SiEjKG1gJTJ2WXpa
UFchXnErPk8tMm5ob2l+QAp6UU9xeHNhOFY0PShFS055VnwpXmdRcndHMFZJVHYrZEFOWTR4Z3Ve
TXtRUkFRcW9XU29Me1pJMzlqSnhKcGBAMjkKel54dmEwcWIlVFA1Z29rakJfQ0RIPGlUPWUoPEhD
PjtrJiplblIjRmtYKG1lcTwwZXJYeW1KUD5VYWhAZz4oTmxwCnpQMnQpTlBJd2RaV25uNGNVNGA/
bVNlYmdGV2ZzezUldytsJEtKMmg9bnEyRXMrWTxOZU5JPk1gPWhhVE5seWItVQp6emZeZShaSz5y
Y29HMVkkKkM/KHszenNvQ2VGYXA9JSljWXNTV3kkIXgoU1lpNiNsSmtOcSZuK3E3LTtJMzE2dXUK
elR6S09vbmFMU24xSFJ6Ry1SLWR0SFJmdHlFMXQ8ZzQtQV8oRVJOTFJRKCNpN3Njb3U+dWozd2Ng
aUlmKE1CUWleCnppT0U2dkpFYngmRVhkQWc5bVZ1dngzeEYtMEAqR0JWfTBPWj8tPms1ejExb3k2
T2o/aikrU0E3XytTKjxEb0FmOQp6YkJUPjNeRC0xNUltTlJZMH5nLS1AWDJtbUI4Z1hxYjUoVlM+
dT1XfXpYPnJBXmAma04oRk1tdXlFUSFtdWxMdmQKenZpY2gmeWY4YFU/fGdPT15peVpNNFdsNz9s
ZkRJMFJaWjczUmtwSVY0emQjaCs2UFF1N3R4OF4jUk5WKGxHbXVVCnppZF89T2RtZ0tATy14dyF1
aF5XRWxfQ31ZZmx1bTU/eXhBWFU/aiprNShQKTNpbnV4R0NEdGV5eS0wfmdVMi1DVgp6JUVjQVNL
U1Y2cmN5SX1vKFc2U09AMnoyamxiTV51PEBeSUVsQ2EmKFE3V0B4czx+TXo9NXB+ZEg2O05zbEkq
SyYKej9vdXFPc3ZtKnM/K2hkKSlzNWk7MkpESFRIWmVpI0tEJUwlMUNNUE9JdEA+YztNTVlYSGFa
RFpwdSgwM2Z8bHxrCnolcTtQckJpX1VzRlh8JFViOEs+Z0BIOXAkN0dOUk02VH0rT3BSdVNgbnQ+
cG4rOEQ7RyYycVhOazc2K2xzMiZDUgp6YlJEKmhaZzw/QDdHMV47PEErOV8jTiolK1RzNEt3dH01
YjAkMktKMzc8YHQydntuIT1MdUU5YURsRkFVVWE9X3IKeiVkUU9HX3ZMRUIrVEg8MGBvUDd2eF9H
QFIxY0VmYFJYbHEpN0J4NDcpbnJvfSpfTlotJCFyVTswRmcyWWlNOUo5CnowPEk4fHRxLUNYXkdk
X0pJRFZOdWpnWWlTe0diYWgzX01PR0N4PUxuUTxtcX5XZlV6NCR4ZitHc2pTVUAxUX14Zwp6R25Y
Zz5rfiQ/IURrYlF1VU4wN1QzKi1PVHpAUytNKX0hdFk2VVNyaSNBViUyZmJWYEluPHc3QlF5M340
NzxIN0wKel5lI2trY1lKd2xTQHVZUmBxRHNvKV9DbU1weiF7I3JJKUs2JiF4VW4zNEQpNm42ITd6
RVNsI2ZZP0pDcjlTNWNvCnpoP0N0QjNnPTBwTDlRZD9ZWiQxMi1sODA5LStTTyZsVGZNTGhQIUt9
PSZENH1haSthRlNXP2VDIy1HVlhIckEhJgp6SGBKR3Y8eXp2SylwUDhhJExKcmo2UkxYKG45Nno7
JXt6U0MzZEJOYVZAd293Mz9GRTZAbkdYVjd9Y20wUDhZZzEKelVjVWlxIT11SE1LRkZxfTVpPX17
LTxKIVJaOExVXmlBT15ZKU5xP3FQKndGbiNsc0R8bDZrMTVfb1Q4MV5rPFJjCnpGNlFoYHREKSV3
b0pvYnBET0RkNDVIMmJOYTI+P2R1Nj9QKj01eVh8NU03WSU2OWUwQDYwMH1tRkI7alduJmdRZAp6
YUNjaCMme017dE5LK3c9cj9TZ1o+VzNKWUBsPHRVR2dBe2ttVipLSGIhc1ZtKl9jPGBIYXEjWl5h
a0woRU0rMCEKempJRXttNnpfKTxjeH1zZXsqNz9ea25HZGRxIzh2MlYjdHVwPnszUSFZeGhpdEwo
QUU+ailXYXc0bTNldj5kd0tZCno9SHhTd2kqUWtJRFAjVkxTeFE3VTRPRC0/XlYmaVUhYW89SDR0
NlU7LV5KKzlIWjVMVDEjLWQqbzBLWVNINlNKVgp6RlIyOT83Yzt6bm48VG9BV3NjJHo+U2A9PSl6
cy1ycUF2OSVyaHROIyUkdHkoalBnYm85KCtyUFV5bXFJKTJnTEAKel56Jj0wIU5vb3E/SFFEQ2hz
amV1STlBKkVLMTU8Q1dLcW4/bndeTnpadjNvLV5MNFEteDRBWlhJRzVfeyFPZihjCnpxVWtJP1ly
MGgmeGNEKjhCZ1ZGfkdHUDMkJnhDZGhJZkA5cm1zajg7eUA5I055OEZQb1h0emd2MW1wWnNWcUYp
Xgp6VFZVcTJNfDZXaCpYYk87WS1+VUxlOUhSRjkqPk1uRklYP3BjWU4kKTklKXtxNlRmVlc8QjIy
OTlkcTtvPUkmaFEKeksqbD4rKWJnUkE7KlY5NWBAK09pQGV5Xih3KHV4TVQkfEoxTGUleig4bnM/
PE9qUDxgUXFtSCV1dmAtfFYxVXlCCnooeD49IV9OTHlPQWtDV3tKYldeSG8tKmVqX1hSRjd3Rk9H
K2QoOSRxK0V0aHVfNTVSPldgRE82U0VhT0MpfHxGPgp6KThpRTZfWThvRmhpV0xCPTxDQkI9Tl5j
M15GKyl+d1oze0tEVj85ZGYrKXI9OXhLY1FWK31KU1NYKGl4T1ppelIKenF6KTVuTzNyMkpfWSQr
X0I3XllVQEZxZENFRFhobzlHIU5fcmBuLWtCUWFpVkVpIzlPPWhDfnNeOVlFdyU3IVF9CnpZTHdK
UmkzWll7JHFHUHNqVS0qS2VlRj4wKC0jZEhOKE1AQWtXKk1YajRAUk5GOEcqOytsLWJiSGJ8K0M9
MiUoOwp6UCtYdEE0QitDZmtVfnN6NDxTJWMkc0prR1RBWDhVJX5kdyFSNnBidTIheHt9cy13V2Fm
XndqekZ+KWwmMS11V1cKekd4dXBBZWFkbylfJDxZdStEe3hraHtvaEcjPiozSWVOQGs+NDtZPG90
TCYyMTR2JW9zRldpaGFvKm4wOD5GeipfCnorfWYtdCt1WU95K0tkKXh6Y2MyNmAqaGFHVl5HeXUr
KTFBMXB3WEI4eVJ1S0taT3tQez9DXmN5JWhTcTY1TGczXgp6PzQ1JSZfe0tEQjI3V2YwfEc/eDZw
ejdCQWlrdn57WGJEdDJxMkR9b0QtbXdqamdHeyU5T2N+MitidX44T3M/OTkKenleS0lZTlA1ZTdN
V1QyeXlVcytyQ3lZfV5FYEFOKlkhNWBVYlV4UkB6e0VrR2RJJFpLSTJ0TCtuJTJedlMjODNDCnp5
Ynp3MEl6MzRBSGBHX2EyTyFQZSZJVSptIWpZQz1DblVtNGNhSG4pRj0pS2tlKEslJSskcHU7a1Ni
V2krKiU0PQp6bVchcHcmKGZrOUBiNDlpJGkqNFp1Ulh5fWU1fU0mKSN9aXg2elhpQmBBNHtAaDFE
Uj0lfktKeTtaZm1BZHFSVDQKenN8YGY1Kj5WQjh4WkJmaUBCe29Cbjh5JUxBO0dlJEJ1NGJCWi13
SD8jJTxhNjl1Z1lkMjR+bkhOcXV+Pj5rQ3FRCnpNM0RMaDhnSnR5MjtCTW5neHhAR3lJSlFtPUxX
eDtORFBraUEpdTQhSTl4KyYyZCQwQ2djS2dHa3E4ZFo7Kn0+PQp6PkhPez5lVXF+Ujt0M3pGKWR4
c241Xnt8ODIwUmx5dih1M0AqY1RuODlTVip+OGQ2eFRgPVp+S2tiO2B1akhgMXkKelJzam9CJE45
QXZnNUpmbHZTcGlNNGN8V0I1Z0RqTU9sVyQpITJ9TCNXTl5PKXB5OGJ+ITBte3c/JipIQ05jKlBG
CnozJGE+S2RKa2RBP1EwZiN5I3BMTmcjbEFwd3djeURqQmBJe3Aqc3JSNllAUXdKMyReNSpJfGlz
QnpyU0JNb3NOVgp6JEFQcUtQZHIpMjtDbkR6c2gxa1prMEI7SC0qdkY4O0sjY2MkSVc3alF5TT5I
Sjh6Xns9SjR2Yj4kY2FkPX1ifWcKenJEWXh4KTYkPkRyKG04MHVvaUZvKWBKS00raFV+UWpsPTZv
WU9RdW1VfD9jZSN0N31JYihiLUxhUUd4VE9MPXZMCno/c1IzIT1NQEhIUDkzfFFBVm8+bGpZRXFj
JVp+V15nPXdNYmp7O3NaXjRNQVJ4eGhmWHElOGVCVkVIQVJyUmkyMgp6O2k1TnBuK0pwejRJeUk0
KWhlQiReTmxsUVpxWEhTRzR8fTJEXnZAYUk+cS05WiEzVmxAQURwV1JCNipfXkdrI2kKeilLOH1E
ViY9KjZGJXU2ZzF7ZktUTTRQVmUhUnRndG1PeSE0JngwUWZfUi0jVzRjZHs7b1pAbnBEX15gPmRD
KTFzCnpROzxaQFNDSTIwaitKdyRXQV49My1TZSshLX1oOUtYVWcyOFZ+JjlmQzdNQ009QmoxZXY9
akh1bHpIZjRWeGFSewp6VnBCNEdxSjhOKipZXjlHWU47QWNkN2IpTUgxJHQyRmc7c0pJc3E+QSlG
aFQ2V2J3Mkl5ZnZycGVUTH4/QX1BJm4KejwhYWY/RD9ATmhKbGk9SHAlSkJERE1PKU02JVJrbkNV
Tk1PTlErKmd3I01lclF2RllrTU48TXx2d0tCcjxjVyZWCno9dGp3NkVXUEhKSWR5bTRpb2thcG9Y
a3YmK3N7OSpYb1F0cyhLdzwraiV4cSlQLW87KCZZaFYkckgzfVRDdCZFagp6JEszNj9hMlBnVUsq
aUFMQCN8OUpwSiprcXdSVztFWkxtRj96NGEwOTNgUjRIaDhxJHU7QjJ9ZzdUPXVXPS1pKXIKekZV
Zlg7IytMKntHb1U3bSpHOVpVTXhPZ0JsXztmP19RVXN4WGY3dl5YVkcoeW9qe1RCZVBSN3c4Pkc8
O2VjbmhZCnppeClpZCV5LXlpQjEoSHFWQ3kmUzMlcmk8aDVXTlN3Ozg1Z0VWITNYKC18U3twWCNf
KmskYk97SGh3VTZOcTI2Ygp6TjI+JTxsaCRqbmlSWnZKJnZeaTtFdTxeYU8wSGZWdFVUPVZYfG58
YT1naXhZPEQqSnpTM1I7R3hGPjxePnB+MXIKejl1aU9gYUkkSWZqMSpNVXRZPCspKEFiMiZtamo5
fVA8P0NmPTE0fkwqWGNyUXN9YEdWdlg7QEp4TUZ7dCUzNSZACnpDd1FoVkM2P21qaHA3Ki0jUVdN
SmAtOTtoLTFtUzdKdjFsckp1TlglYkNYOz5OOCNzN0JHLV43V2lsWWV5M09uNwp6PFdNdCN4dnRy
KVU0YyVLKj1SNnheTEdrNEp6NyFad3ZYZkZZbyYrXkYhWFRtN2U8XjxqJS1Odko2YW0zJHZDKE4K
elFmT3pPP1MtKUNIZkxQalU5TmYhb1hxbEszQk5kKT9walZKJjM8Qkk/fjlxPk9MOygjZW1AVzdi
dmx6V0Nmc1oxCnpVN2V8VUhDWGV4d05oamkmfDViWG9YZXN0MzBGTT9LQjFle1d8UFNWJnQqcUI1
OW0kRzFXUTx8aE5oNmgrWnMzcAp6QVM1fHo2UDhIXmZvNVBYJChjPHQ3Xz51KCgkbV5yTHl1UzIh
Rj89eHt1I3xEUykhfl9HSyo7PmNuWFNVQD5xV04KemdidCpQWWt3NDMoVjI/RTNybSRYJXwwS1VJ
RVl1I2JyRiQ0WENwaUgxZExXRVFwOXp6PW48b0BkJHl9PF9WV0ZHCnprY1lMPHF4dX5YKmF6czYw
JUAhUXhXbTVQUWxvKiErfWtoKV5mdGpuKnxtZnRBJCREUUVPTXc+el8yWTxzLWlOMgp6RmxAS1BJ
ezItOXhrNHRVbEx8SjI2emViXlV2fD8pNHJeJil5emF5T3tTQ3t2cENWPXN1YGIrVCotQVd2T0sp
aEIKeihZNTc+bjYyTGFOUjlJMEUhcSs/VlRNc3UzdFhaeHdxN0BZZUZ3Y1A4UiYmK3RsanA1PE14
RVV2XjM7fW0lOUYhCnpuVHdGSV9qQDBDRCpzXjAoLSMjTDR+bi07LXUlSmpJJlcxX19AISU/aFJZ
OF57IWRhRy1+X3RFY0RiTWFLSm4lTwp6WFRUd2d3SGcxQ3BVUEBhJT8jNSVWSmtNUWA3IWlaVUNz
STk0VlBgLWw+MFZ1TFBjNHcmVlBJO19zKSslaztqaHcKeldYVUsmSXF0fCZTKGFWb04jY0pgcTFk
fkFMSTdhUD9ERCQrYSE8Kk5qcGZveFVXJjtKUm9PTHt5b3tHT0lWK1hyCnpVNF5gPkZtI3NwPnZB
P2pNJTJpOzl5Iz9TQys2Z3w8I0l9dGxQaHZeTU5ZMkI/PGMtQk5waXxTUDhyQjQxTnB0XgpzeDY1
MlBXZ3c+djxkbmh4PmxZeD5yN0xSbVBwVW4kZzBXP1B2PDRoPF5WbmJSYXtBKWAwNipNTjAwMDAw
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1w
aXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjFkZDdhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
dHJhbnNmb3Jtcy8yZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDExIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDIxOAorICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjE4CitsYXllciBhdCAoMTAwLDEwMCkg
c2l6ZSA2MDB4MTgKKyAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDEwMCwxMDApIHNpemUgNjAweDE4
CitsYXllciBhdCAoMjAwLDEwMCkgc2l6ZSA0MDB4MTgKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDEwMCwwKSBzaXplIDQwMHgxOCBbYmdjb2xvcj0jMDAwMDAwXQorICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgNDAweDE4IFtiZ2NvbG9yPSNGRkZGRkZdCisgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAxODJ4MTgKKyAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMTgyOiAiVGhlcmUgc2hvdWxkIG5vdCBiZSBhIGJvcmRlciIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1s
IGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIxMTExNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNy
YWNrcy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzND
Ly9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNC9sb29zZS5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKwk8dGl0bGU+V2ViS2l0IGJ1ZyA2NDEy
NjogQmFja2dyb3VuZCBsZWFrcyBmb3IgdHdvIG5lc3RlZCBkaXZzPC90aXRsZT4KKzwvaGVhZD4K
KworPGJvZHkgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjI0KTsgbWFyZ2luOiAx
MDBweDsiPgorCTxkaXYgc3R5bGU9ImJhY2tncm91bmQ6ICMwMDAwMDA7IG1hcmdpbjoxMDBweDsg
b3ZlcmZsb3c6IGhpZGRlbiI+CisJCTxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6I2ZmZmZm
ZiI+CisJCQlUaGVyZSBzaG91bGQgbm90IGJlIGEgYm9yZGVyCisJCTwvZGl2PgorCTwvZGl2Pgor
PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZGI4OGI4Li4xMzExZjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDctMTQgIERtaXRyeSBHb3JiaWsg
IDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBUdXJuIGFudGlhbGlhc2luZyBvbiBvbmx5
IGZvciByZWN0cyB3aGljaCBhcmUgYXJlIHJvdGF0ZWQgb3Igbm90IHNjYWxlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKworICAgICAgICBQ
aXhlbCBjcmFja3MgYXBwZWFyIHdoZW4gd2UgZHJhdyB0d28gc2NhbGVkIG9iamVjdHMgb2YgdGhl
IHNhbWUgc2l6ZQorICAgICAgICBiZWNhdXNlIG9mIHRoZSB3YXkgYW50aWFsaWFzaW5nIHdvcmtz
IGluIENvcmVHcmFwaGljcy4gU28gdG8gZGVhbCB3aXRoIHRob3NlCisgICAgICAgIHdlIG5lZWQg
dG8gdHVybiBhbnRpYWxpYXNpbmcgaW4gdGhlIGNhc2VzIHdoZW4gd2UgZG8gbm90IG5lZWQgaXQ6
IHdoZW4KKyAgICAgICAgZmlsbGluZyByZWN0cywgdXNpbmcgcmVjdCBjbGlwcGluZyBhbmQgZHJh
d2luZyBpbWFnZXMgaWYgdGhvc2Ugb2JqZWN0cyBhcmUgbm90IHJvdGF0ZWQuCisgICAgICAgIFNp
bmNlIHRob3NlIGNyYWNrcyBkbyBub3QgYXBwZWFyIGF0IDEuMCBzY2FsaW5nIGZhY3Rvciwgd2Ug
YWx3YXlzIHR1cm4gQUEgb24gaW4gdGhpcyBjYXNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmNhbkVuYWJsZUFudGlhbGlhc2luZyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRt
YXBJbWFnZTo6ZHJhdyk6CisKIDIwMTEtMDctMDUgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbVjhdW0Nocm9taXVtXSBSZW1vdmUgdXNlIG9mIE93bkhhbmRs
ZSBmcm9tIFY4TG9jYWxDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDA2M2Y3NjIuLmFhNDgwZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBA
IC00MDAsNiArNDAwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZvaWQgc2Nh
bGUoY29uc3QgRmxvYXRTaXplJik7CiAgICAgICAgIHZvaWQgcm90YXRlKGZsb2F0IGFuZ2xlSW5S
YWRpYW5zKTsKKyAgICAgICAgYm9vbCBjYW5FbmFibGVBbnRpYWxpYXNpbmcodm9pZCk7CiAgICAg
ICAgIHZvaWQgdHJhbnNsYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyB0cmFuc2xhdGUoc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsgfQogICAgICAgICB2b2lkIHRyYW5zbGF0ZShmbG9h
dCB4LCBmbG9hdCB5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGE3YzJmMWQuLjgxZjAyNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9H
cmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTcxNyw2ICs3MTcsOSBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3Is
IENvbG9yUwogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmICghY2FuRW5hYmxlQW50aWFsaWFzaW5nKCkpCisgICAgICAgIENHQ29udGV4dFNldFNo
b3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgZmFsc2UpOworCiAgICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDb2xvciBvbGRGaWxsQ29sb3Ig
PSBmaWxsQ29sb3IoKTsKICAgICBDb2xvclNwYWNlIG9sZENvbG9yU3BhY2UgPSBmaWxsQ29sb3JT
cGFjZSgpOwpAQCAtNzQyLDYgKzc0NSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwgQ29sb3JTCiAKICAg
ICBpZiAob2xkRmlsbENvbG9yICE9IGNvbG9yIHx8IG9sZENvbG9yU3BhY2UgIT0gY29sb3JTcGFj
ZSkKICAgICAgICAgc2V0Q0dGaWxsQ29sb3IoY29udGV4dCwgb2xkRmlsbENvbG9yLCBvbGRDb2xv
clNwYWNlKTsKKworICAgIGlmICghY2FuRW5hYmxlQW50aWFsaWFzaW5nKCkpCisgICAgICAgIENH
Q29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVjdCYgcmVj
dCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0
IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBD
b2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTgzNCw4ICs4NDAsMTUgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAg
IGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKworICAgIGlmICghY2Fu
RW5hYmxlQW50aWFsaWFzaW5nKCkpCisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlh
cyhwbGF0Zm9ybUNvbnRleHQoKSwgZmFsc2UpOworCiAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChw
bGF0Zm9ybUNvbnRleHQoKSwgcmVjdCk7CiAgICAgbV9kYXRhLT5jbGlwKHJlY3QpOworCisgICAg
aWYgKCFjYW5FbmFibGVBbnRpYWxpYXNpbmcoKSkKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxk
QW50aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCB0cnVlKTsKIH0KIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OmNsaXBPdXQoY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTExNDIsNiArMTE1NSwyMSBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cm90YXRlKGZsb2F0IGFuZ2xlKQogICAgIG1fZGF0YS0+
bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZhbHNlOwogfQogCisv
LyBXZSBoYXZlIHRvIHR1cm4gQUEgb2ZmIGluIHNvbWUgY2FzZXMgdG8gcHJldmVudCBwaXhlbHMg
Y3JhY2tzIGZyb20gYXBwZWFyaW5nLgorYm9vbCBHcmFwaGljc0NvbnRleHQ6OmNhbkVuYWJsZUFu
dGlhbGlhc2luZyh2b2lkKQoreworICAgIEFmZmluZVRyYW5zZm9ybSBjdG0gPSBnZXRDVE0oKTsK
KworICAgIC8vIEVuYWJsZSBBQSBmb3IgYWxsIG9iamVjdHMgd2hpY2ggYXJlIG5vdCBzY2FsZWQu
CisgICAgaWYgKGN0bS5hKCkgPT0gMSAmJiBjdG0uZCgpID09IC0xKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIC8vIEVuYWJsZSBBQSBmb3IgYW55IHJvdGF0ZWQgb2JqZWN0cy4KKyAgICBp
ZiAoY3RtLmEoKSA9PSAtY3RtLmQoKSAmJiBjdG0uYigpID09IGN0bS5jKCkgJiYgIWN0bS5iKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KQogewogICAgIGlmIChwYWlu
dGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZUNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQ0cuY3BwCmluZGV4IGI1ZDE4YzguLmQwNjhlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCkBAIC0xODQsNiArMTg0LDkgQEAg
UmV0YWluUHRyPENGQXJyYXlSZWY+IEJpdG1hcEltYWdlOjpnZXRDR0ltYWdlQXJyYXkoKQogCiB2
b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxl
Q29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCiB7CisgICAgaWYgKCFj
dHh0LT5jYW5FbmFibGVBbnRpYWxpYXNpbmcoKSkKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxk
QW50aWFsaWFzKGN0eHQtPnBsYXRmb3JtQ29udGV4dCgpLCBmYWxzZSk7CisKICAgICBzdGFydEFu
aW1hdGlvbigpOwogCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gZnJhbWVBdElu
ZGV4KG1fY3VycmVudEZyYW1lKTsKQEAgLTI2NSw2ICsyNjgsOSBAQCB2b2lkIEJpdG1hcEltYWdl
OjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRgogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNlcnZl
cigpLT5kaWREcmF3KHRoaXMpOworCisgICAgaWYgKCFjdHh0LT5jYW5FbmFibGVBbnRpYWxpYXNp
bmcoKSkKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKGN0eHQtPnBsYXRmb3Jt
Q29udGV4dCgpLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd1BhdHRlcm5DYWxsYmFjayh2
b2lkKiBpbmZvLCBDR0NvbnRleHRSZWYgY29udGV4dCkK
</data>
<flag name="review"
          id="95810"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101050</attachid>
            <date>2011-07-15 15:01:53 -0700</date>
            <delta_ts>2011-07-15 15:15:06 -0700</delta_ts>
            <desc>Proposed fix 0.2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>11534</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDE5NmM5Li5hODMxMTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTQgIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNSAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgYnVpbGRib3QgbmVlZHMgdG8gdW5kZXJzdGFuZCB3
aGV0aGVyIE5SV1QgZXhpdGVkIGVhcmx5IGFmdGVyIGhhdmluZyB0b28gbWFueSBmYWlsdXJlcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFs
aWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNzJhNDMwZDgwNGU4MzA4ZTFiZDk5OTkxMzllNzM3MDE2ZDJlZjMwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDU2NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZ
VjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVPTWoKeiN3bj09MkJ2MV9EVFlSZE52Vmtq
TiM7cVokKkU+JGlLWiFMaFJGJSR8OT1CYms7YDs7NClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6P2Bl
ZUt8bm4tPnVaUzh5PEZCcjMtU31XbFlSVjJgK0otdm5ATSgqVig5N1g0QDQjVy1yVCluUlFJJQp6
WlFUYTtvODk/Vk42U0M1K3g9d2N4IUlnd0omRV8yTmFCdyo5WkVqbWxzMzxzWlFgcFElKUltYT8p
eUxBUypreU8KejYxVSlJVmJvPDJlU1ZTOVZFPzBze3YzSENhe20pIW9RJCpmcEE2c2JIWmQ8WGNM
KUI8bj0wUkx7PiYkTEVUYG1NCnp7ezdZZWxDUkYxJHxMd2VNcSVGKyg8NGRgQk50QEdUcXpOTGFJ
TiRHVHRtfUNYTUt0em1hfWxtcig1SkZIJExwPwp6UmkyaCtWKEt1OV5BUCh7Q29BdEE0aSs7cUFB
SUokYWpzRzFpTXJhI05xWEhqdDZoV2lwUWdCTztgI1BMelBSflEKentEdWAlVWR+P29UJWIzMW1a
YWFzbnkhMkRtYkM+diZscypBdzJ6bkE+JHFjWEw0P2BrI2luJm1YSTBoLXNfbExMCnp0fFc4RCt0
Z1hwQlE9Rm9XbU5WZ2d7KDhxJCRaQW0rJlN5bjwrb25+Q1QqQit2ZnNvd143R0BqMGFJQ0M4eUB9
bwp6JkQtdEV1RCNjOVBuXnZEKndrKmg9Q3lpPGV8eGB3RSRWdCZJcUFkZUVwb2tBemVHPjYzY0cj
IyQ9UE1maG1WdjgKeitCMTdOSFRCNylYZ3J3YyNGSUVIYE4qbXRLNE93ZVVQfkB6bVZ7SnB2YmJp
Z0Y/cmZzOFRYMmxAcTlidCNKKXl2CnorVlNuZD98RkFzdWxNWntaOVRldUByfVRAVE5fe1ErOVco
bnkxcTFWPkVnVkg8fnlJeG1kOyh4JUBPI28+Kis/MQp6eFlTZXJPQFlALSY3TXNOcDhsdGxgQEdT
VmNkQkpWNWo/eHJlMkR2QG1CWiFWRHQ+N0N7d3BXVy1DSFlveH1pfFYKelp1UHcydiZZYDNVaD12
MEklVVdIdUNHcVZCentnWGJkSCs0UHNNam1tKnVCaDBvPnxyPHhRYGpKJk11NCZPVUdWCnpuYj9R
RmM1PHhNRF5sKHxCPnZVNE0pQVd3PDkmQVYrdyhnVG0qM3VaSXB5X1khPkhIMEZIaFhIWGsqb3N7
QGQhYAp6WjJNTFRPSyNlQFopMDU7aHhWMzUkeXJ7VE9aKnZfUmRmQk9lYGNOaFVhKkNgcmVtRk1Y
YURNP0BDcDlmVD1fRzMKejstPlI+dUpeZDl4NTJ2cUUlVWJFWXE4SFY8QktnbllaYmhkeyhKYmZv
X1EhK29hQkx2I2RfaWtqN3koelptNWFWCnpjYGJUZC1lJXRSaEtiZzxsaEBrakNocUZDM3ROND1M
QCEjN2FYMF8hdE1rdlZ4X2JCZGxYfnVvI2VkalZEc3g+cwp6dkBxVT9ma0E9Nik1UzVRZzdOTTNq
bDJ2QkpTPklAfEt+QyViKiFHbDhuQH12b3E2U18xcjswYDcjTnZZSTBPX04KejZhKnt8d3NBdCg1
V3lObyN6JXI2RFg1d2dFRyE7d3hnOVZLS3ZCaj0/NCRDZDtXTF4oejxGcGllfmd3N3F2aGpoCnp7
USN7e045KUpZX1E3Y1RYdGFHZStDQ2dAQUM5JlVmcWwlO19WSC1AYyhpPnkrQ0NtX0FBPCtuTSo5
YiZ7ZSNpfAp6IUQjPHJ3MHwoI0tOIyZGalA/JmtgJHdibWk9Kj9hcXd+d3VvP3BLPlVydlhDZnBy
MEJFeD40N1czO1U/K1NWOXQKalltQnh2MjN1UkJrXjV5aCRDfnNyNkN7QWtBe2poZ3thbl5MQntU
czUtJmclcwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxp
YXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45NWU0M2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDEwMAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFja3MuaHRtbCBi
L0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYWNiY2YKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFj
a3MuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHRpdGxlPldlYktpdCBidWcgNjQxMjY6IEJhY2tncm91bmQgbGVha3MgZm9yIHR3byBu
ZXN0ZWQgZGl2czwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IHN0eWxlPSItd2Via2l0LXRyYW5z
Zm9ybTogc2NhbGUoMS4yNCk7IG1hcmdpbjogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kOiAjMDAwMDAwOyBtYXJnaW46MTAwcHg7IG92ZXJmbG93OiBoaWRkZW4iPgorICAgICAg
ICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYiPgorICAgICAgICAgICAgPCEt
LSBUaGVyZSBzaG91bGQgbm90IGJlIGEgYm9yZGVyIC0tPgorICAgICAgICA8L2Rpdj4KKyAgICA8
L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDA2M2Y3NjIuLjZkOTY1
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dC5oCkBAIC00MDAsNiArNDAwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIHZvaWQgc2NhbGUoY29uc3QgRmxvYXRTaXplJik7CiAgICAgICAgIHZvaWQgcm90YXRlKGZs
b2F0IGFuZ2xlSW5SYWRpYW5zKTsKKyAgICAgICAgYm9vbCBuZWVkc0FudGlhbGlhc2luZygpOwog
ICAgICAgICB2b2lkIHRyYW5zbGF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgdHJhbnNsYXRl
KHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7IH0KICAgICAgICAgdm9pZCB0cmFuc2xhdGUo
ZmxvYXQgeCwgZmxvYXQgeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBhN2MyZjFkLi5kNTY3
MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC03MTcsNiArNzE3LDEyIEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBj
b2xvciwgQ29sb3JTCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgYm9vbCByZXN0b3JlQW50aWFsaWFzTW9kZSA9IGZhbHNlOworICAgIGlmIChzaG91
bGRBbnRpYWxpYXMoKSkgeworICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMocGxh
dGZvcm1Db250ZXh0KCksIGZhbHNlKTsKKyAgICAgICAgcmVzdG9yZUFudGlhbGlhc01vZGUgPSB0
cnVlOworICAgIH0KKwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0
KCk7CiAgICAgQ29sb3Igb2xkRmlsbENvbG9yID0gZmlsbENvbG9yKCk7CiAgICAgQ29sb3JTcGFj
ZSBvbGRDb2xvclNwYWNlID0gZmlsbENvbG9yU3BhY2UoKTsKQEAgLTczNiwxMiArNzQyLDE1IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IENvbG9yJiBjb2xvciwgQ29sb3JTCiAgICAgfQogCiAgICAgQ0dDb250ZXh0RmlsbFJlY3Qo
Y29udGV4dCwgcmVjdCk7Ci0gICAgCisKICAgICBpZiAoZHJhd093blNoYWRvdykKICAgICAgICAg
Q0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjb250ZXh0KTsKIAogICAgIGlmIChvbGRGaWxsQ29sb3Ig
IT0gY29sb3IgfHwgb2xkQ29sb3JTcGFjZSAhPSBjb2xvclNwYWNlKQogICAgICAgICBzZXRDR0Zp
bGxDb2xvcihjb250ZXh0LCBvbGRGaWxsQ29sb3IsIG9sZENvbG9yU3BhY2UpOworCisgICAgaWYg
KHJlc3RvcmVBbnRpYWxpYXNNb2RlKQorICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxp
YXMocGxhdGZvcm1Db250ZXh0KCksIHRydWUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJvdW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExl
ZnQsIGNvbnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBj
b25zdCBJbnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNl
IGNvbG9yU3BhY2UpCkBAIC04MzQsOCArODQzLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpj
bGlwKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
KQogICAgICAgICByZXR1cm47CisKKyAgICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gZmFs
c2U7CisgICAgaWYgKHNob3VsZEFudGlhbGlhcygpKSB7CisgICAgICAgIENHQ29udGV4dFNldFNo
b3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgZmFsc2UpOworICAgICAgICByZXN0b3Jl
QW50aWFsaWFzTW9kZSA9IHRydWU7CisgICAgfQorCiAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChw
bGF0Zm9ybUNvbnRleHQoKSwgcmVjdCk7CiAgICAgbV9kYXRhLT5jbGlwKHJlY3QpOworCisgICAg
aWYgKHJlc3RvcmVBbnRpYWxpYXNNb2RlKQorICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRp
YWxpYXMocGxhdGZvcm1Db250ZXh0KCksIHRydWUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6Y2xpcE91dChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtMTE0Miw2ICsxMTYxLDIxIEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0Ojpyb3RhdGUoZmxvYXQgYW5nbGUpCiAgICAgbV9kYXRhLT5tX3Vz
ZXJUb0RldmljZVRyYW5zZm9ybUtub3duVG9CZUlkZW50aXR5ID0gZmFsc2U7CiB9CiAKKy8vIFdl
IGhhdmUgdG8gdHVybiBBQSBvZmYgaW4gc29tZSBjYXNlcyB0byBwcmV2ZW50IHBpeGVscyBjcmFj
a3MgZnJvbSBhcHBlYXJpbmcuCitib29sIEdyYXBoaWNzQ29udGV4dDo6bmVlZHNBbnRpYWxpYXNp
bmcodm9pZCkKK3sKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtID0gZ2V0Q1RNKCk7CisKKyAgICAv
LyBFbmFibGUgQUEgZm9yIGFsbCBvYmplY3RzIHdoaWNoIGFyZSBub3Qgc2NhbGVkLgorICAgIGlm
IChjdG0uYSgpID09IDEgJiYgY3RtLmQoKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICAvLyBFbmFibGUgQUEgZm9yIGFueSByb3RhdGVkIG9iamVjdHMuCisgICAgaWYgKGN0bS5h
KCkgPT0gLWN0bS5kKCkgJiYgY3RtLmIoKSA9PSBjdG0uYygpICYmICFjdG0uYigpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250
ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNh
YmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNH
LmNwcAppbmRleCBiNWQxOGM4Li44Y2RiZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcApAQCAtMTg0LDYgKzE4NCwxMiBAQCBSZXRhaW5Q
dHI8Q0ZBcnJheVJlZj4gQml0bWFwSW1hZ2U6OmdldENHSW1hZ2VBcnJheSgpCiAKIHZvaWQgQml0
bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRl
c3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNw
YWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCkKIHsKKyAgICBib29sIHJlc3RvcmVB
bnRpYWxpYXNNb2RlID0gZmFsc2U7CisgICAgaWYgKGN0eHQtPnNob3VsZEFudGlhbGlhcygpKSB7
CisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhjdHh0LT5wbGF0Zm9ybUNvbnRl
eHQoKSwgZmFsc2UpOworICAgICAgICByZXN0b3JlQW50aWFsaWFzTW9kZSA9IHRydWU7CisgICAg
fQorCiAgICAgc3RhcnRBbmltYXRpb24oKTsKIAogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBp
bWFnZSA9IGZyYW1lQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CkBAIC0yNjUsNiArMjcxLDkgQEAg
dm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0
UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEYKIAogICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCiAgICAg
ICAgIGltYWdlT2JzZXJ2ZXIoKS0+ZGlkRHJhdyh0aGlzKTsKKworICAgIGlmIChyZXN0b3JlQW50
aWFsaWFzTW9kZSkKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKGN0eHQtPnBs
YXRmb3JtQ29udGV4dCgpLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd1BhdHRlcm5DYWxs
YmFjayh2b2lkKiBpbmZvLCBDR0NvbnRleHRSZWYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDcxMTNlYTUuLmVm
MDJiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcApAQCAtNjMwLDEyICs2MzAsMTYgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28K
ICAgICAgICAgaWYgKCFjb2xvclZpc2libGUpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAg
ICAgYm9vbCB3YXNBbnRpYWxpYXNlZCA9IGNvbnRleHQtPnNob3VsZEFudGlhbGlhcygpOworICAg
ICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoY29udGV4dC0+bmVlZHNBbnRpYWxpYXNp
bmcoKSk7CisKICAgICAgICAgaWYgKGhhc1JvdW5kZWRCb3JkZXIgJiYgYmxlZWRBdm9pZGFuY2Ug
IT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsKICAgICAgICAgICAgIFJv
dW5kZWRJbnRSZWN0IGJvcmRlciA9IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChiYWNrZ3JvdW5k
UmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFu
Y2UpLCBib3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQoKSwgaW5jbHVkZUxlZnRF
ZGdlLCBpbmNsdWRlUmlnaHRFZGdlKTsKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVk
UmVjdChib3JkZXIsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QocmVjdCwgYmdDb2xvciwgc3R5bGUo
KS0+Y29sb3JTcGFjZSgpKTsKLSAgICAgICAgCisKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxk
QW50aWFsaWFzKHdhc0FudGlhbGlhc2VkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
NjU0LDkgKzY1OCwxNCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXll
ckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgY2xpcFdpdGhTY3JvbGxpbmdTdGF0ZVNhdmVyKCpjb250ZXh0LCBjbGlw
cGVkV2l0aExvY2FsU2Nyb2xsaW5nKTsKICAgICBMYXlvdXRSZWN0IHNjcm9sbGVkUGFpbnRSZWN0
ID0gcmVjdDsKICAgICBpZiAoY2xpcHBlZFdpdGhMb2NhbFNjcm9sbGluZykgeworICAgICAgICBi
b29sIHdhc0FudGlhbGlhc2VkID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAg
IGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygp
KTsKKwogICAgICAgICAvLyBDbGlwIHRvIHRoZSBvdmVyZmxvdyBhcmVhLgogICAgICAgICBjb250
ZXh0LT5jbGlwKHRvUmVuZGVyQm94KHRoaXMpLT5vdmVyZmxvd0NsaXBSZWN0KHJlY3QubG9jYXRp
b24oKSkpOwotICAgICAgICAKKworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMo
d2FzQW50aWFsaWFzZWQpOworCiAgICAgICAgIC8vIEFkanVzdCB0aGUgcGFpbnQgcmVjdCB0byBy
ZWZsZWN0IGEgc2Nyb2xsZWQgY29udGVudCBib3ggd2l0aCBib3JkZXJzIGF0IHRoZSBlbmRzLgog
ICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNl
dCgpOwogICAgICAgICBzY3JvbGxlZFBhaW50UmVjdC5tb3ZlKC1vZmZzZXQpOwpAQCAtNzM4LDYg
Kzc0Nyw5IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5k
ZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAKICAgICAvLyBQYWludCB0aGUgY29s
b3IgZmlyc3QgdW5kZXJuZWF0aCBhbGwgaW1hZ2VzLgogICAgIGlmICghYmdMYXllci0+bmV4dCgp
KSB7CisgICAgICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBjb250ZXh0LT5zaG91bGRBbnRpYWxp
YXMoKTsKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGNvbnRleHQtPm5lZWRz
QW50aWFsaWFzaW5nKCkpOworCiAgICAgICAgIExheW91dFJlY3QgYmFja2dyb3VuZFJlY3Qoc2Ny
b2xsZWRQYWludFJlY3QpOwogICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QocGFpbnRJ
bmZvLnJlY3QpOwogICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGFscGhhIGFuZCB3ZSBhcmUgcGFp
bnRpbmcgdGhlIHJvb3QgZWxlbWVudCwgZ28gYWhlYWQgYW5kIGJsZW5kIHdpdGggdGhlIGJhc2Ug
YmFja2dyb3VuZCBjb2xvci4KQEAgLTc1OSwxMCArNzcxLDE1IEBAIHZvaWQgUmVuZGVyQm94TW9k
ZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvCiAgICAgICAgICAgICBjb250ZXh0LT5maWxsUmVjdChiYWNrZ3JvdW5kUmVjdCwgYmdD
b2xvciwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBvcGVyYXRpb24pOwogICAgICAgICB9IGVsc2Ug
aWYgKHNob3VsZENsZWFyQmFja2dyb3VuZCkKICAgICAgICAgICAgIGNvbnRleHQtPmNsZWFyUmVj
dChiYWNrZ3JvdW5kUmVjdCk7CisKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFz
KHdhc0FudGlhbGlhc2VkKTsKICAgICB9CiAKICAgICAvLyBubyBwcm9ncmVzc2l2ZSBsb2FkaW5n
IG9mIHRoZSBiYWNrZ3JvdW5kIGltYWdlCiAgICAgaWYgKHNob3VsZFBhaW50QmFja2dyb3VuZElt
YWdlKSB7CisgICAgICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBjb250ZXh0LT5zaG91bGRBbnRp
YWxpYXMoKTsKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGNvbnRleHQtPm5l
ZWRzQW50aWFsaWFzaW5nKCkpOworCiAgICAgICAgIExheW91dFJlY3QgZGVzdFJlY3Q7CiAgICAg
ICAgIExheW91dFBvaW50IHBoYXNlOwogICAgICAgICBMYXlvdXRTaXplIHRpbGVTaXplOwpAQCAt
Nzc4LDYgKzc5NSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVy
RXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAgICAgICBib29s
IHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwg
aW1hZ2UuZ2V0KCksIGJnTGF5ZXIsIHRpbGVTaXplKTsKICAgICAgICAgICAgIGNvbnRleHQtPmRy
YXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGRlc3RSZWN0
LCBwaGFzZSwgdGlsZVNpemUsIGNvbXBvc2l0ZU9wLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiAg
ICAgICAgIH0KKworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFs
aWFzZWQpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101053</attachid>
            <date>2011-07-15 15:15:06 -0700</date>
            <delta_ts>2011-07-15 17:29:18 -0700</delta_ts>
            <desc>Proposed fix 0.3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>13010</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDE5NmM5Li5hODMxMTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTQgIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNSAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgYnVpbGRib3QgbmVlZHMgdG8gdW5kZXJzdGFuZCB3
aGV0aGVyIE5SV1QgZXhpdGVkIGVhcmx5IGFmdGVyIGhhdmluZyB0b28gbWFueSBmYWlsdXJlcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFs
aWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xNzJhNDMwZDgwNGU4MzA4ZTFiZDk5OTkxMzllNzM3MDE2ZDJlZjMwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMDU2NAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZ
VjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVPTWoKeiN3bj09MkJ2MV9EVFlSZE52Vmtq
TiM7cVokKkU+JGlLWiFMaFJGJSR8OT1CYms7YDs7NClBbiNSdFBBe1BzX3xuCnpXbmlkYVl6P2Bl
ZUt8bm4tPnVaUzh5PEZCcjMtU31XbFlSVjJgK0otdm5ATSgqVig5N1g0QDQjVy1yVCluUlFJJQp6
WlFUYTtvODk/Vk42U0M1K3g9d2N4IUlnd0omRV8yTmFCdyo5WkVqbWxzMzxzWlFgcFElKUltYT8p
eUxBUypreU8KejYxVSlJVmJvPDJlU1ZTOVZFPzBze3YzSENhe20pIW9RJCpmcEE2c2JIWmQ8WGNM
KUI8bj0wUkx7PiYkTEVUYG1NCnp7ezdZZWxDUkYxJHxMd2VNcSVGKyg8NGRgQk50QEdUcXpOTGFJ
TiRHVHRtfUNYTUt0em1hfWxtcig1SkZIJExwPwp6UmkyaCtWKEt1OV5BUCh7Q29BdEE0aSs7cUFB
SUokYWpzRzFpTXJhI05xWEhqdDZoV2lwUWdCTztgI1BMelBSflEKentEdWAlVWR+P29UJWIzMW1a
YWFzbnkhMkRtYkM+diZscypBdzJ6bkE+JHFjWEw0P2BrI2luJm1YSTBoLXNfbExMCnp0fFc4RCt0
Z1hwQlE9Rm9XbU5WZ2d7KDhxJCRaQW0rJlN5bjwrb25+Q1QqQit2ZnNvd143R0BqMGFJQ0M4eUB9
bwp6JkQtdEV1RCNjOVBuXnZEKndrKmg9Q3lpPGV8eGB3RSRWdCZJcUFkZUVwb2tBemVHPjYzY0cj
IyQ9UE1maG1WdjgKeitCMTdOSFRCNylYZ3J3YyNGSUVIYE4qbXRLNE93ZVVQfkB6bVZ7SnB2YmJp
Z0Y/cmZzOFRYMmxAcTlidCNKKXl2CnorVlNuZD98RkFzdWxNWntaOVRldUByfVRAVE5fe1ErOVco
bnkxcTFWPkVnVkg8fnlJeG1kOyh4JUBPI28+Kis/MQp6eFlTZXJPQFlALSY3TXNOcDhsdGxgQEdT
VmNkQkpWNWo/eHJlMkR2QG1CWiFWRHQ+N0N7d3BXVy1DSFlveH1pfFYKelp1UHcydiZZYDNVaD12
MEklVVdIdUNHcVZCentnWGJkSCs0UHNNam1tKnVCaDBvPnxyPHhRYGpKJk11NCZPVUdWCnpuYj9R
RmM1PHhNRF5sKHxCPnZVNE0pQVd3PDkmQVYrdyhnVG0qM3VaSXB5X1khPkhIMEZIaFhIWGsqb3N7
QGQhYAp6WjJNTFRPSyNlQFopMDU7aHhWMzUkeXJ7VE9aKnZfUmRmQk9lYGNOaFVhKkNgcmVtRk1Y
YURNP0BDcDlmVD1fRzMKejstPlI+dUpeZDl4NTJ2cUUlVWJFWXE4SFY8QktnbllaYmhkeyhKYmZv
X1EhK29hQkx2I2RfaWtqN3koelptNWFWCnpjYGJUZC1lJXRSaEtiZzxsaEBrakNocUZDM3ROND1M
QCEjN2FYMF8hdE1rdlZ4X2JCZGxYfnVvI2VkalZEc3g+cwp6dkBxVT9ma0E9Nik1UzVRZzdOTTNq
bDJ2QkpTPklAfEt+QyViKiFHbDhuQH12b3E2U18xcjswYDcjTnZZSTBPX04KejZhKnt8d3NBdCg1
V3lObyN6JXI2RFg1d2dFRyE7d3hnOVZLS3ZCaj0/NCRDZDtXTF4oejxGcGllfmd3N3F2aGpoCnp7
USN7e045KUpZX1E3Y1RYdGFHZStDQ2dAQUM5JlVmcWwlO19WSC1AYyhpPnkrQ0NtX0FBPCtuTSo5
YiZ7ZSNpfAp6IUQjPHJ3MHwoI0tOIyZGalA/JmtgJHdibWk9Kj9hcXd+d3VvP3BLPlVydlhDZnBy
MEJFeD40N1czO1U/K1NWOXQKalltQnh2MjN1UkJrXjV5aCRDfnNyNkN7QWtBe2poZ3thbl5MQntU
czUtJmclcwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxp
YXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45NWU0M2I3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDEwMAor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTAwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFja3MuaHRtbCBi
L0xheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYWNiY2YKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFj
a3MuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
CisgICAgPHRpdGxlPldlYktpdCBidWcgNjQxMjY6IEJhY2tncm91bmQgbGVha3MgZm9yIHR3byBu
ZXN0ZWQgZGl2czwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IHN0eWxlPSItd2Via2l0LXRyYW5z
Zm9ybTogc2NhbGUoMS4yNCk7IG1hcmdpbjogMTAwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJiYWNr
Z3JvdW5kOiAjMDAwMDAwOyBtYXJnaW46MTAwcHg7IG92ZXJmbG93OiBoaWRkZW4iPgorICAgICAg
ICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYiPgorICAgICAgICAgICAgPCEt
LSBUaGVyZSBzaG91bGQgbm90IGJlIGEgYm9yZGVyIC0tPgorICAgICAgICA8L2Rpdj4KKyAgICA8
L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRiODhiOC4u
OTg0Mjc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDExLTA3LTE1ICBEbWl0cnkg
R29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiBhbnRpYWxpYXNpbmcg
b24gb25seSBmb3IgcmVjdHMgd2hpY2ggYXJlIGFyZSByb3RhdGVkIG9yIG5vdCBzY2FsZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTI2CisKKyAg
ICAgICAgUGl4ZWwgY3JhY2tzIGFwcGVhciB3aGVuIHdlIGRyYXcgdHdvIHNjYWxlZCBvYmplY3Rz
IG9mIHRoZSBzYW1lIHNpemUKKyAgICAgICAgYmVjYXVzZSBvZiB0aGUgd2F5IGFudGlhbGlhc2lu
ZyB3b3JrcyBpbiBDb3JlR3JhcGhpY3MuIFNvIHRvIGRlYWwgd2l0aCB0aG9zZQorICAgICAgICB3
ZSBuZWVkIHRvIHR1cm4gYW50aWFsaWFzaW5nIG9mZiBpbiB0aGUgY2FzZXMgd2hlbiB3ZSBkbyBu
b3QgbmVlZCBpdDogd2hlbgorICAgICAgICBmaWxsaW5nIHJlY3RzLCB1c2luZyByZWN0IGNsaXBw
aW5nIGFuZCBkcmF3aW5nIGltYWdlcyBpZiB0aG9zZSBvYmplY3RzIGFyZSBub3Qgcm90YXRlZC4K
KyAgICAgICAgU2luY2UgdGhvc2UgY3JhY2tzIGRvIG5vdCBhcHBlYXIgYXQgMS4wIHNjYWxpbmcg
ZmFjdG9yLCB3ZSBhbHdheXMgdHVybiBBQSBvbiBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogdHJhbnNmb3Jtcy8yZC9h
bnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6
ZmlsbFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpjbGlwKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6bmVlZHNBbnRpYWxpYXNpbmcpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6OmRyYXcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRGaWxsTGF5ZXJFeHRlbmRlZCk6CisKIDIwMTEtMDctMDUgIEhhbnMgV2VubmJvcmcgIDxoYW5z
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdW0Nocm9taXVtXSBSZW1vdmUgdXNlIG9mIE93
bkhhbmRsZSBmcm9tIFY4TG9jYWxDb250ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCmluZGV4IDA2M2Y3NjIuLjZkOTY1YWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dC5oCkBAIC00MDAsNiArNDAwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZv
aWQgc2NhbGUoY29uc3QgRmxvYXRTaXplJik7CiAgICAgICAgIHZvaWQgcm90YXRlKGZsb2F0IGFu
Z2xlSW5SYWRpYW5zKTsKKyAgICAgICAgYm9vbCBuZWVkc0FudGlhbGlhc2luZygpOwogICAgICAg
ICB2b2lkIHRyYW5zbGF0ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgdHJhbnNsYXRlKHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7IH0KICAgICAgICAgdm9pZCB0cmFuc2xhdGUoZmxvYXQg
eCwgZmxvYXQgeSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBhN2MyZjFkLi5kNTY3MmFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwCkBAIC03MTcsNiArNzE3LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvciwg
Q29sb3JTCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgYm9vbCByZXN0b3JlQW50aWFsaWFzTW9kZSA9IGZhbHNlOworICAgIGlmIChzaG91bGRBbnRp
YWxpYXMoKSkgeworICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMocGxhdGZvcm1D
b250ZXh0KCksIGZhbHNlKTsKKyAgICAgICAgcmVzdG9yZUFudGlhbGlhc01vZGUgPSB0cnVlOwor
ICAgIH0KKwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAg
ICAgQ29sb3Igb2xkRmlsbENvbG9yID0gZmlsbENvbG9yKCk7CiAgICAgQ29sb3JTcGFjZSBvbGRD
b2xvclNwYWNlID0gZmlsbENvbG9yU3BhY2UoKTsKQEAgLTczNiwxMiArNzQyLDE1IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvciwgQ29sb3JTCiAgICAgfQogCiAgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4
dCwgcmVjdCk7Ci0gICAgCisKICAgICBpZiAoZHJhd093blNoYWRvdykKICAgICAgICAgQ0dDb250
ZXh0UmVzdG9yZUdTdGF0ZShjb250ZXh0KTsKIAogICAgIGlmIChvbGRGaWxsQ29sb3IgIT0gY29s
b3IgfHwgb2xkQ29sb3JTcGFjZSAhPSBjb2xvclNwYWNlKQogICAgICAgICBzZXRDR0ZpbGxDb2xv
cihjb250ZXh0LCBvbGRGaWxsQ29sb3IsIG9sZENvbG9yU3BhY2UpOworCisgICAgaWYgKHJlc3Rv
cmVBbnRpYWxpYXNNb2RlKQorICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMocGxh
dGZvcm1Db250ZXh0KCksIHRydWUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNv
bnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJ
bnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UpCkBAIC04MzQsOCArODQzLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAg
ICAgICByZXR1cm47CisKKyAgICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gZmFsc2U7Cisg
ICAgaWYgKHNob3VsZEFudGlhbGlhcygpKSB7CisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFu
dGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgZmFsc2UpOworICAgICAgICByZXN0b3JlQW50aWFs
aWFzTW9kZSA9IHRydWU7CisgICAgfQorCiAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChwbGF0Zm9y
bUNvbnRleHQoKSwgcmVjdCk7CiAgICAgbV9kYXRhLT5jbGlwKHJlY3QpOworCisgICAgaWYgKHJl
c3RvcmVBbnRpYWxpYXNNb2RlKQorICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMo
cGxhdGZvcm1Db250ZXh0KCksIHRydWUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xp
cE91dChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtMTE0Miw2ICsxMTYxLDIxIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0Ojpyb3RhdGUoZmxvYXQgYW5nbGUpCiAgICAgbV9kYXRhLT5tX3VzZXJUb0Rl
dmljZVRyYW5zZm9ybUtub3duVG9CZUlkZW50aXR5ID0gZmFsc2U7CiB9CiAKKy8vIFdlIGhhdmUg
dG8gdHVybiBBQSBvZmYgaW4gc29tZSBjYXNlcyB0byBwcmV2ZW50IHBpeGVscyBjcmFja3MgZnJv
bSBhcHBlYXJpbmcuCitib29sIEdyYXBoaWNzQ29udGV4dDo6bmVlZHNBbnRpYWxpYXNpbmcodm9p
ZCkKK3sKKyAgICBBZmZpbmVUcmFuc2Zvcm0gY3RtID0gZ2V0Q1RNKCk7CisKKyAgICAvLyBFbmFi
bGUgQUEgZm9yIGFsbCBvYmplY3RzIHdoaWNoIGFyZSBub3Qgc2NhbGVkLgorICAgIGlmIChjdG0u
YSgpID09IDEgJiYgY3RtLmQoKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAv
LyBFbmFibGUgQUEgZm9yIGFueSByb3RhdGVkIG9iamVjdHMuCisgICAgaWYgKGN0bS5hKCkgPT0g
LWN0bS5kKCkgJiYgY3RtLmIoKSA9PSBjdG0uYygpICYmICFjdG0uYigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp0
cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VD
Ry5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcApp
bmRleCBiNWQxOGM4Li44Y2RiZjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jZy9JbWFnZUNHLmNwcApAQCAtMTg0LDYgKzE4NCwxMiBAQCBSZXRhaW5QdHI8Q0ZB
cnJheVJlZj4gQml0bWFwSW1hZ2U6OmdldENHSW1hZ2VBcnJheSgpCiAKIHZvaWQgQml0bWFwSW1h
Z2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBD
b21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCkKIHsKKyAgICBib29sIHJlc3RvcmVBbnRpYWxp
YXNNb2RlID0gZmFsc2U7CisgICAgaWYgKGN0eHQtPnNob3VsZEFudGlhbGlhcygpKSB7CisgICAg
ICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhjdHh0LT5wbGF0Zm9ybUNvbnRleHQoKSwg
ZmFsc2UpOworICAgICAgICByZXN0b3JlQW50aWFsaWFzTW9kZSA9IHRydWU7CisgICAgfQorCiAg
ICAgc3RhcnRBbmltYXRpb24oKTsKIAogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZSA9
IGZyYW1lQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CkBAIC0yNjUsNiArMjcxLDkgQEAgdm9pZCBC
aXRtYXBJbWFnZTo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYg
ZGVzdFJlY3QsIGNvbnN0IEYKIAogICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCiAgICAgICAgIGlt
YWdlT2JzZXJ2ZXIoKS0+ZGlkRHJhdyh0aGlzKTsKKworICAgIGlmIChyZXN0b3JlQW50aWFsaWFz
TW9kZSkKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKGN0eHQtPnBsYXRmb3Jt
Q29udGV4dCgpLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd1BhdHRlcm5DYWxsYmFjayh2
b2lkKiBpbmZvLCBDR0NvbnRleHRSZWYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDcxMTNlYTUuLmVmMDJiMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcApAQCAtNjMwLDEyICs2MzAsMTYgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFp
bnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAg
ICAgaWYgKCFjb2xvclZpc2libGUpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgYm9v
bCB3YXNBbnRpYWxpYXNlZCA9IGNvbnRleHQtPnNob3VsZEFudGlhbGlhcygpOworICAgICAgICBj
b250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoY29udGV4dC0+bmVlZHNBbnRpYWxpYXNpbmcoKSk7
CisKICAgICAgICAgaWYgKGhhc1JvdW5kZWRCb3JkZXIgJiYgYmxlZWRBdm9pZGFuY2UgIT0gQmFj
a2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsKICAgICAgICAgICAgIFJvdW5kZWRJ
bnRSZWN0IGJvcmRlciA9IGdldEJhY2tncm91bmRSb3VuZGVkUmVjdChiYWNrZ3JvdW5kUmVjdEFk
anVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UpLCBi
b3gsIGJveFNpemUud2lkdGgoKSwgYm94U2l6ZS5oZWlnaHQoKSwgaW5jbHVkZUxlZnRFZGdlLCBp
bmNsdWRlUmlnaHRFZGdlKTsKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChi
b3JkZXIsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7CiAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QocmVjdCwgYmdDb2xvciwgc3R5bGUoKS0+Y29s
b3JTcGFjZSgpKTsKLSAgICAgICAgCisKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFs
aWFzKHdhc0FudGlhbGlhc2VkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNjU0LDkg
KzY1OCwxNCBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVu
ZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgY2xpcFdpdGhTY3JvbGxpbmdTdGF0ZVNhdmVyKCpjb250ZXh0LCBjbGlwcGVkV2l0
aExvY2FsU2Nyb2xsaW5nKTsKICAgICBMYXlvdXRSZWN0IHNjcm9sbGVkUGFpbnRSZWN0ID0gcmVj
dDsKICAgICBpZiAoY2xpcHBlZFdpdGhMb2NhbFNjcm9sbGluZykgeworICAgICAgICBib29sIHdh
c0FudGlhbGlhc2VkID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAgIGNvbnRl
eHQtPnNldFNob3VsZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsKKwog
ICAgICAgICAvLyBDbGlwIHRvIHRoZSBvdmVyZmxvdyBhcmVhLgogICAgICAgICBjb250ZXh0LT5j
bGlwKHRvUmVuZGVyQm94KHRoaXMpLT5vdmVyZmxvd0NsaXBSZWN0KHJlY3QubG9jYXRpb24oKSkp
OwotICAgICAgICAKKworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50
aWFsaWFzZWQpOworCiAgICAgICAgIC8vIEFkanVzdCB0aGUgcGFpbnQgcmVjdCB0byByZWZsZWN0
IGEgc2Nyb2xsZWQgY29udGVudCBib3ggd2l0aCBib3JkZXJzIGF0IHRoZSBlbmRzLgogICAgICAg
ICBMYXlvdXRTaXplIG9mZnNldCA9IGxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwog
ICAgICAgICBzY3JvbGxlZFBhaW50UmVjdC5tb3ZlKC1vZmZzZXQpOwpAQCAtNzM4LDYgKzc0Nyw5
IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29u
c3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAKICAgICAvLyBQYWludCB0aGUgY29sb3IgZmly
c3QgdW5kZXJuZWF0aCBhbGwgaW1hZ2VzLgogICAgIGlmICghYmdMYXllci0+bmV4dCgpKSB7Cisg
ICAgICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBjb250ZXh0LT5zaG91bGRBbnRpYWxpYXMoKTsK
KyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGNvbnRleHQtPm5lZWRzQW50aWFs
aWFzaW5nKCkpOworCiAgICAgICAgIExheW91dFJlY3QgYmFja2dyb3VuZFJlY3Qoc2Nyb2xsZWRQ
YWludFJlY3QpOwogICAgICAgICBiYWNrZ3JvdW5kUmVjdC5pbnRlcnNlY3QocGFpbnRJbmZvLnJl
Y3QpOwogICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIGFscGhhIGFuZCB3ZSBhcmUgcGFpbnRpbmcg
dGhlIHJvb3QgZWxlbWVudCwgZ28gYWhlYWQgYW5kIGJsZW5kIHdpdGggdGhlIGJhc2UgYmFja2dy
b3VuZCBjb2xvci4KQEAgLTc1OSwxMCArNzcxLDE1IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
CiAgICAgICAgICAgICBjb250ZXh0LT5maWxsUmVjdChiYWNrZ3JvdW5kUmVjdCwgYmdDb2xvciwg
c3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBvcGVyYXRpb24pOwogICAgICAgICB9IGVsc2UgaWYgKHNo
b3VsZENsZWFyQmFja2dyb3VuZCkKICAgICAgICAgICAgIGNvbnRleHQtPmNsZWFyUmVjdChiYWNr
Z3JvdW5kUmVjdCk7CisKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0Fu
dGlhbGlhc2VkKTsKICAgICB9CiAKICAgICAvLyBubyBwcm9ncmVzc2l2ZSBsb2FkaW5nIG9mIHRo
ZSBiYWNrZ3JvdW5kIGltYWdlCiAgICAgaWYgKHNob3VsZFBhaW50QmFja2dyb3VuZEltYWdlKSB7
CisgICAgICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBjb250ZXh0LT5zaG91bGRBbnRpYWxpYXMo
KTsKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKGNvbnRleHQtPm5lZWRzQW50
aWFsaWFzaW5nKCkpOworCiAgICAgICAgIExheW91dFJlY3QgZGVzdFJlY3Q7CiAgICAgICAgIExh
eW91dFBvaW50IHBoYXNlOwogICAgICAgICBMYXlvdXRTaXplIHRpbGVTaXplOwpAQCAtNzc4LDYg
Kzc5NSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5k
ZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAgICAgICBib29sIHVzZUxv
d1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2Uu
Z2V0KCksIGJnTGF5ZXIsIHRpbGVTaXplKTsKICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdUaWxl
ZEltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGRlc3RSZWN0LCBwaGFz
ZSwgdGlsZVNpemUsIGNvbXBvc2l0ZU9wLCB1c2VMb3dRdWFsaXR5U2NhbGluZyk7CiAgICAgICAg
IH0KKworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFsaWFzZWQp
OwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101076</attachid>
            <date>2011-07-15 17:29:18 -0700</date>
            <delta_ts>2011-07-18 15:30:27 -0700</delta_ts>
            <desc>Proposed fix 0.4</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10020</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NDE5NmM5Li5hODMxMTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTQgIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0wNSAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgYnVpbGRib3QgbmVlZHMgdG8gdW5kZXJzdGFuZCB3
aGV0aGVyIE5SV1QgZXhpdGVkIGVhcmx5IGFmdGVyIGhhdmluZyB0b28gbWFueSBmYWlsdXJlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDJkYjg4YjguLjk4NDI3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAxMS0wNy0xNSAgRG1pdHJ5IEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAg
ICAgIFR1cm4gYW50aWFsaWFzaW5nIG9uIG9ubHkgZm9yIHJlY3RzIHdoaWNoIGFyZSBhcmUgcm90
YXRlZCBvciBub3Qgc2NhbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NDEyNgorCisgICAgICAgIFBpeGVsIGNyYWNrcyBhcHBlYXIgd2hlbiB3ZSBk
cmF3IHR3byBzY2FsZWQgb2JqZWN0cyBvZiB0aGUgc2FtZSBzaXplCisgICAgICAgIGJlY2F1c2Ug
b2YgdGhlIHdheSBhbnRpYWxpYXNpbmcgd29ya3MgaW4gQ29yZUdyYXBoaWNzLiBTbyB0byBkZWFs
IHdpdGggdGhvc2UKKyAgICAgICAgd2UgbmVlZCB0byB0dXJuIGFudGlhbGlhc2luZyBvZmYgaW4g
dGhlIGNhc2VzIHdoZW4gd2UgZG8gbm90IG5lZWQgaXQ6IHdoZW4KKyAgICAgICAgZmlsbGluZyBy
ZWN0cywgdXNpbmcgcmVjdCBjbGlwcGluZyBhbmQgZHJhd2luZyBpbWFnZXMgaWYgdGhvc2Ugb2Jq
ZWN0cyBhcmUgbm90IHJvdGF0ZWQuCisgICAgICAgIFNpbmNlIHRob3NlIGNyYWNrcyBkbyBub3Qg
YXBwZWFyIGF0IDEuMCBzY2FsaW5nIGZhY3Rvciwgd2UgYWx3YXlzIHR1cm4gQUEgb24gaW4gdGhp
cyBjYXNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6Om5l
ZWRzQW50aWFsaWFzaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorCiAyMDExLTA3LTA1
ICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XVtDaHJv
bWl1bV0gUmVtb3ZlIHVzZSBvZiBPd25IYW5kbGUgZnJvbSBWOExvY2FsQ29udGV4dApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRl
eCAwNjNmNzYyLi42ZDk2NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDAwLDYgKzQwMCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHNjYWxlKGNvbnN0IEZsb2F0U2l6ZSYpOwogICAgICAg
ICB2b2lkIHJvdGF0ZShmbG9hdCBhbmdsZUluUmFkaWFucyk7CisgICAgICAgIGJvb2wgbmVlZHNB
bnRpYWxpYXNpbmcoKTsKICAgICAgICAgdm9pZCB0cmFuc2xhdGUoY29uc3QgRmxvYXRTaXplJiBz
aXplKSB7IHRyYW5zbGF0ZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOyB9CiAgICAgICAg
IHZvaWQgdHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKaW5k
ZXggYTdjMmYxZC4uMzkwOGVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcApAQCAtNzE3LDYgKzcxNywx
MiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yUwogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGJvb2wgcmVzdG9yZUFudGlhbGlhc01vZGUgPSBmYWxz
ZTsKKyAgICBpZiAoc2hvdWxkQW50aWFsaWFzKCkpIHsKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hv
dWxkQW50aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCBmYWxzZSk7CisgICAgICAgIHJlc3RvcmVB
bnRpYWxpYXNNb2RlID0gdHJ1ZTsKKyAgICB9CisKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9
IHBsYXRmb3JtQ29udGV4dCgpOwogICAgIENvbG9yIG9sZEZpbGxDb2xvciA9IGZpbGxDb2xvcigp
OwogICAgIENvbG9yU3BhY2Ugb2xkQ29sb3JTcGFjZSA9IGZpbGxDb2xvclNwYWNlKCk7CkBAIC03
MzYsMTIgKzc0MiwxNSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yUwogICAgIH0KIAogICAgIENH
Q29udGV4dEZpbGxSZWN0KGNvbnRleHQsIHJlY3QpOwotICAgIAorCiAgICAgaWYgKGRyYXdPd25T
aGFkb3cpCiAgICAgICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiAKICAgICBp
ZiAob2xkRmlsbENvbG9yICE9IGNvbG9yIHx8IG9sZENvbG9yU3BhY2UgIT0gY29sb3JTcGFjZSkK
ICAgICAgICAgc2V0Q0dGaWxsQ29sb3IoY29udGV4dCwgb2xkRmlsbENvbG9yLCBvbGRDb2xvclNw
YWNlKTsKKworICAgIGlmIChyZXN0b3JlQW50aWFsaWFzTW9kZSkKKyAgICAgICAgQ0dDb250ZXh0
U2V0U2hvdWxkQW50aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCB0cnVlKTsKIH0KIAogdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmZpbGxSb3VuZGVkUmVjdChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25z
dCBJbnRTaXplJiB0b3BMZWZ0LCBjb25zdCBJbnRTaXplJiB0b3BSaWdodCwgY29uc3QgSW50U2l6
ZSYgYm90dG9tTGVmdCwgY29uc3QgSW50U2l6ZSYgYm90dG9tUmlnaHQsIGNvbnN0IENvbG9yJiBj
b2xvciwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQpAQCAtODM0LDggKzg0MywxOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCByZXN0b3JlQW50
aWFsaWFzTW9kZSA9IGZhbHNlOworICAgIGlmIChzaG91bGRBbnRpYWxpYXMoKSkgeworICAgICAg
ICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMocGxhdGZvcm1Db250ZXh0KCksIGZhbHNlKTsK
KyAgICAgICAgcmVzdG9yZUFudGlhbGlhc01vZGUgPSB0cnVlOworICAgIH0KKwogICAgIENHQ29u
dGV4dENsaXBUb1JlY3QocGxhdGZvcm1Db250ZXh0KCksIHJlY3QpOwogICAgIG1fZGF0YS0+Y2xp
cChyZWN0KTsKKworICAgIGlmIChyZXN0b3JlQW50aWFsaWFzTW9kZSkKKyAgICAgICAgQ0dDb250
ZXh0U2V0U2hvdWxkQW50aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCB0cnVlKTsKIH0KIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBPdXQoY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTExNDIs
NiArMTE2MSwyMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cm90YXRlKGZsb2F0IGFuZ2xlKQog
ICAgIG1fZGF0YS0+bV91c2VyVG9EZXZpY2VUcmFuc2Zvcm1Lbm93blRvQmVJZGVudGl0eSA9IGZh
bHNlOwogfQogCisvLyBXZSBoYXZlIHRvIHR1cm4gQUEgb2ZmIGluIHNvbWUgY2FzZXMgdG8gcHJl
dmVudCBwaXhlbHMgY3JhY2tzIGZyb20gYXBwZWFyaW5nLgorYm9vbCBHcmFwaGljc0NvbnRleHQ6
Om5lZWRzQW50aWFsaWFzaW5nKHZvaWQpCit7CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bSA9IGdl
dENUTSgpOworCisgICAgLy8gRW5hYmxlIEFBIGZvciBhbGwgb2JqZWN0cyB3aGljaCBhcmUgbm90
IHNjYWxlZC4KKyAgICBpZiAoY3RtLmlzSWRlbnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCkp
CisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gRW5hYmxlIEFBIGZvciBhbnkgcm90YXRl
ZCBvYmplY3RzLgorICAgIGlmIChjdG0uYSgpID09IC1jdG0uZCgpICYmIGN0bS5iKCkgPT0gY3Rt
LmMoKSAmJiAhY3RtLmIoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVl
OworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkp
CiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKaW5kZXggYjVkMThjOC4uOGNkYmY3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAg
LTE4NCw2ICsxODQsMTIgQEAgUmV0YWluUHRyPENGQXJyYXlSZWY+IEJpdG1hcEltYWdlOjpnZXRD
R0ltYWdlQXJyYXkoKQogCiB2b2lkIEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCog
Y3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3ApCiB7CisgICAgYm9vbCByZXN0b3JlQW50aWFsaWFzTW9kZSA9IGZhbHNlOworICAgIGlmIChj
dHh0LT5zaG91bGRBbnRpYWxpYXMoKSkgeworICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRp
YWxpYXMoY3R4dC0+cGxhdGZvcm1Db250ZXh0KCksIGZhbHNlKTsKKyAgICAgICAgcmVzdG9yZUFu
dGlhbGlhc01vZGUgPSB0cnVlOworICAgIH0KKwogICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAKICAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBmcmFtZUF0SW5kZXgobV9jdXJyZW50RnJh
bWUpOwpAQCAtMjY1LDYgKzI3MSw5IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3ND
b250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGCiAKICAgICBp
ZiAoaW1hZ2VPYnNlcnZlcigpKQogICAgICAgICBpbWFnZU9ic2VydmVyKCktPmRpZERyYXcodGhp
cyk7CisKKyAgICBpZiAocmVzdG9yZUFudGlhbGlhc01vZGUpCisgICAgICAgIENHQ29udGV4dFNl
dFNob3VsZEFudGlhbGlhcyhjdHh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiB9CiAKIHN0
YXRpYyB2b2lkIGRyYXdQYXR0ZXJuQ2FsbGJhY2sodm9pZCogaW5mbywgQ0dDb250ZXh0UmVmIGNv
bnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmNwcAppbmRleCA3MTEzZWE1Li5lZjAyYjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTYzMCwxMiArNjMwLDE2IEBA
IHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3Qg
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAgIGlmICghY29sb3JWaXNpYmxlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBjb250ZXh0
LT5zaG91bGRBbnRpYWxpYXMoKTsKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFz
KGNvbnRleHQtPm5lZWRzQW50aWFsaWFzaW5nKCkpOworCiAgICAgICAgIGlmIChoYXNSb3VuZGVk
Qm9yZGVyICYmIGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5j
eUxheWVyKSB7CiAgICAgICAgICAgICBSb3VuZGVkSW50UmVjdCBib3JkZXIgPSBnZXRCYWNrZ3Jv
dW5kUm91bmRlZFJlY3QoYmFja2dyb3VuZFJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNv
bnRleHQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlKSwgYm94LCBib3hTaXplLndpZHRoKCksIGJveFNp
emUuaGVpZ2h0KCksIGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVkZVJpZ2h0RWRnZSk7CiAgICAgICAg
ICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoYm9yZGVyLCBiZ0NvbG9yLCBzdHlsZSgpLT5j
b2xvclNwYWNlKCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxS
ZWN0KHJlY3QsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7Ci0gICAgICAgIAorCisg
ICAgICAgIGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh3YXNBbnRpYWxpYXNlZCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY1NCw5ICs2NTgsMTQgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50
SW5mbywgY28KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIGNsaXBXaXRoU2Nyb2xsaW5n
U3RhdGVTYXZlcigqY29udGV4dCwgY2xpcHBlZFdpdGhMb2NhbFNjcm9sbGluZyk7CiAgICAgTGF5
b3V0UmVjdCBzY3JvbGxlZFBhaW50UmVjdCA9IHJlY3Q7CiAgICAgaWYgKGNsaXBwZWRXaXRoTG9j
YWxTY3JvbGxpbmcpIHsKKyAgICAgICAgYm9vbCB3YXNBbnRpYWxpYXNlZCA9IGNvbnRleHQtPnNo
b3VsZEFudGlhbGlhcygpOworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoY29u
dGV4dC0+bmVlZHNBbnRpYWxpYXNpbmcoKSk7CisKICAgICAgICAgLy8gQ2xpcCB0byB0aGUgb3Zl
cmZsb3cgYXJlYS4KICAgICAgICAgY29udGV4dC0+Y2xpcCh0b1JlbmRlckJveCh0aGlzKS0+b3Zl
cmZsb3dDbGlwUmVjdChyZWN0LmxvY2F0aW9uKCkpKTsKLSAgICAgICAgCisKKyAgICAgICAgY29u
dGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0FudGlhbGlhc2VkKTsKKwogICAgICAgICAvLyBB
ZGp1c3QgdGhlIHBhaW50IHJlY3QgdG8gcmVmbGVjdCBhIHNjcm9sbGVkIGNvbnRlbnQgYm94IHdp
dGggYm9yZGVycyBhdCB0aGUgZW5kcy4KICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXll
cigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAgc2Nyb2xsZWRQYWludFJlY3Qu
bW92ZSgtb2Zmc2V0KTsKQEAgLTczOCw2ICs3NDcsOSBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
bwogCiAgICAgLy8gUGFpbnQgdGhlIGNvbG9yIGZpcnN0IHVuZGVybmVhdGggYWxsIGltYWdlcy4K
ICAgICBpZiAoIWJnTGF5ZXItPm5leHQoKSkgeworICAgICAgICBib29sIHdhc0FudGlhbGlhc2Vk
ID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAgIGNvbnRleHQtPnNldFNob3Vs
ZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsKKwogICAgICAgICBMYXlv
dXRSZWN0IGJhY2tncm91bmRSZWN0KHNjcm9sbGVkUGFpbnRSZWN0KTsKICAgICAgICAgYmFja2dy
b3VuZFJlY3QuaW50ZXJzZWN0KHBhaW50SW5mby5yZWN0KTsKICAgICAgICAgLy8gSWYgd2UgaGF2
ZSBhbiBhbHBoYSBhbmQgd2UgYXJlIHBhaW50aW5nIHRoZSByb290IGVsZW1lbnQsIGdvIGFoZWFk
IGFuZCBibGVuZCB3aXRoIHRoZSBiYXNlIGJhY2tncm91bmQgY29sb3IuCkBAIC03NTksMTAgKzc3
MSwxNSBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVk
KGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgICAgICAgICAgY29udGV4dC0+Zmls
bFJlY3QoYmFja2dyb3VuZFJlY3QsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgb3Bl
cmF0aW9uKTsKICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRDbGVhckJhY2tncm91bmQpCiAgICAg
ICAgICAgICBjb250ZXh0LT5jbGVhclJlY3QoYmFja2dyb3VuZFJlY3QpOworCisgICAgICAgIGNv
bnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh3YXNBbnRpYWxpYXNlZCk7CiAgICAgfQogCiAgICAg
Ly8gbm8gcHJvZ3Jlc3NpdmUgbG9hZGluZyBvZiB0aGUgYmFja2dyb3VuZCBpbWFnZQogICAgIGlm
IChzaG91bGRQYWludEJhY2tncm91bmRJbWFnZSkgeworICAgICAgICBib29sIHdhc0FudGlhbGlh
c2VkID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAgIGNvbnRleHQtPnNldFNo
b3VsZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsKKwogICAgICAgICBM
YXlvdXRSZWN0IGRlc3RSZWN0OwogICAgICAgICBMYXlvdXRQb2ludCBwaGFzZTsKICAgICAgICAg
TGF5b3V0U2l6ZSB0aWxlU2l6ZTsKQEAgLTc3OCw2ICs3OTUsOCBAQCB2b2lkIFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjbwogICAgICAgICAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBh
aW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLmdldCgpLCBiZ0xheWVyLCB0aWxlU2l6ZSk7
CiAgICAgICAgICAgICBjb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUo
KS0+Y29sb3JTcGFjZSgpLCBkZXN0UmVjdCwgcGhhc2UsIHRpbGVTaXplLCBjb21wb3NpdGVPcCwg
dXNlTG93UXVhbGl0eVNjYWxpbmcpOwogICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC0+c2V0
U2hvdWxkQW50aWFsaWFzKHdhc0FudGlhbGlhc2VkKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101221</attachid>
            <date>2011-07-18 15:30:27 -0700</date>
            <delta_ts>2011-07-18 16:54:46 -0700</delta_ts>
            <desc>Proposed fix 0.5</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>13022</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OGVlZWUwLi4yODRiNTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTggIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBiYXNlbGluZS4gIHJidWlzIHNheXMg
dGhpcyBpcyBhbiBpbXByb3ZlbWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFja3MtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBp
eGVsLWNyYWNrcy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcyYTQzMGQ4MDRlODMwOGUxYmQ5
OTk5MTM5ZTczNzAxNmQyZWYzMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTA1NjQKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1Rnhl
T01qCnojd249PTJCdjFfRFRZUmROdlZrak4jO3FaJCpFPiRpS1ohTGhSRiUkfDk9QmJrO2A7OzQp
QW4jUnRQQXtQc198bgp6V25pZGFZej9gZWVLfG5uLT51WlM4eTxGQnIzLVN9V2xZUlYyYCtKLXZu
QE0oKlYoOTdYNEA0I1ctclQpblJRSSUKelpRVGE7bzg5P1ZONlNDNSt4PXdjeCFJZ3dKJkVfMk5h
QncqOVpFam1sczM8c1pRYHBRJSlJbWE/KXlMQVMqa3lPCno2MVUpSVZibzwyZVNWUzlWRT8wc3t2
M0hDYXttKSFvUSQqZnBBNnNiSFpkPFhjTClCPG49MFJMez4mJExFVGBtTQp6e3s3WWVsQ1JGMSR8
THdlTXElRisoPDRkYEJOdEBHVHF6TkxhSU4kR1R0bX1DWE1LdHptYX1sbXIoNUpGSCRMcD8KelJp
MmgrVihLdTleQVAoe0NvQXRBNGkrO3FBQUlKJGFqc0cxaU1yYSNOcVhIanQ2aFdpcFFnQk87YCNQ
THpQUn5RCnp7RHVgJVVkfj9vVCViMzFtWmFhc255ITJEbWJDPnYmbHMqQXcyem5BPiRxY1hMND9g
ayNpbiZtWEkwaC1zX2xMTAp6dHxXOEQrdGdYcEJRPUZvV21OVmdneyg4cSQkWkFtKyZTeW48K29u
fkNUKkIrdmZzb3deN0dAajBhSUNDOHlAfW8KeiZELXRFdUQjYzlQbl52RCp3aypoPUN5aTxlfHhg
d0UkVnQmSXFBZGVFcG9rQXplRz42M2NHIyMkPVBNZmhtVnY4CnorQjE3TkhUQjcpWGdyd2MjRklF
SGBOKm10SzRPd2VVUH5Aem1We0pwdmJiaWdGP3JmczhUWDJsQHE5YnQjSil5dgp6K1ZTbmQ/fEZB
c3VsTVp7WjlUZXVAcn1UQFROX3tRKzlXKG55MXExVj5FZ1ZIPH55SXhtZDsoeCVATyNvPiorPzEK
enhZU2VyT0BZQC0mN01zTnA4bHRsYEBHU1ZjZEJKVjVqP3hyZTJEdkBtQlohVkR0PjdDe3dwV1ct
Q0hZb3h9aXxWCnpadVB3MnYmWWAzVWg9djBJJVVXSHVDR3FWQnp7Z1hiZEgrNFBzTWptbSp1Qmgw
bz58cjx4UWBqSiZNdTQmT1VHVgp6bmI/UUZjNTx4TURebCh8Qj52VTRNKUFXdzw5JkFWK3coZ1Rt
KjN1WklweV9ZIT5ISDBGSGhYSFhrKm9ze0BkIWAKeloyTUxUT0sjZUBaKTA1O2h4VjM1JHlye1RP
Wip2X1JkZkJPZWBjTmhVYSpDYHJlbUZNWGFETT9AQ3A5ZlQ9X0czCno7LT5SPnVKXmQ5eDUydnFF
JVViRVlxOEhWPEJLZ25ZWmJoZHsoSmJmb19RIStvYUJMdiNkX2lrajd5KHpabTVhVgp6Y2BiVGQt
ZSV0UmhLYmc8bGhAa2pDaHFGQzN0TjQ9TEAhIzdhWDBfIXRNa3ZWeF9iQmRsWH51byNlZGpWRHN4
PnMKenZAcVU/ZmtBPTYpNVM1UWc3Tk0zamwydkJKUz5JQHxLfkMlYiohR2w4bkB9dm9xNlNfMXI7
MGA3I052WUkwT19OCno2YSp7fHdzQXQoNVd5Tm8jeiVyNkRYNXdnRUchO3d4ZzlWS0t2Qmo9PzQk
Q2Q7V0xeKHo8RnBpZX5ndzdxdmhqaAp6e1Eje3tOOSlKWV9RN2NUWHRhR2UrQ0NnQEFDOSZVZnFs
JTtfVkgtQGMoaT55K0NDbV9BQTwrbk0qOWIme2UjaXwKeiFEIzxydzB8KCNLTiMmRmpQPyZrYCR3
Ym1pPSo/YXF3fnd1bz9wSz5VcnZYQ2ZwcjBCRXg+NDdXMztVPytTVjl0CmpZbUJ4djIzdVJCa141
eWgkQ35zcjZDe0FrQXtqaGd7YW5eTEJ7VHM1LSZnJXMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlh
bGlhc2luZy1waXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlNDNiNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2lu
Zy1waXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxp
YXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlh
bGlhc2luZy1waXhlbC1jcmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40ZmFjYmNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWJLaXQgYnVnIDY0MTI2OiBC
YWNrZ3JvdW5kIGxlYWtzIGZvciB0d28gbmVzdGVkIGRpdnM8L3RpdGxlPgorPC9oZWFkPgorCis8
Ym9keSBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMjQpOyBtYXJnaW46IDEwMHB4
OyI+CisgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogIzAwMDAwMDsgbWFyZ2luOjEwMHB4OyBv
dmVyZmxvdzogaGlkZGVuIj4KKyAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjoj
ZmZmZmZmIj4KKyAgICAgICAgICAgIDwhLS0gVGhlcmUgc2hvdWxkIG5vdCBiZSBhIGJvcmRlciAt
LT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDI1YWY0NGMuLmM2Y2EwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAxMS0wNy0xOCAgRG1pdHJ5IEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisg
ICAgICAgIFR1cm4gYW50aWFsaWFzaW5nIG9uIG9ubHkgZm9yIHJlY3RzIHdoaWNoIGFyZSBhcmUg
cm90YXRlZCBvciBub3Qgc2NhbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDEyNgorCisgICAgICAgIFBpeGVsIGNyYWNrcyBhcHBlYXIgd2hlbiB3
ZSBkcmF3IHR3byBzY2FsZWQgb2JqZWN0cyBvZiB0aGUgc2FtZSBzaXplCisgICAgICAgIGJlY2F1
c2Ugb2YgdGhlIHdheSBhbnRpYWxpYXNpbmcgd29ya3MgaW4gQ29yZUdyYXBoaWNzLiBTbyB0byBk
ZWFsIHdpdGggdGhvc2UKKyAgICAgICAgd2UgbmVlZCB0byB0dXJuIGFudGlhbGlhc2luZyBvZmYg
aW4gdGhlIGNhc2VzIHdoZW4gd2UgZG8gbm90IG5lZWQgaXQ6IHdoZW4KKyAgICAgICAgZmlsbGlu
ZyByZWN0cywgdXNpbmcgcmVjdCBjbGlwcGluZyBhbmQgZHJhd2luZyBpbWFnZXMgaWYgdGhvc2Ug
b2JqZWN0cyBhcmUgbm90IHJvdGF0ZWQuCisgICAgICAgIFNpbmNlIHRob3NlIGNyYWNrcyBkbyBu
b3QgYXBwZWFyIGF0IDEuMCBzY2FsaW5nIGZhY3Rvciwgd2UgYWx3YXlzIHR1cm4gQUEgb24gaW4g
dGhpcyBjYXNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
Om5lZWRzQW50aWFsaWFzaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorCiAyMDExLTA3
LTE4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY2lmeSBh
IGNhc2NhZGUgbGlzdCBjb25zaXN0aW5nIG9mIHRoZSBsYXN0IHJlc29ydCBmb250IGZvciBDb3Jl
IFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKaW5kZXggODk5YzY1MC4uYjI1ZjZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQwMiw2ICs0MDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzY2FsZShjb25zdCBGbG9hdFNp
emUmKTsKICAgICAgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpOworICAgICAg
ICBib29sIG5lZWRzQW50aWFsaWFzaW5nKCk7CiAgICAgICAgIHZvaWQgdHJhbnNsYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSkgeyB0cmFuc2xhdGUoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgp
KTsgfQogICAgICAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwCmluZGV4IDdjNzA5NmYuLjUwMzJhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAg
LTcxNyw2ICs3MTcsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBib29sIHJlc3RvcmVBbnRpYWxp
YXNNb2RlID0gZmFsc2U7CisgICAgaWYgKHNob3VsZEFudGlhbGlhcygpKSB7CisgICAgICAgIENH
Q29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgZmFsc2UpOworICAg
ICAgICByZXN0b3JlQW50aWFsaWFzTW9kZSA9IHRydWU7CisgICAgfQorCiAgICAgQ0dDb250ZXh0
UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDb2xvciBvbGRGaWxsQ29sb3Ig
PSBmaWxsQ29sb3IoKTsKICAgICBDb2xvclNwYWNlIG9sZENvbG9yU3BhY2UgPSBmaWxsQ29sb3JT
cGFjZSgpOwpAQCAtNzM2LDEyICs3NDIsMTUgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclMKICAg
ICB9CiAKICAgICBDR0NvbnRleHRGaWxsUmVjdChjb250ZXh0LCByZWN0KTsKLSAgICAKKwogICAg
IGlmIChkcmF3T3duU2hhZG93KQogICAgICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRl
eHQpOwogCiAgICAgaWYgKG9sZEZpbGxDb2xvciAhPSBjb2xvciB8fCBvbGRDb2xvclNwYWNlICE9
IGNvbG9yU3BhY2UpCiAgICAgICAgIHNldENHRmlsbENvbG9yKGNvbnRleHQsIG9sZEZpbGxDb2xv
ciwgb2xkQ29sb3JTcGFjZSk7CisKKyAgICBpZiAocmVzdG9yZUFudGlhbGlhc01vZGUpCisgICAg
ICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7
CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91bmRlZFJlY3QoY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29uc3QgSW50U2l6ZSYgdG9wUmlnaHQs
IGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IEludFNpemUmIGJvdHRvbVJpZ2h0LCBj
b25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKQEAgLTgzNCw4ICs4NDMs
MTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAgICAgIHJldHVybjsKKworICAgIGJv
b2wgcmVzdG9yZUFudGlhbGlhc01vZGUgPSBmYWxzZTsKKyAgICBpZiAoc2hvdWxkQW50aWFsaWFz
KCkpIHsKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKHBsYXRmb3JtQ29udGV4
dCgpLCBmYWxzZSk7CisgICAgICAgIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gdHJ1ZTsKKyAgICB9
CisKICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KHBsYXRmb3JtQ29udGV4dCgpLCByZWN0KTsKICAg
ICBtX2RhdGEtPmNsaXAocmVjdCk7CisKKyAgICBpZiAocmVzdG9yZUFudGlhbGlhc01vZGUpCisg
ICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgdHJ1
ZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwT3V0KGNvbnN0IEludFJlY3QmIHJl
Y3QpCkBAIC0xMTQyLDYgKzExNjEsMjEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJvdGF0ZShm
bG9hdCBhbmdsZSkKICAgICBtX2RhdGEtPm1fdXNlclRvRGV2aWNlVHJhbnNmb3JtS25vd25Ub0Jl
SWRlbnRpdHkgPSBmYWxzZTsKIH0KIAorLy8gV2UgaGF2ZSB0byB0dXJuIEFBIG9mZiBpbiBzb21l
IGNhc2VzIHRvIHByZXZlbnQgcGl4ZWxzIGNyYWNrcyBmcm9tIGFwcGVhcmluZy4KK2Jvb2wgR3Jh
cGhpY3NDb250ZXh0OjpuZWVkc0FudGlhbGlhc2luZyh2b2lkKQoreworICAgIEFmZmluZVRyYW5z
Zm9ybSBjdG0gPSBnZXRDVE0oKTsKKworICAgIC8vIEVuYWJsZSBBQSBmb3IgYWxsIG9iamVjdHMg
d2hpY2ggYXJlIG5vdCBzY2FsZWQuCisgICAgaWYgKGN0bS5pc0lkZW50aXR5T3JUcmFuc2xhdGlv
bk9yRmxpcHBlZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIEVuYWJsZSBBQSBm
b3IgYW55IHJvdGF0ZWQgb2JqZWN0cy4KKyAgICBpZiAoY3RtLmEoKSA9PSAtY3RtLmQoKSAmJiBj
dG0uYigpID09IGN0bS5jKCkgJiYgIWN0bS5iKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnRyYW5zbGF0ZShmbG9h
dCB4LCBmbG9hdCB5KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQ0cuY3BwCmluZGV4IGI1ZDE4Yzgu
LjhjZGJmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0ltYWdlQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQ0cuY3BwCkBAIC0xODQsNiArMTg0LDEyIEBAIFJldGFpblB0cjxDRkFycmF5UmVmPiBCaXRt
YXBJbWFnZTo6Z2V0Q0dJbWFnZUFycmF5KCkKIAogdm9pZCBCaXRtYXBJbWFnZTo6ZHJhdyhHcmFw
aGljc0NvbnRleHQqIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29sb3JTcGFjZSBzdHlsZUNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJh
dG9yIGNvbXBvc2l0ZU9wKQogeworICAgIGJvb2wgcmVzdG9yZUFudGlhbGlhc01vZGUgPSBmYWxz
ZTsKKyAgICBpZiAoY3R4dC0+c2hvdWxkQW50aWFsaWFzKCkpIHsKKyAgICAgICAgQ0dDb250ZXh0
U2V0U2hvdWxkQW50aWFsaWFzKGN0eHQtPnBsYXRmb3JtQ29udGV4dCgpLCBmYWxzZSk7CisgICAg
ICAgIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gdHJ1ZTsKKyAgICB9CisKICAgICBzdGFydEFuaW1h
dGlvbigpOwogCiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlID0gZnJhbWVBdEluZGV4
KG1fY3VycmVudEZyYW1lKTsKQEAgLTI2NSw2ICsyNzEsOSBAQCB2b2lkIEJpdG1hcEltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRgogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNlcnZlcigp
LT5kaWREcmF3KHRoaXMpOworCisgICAgaWYgKHJlc3RvcmVBbnRpYWxpYXNNb2RlKQorICAgICAg
ICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMoY3R4dC0+cGxhdGZvcm1Db250ZXh0KCksIHRy
dWUpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3UGF0dGVybkNhbGxiYWNrKHZvaWQqIGluZm8sIENH
Q29udGV4dFJlZiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYTJhZjAxNy4uZWMxYzc4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC02MzAs
MTIgKzYzMCwxNiBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4
dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgICAgICBpZiAoIWNvbG9y
VmlzaWJsZSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBib29sIHdhc0FudGlhbGlh
c2VkID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAgIGNvbnRleHQtPnNldFNo
b3VsZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsKKwogICAgICAgICBp
ZiAoaGFzUm91bmRlZEJvcmRlciAmJiBibGVlZEF2b2lkYW5jZSAhPSBCYWNrZ3JvdW5kQmxlZWRV
c2VUcmFuc3BhcmVuY3lMYXllcikgewogICAgICAgICAgICAgUm91bmRlZFJlY3QgYm9yZGVyID0g
Z2V0QmFja2dyb3VuZFJvdW5kZWRSZWN0KGJhY2tncm91bmRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2
b2lkYW5jZShjb250ZXh0LCByZWN0LCBibGVlZEF2b2lkYW5jZSksIGJveCwgYm94U2l6ZS53aWR0
aCgpLCBib3hTaXplLmhlaWdodCgpLCBpbmNsdWRlTGVmdEVkZ2UsIGluY2x1ZGVSaWdodEVkZ2Up
OwogICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGJvcmRlciwgYmdDb2xvciwg
c3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb250
ZXh0LT5maWxsUmVjdChyZWN0LCBiZ0NvbG9yLCBzdHlsZSgpLT5jb2xvclNwYWNlKCkpOwotICAg
ICAgICAKKworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFsaWFz
ZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02NTQsOSArNjU4LDE0IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBjbGlwV2l0
aFNjcm9sbGluZ1N0YXRlU2F2ZXIoKmNvbnRleHQsIGNsaXBwZWRXaXRoTG9jYWxTY3JvbGxpbmcp
OwogICAgIExheW91dFJlY3Qgc2Nyb2xsZWRQYWludFJlY3QgPSByZWN0OwogICAgIGlmIChjbGlw
cGVkV2l0aExvY2FsU2Nyb2xsaW5nKSB7CisgICAgICAgIGJvb2wgd2FzQW50aWFsaWFzZWQgPSBj
b250ZXh0LT5zaG91bGRBbnRpYWxpYXMoKTsKKyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50
aWFsaWFzKGNvbnRleHQtPm5lZWRzQW50aWFsaWFzaW5nKCkpOworCiAgICAgICAgIC8vIENsaXAg
dG8gdGhlIG92ZXJmbG93IGFyZWEuCiAgICAgICAgIGNvbnRleHQtPmNsaXAodG9SZW5kZXJCb3go
dGhpcyktPm92ZXJmbG93Q2xpcFJlY3QocmVjdC5sb2NhdGlvbigpKSk7Ci0gICAgICAgIAorCisg
ICAgICAgIGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh3YXNBbnRpYWxpYXNlZCk7CisKICAg
ICAgICAgLy8gQWRqdXN0IHRoZSBwYWludCByZWN0IHRvIHJlZmxlY3QgYSBzY3JvbGxlZCBjb250
ZW50IGJveCB3aXRoIGJvcmRlcnMgYXQgdGhlIGVuZHMuCiAgICAgICAgIExheW91dFNpemUgb2Zm
c2V0ID0gbGF5ZXIoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgICAgIHNjcm9sbGVk
UGFpbnRSZWN0Lm1vdmUoLW9mZnNldCk7CkBAIC03MzgsNiArNzQ3LDkgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY28KIAogICAgIC8vIFBhaW50IHRoZSBjb2xvciBmaXJzdCB1bmRlcm5lYXRoIGFs
bCBpbWFnZXMuCiAgICAgaWYgKCFiZ0xheWVyLT5uZXh0KCkpIHsKKyAgICAgICAgYm9vbCB3YXNB
bnRpYWxpYXNlZCA9IGNvbnRleHQtPnNob3VsZEFudGlhbGlhcygpOworICAgICAgICBjb250ZXh0
LT5zZXRTaG91bGRBbnRpYWxpYXMoY29udGV4dC0+bmVlZHNBbnRpYWxpYXNpbmcoKSk7CisKICAg
ICAgICAgTGF5b3V0UmVjdCBiYWNrZ3JvdW5kUmVjdChzY3JvbGxlZFBhaW50UmVjdCk7CiAgICAg
ICAgIGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludEluZm8ucmVjdCk7CiAgICAgICAgIC8v
IElmIHdlIGhhdmUgYW4gYWxwaGEgYW5kIHdlIGFyZSBwYWludGluZyB0aGUgcm9vdCBlbGVtZW50
LCBnbyBhaGVhZCBhbmQgYmxlbmQgd2l0aCB0aGUgYmFzZSBiYWNrZ3JvdW5kIGNvbG9yLgpAQCAt
NzU5LDEwICs3NzEsMTUgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5
ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAgICAgICAgIGNv
bnRleHQtPmZpbGxSZWN0KGJhY2tncm91bmRSZWN0LCBiZ0NvbG9yLCBzdHlsZSgpLT5jb2xvclNw
YWNlKCksIG9wZXJhdGlvbik7CiAgICAgICAgIH0gZWxzZSBpZiAoc2hvdWxkQ2xlYXJCYWNrZ3Jv
dW5kKQogICAgICAgICAgICAgY29udGV4dC0+Y2xlYXJSZWN0KGJhY2tncm91bmRSZWN0KTsKKwor
ICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2FzQW50aWFsaWFzZWQpOwogICAg
IH0KIAogICAgIC8vIG5vIHByb2dyZXNzaXZlIGxvYWRpbmcgb2YgdGhlIGJhY2tncm91bmQgaW1h
Z2UKICAgICBpZiAoc2hvdWxkUGFpbnRCYWNrZ3JvdW5kSW1hZ2UpIHsKKyAgICAgICAgYm9vbCB3
YXNBbnRpYWxpYXNlZCA9IGNvbnRleHQtPnNob3VsZEFudGlhbGlhcygpOworICAgICAgICBjb250
ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMoY29udGV4dC0+bmVlZHNBbnRpYWxpYXNpbmcoKSk7CisK
ICAgICAgICAgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkgZ2VvbWV0cnk7CiAgICAgICAgIGNhbGN1
bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5KGJnTGF5ZXIsIHNjcm9sbGVkUGFpbnRSZWN0LCBn
ZW9tZXRyeSk7CiAgICAgICAgIGdlb21ldHJ5LmNsaXAocGFpbnRJbmZvLnJlY3QpOwpAQCAtNzc0
LDYgKzc5MSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0
ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAgICAgICBjb250ZXh0
LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBnZW9t
ZXRyeS5kZXN0UmVjdCgpLCBnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCksIGdlb21ldHJ5LnRpbGVT
aXplKCksIAogICAgICAgICAgICAgICAgIGNvbXBvc2l0ZU9wLCB1c2VMb3dRdWFsaXR5U2NhbGlu
Zyk7CiAgICAgICAgIH0KKworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRpYWxpYXMod2Fz
QW50aWFsaWFzZWQpOwogICAgIH0KIH0KIAo=
</data>
<flag name="commit-queue"
          id="96073"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101237</attachid>
            <date>2011-07-18 16:54:46 -0700</date>
            <delta_ts>2011-08-15 14:53:27 -0700</delta_ts>
            <desc>Proposed fix 0.6</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>15532</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OGVlZWUwLi4yODRiNTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTggIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBiYXNlbGluZS4gIHJidWlzIHNheXMg
dGhpcyBpcyBhbiBpbXByb3ZlbWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFja3MtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBp
eGVsLWNyYWNrcy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcyYTQzMGQ4MDRlODMwOGUxYmQ5
OTk5MTM5ZTczNzAxNmQyZWYzMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTA1NjQKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1Rnhl
T01qCnojd249PTJCdjFfRFRZUmROdlZrak4jO3FaJCpFPiRpS1ohTGhSRiUkfDk9QmJrO2A7OzQp
QW4jUnRQQXtQc198bgp6V25pZGFZej9gZWVLfG5uLT51WlM4eTxGQnIzLVN9V2xZUlYyYCtKLXZu
QE0oKlYoOTdYNEA0I1ctclQpblJRSSUKelpRVGE7bzg5P1ZONlNDNSt4PXdjeCFJZ3dKJkVfMk5h
QncqOVpFam1sczM8c1pRYHBRJSlJbWE/KXlMQVMqa3lPCno2MVUpSVZibzwyZVNWUzlWRT8wc3t2
M0hDYXttKSFvUSQqZnBBNnNiSFpkPFhjTClCPG49MFJMez4mJExFVGBtTQp6e3s3WWVsQ1JGMSR8
THdlTXElRisoPDRkYEJOdEBHVHF6TkxhSU4kR1R0bX1DWE1LdHptYX1sbXIoNUpGSCRMcD8KelJp
MmgrVihLdTleQVAoe0NvQXRBNGkrO3FBQUlKJGFqc0cxaU1yYSNOcVhIanQ2aFdpcFFnQk87YCNQ
THpQUn5RCnp7RHVgJVVkfj9vVCViMzFtWmFhc255ITJEbWJDPnYmbHMqQXcyem5BPiRxY1hMND9g
ayNpbiZtWEkwaC1zX2xMTAp6dHxXOEQrdGdYcEJRPUZvV21OVmdneyg4cSQkWkFtKyZTeW48K29u
fkNUKkIrdmZzb3deN0dAajBhSUNDOHlAfW8KeiZELXRFdUQjYzlQbl52RCp3aypoPUN5aTxlfHhg
d0UkVnQmSXFBZGVFcG9rQXplRz42M2NHIyMkPVBNZmhtVnY4CnorQjE3TkhUQjcpWGdyd2MjRklF
SGBOKm10SzRPd2VVUH5Aem1We0pwdmJiaWdGP3JmczhUWDJsQHE5YnQjSil5dgp6K1ZTbmQ/fEZB
c3VsTVp7WjlUZXVAcn1UQFROX3tRKzlXKG55MXExVj5FZ1ZIPH55SXhtZDsoeCVATyNvPiorPzEK
enhZU2VyT0BZQC0mN01zTnA4bHRsYEBHU1ZjZEJKVjVqP3hyZTJEdkBtQlohVkR0PjdDe3dwV1ct
Q0hZb3h9aXxWCnpadVB3MnYmWWAzVWg9djBJJVVXSHVDR3FWQnp7Z1hiZEgrNFBzTWptbSp1Qmgw
bz58cjx4UWBqSiZNdTQmT1VHVgp6bmI/UUZjNTx4TURebCh8Qj52VTRNKUFXdzw5JkFWK3coZ1Rt
KjN1WklweV9ZIT5ISDBGSGhYSFhrKm9ze0BkIWAKeloyTUxUT0sjZUBaKTA1O2h4VjM1JHlye1RP
Wip2X1JkZkJPZWBjTmhVYSpDYHJlbUZNWGFETT9AQ3A5ZlQ9X0czCno7LT5SPnVKXmQ5eDUydnFF
JVViRVlxOEhWPEJLZ25ZWmJoZHsoSmJmb19RIStvYUJMdiNkX2lrajd5KHpabTVhVgp6Y2BiVGQt
ZSV0UmhLYmc8bGhAa2pDaHFGQzN0TjQ9TEAhIzdhWDBfIXRNa3ZWeF9iQmRsWH51byNlZGpWRHN4
PnMKenZAcVU/ZmtBPTYpNVM1UWc3Tk0zamwydkJKUz5JQHxLfkMlYiohR2w4bkB9dm9xNlNfMXI7
MGA3I052WUkwT19OCno2YSp7fHdzQXQoNVd5Tm8jeiVyNkRYNXdnRUchO3d4ZzlWS0t2Qmo9PzQk
Q2Q7V0xeKHo8RnBpZX5ndzdxdmhqaAp6e1Eje3tOOSlKWV9RN2NUWHRhR2UrQ0NnQEFDOSZVZnFs
JTtfVkgtQGMoaT55K0NDbV9BQTwrbk0qOWIme2UjaXwKeiFEIzxydzB8KCNLTiMmRmpQPyZrYCR3
Ym1pPSo/YXF3fnd1bz9wSz5VcnZYQ2ZwcjBCRXg+NDdXMztVPytTVjl0CmpZbUJ4djIzdVJCa141
eWgkQ35zcjZDe0FrQXtqaGd7YW5eTEJ7VHM1LSZnJXMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlh
bGlhc2luZy1waXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlNDNiNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2lu
Zy1waXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxp
YXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlh
bGlhc2luZy1waXhlbC1jcmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40ZmFjYmNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWJLaXQgYnVnIDY0MTI2OiBC
YWNrZ3JvdW5kIGxlYWtzIGZvciB0d28gbmVzdGVkIGRpdnM8L3RpdGxlPgorPC9oZWFkPgorCis8
Ym9keSBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMjQpOyBtYXJnaW46IDEwMHB4
OyI+CisgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogIzAwMDAwMDsgbWFyZ2luOjEwMHB4OyBv
dmVyZmxvdzogaGlkZGVuIj4KKyAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjoj
ZmZmZmZmIj4KKyAgICAgICAgICAgIDwhLS0gVGhlcmUgc2hvdWxkIG5vdCBiZSBhIGJvcmRlciAt
LT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDI1YWY0NGMuLmM2Y2EwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAxMS0wNy0xOCAgRG1pdHJ5IEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisg
ICAgICAgIFR1cm4gYW50aWFsaWFzaW5nIG9uIG9ubHkgZm9yIHJlY3RzIHdoaWNoIGFyZSBhcmUg
cm90YXRlZCBvciBub3Qgc2NhbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDEyNgorCisgICAgICAgIFBpeGVsIGNyYWNrcyBhcHBlYXIgd2hlbiB3
ZSBkcmF3IHR3byBzY2FsZWQgb2JqZWN0cyBvZiB0aGUgc2FtZSBzaXplCisgICAgICAgIGJlY2F1
c2Ugb2YgdGhlIHdheSBhbnRpYWxpYXNpbmcgd29ya3MgaW4gQ29yZUdyYXBoaWNzLiBTbyB0byBk
ZWFsIHdpdGggdGhvc2UKKyAgICAgICAgd2UgbmVlZCB0byB0dXJuIGFudGlhbGlhc2luZyBvZmYg
aW4gdGhlIGNhc2VzIHdoZW4gd2UgZG8gbm90IG5lZWQgaXQ6IHdoZW4KKyAgICAgICAgZmlsbGlu
ZyByZWN0cywgdXNpbmcgcmVjdCBjbGlwcGluZyBhbmQgZHJhd2luZyBpbWFnZXMgaWYgdGhvc2Ug
b2JqZWN0cyBhcmUgbm90IHJvdGF0ZWQuCisgICAgICAgIFNpbmNlIHRob3NlIGNyYWNrcyBkbyBu
b3QgYXBwZWFyIGF0IDEuMCBzY2FsaW5nIGZhY3Rvciwgd2UgYWx3YXlzIHR1cm4gQUEgb24gaW4g
dGhpcyBjYXNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
Om5lZWRzQW50aWFsaWFzaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorCiAyMDExLTA3
LTE4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY2lmeSBh
IGNhc2NhZGUgbGlzdCBjb25zaXN0aW5nIG9mIHRoZSBsYXN0IHJlc29ydCBmb250IGZvciBDb3Jl
IFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKaW5kZXggODk5YzY1MC4uYjI1ZjZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQwMiw2ICs0MDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzY2FsZShjb25zdCBGbG9hdFNp
emUmKTsKICAgICAgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpOworICAgICAg
ICBib29sIG5lZWRzQW50aWFsaWFzaW5nKCk7CiAgICAgICAgIHZvaWQgdHJhbnNsYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSkgeyB0cmFuc2xhdGUoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgp
KTsgfQogICAgICAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGZhNWM0MzguLjU1ODU3YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTEwMzksNiArMTAzOSwxMiBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgIG1fZGF0YS0+c2NhbGUo
c2l6ZSk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpuZWVkc0FudGlhbGlhc2luZygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmNsaXBPdXQoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDdjNzA5NmYuLjYwNTNlNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAKQEAgLTcxNyw2ICs3MTcsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBD
b2xvclMKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gZmFsc2U7CisgICAgaWYgKHNob3VsZEFudGlh
bGlhcygpKSB7CisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNv
bnRleHQoKSwgZmFsc2UpOworICAgICAgICByZXN0b3JlQW50aWFsaWFzTW9kZSA9IHRydWU7Cisg
ICAgfQorCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKICAg
ICBDb2xvciBvbGRGaWxsQ29sb3IgPSBmaWxsQ29sb3IoKTsKICAgICBDb2xvclNwYWNlIG9sZENv
bG9yU3BhY2UgPSBmaWxsQ29sb3JTcGFjZSgpOwpAQCAtNzM2LDEyICs3NDIsMTUgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29s
b3ImIGNvbG9yLCBDb2xvclMKICAgICB9CiAKICAgICBDR0NvbnRleHRGaWxsUmVjdChjb250ZXh0
LCByZWN0KTsKLSAgICAKKwogICAgIGlmIChkcmF3T3duU2hhZG93KQogICAgICAgICBDR0NvbnRl
eHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOwogCiAgICAgaWYgKG9sZEZpbGxDb2xvciAhPSBjb2xv
ciB8fCBvbGRDb2xvclNwYWNlICE9IGNvbG9yU3BhY2UpCiAgICAgICAgIHNldENHRmlsbENvbG9y
KGNvbnRleHQsIG9sZEZpbGxDb2xvciwgb2xkQ29sb3JTcGFjZSk7CisKKyAgICBpZiAocmVzdG9y
ZUFudGlhbGlhc01vZGUpCisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0
Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUm91
bmRlZFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgSW50U2l6ZSYgdG9wTGVmdCwgY29u
c3QgSW50U2l6ZSYgdG9wUmlnaHQsIGNvbnN0IEludFNpemUmIGJvdHRvbUxlZnQsIGNvbnN0IElu
dFNpemUmIGJvdHRvbVJpZ2h0LCBjb25zdCBDb2xvciYgY29sb3IsIENvbG9yU3BhY2UgY29sb3JT
cGFjZSkKQEAgLTgzNCw4ICs4NDMsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKKworICAgIGJvb2wgcmVzdG9yZUFudGlhbGlhc01vZGUgPSBmYWxzZTsKKyAg
ICBpZiAoc2hvdWxkQW50aWFsaWFzKCkpIHsKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50
aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCBmYWxzZSk7CisgICAgICAgIHJlc3RvcmVBbnRpYWxp
YXNNb2RlID0gdHJ1ZTsKKyAgICB9CisKICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KHBsYXRmb3Jt
Q29udGV4dCgpLCByZWN0KTsKICAgICBtX2RhdGEtPmNsaXAocmVjdCk7CisKKyAgICBpZiAocmVz
dG9yZUFudGlhbGlhc01vZGUpCisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhw
bGF0Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlw
T3V0KGNvbnN0IEludFJlY3QmIHJlY3QpCkBAIC0xMTQyLDYgKzExNjEsMjEgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OnJvdGF0ZShmbG9hdCBhbmdsZSkKICAgICBtX2RhdGEtPm1fdXNlclRvRGV2
aWNlVHJhbnNmb3JtS25vd25Ub0JlSWRlbnRpdHkgPSBmYWxzZTsKIH0KIAorLy8gV2UgaGF2ZSB0
byB0dXJuIEFBIG9mZiBpbiBzb21lIGNhc2VzIHRvIHByZXZlbnQgcGl4ZWxzIGNyYWNrcyBmcm9t
IGFwcGVhcmluZy4KK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpuZWVkc0FudGlhbGlhc2luZygpCit7
CisgICAgQWZmaW5lVHJhbnNmb3JtIGN0bSA9IGdldENUTSgpOworCisgICAgLy8gRW5hYmxlIEFB
IGZvciBhbGwgb2JqZWN0cyB3aGljaCBhcmUgbm90IHNjYWxlZC4KKyAgICBpZiAoY3RtLmlzSWRl
bnRpdHlPclRyYW5zbGF0aW9uT3JGbGlwcGVkKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgLy8gRW5hYmxlIEFBIGZvciBhbnkgcm90YXRlZCBvYmplY3RzLgorICAgIGlmIChjdG0uYSgp
ID09IC1jdG0uZCgpICYmIGN0bS5iKCkgPT0gY3RtLmMoKSAmJiAhY3RtLmIoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6dHJhbnNsYXRlKGZsb2F0IHgsIGZsb2F0IHkpCiB7CiAgICAgaWYgKHBhaW50aW5nRGlzYWJs
ZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lt
YWdlQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5j
cHAKaW5kZXggYjVkMThjOC4uOGNkYmY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VDRy5jcHAKQEAgLTE4NCw2ICsxODQsMTIgQEAgUmV0YWluUHRy
PENGQXJyYXlSZWY+IEJpdG1hcEltYWdlOjpnZXRDR0ltYWdlQXJyYXkoKQogCiB2b2lkIEJpdG1h
cEltYWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFj
ZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3ApCiB7CisgICAgYm9vbCByZXN0b3JlQW50
aWFsaWFzTW9kZSA9IGZhbHNlOworICAgIGlmIChjdHh0LT5zaG91bGRBbnRpYWxpYXMoKSkgewor
ICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMoY3R4dC0+cGxhdGZvcm1Db250ZXh0
KCksIGZhbHNlKTsKKyAgICAgICAgcmVzdG9yZUFudGlhbGlhc01vZGUgPSB0cnVlOworICAgIH0K
KwogICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1h
Z2UgPSBmcmFtZUF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwpAQCAtMjY1LDYgKzI3MSw5IEBAIHZv
aWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGCiAKICAgICBpZiAoaW1hZ2VPYnNlcnZlcigpKQogICAgICAg
ICBpbWFnZU9ic2VydmVyKCktPmRpZERyYXcodGhpcyk7CisKKyAgICBpZiAocmVzdG9yZUFudGlh
bGlhc01vZGUpCisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhjdHh0LT5wbGF0
Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdQYXR0ZXJuQ2FsbGJh
Y2sodm9pZCogaW5mbywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYWlrdS9HcmFwaGljc0NvbnRleHRI
YWlrdS5jcHAKaW5kZXggYjNmNmMwNi4uYmQ0ZTdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhh
aWt1LmNwcApAQCAtNDE5LDYgKzQxOSwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2NhbGUo
Y29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wg
R3JhcGhpY3NDb250ZXh0OjpuZWVkc0FudGlhbGlhc2luZygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBP
dXQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3ND
b250ZXh0UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhp
Y3NDb250ZXh0UXQuY3BwCmluZGV4IDNhYmMxZjMuLjhlNDliOTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5j
cHAKQEAgLTExOTIsNiArMTE5MiwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2NhbGUoY29u
c3QgRmxvYXRTaXplJiBzKQogICAgIG1fZGF0YS0+cCgpLT5zY2FsZShzLndpZHRoKCksIHMuaGVp
Z2h0KCkpOwogfQogCitib29sIEdyYXBoaWNzQ29udGV4dDo6bmVlZHNBbnRpYWxpYXNpbmcoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpjbGlwT3V0KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCmluZGV4IDVkYzc4NGEu
LjQ2MWZiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcApAQCAtMTIwNSw2ICsxMjA1LDEy
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgdywgZmxvYXQgaCkKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlRmxvYXRUb1Nr
U2NhbGFyKGgpKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6Om5lZWRzQW50aWFsaWFzaW5n
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6c2V0R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIERyYXdpbmdCdWZmZXIqIGZyYW1lYnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXpl
KQogewogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zZXRHcmFwaGljc0NvbnRleHQzRChjb250ZXh0
LCBmcmFtZWJ1ZmZlciwgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCBhMmFmMDE3Li5lYzFjNzg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTYz
MCwxMiArNjMwLDE2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVy
RXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvCiAgICAgICAgIGlmICghY29s
b3JWaXNpYmxlKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGJvb2wgd2FzQW50aWFs
aWFzZWQgPSBjb250ZXh0LT5zaG91bGRBbnRpYWxpYXMoKTsKKyAgICAgICAgY29udGV4dC0+c2V0
U2hvdWxkQW50aWFsaWFzKGNvbnRleHQtPm5lZWRzQW50aWFsaWFzaW5nKCkpOworCiAgICAgICAg
IGlmIChoYXNSb3VuZGVkQm9yZGVyICYmIGJsZWVkQXZvaWRhbmNlICE9IEJhY2tncm91bmRCbGVl
ZFVzZVRyYW5zcGFyZW5jeUxheWVyKSB7CiAgICAgICAgICAgICBSb3VuZGVkUmVjdCBib3JkZXIg
PSBnZXRCYWNrZ3JvdW5kUm91bmRlZFJlY3QoYmFja2dyb3VuZFJlY3RBZGp1c3RlZEZvckJsZWVk
QXZvaWRhbmNlKGNvbnRleHQsIHJlY3QsIGJsZWVkQXZvaWRhbmNlKSwgYm94LCBib3hTaXplLndp
ZHRoKCksIGJveFNpemUuaGVpZ2h0KCksIGluY2x1ZGVMZWZ0RWRnZSwgaW5jbHVkZVJpZ2h0RWRn
ZSk7CiAgICAgICAgICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoYm9yZGVyLCBiZ0NvbG9y
LCBzdHlsZSgpLT5jb2xvclNwYWNlKCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNv
bnRleHQtPmZpbGxSZWN0KHJlY3QsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9yU3BhY2UoKSk7Ci0g
ICAgICAgIAorCisgICAgICAgIGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh3YXNBbnRpYWxp
YXNlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY1NCw5ICs2NTgsMTQgQEAgdm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWlu
dEluZm8mIHBhaW50SW5mbywgY28KICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIGNsaXBX
aXRoU2Nyb2xsaW5nU3RhdGVTYXZlcigqY29udGV4dCwgY2xpcHBlZFdpdGhMb2NhbFNjcm9sbGlu
Zyk7CiAgICAgTGF5b3V0UmVjdCBzY3JvbGxlZFBhaW50UmVjdCA9IHJlY3Q7CiAgICAgaWYgKGNs
aXBwZWRXaXRoTG9jYWxTY3JvbGxpbmcpIHsKKyAgICAgICAgYm9vbCB3YXNBbnRpYWxpYXNlZCA9
IGNvbnRleHQtPnNob3VsZEFudGlhbGlhcygpOworICAgICAgICBjb250ZXh0LT5zZXRTaG91bGRB
bnRpYWxpYXMoY29udGV4dC0+bmVlZHNBbnRpYWxpYXNpbmcoKSk7CisKICAgICAgICAgLy8gQ2xp
cCB0byB0aGUgb3ZlcmZsb3cgYXJlYS4KICAgICAgICAgY29udGV4dC0+Y2xpcCh0b1JlbmRlckJv
eCh0aGlzKS0+b3ZlcmZsb3dDbGlwUmVjdChyZWN0LmxvY2F0aW9uKCkpKTsKLSAgICAgICAgCisK
KyAgICAgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdhc0FudGlhbGlhc2VkKTsKKwog
ICAgICAgICAvLyBBZGp1c3QgdGhlIHBhaW50IHJlY3QgdG8gcmVmbGVjdCBhIHNjcm9sbGVkIGNv
bnRlbnQgYm94IHdpdGggYm9yZGVycyBhdCB0aGUgZW5kcy4KICAgICAgICAgTGF5b3V0U2l6ZSBv
ZmZzZXQgPSBsYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKICAgICAgICAgc2Nyb2xs
ZWRQYWludFJlY3QubW92ZSgtb2Zmc2V0KTsKQEAgLTczOCw2ICs3NDcsOSBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjbwogCiAgICAgLy8gUGFpbnQgdGhlIGNvbG9yIGZpcnN0IHVuZGVybmVhdGgg
YWxsIGltYWdlcy4KICAgICBpZiAoIWJnTGF5ZXItPm5leHQoKSkgeworICAgICAgICBib29sIHdh
c0FudGlhbGlhc2VkID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAgIGNvbnRl
eHQtPnNldFNob3VsZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsKKwog
ICAgICAgICBMYXlvdXRSZWN0IGJhY2tncm91bmRSZWN0KHNjcm9sbGVkUGFpbnRSZWN0KTsKICAg
ICAgICAgYmFja2dyb3VuZFJlY3QuaW50ZXJzZWN0KHBhaW50SW5mby5yZWN0KTsKICAgICAgICAg
Ly8gSWYgd2UgaGF2ZSBhbiBhbHBoYSBhbmQgd2UgYXJlIHBhaW50aW5nIHRoZSByb290IGVsZW1l
bnQsIGdvIGFoZWFkIGFuZCBibGVuZCB3aXRoIHRoZSBiYXNlIGJhY2tncm91bmQgY29sb3IuCkBA
IC03NTksMTAgKzc3MSwxNSBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxM
YXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjbwogICAgICAgICAgICAg
Y29udGV4dC0+ZmlsbFJlY3QoYmFja2dyb3VuZFJlY3QsIGJnQ29sb3IsIHN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgb3BlcmF0aW9uKTsKICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRDbGVhckJhY2tn
cm91bmQpCiAgICAgICAgICAgICBjb250ZXh0LT5jbGVhclJlY3QoYmFja2dyb3VuZFJlY3QpOwor
CisgICAgICAgIGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh3YXNBbnRpYWxpYXNlZCk7CiAg
ICAgfQogCiAgICAgLy8gbm8gcHJvZ3Jlc3NpdmUgbG9hZGluZyBvZiB0aGUgYmFja2dyb3VuZCBp
bWFnZQogICAgIGlmIChzaG91bGRQYWludEJhY2tncm91bmRJbWFnZSkgeworICAgICAgICBib29s
IHdhc0FudGlhbGlhc2VkID0gY29udGV4dC0+c2hvdWxkQW50aWFsaWFzKCk7CisgICAgICAgIGNv
bnRleHQtPnNldFNob3VsZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsK
KwogICAgICAgICBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeSBnZW9tZXRyeTsKICAgICAgICAgY2Fs
Y3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoYmdMYXllciwgc2Nyb2xsZWRQYWludFJlY3Qs
IGdlb21ldHJ5KTsKICAgICAgICAgZ2VvbWV0cnkuY2xpcChwYWludEluZm8ucmVjdCk7CkBAIC03
NzQsNiArNzkxLDggQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZXJF
eHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28KICAgICAgICAgICAgIGNvbnRl
eHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIGdl
b21ldHJ5LmRlc3RSZWN0KCksIGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSwgZ2VvbWV0cnkudGls
ZVNpemUoKSwgCiAgICAgICAgICAgICAgICAgY29tcG9zaXRlT3AsIHVzZUxvd1F1YWxpdHlTY2Fs
aW5nKTsKICAgICAgICAgfQorCisgICAgICAgIGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh3
YXNBbnRpYWxpYXNlZCk7CiAgICAgfQogfQogCg==
</data>
<flag name="review"
          id="96088"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103959</attachid>
            <date>2011-08-15 14:53:27 -0700</date>
            <delta_ts>2014-02-05 10:48:05 -0800</delta_ts>
            <desc>Proposed fix 0.7</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>14557</size>
            <attacher name="Dmitry Gorbik">socket.h</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3OGVlZWUwLi4yODRiNTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDct
MTggIERtaXRyeSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMjYKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIHRyYW5zZm9ybSBzY2FsZSBwaXhlbCBjcmFja3MuCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5n
LXBpeGVsLWNyYWNrcy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVwZGF0ZSBiYXNlbGluZS4gIHJidWlzIHNheXMg
dGhpcyBpcyBhbiBpbXByb3ZlbWVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2luZy1waXhlbC1jcmFja3MtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBp
eGVsLWNyYWNrcy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcyYTQzMGQ4MDRlODMwOGUxYmQ5
OTk5MTM5ZTczNzAxNmQyZWYzMApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTA1NjQKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1Rnhl
T01qCnojd249PTJCdjFfRFRZUmROdlZrak4jO3FaJCpFPiRpS1ohTGhSRiUkfDk9QmJrO2A7OzQp
QW4jUnRQQXtQc198bgp6V25pZGFZej9gZWVLfG5uLT51WlM4eTxGQnIzLVN9V2xZUlYyYCtKLXZu
QE0oKlYoOTdYNEA0I1ctclQpblJRSSUKelpRVGE7bzg5P1ZONlNDNSt4PXdjeCFJZ3dKJkVfMk5h
QncqOVpFam1sczM8c1pRYHBRJSlJbWE/KXlMQVMqa3lPCno2MVUpSVZibzwyZVNWUzlWRT8wc3t2
M0hDYXttKSFvUSQqZnBBNnNiSFpkPFhjTClCPG49MFJMez4mJExFVGBtTQp6e3s3WWVsQ1JGMSR8
THdlTXElRisoPDRkYEJOdEBHVHF6TkxhSU4kR1R0bX1DWE1LdHptYX1sbXIoNUpGSCRMcD8KelJp
MmgrVihLdTleQVAoe0NvQXRBNGkrO3FBQUlKJGFqc0cxaU1yYSNOcVhIanQ2aFdpcFFnQk87YCNQ
THpQUn5RCnp7RHVgJVVkfj9vVCViMzFtWmFhc255ITJEbWJDPnYmbHMqQXcyem5BPiRxY1hMND9g
ayNpbiZtWEkwaC1zX2xMTAp6dHxXOEQrdGdYcEJRPUZvV21OVmdneyg4cSQkWkFtKyZTeW48K29u
fkNUKkIrdmZzb3deN0dAajBhSUNDOHlAfW8KeiZELXRFdUQjYzlQbl52RCp3aypoPUN5aTxlfHhg
d0UkVnQmSXFBZGVFcG9rQXplRz42M2NHIyMkPVBNZmhtVnY4CnorQjE3TkhUQjcpWGdyd2MjRklF
SGBOKm10SzRPd2VVUH5Aem1We0pwdmJiaWdGP3JmczhUWDJsQHE5YnQjSil5dgp6K1ZTbmQ/fEZB
c3VsTVp7WjlUZXVAcn1UQFROX3tRKzlXKG55MXExVj5FZ1ZIPH55SXhtZDsoeCVATyNvPiorPzEK
enhZU2VyT0BZQC0mN01zTnA4bHRsYEBHU1ZjZEJKVjVqP3hyZTJEdkBtQlohVkR0PjdDe3dwV1ct
Q0hZb3h9aXxWCnpadVB3MnYmWWAzVWg9djBJJVVXSHVDR3FWQnp7Z1hiZEgrNFBzTWptbSp1Qmgw
bz58cjx4UWBqSiZNdTQmT1VHVgp6bmI/UUZjNTx4TURebCh8Qj52VTRNKUFXdzw5JkFWK3coZ1Rt
KjN1WklweV9ZIT5ISDBGSGhYSFhrKm9ze0BkIWAKeloyTUxUT0sjZUBaKTA1O2h4VjM1JHlye1RP
Wip2X1JkZkJPZWBjTmhVYSpDYHJlbUZNWGFETT9AQ3A5ZlQ9X0czCno7LT5SPnVKXmQ5eDUydnFF
JVViRVlxOEhWPEJLZ25ZWmJoZHsoSmJmb19RIStvYUJMdiNkX2lrajd5KHpabTVhVgp6Y2BiVGQt
ZSV0UmhLYmc8bGhAa2pDaHFGQzN0TjQ9TEAhIzdhWDBfIXRNa3ZWeF9iQmRsWH51byNlZGpWRHN4
PnMKenZAcVU/ZmtBPTYpNVM1UWc3Tk0zamwydkJKUz5JQHxLfkMlYiohR2w4bkB9dm9xNlNfMXI7
MGA3I052WUkwT19OCno2YSp7fHdzQXQoNVd5Tm8jeiVyNkRYNXdnRUchO3d4ZzlWS0t2Qmo9PzQk
Q2Q7V0xeKHo8RnBpZX5ndzdxdmhqaAp6e1Eje3tOOSlKWV9RN2NUWHRhR2UrQ0NnQEFDOSZVZnFs
JTtfVkgtQGMoaT55K0NDbV9BQTwrbk0qOWIme2UjaXwKeiFEIzxydzB8KCNLTiMmRmpQPyZrYCR3
Ym1pPSo/YXF3fnd1bz9wSz5VcnZYQ2ZwcjBCRXg+NDdXMztVPytTVjl0CmpZbUJ4djIzdVJCa141
eWgkQ35zcjZDe0FrQXtqaGd7YW5eTEJ7VHM1LSZnJXMKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlh
bGlhc2luZy1waXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL3RyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVlNDNiNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy90cmFuc2Zvcm1zLzJkL2FudGlhbGlhc2lu
Zy1waXhlbC1jcmFja3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHgxMDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDEwMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9hbnRpYWxp
YXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2FudGlh
bGlhc2luZy1waXhlbC1jcmFja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40ZmFjYmNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8y
ZC9hbnRpYWxpYXNpbmctcGl4ZWwtY3JhY2tzLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWJLaXQgYnVnIDY0MTI2OiBC
YWNrZ3JvdW5kIGxlYWtzIGZvciB0d28gbmVzdGVkIGRpdnM8L3RpdGxlPgorPC9oZWFkPgorCis8
Ym9keSBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMjQpOyBtYXJnaW46IDEwMHB4
OyI+CisgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZDogIzAwMDAwMDsgbWFyZ2luOjEwMHB4OyBv
dmVyZmxvdzogaGlkZGVuIj4KKyAgICAgICAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjoj
ZmZmZmZmIj4KKyAgICAgICAgICAgIDwhLS0gVGhlcmUgc2hvdWxkIG5vdCBiZSBhIGJvcmRlciAt
LT4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDI1YWY0NGMuLmM2Y2EwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAxMS0wNy0xOCAgRG1pdHJ5IEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisg
ICAgICAgIFR1cm4gYW50aWFsaWFzaW5nIG9uIG9ubHkgZm9yIHJlY3RzIHdoaWNoIGFyZSBhcmUg
cm90YXRlZCBvciBub3Qgc2NhbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NDEyNgorCisgICAgICAgIFBpeGVsIGNyYWNrcyBhcHBlYXIgd2hlbiB3
ZSBkcmF3IHR3byBzY2FsZWQgb2JqZWN0cyBvZiB0aGUgc2FtZSBzaXplCisgICAgICAgIGJlY2F1
c2Ugb2YgdGhlIHdheSBhbnRpYWxpYXNpbmcgd29ya3MgaW4gQ29yZUdyYXBoaWNzLiBTbyB0byBk
ZWFsIHdpdGggdGhvc2UKKyAgICAgICAgd2UgbmVlZCB0byB0dXJuIGFudGlhbGlhc2luZyBvZmYg
aW4gdGhlIGNhc2VzIHdoZW4gd2UgZG8gbm90IG5lZWQgaXQ6IHdoZW4KKyAgICAgICAgZmlsbGlu
ZyByZWN0cywgdXNpbmcgcmVjdCBjbGlwcGluZyBhbmQgZHJhd2luZyBpbWFnZXMgaWYgdGhvc2Ug
b2JqZWN0cyBhcmUgbm90IHJvdGF0ZWQuCisgICAgICAgIFNpbmNlIHRob3NlIGNyYWNrcyBkbyBu
b3QgYXBwZWFyIGF0IDEuMCBzY2FsaW5nIGZhY3Rvciwgd2UgYWx3YXlzIHR1cm4gQUEgb24gaW4g
dGhpcyBjYXNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IHRyYW5zZm9ybXMvMmQvYW50aWFsaWFzaW5nLXBpeGVsLWNyYWNrcy5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6Y2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6
Om5lZWRzQW50aWFsaWFzaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFn
ZUNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorCiAyMDExLTA3
LTE4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgU3BlY2lmeSBh
IGNhc2NhZGUgbGlzdCBjb25zaXN0aW5nIG9mIHRoZSBsYXN0IHJlc29ydCBmb250IGZvciBDb3Jl
IFRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgKaW5kZXggODk5YzY1MC4uYjI1ZjZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTQwMiw2ICs0MDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBzY2FsZShjb25zdCBGbG9hdFNp
emUmKTsKICAgICAgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpOworICAgICAg
ICBib29sIG5lZWRzQW50aWFsaWFzaW5nKCk7CiAgICAgICAgIHZvaWQgdHJhbnNsYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgc2l6ZSkgeyB0cmFuc2xhdGUoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgp
KTsgfQogICAgICAgICB2b2lkIHRyYW5zbGF0ZShmbG9hdCB4LCBmbG9hdCB5KTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IGZhNWM0MzguLjU1ODU3YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTEwMzksNiArMTAzOSwxMiBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2NhbGUoY29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgIG1fZGF0YS0+c2NhbGUo
c2l6ZSk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NDb250ZXh0OjpuZWVkc0FudGlhbGlhc2luZygpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmNsaXBPdXQoY29uc3QgSW50UmVjdCYgcikKIHsKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDdjNzA5NmYuLjI1MzgzMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29u
dGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAKQEAgLTcxNyw2ICs3MTcsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBD
b2xvclMKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gZmFsc2U7CisgICAgaWYgKCFzaG91bGRBbnRp
YWxpYXMoKSkgeworICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMocGxhdGZvcm1D
b250ZXh0KCksIGZhbHNlKTsKKyAgICAgICAgcmVzdG9yZUFudGlhbGlhc01vZGUgPSB0cnVlOwor
ICAgIH0KKwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAg
ICAgQ29sb3Igb2xkRmlsbENvbG9yID0gZmlsbENvbG9yKCk7CiAgICAgQ29sb3JTcGFjZSBvbGRD
b2xvclNwYWNlID0gZmlsbENvbG9yU3BhY2UoKTsKQEAgLTczNiwxMiArNzQyLDE1IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENv
bG9yJiBjb2xvciwgQ29sb3JTCiAgICAgfQogCiAgICAgQ0dDb250ZXh0RmlsbFJlY3QoY29udGV4
dCwgcmVjdCk7Ci0gICAgCisKICAgICBpZiAoZHJhd093blNoYWRvdykKICAgICAgICAgQ0dDb250
ZXh0UmVzdG9yZUdTdGF0ZShjb250ZXh0KTsKIAogICAgIGlmIChvbGRGaWxsQ29sb3IgIT0gY29s
b3IgfHwgb2xkQ29sb3JTcGFjZSAhPSBjb2xvclNwYWNlKQogICAgICAgICBzZXRDR0ZpbGxDb2xv
cihjb250ZXh0LCBvbGRGaWxsQ29sb3IsIG9sZENvbG9yU3BhY2UpOworCisgICAgaWYgKHJlc3Rv
cmVBbnRpYWxpYXNNb2RlKQorICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMocGxh
dGZvcm1Db250ZXh0KCksIHRydWUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJv
dW5kZWRSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEludFNpemUmIHRvcExlZnQsIGNv
bnN0IEludFNpemUmIHRvcFJpZ2h0LCBjb25zdCBJbnRTaXplJiBib3R0b21MZWZ0LCBjb25zdCBJ
bnRTaXplJiBib3R0b21SaWdodCwgY29uc3QgQ29sb3ImIGNvbG9yLCBDb2xvclNwYWNlIGNvbG9y
U3BhY2UpCkBAIC04MzQsOCArODQzLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAg
ICAgICByZXR1cm47CisKKyAgICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gZmFsc2U7Cisg
ICAgaWYgKHNob3VsZEFudGlhbGlhcygpKSB7CisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFu
dGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgZmFsc2UpOworICAgICAgICByZXN0b3JlQW50aWFs
aWFzTW9kZSA9IHRydWU7CisgICAgfQorCiAgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChwbGF0Zm9y
bUNvbnRleHQoKSwgcmVjdCk7CiAgICAgbV9kYXRhLT5jbGlwKHJlY3QpOworCisgICAgaWYgKHJl
c3RvcmVBbnRpYWxpYXNNb2RlKQorICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMo
cGxhdGZvcm1Db250ZXh0KCksIHRydWUpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xp
cE91dChjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtMTE0Miw2ICsxMTYxLDIyIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0Ojpyb3RhdGUoZmxvYXQgYW5nbGUpCiAgICAgbV9kYXRhLT5tX3VzZXJUb0Rl
dmljZVRyYW5zZm9ybUtub3duVG9CZUlkZW50aXR5ID0gZmFsc2U7CiB9CiAKKy8vIFdlIGhhdmUg
dG8gdHVybiBBQSBvZmYgaW4gc29tZSBjYXNlcyB0byBwcmV2ZW50IHBpeGVscyBjcmFja3MgZnJv
bSBhcHBlYXJpbmcuCitib29sIEdyYXBoaWNzQ29udGV4dDo6bmVlZHNBbnRpYWxpYXNpbmcoKQor
eworICAgIEFmZmluZVRyYW5zZm9ybSBjdG0gPSBnZXRDVE0oKTsKKworICAgIC8vIEVuYWJsZSBB
QSBmb3IgYWxsIG9iamVjdHMgd2hpY2ggYXJlIG5vdCBzY2FsZWQuCisgICAgaWYgKGN0bS5pc0lk
ZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIC8vIERpc2FibGUgQUEgZm9yIGFueSBub3Qgcm90YXRlZCBvYmplY3RzLgorICAgIGlmIChj
dG0uYSgpID09IC1jdG0uZCgpICYmIGN0bS5iKCkgPT0gY3RtLmMoKSAmJiAhY3RtLmIoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0Ojp0cmFuc2xhdGUoZmxvYXQgeCwgZmxvYXQgeSkKIHsKICAgICBpZiAocGFpbnRp
bmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUNHLmNwcAppbmRleCBiNWQxOGM4Li45NTVmNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUNHLmNwcApAQCAtMTg0LDYgKzE4NCwxMiBAQCBS
ZXRhaW5QdHI8Q0ZBcnJheVJlZj4gQml0bWFwSW1hZ2U6OmdldENHSW1hZ2VBcnJheSgpCiAKIHZv
aWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJl
Y3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbG9yU3BhY2Ugc3R5bGVD
b2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCkKIHsKKyAgICBib29sIHJl
c3RvcmVBbnRpYWxpYXNNb2RlID0gZmFsc2U7CisgICAgaWYgKCFjdHh0LT5zaG91bGRBbnRpYWxp
YXMoKSkgeworICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMoY3R4dC0+cGxhdGZv
cm1Db250ZXh0KCksIGZhbHNlKTsKKyAgICAgICAgcmVzdG9yZUFudGlhbGlhc01vZGUgPSB0cnVl
OworICAgIH0KKwogICAgIHN0YXJ0QW5pbWF0aW9uKCk7CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gaW1hZ2UgPSBmcmFtZUF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwpAQCAtMjY1LDYgKzI3
MSw5IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25z
dCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGCiAKICAgICBpZiAoaW1hZ2VPYnNlcnZlcigp
KQogICAgICAgICBpbWFnZU9ic2VydmVyKCktPmRpZERyYXcodGhpcyk7CisKKyAgICBpZiAocmVz
dG9yZUFudGlhbGlhc01vZGUpCisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhj
dHh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdQYXR0
ZXJuQ2FsbGJhY2sodm9pZCogaW5mbywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCkBAIC0yODQsNiAr
MjkzLDEyIEBAIHZvaWQgSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCogY3R4dCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QKICAgICAgICAgLy8gQXZvaWQgYSBoYW5n
IHVuZGVyIENHQ29udGV4dERyYXdUaWxlZEltYWdlIG9uIHJlbGVhc2UgYnVpbGRzLgogICAgICAg
ICByZXR1cm47CiAKKyAgICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gZmFsc2U7CisgICAg
aWYgKCFjdHh0LT5zaG91bGRBbnRpYWxpYXMoKSkgeworICAgICAgICBDR0NvbnRleHRTZXRTaG91
bGRBbnRpYWxpYXMoY3R4dC0+cGxhdGZvcm1Db250ZXh0KCksIGZhbHNlKTsKKyAgICAgICAgcmVz
dG9yZUFudGlhbGlhc01vZGUgPSB0cnVlOworICAgIH0KKwogICAgIENHQ29udGV4dFJlZiBjb250
ZXh0ID0gY3R4dC0+cGxhdGZvcm1Db250ZXh0KCk7CiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBzdGF0ZVNhdmVyKCpjdHh0KTsKICAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNvbnRleHQs
IGRlc3RSZWN0KTsKQEAgLTMzOCw4ICszNTMsMTEgQEAgdm9pZCBJbWFnZTo6ZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdAog
ICAgIFJldGFpblB0cjxDR1BhdHRlcm5SZWY+IHBhdHRlcm4oQWRvcHRDRiwgQ0dQYXR0ZXJuQ3Jl
YXRlKHN1YkltYWdlLmdldCgpLCBDR1JlY3RNYWtlKDAsIDAsIHRpbGVSZWN0LndpZHRoKCksIHRp
bGVSZWN0LmhlaWdodCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hdHJpeCwgdGlsZVJlY3Qud2lkdGgoKSwgdGlsZVJlY3QuaGVpZ2h0KCksIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NHUGF0dGVyblRpbGlu
Z0NvbnN0YW50U3BhY2luZywgdHJ1ZSwgJnBhdHRlcm5DYWxsYmFja3MpKTsKLSAgICBpZiAoIXBh
dHRlcm4pCisgICAgaWYgKCFwYXR0ZXJuKSB7CisgICAgICAgIGlmIChyZXN0b3JlQW50aWFsaWFz
TW9kZSkKKyAgICAgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhjdHh0LT5wbGF0
Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBSZXRh
aW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBwYXR0ZXJuU3BhY2UoQWRvcHRDRiwgQ0dDb2xvclNwYWNl
Q3JlYXRlUGF0dGVybigwKSk7CiAgICAgCkBAIC0zNjAsNiArMzc4LDkgQEAgdm9pZCBJbWFnZTo6
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0KiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVS
ZWN0LCBjb25zdAogCiAgICAgaWYgKGltYWdlT2JzZXJ2ZXIoKSkKICAgICAgICAgaW1hZ2VPYnNl
cnZlcigpLT5kaWREcmF3KHRoaXMpOworCisgICAgaWYgKHJlc3RvcmVBbnRpYWxpYXNNb2RlKQor
ICAgICAgICBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXMoY3R4dC0+cGxhdGZvcm1Db250ZXh0
KCksIHRydWUpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2hhaWt1L0dyYXBoaWNzQ29udGV4dEhhaWt1LmNwcAppbmRleCBiM2Y2
YzA2Li5iZDRlN2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYWlrdS9HcmFwaGljc0NvbnRleHRIYWlrdS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaGFpa3UvR3JhcGhpY3NDb250ZXh0SGFpa3UuY3BwCkBAIC00MTksNiAr
NDE5LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzY2FsZShjb25zdCBGbG9hdFNpemUmIHNp
emUpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBHcmFwaGljc0NvbnRleHQ6Om5l
ZWRzQW50aWFsaWFzaW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcE91dChjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0NvbnRleHRRdC5jcHAKaW5k
ZXggM2FiYzFmMy4uOGU0OWI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NDb250ZXh0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzQ29udGV4dFF0LmNwcApAQCAtMTE5Miw2ICsxMTky
LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzY2FsZShjb25zdCBGbG9hdFNpemUmIHMpCiAg
ICAgbV9kYXRhLT5wKCktPnNjYWxlKHMud2lkdGgoKSwgcy5oZWlnaHQoKSk7CiB9CiAKK2Jvb2wg
R3JhcGhpY3NDb250ZXh0OjpuZWVkc0FudGlhbGlhc2luZygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBP
dXQoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGlj
c0NvbnRleHRTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
R3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5kZXggNWRjNzg0YS4uNDYxZmIzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRT
a2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBo
aWNzQ29udGV4dFNraWEuY3BwCkBAIC0xMjA1LDYgKzEyMDUsMTIgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnRyYW5zbGF0ZShmbG9hdCB3LCBmbG9hdCBoKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmVGbG9hdFRvU2tTY2FsYXIoaCkpOwogfQogCiti
b29sIEdyYXBoaWNzQ29udGV4dDo6bmVlZHNBbnRpYWxpYXNpbmcoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
ZXRHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgRHJhd2luZ0J1
ZmZlciogZnJhbWVidWZmZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgcGxhdGZvcm1D
b250ZXh0KCktPnNldEdyYXBoaWNzQ29udGV4dDNEKGNvbnRleHQsIGZyYW1lYnVmZmVyLCBzaXpl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCmluZGV4IGEyYWYwMTcuLjc0ZjFlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNTk2LDYgKzU5Niw5IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvCiAgICAgaWYgKGNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSB8
fCByZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgYm9vbCB3YXNBbnRpYWxp
YXNlZCA9IGNvbnRleHQtPnNob3VsZEFudGlhbGlhcygpOworICAgIGNvbnRleHQtPnNldFNob3Vs
ZEFudGlhbGlhcyhjb250ZXh0LT5uZWVkc0FudGlhbGlhc2luZygpKTsKKwogICAgIGJvb2wgaW5j
bHVkZUxlZnRFZGdlID0gYm94ID8gYm94LT5pbmNsdWRlTG9naWNhbExlZnRFZGdlKCkgOiB0cnVl
OwogICAgIGJvb2wgaW5jbHVkZVJpZ2h0RWRnZSA9IGJveCA/IGJveC0+aW5jbHVkZUxvZ2ljYWxS
aWdodEVkZ2UoKSA6IHRydWU7CiAKQEAgLTc3NSw2ICs3NzgsNyBAQCB2b2lkIFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjbwogICAgICAgICAgICAgICAgIGNvbXBvc2l0ZU9wLCB1c2VMb3dRdWFsaXR5U2NhbGlu
Zyk7CiAgICAgICAgIH0KICAgICB9CisgICAgY29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHdh
c0FudGlhbGlhc2VkKTsKIH0KIAogSW50U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3Vs
YXRlRmlsbFRpbGVTaXplKGNvbnN0IEZpbGxMYXllciogZmlsbExheWVyLCBJbnRTaXplIHBvc2l0
aW9uaW5nQXJlYVNpemUpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>