<?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>39081</bug_id>
          
          <creation_ts>2010-05-13 13:06:29 -0700</creation_ts>
          <short_desc>[chromium] Adds supports for layout tests using GeolocationServiceMock</short_desc>
          <delta_ts>2010-05-19 10:51:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Marcus Bulach">bulach</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>bulach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>joth</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>225456</commentid>
    <comment_count>0</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-13 13:06:29 -0700</bug_when>
    <thetext>Adds supports for layout tests using GeolocationServiceMock.
Allows injection of GeolocationServiceMock factory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225461</commentid>
    <comment_count>1</comment_count>
      <attachid>56011</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-13 13:12:28 -0700</bug_when>
    <thetext>Created attachment 56011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225464</commentid>
    <comment_count>2</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-13 13:15:25 -0700</bug_when>
    <thetext>hi steve, sorry to keep bothering you, but would you mind taking a look at this patch? take your time, this is low priority.. ;) 
thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225723</commentid>
    <comment_count>3</comment_count>
      <attachid>56011</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-14 02:09:34 -0700</bug_when>
    <thetext>Comment on attachment 56011
Patch

Can you explain why this is needed? As far as I can see, GeolocationServiceChromiumMock is an intermediate that sits between the existing GeolocationServiceMock and the Geolocation object. Does this class exist solely to add the extra calls to GeolocationServiceChromium::startUpdating()/stopUpdating()?

It looks like GeolocationServiceChromiumMock is mostly boilerplate - could it be reduced by having it inherit from GeolocationServiceMock, rather than owning an instance?

&gt; diff --git a/WebCore/platform/GeolocationService.cpp b/WebCore/platform/GeolocationService.cpp
&gt; +void GeolocationService::useMockFactory(FactoryFunction f)
&gt; +{
&gt; +    s_mockFactoryFunction = f;
&gt; +    useMock();
&gt;  }
So we need to call useMock() here, as it&apos;s called from setPosition and setError? Would a better name for this function then be &apos;setCustomMock&apos;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225835</commentid>
    <comment_count>4</comment_count>
      <attachid>56071</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-14 08:29:09 -0700</bug_when>
    <thetext>Created attachment 56071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225846</commentid>
    <comment_count>5</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-14 08:42:19 -0700</bug_when>
    <thetext>thanks for the quick reply, Steve!
replies inline:

(In reply to comment #3)
&gt; (From update of attachment 56011 [details])
&gt; Can you explain why this is needed? As far as I can see, GeolocationServiceChromiumMock is an intermediate that sits between the existing GeolocationServiceMock and the Geolocation object. Does this class exist solely to add the extra calls to GeolocationServiceChromium::startUpdating()/stopUpdating()?
&gt; 
&gt; It looks like GeolocationServiceChromiumMock is mostly boilerplate - could it be reduced by having it inherit from GeolocationServiceMock, rather than owning an instance?

sorry, I tried to keep the minimalistic comment style here, but obviously it needs some clarifications.. :) let me know what&apos;s the best way to add (ChangeLog? inline comments?)
anyways: there are extensive comments on the other side:
http://codereview.chromium.org/2094003/diff/5001/6001

basically: there are a few layers up in the embedder that require a GeolocationServiceChromium (for getBridgeId() / attachBridgeIfNeeded).

hence, the simplest way seemed to extend that expected object/interface, and delegate the calls to GeolocationServiceMock as appropriate..

so yes, it&apos;s just an intermediary proxy that sits between Geolocation and the embedder. it&apos;s all boiler plate code to adapt what the embedder expects to what the mock provides, and to inject in a Geolocation object.

&gt; 
&gt; &gt; diff --git a/WebCore/platform/GeolocationService.cpp b/WebCore/platform/GeolocationService.cpp
&gt; &gt; +void GeolocationService::useMockFactory(FactoryFunction f)
&gt; &gt; +{
&gt; &gt; +    s_mockFactoryFunction = f;
&gt; &gt; +    useMock();
&gt; &gt;  }
&gt; So we need to call useMock() here, as it&apos;s called from setPosition and setError? Would a better name for this function then be &apos;setCustomMock&apos;?

renamed to setCustomMockFactory, and moved the &quot;useMock()&quot; call from here to higher up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227235</commentid>
    <comment_count>6</comment_count>
      <attachid>56071</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-18 03:34:51 -0700</bug_when>
    <thetext>Comment on attachment 56071
Patch

&gt; so yes, it&apos;s just an intermediary proxy that sits between Geolocation and the embedder. it&apos;s all boiler plate code to adapt
&gt;  what the embedder expects to what the mock provides, and to inject in a Geolocation object.
OK, got it, thanks

WebKit/chromium/src/WebGeolocationServiceMock.cpp:124
 +  void WebGeolocationServiceMock::useGeolocationServiceMock()
Do you need this method? The existing GeolocationServiceMock simply calls GeolocationService::useMock() from setPosition() and setError(). Could we do similarly and call setCustomMockFactory() from setMockGeolocationPosition() and setMockGeolocationError()? Is the additional call to GeolocationService::useMock() required?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227264</commentid>
    <comment_count>7</comment_count>
      <attachid>56363</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-18 05:08:05 -0700</bug_when>
    <thetext>Created attachment 56363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227265</commentid>
    <comment_count>8</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-05-18 05:12:20 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 56071 [details])
&gt; &gt; so yes, it&apos;s just an intermediary proxy that sits between Geolocation and the embedder. it&apos;s all boiler plate code to adapt
&gt; &gt;  what the embedder expects to what the mock provides, and to inject in a Geolocation object.
&gt; OK, got it, thanks
&gt; 
&gt; WebKit/chromium/src/WebGeolocationServiceMock.cpp:124
&gt;  +  void WebGeolocationServiceMock::useGeolocationServiceMock()
&gt; Do you need this method? The existing GeolocationServiceMock simply calls GeolocationService::useMock() from setPosition() and setError(). Could we do similarly and call setCustomMockFactory() from setMockGeolocationPosition() and setMockGeolocationError()? Is the additional call to GeolocationService::useMock() required?

hehe, yeah, tricky trade off between less API surface versus number of calls..

anyways: followed your suggestions, removed the method, and added calls to setCustomMockFactory() on both setMockGeolocationPosition/Error.

another look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227878</commentid>
    <comment_count>9</comment_count>
      <attachid>56363</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-19 10:38:17 -0700</bug_when>
    <thetext>Comment on attachment 56363
Patch

Clearing flags on attachment: 56363

Committed r59772: &lt;http://trac.webkit.org/changeset/59772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227879</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-19 10:38:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227886</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 10:51:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59772 might have broken Qt Windows 32-bit Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56011</attachid>
            <date>2010-05-13 13:12:28 -0700</date>
            <delta_ts>2010-05-14 08:29:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39081-20100513211226.patch</filename>
            <type>text/plain</type>
            <size>14697</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDI2ZWY3NzhlZjZmYzVlMmQxZmJiODA5MWYyODEwZDQ1MjFlOWI3Zi4uN2ExY2M1MzNlMzViNDBm
NWZlNGM2Y2U3ZmViMmVmMWRhOTVjYzg5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGRzIHN1cHBvcnRzIGZvciBs
YXlvdXQgdGVzdHMgdXNpbmcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDgxCisKKyAgICAgICAgQWxsb3dz
IGluamVjdGlvbiBvZiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZhY3RvcnkuCisKKyAgICAgICAg
VGVzdHM6IGV4aXN0aW5nIGZhc3QvZG9tL0dlb2xvY2F0aW9uLyoKKworICAgICAgICAqIHBsYXRm
b3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2U6OnVzZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNl
Ojp1c2VNb2NrRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW06Okdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtKToKKwogMjAxMC0wNS0xMyAgWW9zaGlraSBIYXlhc2hp
ICA8eWhheWFzaGlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAppbmRleCA0Njc2MDA2ODFm
MWE1MDYzOTYwNzczYzU5NGI0NGE3YWViMWNmZDIxLi44MDA0YmEzZmU5NDczMjM4NmQ0ODJmZTY2
ZGNkYWZkMmI3YTllOTExIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3Bw
CkBAIC00NCw2ICs0NCw4IEBAIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZUdlb2xv
Y2F0aW9uU2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50CiBHZW9sb2NhdGlvblNl
cnZpY2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5j
dGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsOwogI2VuZGlmCiAKK0dlb2xvY2F0
aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfbW9ja0Zh
Y3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGU7CisKIEdlb2xv
Y2F0aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuICgqc19mYWN0b3J5RnVuY3Rpb24pKGNs
aWVudCk7CkBAIC01Miw3ICs1NCwxMyBAQCBHZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9u
U2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogI2lmIEVO
QUJMRShHRU9MT0NBVElPTikKIHZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrKCkKIHsK
LSAgICBzX2ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGU7
CisgICAgc19mYWN0b3J5RnVuY3Rpb24gPSBzX21vY2tGYWN0b3J5RnVuY3Rpb247Cit9CisKK3Zv
aWQgR2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrRmFjdG9yeShGYWN0b3J5RnVuY3Rpb24gZikK
K3sKKyAgICBzX21vY2tGYWN0b3J5RnVuY3Rpb24gPSBmOworICAgIHVzZU1vY2soKTsKIH0KIAog
R2VvbG9jYXRpb25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KiBjbGllbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAppbmRleCA0
MzkwNDk2MWRlZjYxMmFlNWMzYTQ5MjA5YmNiNzQ1MTljZWQ3YWRiLi4xNzQ3ZDMwODY4NDY2ZmNl
MTcwMWM4MzJhMjE2NDk4ZGU4YmVmYTk1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0dl
b2xvY2F0aW9uU2VydmljZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmgKQEAgLTYwLDYgKzYwLDggQEAgcHVibGljOgogICAgIHZvaWQgZXJyb3JPY2N1cnJlZCgp
OwogCiAgICAgc3RhdGljIHZvaWQgdXNlTW9jaygpOworICAgIHR5cGVkZWYgR2VvbG9jYXRpb25T
ZXJ2aWNlKiAoRmFjdG9yeUZ1bmN0aW9uKShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAg
ICBzdGF0aWMgdm9pZCB1c2VNb2NrRmFjdG9yeShGYWN0b3J5RnVuY3Rpb24pOwogCiBwcm90ZWN0
ZWQ6CiAgICAgR2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOwpA
QCAtNjgsOCArNzAsOCBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uU2Vy
dmljZUNsaWVudCogbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQ7CiAKLSAgICB0eXBlZGVmIEdl
b2xvY2F0aW9uU2VydmljZSogKEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25TZXJ2aWNlQ2xp
ZW50Kik7CiAgICAgc3RhdGljIEZhY3RvcnlGdW5jdGlvbiogc19mYWN0b3J5RnVuY3Rpb247Cisg
ICAgc3RhdGljIEZhY3RvcnlGdW5jdGlvbiogc19tb2NrRmFjdG9yeUZ1bmN0aW9uOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcAppbmRleCA0NDAyZmU0Y2Y4Mzll
OTU0MjI1MTg5ZmUyMWUxMDg4MTM5NmI0NDUyLi45MzMzOTk5NzQzNjVjNDBkZDE5MmRlZjZjZWJj
M2MyM2FiMmIyNDM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtOjpHZW9sb2NhdGlvblNl
cnZpY2VDaHJvbWl1bShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGMpCiAgICAgICAgIDogR2Vv
bG9jYXRpb25TZXJ2aWNlKGMpLAotICAgICAgICAgIG1fZ2VvbG9jYXRpb24ocmVpbnRlcnByZXRf
Y2FzdDxHZW9sb2NhdGlvbio+KGMpKSwKKyAgICAgICAgICBtX2dlb2xvY2F0aW9uKHN0YXRpY19j
YXN0PEdlb2xvY2F0aW9uKj4oYykpLAogICAgICAgICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQnJp
ZGdlKENocm9taXVtQnJpZGdlOjpjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UodGhpcykp
LAogICAgICAgICAgIG1fbGFzdEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVy
cm9yOjpQT1NJVElPTl9VTkFWQUlMQUJMRSwgIiIpKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTA5NTk1
MTEyYWYwMmEwNjYxZDZjNzM2ZDc2NjIyYTg0NDQ2MjEyOC4uZTk3M2QxNDc5MmE4YjIxNjYyMjFm
ZmE5YzVmYTM3OTkzMGJlMzc3NSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTAt
MDUtMTMgIE1hcmN1cyBCdWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkcyBzdXBw
b3J0cyBmb3IgbGF5b3V0IHRlc3RzIHVzaW5nIEdlb2xvY2F0aW9uU2VydmljZU1vY2suCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA4MQorCisgICAg
ICAgIEFsbG93cyBpbmplY3Rpb24gb2YgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayBmYWN0b3J5Lgor
ICAgICAgICBUZXN0czogZXhpc3RpbmcgZmFzdC9kb20vR2VvbG9jYXRpb24vKgorCisgICAgICAg
ICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ay5oOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2Nr
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1N
b2NrOjpHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6c3RvcFVwZGF0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6bGFzdFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9j
azo6bGFzdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9t
aXVtTW9jazo6Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6Z2VvbG9jYXRpb25TZXJ2aWNl
RXJyb3JPY2N1cnJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2s6OnVzZUdlb2xvY2F0aW9uU2VydmljZU1vY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKToKKwogMjAxMC0wNS0xMiAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOTY5
NGY4NmMxMjZkNjAzZjAxNDExMWVjM2VjYjk5NzIzYjA2YTQ1NC4uODc4MWVlMGNhMTQ2MGJhMmE2
ZmI1YzlmMDQzMDQ1MmQzODc5NWJhMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktp
dC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTEyNiw2ICsxMjYsNyBA
QAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRm9ybUVsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2UuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UuaCcsCisgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViR2x5cGhDYWNoZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkdMRVMy
Q29udGV4dC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNE
LmgnLApAQCAtMzM3LDYgKzMzOCw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJGcmFtZUlt
cGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJ
bXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlk
Z2VJbXBsLmgnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ay5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViR2x5cGhDYWNoZS5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViR3JhcGhpY3NDb250ZXh0M0QuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNERGVmYXVsdEltcGwuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDE4N2Y1OTU5NGU5ZTkwMjQyZjY4MjdjZjVlMTM4ZTAzNWU4NjA5ZQotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5o
CkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKKyNk
ZWZpbmUgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja19oCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2sgewor
cHVibGljOgorICAgIHN0YXRpYyB2b2lkIHVzZUdlb2xvY2F0aW9uU2VydmljZU1vY2soKTsKKyAg
ICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CisgICAgc3RhdGljIHZvaWQgc2V0
TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgV2ViU3RyaW5nJiBtZXNz
YWdlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViR2VvbG9j
YXRpb25TZXJ2aWNlTW9ja19oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTc0OWFjMmMwOWYwNWQwMzk4YWJlYmY3
MzAyYTQzNTg2OTQ5Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcApAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCisKKyNpbmNs
dWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VD
aHJvbWl1bS5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKKyNpbmNsdWRl
ICJXZWJTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKworI2lmIEVOQUJM
RShHRU9MT0NBVElPTikKKwordXNpbmcgV2ViQ29yZTo6Q29vcmRpbmF0ZXM7Cit1c2luZyBXZWJD
b3JlOjpGcmFtZTsKK3VzaW5nIFdlYkNvcmU6Okdlb2xvY2F0aW9uOwordXNpbmcgV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlOwordXNpbmcgV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlQ2hyb21pdW07Cit1c2luZyBXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQ7Cit1
c2luZyBXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrOwordXNpbmcgV2ViQ29yZTo6R2Vv
cG9zaXRpb247Cit1c2luZyBXZWJDb3JlOjpQb3NpdGlvbkVycm9yOwordXNpbmcgV2ViQ29yZTo6
UG9zaXRpb25PcHRpb25zOwordXNpbmcgV2ViQ29yZTo6U3RyaW5nOworCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2sgOiBwdWJsaWMgR2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0sIHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQg
eworcHVibGljOgorICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZShHZW9sb2Nh
dGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQb3Np
dGlvbk9wdGlvbnMqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7CisgICAgdmly
dHVhbCBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBQb3Np
dGlvbkVycm9yKiBsYXN0RXJyb3IoKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBnZW9sb2Nh
dGlvblNlcnZpY2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25TZXJ2aWNlKik7CisgICAgdmly
dHVhbCB2b2lkIGdlb2xvY2F0aW9uU2VydmljZUVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2
aWNlKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW1Nb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworCisgICAgR2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50KiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudDsKKyAgICBPd25QdHI8R2VvbG9j
YXRpb25TZXJ2aWNlPiBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2s7Cit9OworCitHZW9sb2NhdGlv
blNlcnZpY2UqIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6Y3JlYXRlKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCogZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KQoreworICAgIHJldHVy
biBuZXcgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrKGdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCk7Cit9CisKK0dlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6R2VvbG9jYXRpb25T
ZXJ2aWNlQ2hyb21pdW1Nb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogZ2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50KQorICAgIDogR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0oZ2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50KSwKKyAgICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KGdlb2xv
Y2F0aW9uU2VydmljZUNsaWVudCkKK3sKKyAgICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlTW9jay5z
ZXQoR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlKHRoaXMpKTsKK30KKworYm9vbCBHZW9s
b2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6OnN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25z
KiBwb3NpdGlvbk9wdGlvbnMpCit7CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW06OnN0
YXJ0VXBkYXRpbmcocG9zaXRpb25PcHRpb25zKTsKKyAgICByZXR1cm4gbV9nZW9sb2NhdGlvblNl
cnZpY2VNb2NrLT5zdGFydFVwZGF0aW5nKHBvc2l0aW9uT3B0aW9ucyk7Cit9CisKK3ZvaWQgR2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpzdG9wVXBkYXRpbmcoKQoreworICAgIEdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtOjpzdG9wVXBkYXRpbmcoKTsKKyAgICBtX2dlb2xvY2F0aW9u
U2VydmljZU1vY2stPnN0b3BVcGRhdGluZygpOworfQorCitHZW9wb3NpdGlvbiogR2VvbG9jYXRp
b25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpsYXN0UG9zaXRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2stPmxhc3RQb3NpdGlvbigpOworfQorCitQb3NpdGlv
bkVycm9yKiBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6Omxhc3RFcnJvcigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZ2VvbG9jYXRpb25TZXJ2aWNlTW9jay0+bGFzdEVycm9yKCk7Cit9
CisKK3ZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpnZW9sb2NhdGlvblNlcnZp
Y2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBnZW9sb2NhdGlvblNlcnZpY2Up
Cit7CisgICAgQVNTRVJUX1VOVVNFRChnZW9sb2NhdGlvblNlcnZpY2UsIGdlb2xvY2F0aW9uU2Vy
dmljZSA9PSBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2spOworICAgIG1fZ2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2VQb3NpdGlvbkNoYW5nZWQodGhpcyk7CisKK30K
Kwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6Omdlb2xvY2F0aW9uU2Vydmlj
ZUVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBnZW9sb2NhdGlvblNlcnZpY2UpCit7
CisgICAgQVNTRVJUX1VOVVNFRChnZW9sb2NhdGlvblNlcnZpY2UsIGdlb2xvY2F0aW9uU2Vydmlj
ZSA9PSBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2spOworICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKHRoaXMpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkdlb2xv
Y2F0aW9uU2VydmljZU1vY2s6OnVzZUdlb2xvY2F0aW9uU2VydmljZU1vY2soKQoreworICAgIFdl
YkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9ja0ZhY3RvcnkoJldlYkNvcmU6Okdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6Y3JlYXRlKTsKK30KKwordm9pZCBXZWJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1
ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKK3sKKyAgICBSZWZQdHI8R2Vv
cG9zaXRpb24+IGdlb3Bvc2l0aW9uID0gR2VvcG9zaXRpb246OmNyZWF0ZShDb29yZGluYXRlczo6
Y3JlYXRlKGxhdGl0dWRlLCBsb25naXR1ZGUsIGZhbHNlLCAwLCBhY2N1cmFjeSwgdHJ1ZSwgMCwg
ZmFsc2UsIDAsIGZhbHNlLCAwKSwgY3VycmVudFRpbWUoKSAqIDEwMDAuMCk7CisgICAgR2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6c2V0UG9zaXRpb24oZ2VvcG9zaXRpb24pOworfQorCit2b2lkIFdl
Ykdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBlcnJv
ckNvZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBSZWZQdHI8UG9zaXRpb25F
cnJvcj4gcG9zaXRpb25FcnJvciA9IFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShzdGF0aWNfY2FzdDxQ
b3NpdGlvbkVycm9yOjpFcnJvckNvZGU+KGVycm9yQ29kZSksIG1lc3NhZ2UpOworICAgIEdlb2xv
Y2F0aW9uU2VydmljZU1vY2s6OnNldEVycm9yKHBvc2l0aW9uRXJyb3IpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56071</attachid>
            <date>2010-05-14 08:29:09 -0700</date>
            <delta_ts>2010-05-18 05:07:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39081-20100514162907.patch</filename>
            <type>text/plain</type>
            <size>14737</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTQxODU1OGMzMTNhODU4OTBhMGYyZTkyZjc2ZjczMzVhZWQwMGI4Mi4uNzY4Yjk3YmFmZTIzYjY1
MmRmNDE2NmVmMjc1YjE5MDM5ZTk4OTI2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGRzIHN1cHBvcnRzIGZvciBs
YXlvdXQgdGVzdHMgdXNpbmcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDgxCisKKyAgICAgICAgQWxsb3dz
IGluamVjdGlvbiBvZiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZhY3RvcnkuCisKKyAgICAgICAg
VGVzdHM6IGV4aXN0aW5nIGZhc3QvZG9tL0dlb2xvY2F0aW9uLyoKKworICAgICAgICAqIHBsYXRm
b3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2U6OnVzZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNl
Ojp1c2VNb2NrRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW06Okdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtKToKKwogMjAxMC0wNS0xNCAgR2VvcmdlIFdyaWdodCAg
PGd3cmlnaHRAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAppbmRleCA0Njc2MDA2ODFmMWE1
MDYzOTYwNzczYzU5NGI0NGE3YWViMWNmZDIxLi5lMmNlNWU1NTk4ZDlmZTE2MGE1YjZmNjdhNjQ4
NWI3YTgxNGM4YTkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2Vy
dmljZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCkBA
IC00NCw2ICs0NCw4IEBAIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2UqIGNyZWF0ZUdlb2xvY2F0
aW9uU2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50CiBHZW9sb2NhdGlvblNlcnZp
Y2U6OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5jdGlv
biA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsOwogI2VuZGlmCiAKK0dlb2xvY2F0aW9u
U2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfbW9ja0ZhY3Rv
cnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGU7CisKIEdlb2xvY2F0
aW9uU2VydmljZSogR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuICgqc19mYWN0b3J5RnVuY3Rpb24pKGNsaWVu
dCk7CkBAIC01Miw3ICs1NCwxMiBAQCBHZW9sb2NhdGlvblNlcnZpY2UqIEdlb2xvY2F0aW9uU2Vy
dmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQogI2lmIEVOQUJM
RShHRU9MT0NBVElPTikKIHZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlOjp1c2VNb2NrKCkKIHsKLSAg
ICBzX2ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGU7Cisg
ICAgc19mYWN0b3J5RnVuY3Rpb24gPSBzX21vY2tGYWN0b3J5RnVuY3Rpb247Cit9CisKK3ZvaWQg
R2VvbG9jYXRpb25TZXJ2aWNlOjpzZXRDdXN0b21Nb2NrRmFjdG9yeShGYWN0b3J5RnVuY3Rpb24g
ZikKK3sKKyAgICBzX21vY2tGYWN0b3J5RnVuY3Rpb24gPSBmOwogfQogCiBHZW9sb2NhdGlvblNl
cnZpY2U6Okdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVu
dCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCmluZGV4IDQzOTA0OTYxZGVmNjEy
YWU1YzNhNDkyMDliY2I3NDUxOWNlZDdhZGIuLjE1ODVmNjVlNGFmMWM1YzQ3NGNkMDE2NjE3ZDRj
MzllYzVkNTQ4ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaApAQCAtNjAs
NiArNjAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlcnJvck9jY3VycmVkKCk7CiAKICAgICBzdGF0
aWMgdm9pZCB1c2VNb2NrKCk7CisgICAgdHlwZWRlZiBHZW9sb2NhdGlvblNlcnZpY2UqIChGYWN0
b3J5RnVuY3Rpb24pKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOworICAgIHN0YXRpYyB2b2lk
IHNldEN1c3RvbU1vY2tGYWN0b3J5KEZhY3RvcnlGdW5jdGlvbik7CiAKIHByb3RlY3RlZDoKICAg
ICBHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CkBAIC02OCw4
ICs3MCw4IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2xp
ZW50KiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudDsKIAotICAgIHR5cGVkZWYgR2VvbG9jYXRp
b25TZXJ2aWNlKiAoRmFjdG9yeUZ1bmN0aW9uKShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsK
ICAgICBzdGF0aWMgRmFjdG9yeUZ1bmN0aW9uKiBzX2ZhY3RvcnlGdW5jdGlvbjsKKyAgICBzdGF0
aWMgRmFjdG9yeUZ1bmN0aW9uKiBzX21vY2tGYWN0b3J5RnVuY3Rpb247CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwCmluZGV4IDQ0MDJmZTRjZjgzOWU5NTQyMjUx
ODlmZTIxZTEwODgxMzk2YjQ0NTIuLjkzMzM5OTk3NDM2NWM0MGRkMTkyZGVmNmNlYmMzYzIzYWIy
YjI0MzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25T
ZXJ2aWNlQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9j
YXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW06Okdlb2xvY2F0aW9uU2VydmljZUNo
cm9taXVtKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogYykKICAgICAgICAgOiBHZW9sb2NhdGlv
blNlcnZpY2UoYyksCi0gICAgICAgICAgbV9nZW9sb2NhdGlvbihyZWludGVycHJldF9jYXN0PEdl
b2xvY2F0aW9uKj4oYykpLAorICAgICAgICAgIG1fZ2VvbG9jYXRpb24oc3RhdGljX2Nhc3Q8R2Vv
bG9jYXRpb24qPihjKSksCiAgICAgICAgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UoQ2hy
b21pdW1CcmlkZ2U6OmNyZWF0ZUdlb2xvY2F0aW9uU2VydmljZUJyaWRnZSh0aGlzKSksCiAgICAg
ICAgICAgbV9sYXN0RXJyb3IoUG9zaXRpb25FcnJvcjo6Y3JlYXRlKFBvc2l0aW9uRXJyb3I6OlBP
U0lUSU9OX1VOQVZBSUxBQkxFLCAiIikpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5ZDZjOWY2ZmE2ZmYw
ZTk0MzA2MDJhZDYyY2NmODczNmIxODY5YmU3Li5hZWUyYWRjZTU3MDg0ZWQ4Yjk4ZGMyNTZhMTNh
NGJmYjI1OGNiMDcxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wNS0xMyAg
TWFyY3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGRzIHN1cHBvcnRzIGZv
ciBsYXlvdXQgdGVzdHMgdXNpbmcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jay4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDgxCisKKyAgICAgICAgQWxs
b3dzIGluamVjdGlvbiBvZiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZhY3RvcnkuCisgICAgICAg
IFRlc3RzOiBleGlzdGluZyBmYXN0L2RvbS9HZW9sb2NhdGlvbi8qCisKKyAgICAgICAgKiBXZWJL
aXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmg6IEFk
ZGVkLgorICAgICAgICAqIHNyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6Okdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jayk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2Nh
dGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpzdG9wVXBkYXRpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpsYXN0UG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpsYXN0
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2Nr
OjpnZW9sb2NhdGlvblNlcnZpY2VQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpnZW9sb2NhdGlvblNlcnZpY2VFcnJvck9j
Y3VycmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6dXNl
R2VvbG9jYXRpb25TZXJ2aWNlTW9jayk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgor
CiAyMDEwLTA1LTEzICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGE4ZGFiMDkyZWU3OTNi
OTU3NjZhMTcyYmExZjhjMGQ2NmM1ZTFlZjkuLjQ3ZWMyMmE0MDVmNjY2NGQwZTYzY2VlNWE0NTBl
MTNiOGI2YTZhMmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMjYsNiArMTI2LDcgQEAKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkZvcm1FbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkds
eXBoQ2FjaGUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJHTEVTMkNvbnRleHQuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oJywKQEAgLTMz
Nyw2ICszMzgsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViRnJhbWVJbXBsLmgnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbC5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlSW1wbC5oJywK
KyAgICAgICAgICAgICAgICAnc3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYkdseXBoQ2FjaGUuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkdyYXBoaWNzQ29udGV4dDNELmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJH
cmFwaGljc0NvbnRleHQzRERlZmF1bHRJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxODdmNTk1
OTRlOWU5MDI0MmY2ODI3Y2Y1ZTEzOGUwMzVlODYwOWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9ja19oCisjZGVmaW5lIFdlYkdl
b2xvY2F0aW9uU2VydmljZU1vY2tfaAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
U3RyaW5nOworCitjbGFzcyBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgdm9pZCB1c2VHZW9sb2NhdGlvblNlcnZpY2VNb2NrKCk7CisgICAgc3RhdGljIHZv
aWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9u
Z2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOworICAgIHN0YXRpYyB2b2lkIHNldE1vY2tHZW9sb2Nh
dGlvbkVycm9yKGludCBlcnJvckNvZGUsIGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSk7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2tfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJHZW9sb2NhdGlvblNl
cnZpY2VNb2NrLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg2YTI3ZDc0MWMxNTBkMmNhZWJjZjg4NWViNjEzNmRlN2U0
M2VjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRp
b25TZXJ2aWNlTW9jay5jcHAKQEAgLTAsMCArMSwxNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIgorCisjaW5jbHVkZSAiR2VvbG9j
YXRpb25TZXJ2aWNlLmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uaCIK
KyNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5n
LmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKKyNpZiBFTkFCTEUoR0VPTE9DQVRJ
T04pCisKK3VzaW5nIFdlYkNvcmU6OkNvb3JkaW5hdGVzOwordXNpbmcgV2ViQ29yZTo6RnJhbWU7
Cit1c2luZyBXZWJDb3JlOjpHZW9sb2NhdGlvbjsKK3VzaW5nIFdlYkNvcmU6Okdlb2xvY2F0aW9u
U2VydmljZUJyaWRnZTsKK3VzaW5nIFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVt
OwordXNpbmcgV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OwordXNpbmcgV2ViQ29y
ZTo6R2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKK3VzaW5nIFdlYkNvcmU6Okdlb3Bvc2l0aW9uOwor
dXNpbmcgV2ViQ29yZTo6UG9zaXRpb25FcnJvcjsKK3VzaW5nIFdlYkNvcmU6OlBvc2l0aW9uT3B0
aW9uczsKK3VzaW5nIFdlYkNvcmU6OlN0cmluZzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrIDogcHVibGljIEdlb2xvY2F0aW9uU2Vy
dmljZUNocm9taXVtLCBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50Kik7CisgICAgdmlydHVhbCBib29sIHN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25z
Kik7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOworICAgIHZpcnR1YWwgR2VvcG9z
aXRpb24qIGxhc3RQb3NpdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgUG9zaXRpb25FcnJvciog
bGFzdEVycm9yKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNl
UG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSopOworICAgIHZpcnR1YWwgdm9pZCBn
ZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKEdlb2xvY2F0aW9uU2VydmljZSopOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jayhHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKworICAgIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCog
bV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQ7CisgICAgT3duUHRyPEdlb2xvY2F0aW9uU2Vydmlj
ZT4gbV9nZW9sb2NhdGlvblNlcnZpY2VNb2NrOworfTsKKworR2VvbG9jYXRpb25TZXJ2aWNlKiBH
ZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQqIGdlb2xvY2F0aW9uU2VydmljZUNsaWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtTW9jayhnZW9sb2NhdGlvblNlcnZpY2VDbGllbnQpOworfQor
CitHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6Okdlb2xvY2F0aW9uU2VydmljZUNocm9t
aXVtTW9jayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCkKKyAgICA6IEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtKGdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCksCisgICAgICBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChnZW9sb2NhdGlvblNlcnZp
Y2VDbGllbnQpCit7CisgICAgICBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2suc2V0KEdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OmNyZWF0ZSh0aGlzKSk7Cit9CisKK2Jvb2wgR2VvbG9jYXRpb25TZXJ2
aWNlQ2hyb21pdW1Nb2NrOjpzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyogcG9zaXRpb25P
cHRpb25zKQoreworICAgIEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtOjpzdGFydFVwZGF0aW5n
KHBvc2l0aW9uT3B0aW9ucyk7CisgICAgcmV0dXJuIG1fZ2VvbG9jYXRpb25TZXJ2aWNlTW9jay0+
c3RhcnRVcGRhdGluZyhwb3NpdGlvbk9wdGlvbnMpOworfQorCit2b2lkIEdlb2xvY2F0aW9uU2Vy
dmljZUNocm9taXVtTW9jazo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBHZW9sb2NhdGlvblNlcnZp
Y2VDaHJvbWl1bTo6c3RvcFVwZGF0aW5nKCk7CisgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VNb2Nr
LT5zdG9wVXBkYXRpbmcoKTsKK30KKworR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uU2VydmljZUNo
cm9taXVtTW9jazo6bGFzdFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9nZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLT5sYXN0UG9zaXRpb24oKTsKK30KKworUG9zaXRpb25FcnJvciogR2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpsYXN0RXJyb3IoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2stPmxhc3RFcnJvcigpOworfQorCit2b2lkIEdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25D
aGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSogZ2VvbG9jYXRpb25TZXJ2aWNlKQoreworICAgIEFT
U0VSVF9VTlVTRUQoZ2VvbG9jYXRpb25TZXJ2aWNlLCBnZW9sb2NhdGlvblNlcnZpY2UgPT0gbV9n
ZW9sb2NhdGlvblNlcnZpY2VNb2NrKTsKKyAgICBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudC0+
Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKHRoaXMpOworCit9CisKK3ZvaWQgR2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpnZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3Vy
cmVkKEdlb2xvY2F0aW9uU2VydmljZSogZ2VvbG9jYXRpb25TZXJ2aWNlKQoreworICAgIEFTU0VS
VF9VTlVTRUQoZ2VvbG9jYXRpb25TZXJ2aWNlLCBnZW9sb2NhdGlvblNlcnZpY2UgPT0gbV9nZW9s
b2NhdGlvblNlcnZpY2VNb2NrKTsKKyAgICBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudC0+Z2Vv
bG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZCh0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjp1c2VHZW9sb2NhdGlvblNlcnZpY2VNb2NrKCkKK3sKKyAgICBXZWJDb3JlOjpHZW9s
b2NhdGlvblNlcnZpY2U6OnNldEN1c3RvbU1vY2tGYWN0b3J5KCZXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bU1vY2s6OmNyZWF0ZSk7CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25T
ZXJ2aWNlOjp1c2VNb2NrKCk7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0
dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBnZW9wb3Np
dGlvbiA9IEdlb3Bvc2l0aW9uOjpjcmVhdGUoQ29vcmRpbmF0ZXM6OmNyZWF0ZShsYXRpdHVkZSwg
bG9uZ2l0dWRlLCBmYWxzZSwgMCwgYWNjdXJhY3ksIHRydWUsIDAsIGZhbHNlLCAwLCBmYWxzZSwg
MCksIGN1cnJlbnRUaW1lKCkgKiAxMDAwLjApOworICAgIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6
OnNldFBvc2l0aW9uKGdlb3Bvc2l0aW9uKTsKK30KKwordm9pZCBXZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWJT
dHJpbmcmIG1lc3NhZ2UpCit7CisgICAgUmVmUHRyPFBvc2l0aW9uRXJyb3I+IHBvc2l0aW9uRXJy
b3IgPSBQb3NpdGlvbkVycm9yOjpjcmVhdGUoc3RhdGljX2Nhc3Q8UG9zaXRpb25FcnJvcjo6RXJy
b3JDb2RlPihlcnJvckNvZGUpLCBtZXNzYWdlKTsKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OjpzZXRFcnJvcihwb3NpdGlvbkVycm9yKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56363</attachid>
            <date>2010-05-18 05:08:05 -0700</date>
            <delta_ts>2010-05-19 10:38:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39081-20100518130803.patch</filename>
            <type>text/plain</type>
            <size>14610</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzViY2ZjY2IyOTQwNjZjOTZiNjViMThhOWQ5NTZhNjY2M2NjY2JjMC4uODY1OGYxMTBlNTdkYjFh
NjQ3NDA0YTQyYzMwNmEwNmNhZTcxMGI5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGRzIHN1cHBvcnRzIGZvciBs
YXlvdXQgdGVzdHMgdXNpbmcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jay4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDgxCisKKyAgICAgICAgQWxsb3dz
IGluamVjdGlvbiBvZiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrIGZhY3RvcnkuCisKKyAgICAgICAg
VGVzdHM6IGV4aXN0aW5nIGZhc3QvZG9tL0dlb2xvY2F0aW9uLyoKKworICAgICAgICAqIHBsYXRm
b3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
blNlcnZpY2U6OnVzZU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNl
Ojp1c2VNb2NrRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNl
Lmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW06Okdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtKToKKwogMjAxMC0wNS0xOCAgRXJpYyBTZWlkZWwgIDxl
cmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKaW5kZXggNDY3NjAwNjgxZjFhNTA2Mzk2MDc3
M2M1OTRiNDRhN2FlYjFjZmQyMS4uZTJjZTVlNTU5OGQ5ZmUxNjBhNWI2ZjY3YTY0ODViN2E4MTRj
OGE5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcApAQCAtNDQsNiAr
NDQsOCBAQCBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlKiBjcmVhdGVHZW9sb2NhdGlvblNlcnZp
Y2VOdWxsKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudAogR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0
b3J5RnVuY3Rpb24qIEdlb2xvY2F0aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmY3Jl
YXRlR2VvbG9jYXRpb25TZXJ2aWNlTnVsbDsKICNlbmRpZgogCitHZW9sb2NhdGlvblNlcnZpY2U6
OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX21vY2tGYWN0b3J5RnVuY3Rp
b24gPSAmR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlOworCiBHZW9sb2NhdGlvblNlcnZp
Y2UqIEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCog
Y2xpZW50KQogewogICAgIHJldHVybiAoKnNfZmFjdG9yeUZ1bmN0aW9uKShjbGllbnQpOwpAQCAt
NTIsNyArNTQsMTIgQEAgR2VvbG9jYXRpb25TZXJ2aWNlKiBHZW9sb2NhdGlvblNlcnZpY2U6OmNy
ZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKICNpZiBFTkFCTEUoR0VPTE9D
QVRJT04pCiB2b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jaygpCiB7Ci0gICAgc19mYWN0
b3J5RnVuY3Rpb24gPSAmR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlOworICAgIHNfZmFj
dG9yeUZ1bmN0aW9uID0gc19tb2NrRmFjdG9yeUZ1bmN0aW9uOworfQorCit2b2lkIEdlb2xvY2F0
aW9uU2VydmljZTo6c2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0aW9uIGYpCit7Cisg
ICAgc19tb2NrRmFjdG9yeUZ1bmN0aW9uID0gZjsKIH0KIAogR2VvbG9jYXRpb25TZXJ2aWNlOjpH
ZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAppbmRleCA0MzkwNDk2MWRlZjYxMmFlNWMzYTQ5
MjA5YmNiNzQ1MTljZWQ3YWRiLi4xNTg1ZjY1ZTRhZjFjNWM0NzRjZDAxNjYxN2Q0YzM5ZWM1ZDU0
OGZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmgKQEAgLTYwLDYgKzYwLDgg
QEAgcHVibGljOgogICAgIHZvaWQgZXJyb3JPY2N1cnJlZCgpOwogCiAgICAgc3RhdGljIHZvaWQg
dXNlTW9jaygpOworICAgIHR5cGVkZWYgR2VvbG9jYXRpb25TZXJ2aWNlKiAoRmFjdG9yeUZ1bmN0
aW9uKShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRDdXN0
b21Nb2NrRmFjdG9yeShGYWN0b3J5RnVuY3Rpb24pOwogCiBwcm90ZWN0ZWQ6CiAgICAgR2VvbG9j
YXRpb25TZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOwpAQCAtNjgsOCArNzAsOCBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogbV9n
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQ7CiAKLSAgICB0eXBlZGVmIEdlb2xvY2F0aW9uU2Vydmlj
ZSogKEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7CiAgICAgc3Rh
dGljIEZhY3RvcnlGdW5jdGlvbiogc19mYWN0b3J5RnVuY3Rpb247CisgICAgc3RhdGljIEZhY3Rv
cnlGdW5jdGlvbiogc19tb2NrRmFjdG9yeUZ1bmN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0
aW9uU2VydmljZUNocm9taXVtLmNwcAppbmRleCA0NDAyZmU0Y2Y4MzllOTU0MjI1MTg5ZmUyMWUx
MDg4MTM5NmI0NDUyLi45MzMzOTk5NzQzNjVjNDBkZDE5MmRlZjZjZWJjM2MyM2FiMmIyNDM3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2VydmljZUNo
cm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlb2xvY2F0aW9uU2Vy
dmljZUNocm9taXVtLmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtOjpHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bShH
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGMpCiAgICAgICAgIDogR2VvbG9jYXRpb25TZXJ2aWNl
KGMpLAotICAgICAgICAgIG1fZ2VvbG9jYXRpb24ocmVpbnRlcnByZXRfY2FzdDxHZW9sb2NhdGlv
bio+KGMpKSwKKyAgICAgICAgICBtX2dlb2xvY2F0aW9uKHN0YXRpY19jYXN0PEdlb2xvY2F0aW9u
Kj4oYykpLAogICAgICAgICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlKENocm9taXVtQnJp
ZGdlOjpjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2UodGhpcykpLAogICAgICAgICAgIG1f
bGFzdEVycm9yKFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShQb3NpdGlvbkVycm9yOjpQT1NJVElPTl9V
TkFWQUlMQUJMRSwgIiIpKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNmVmYzhlNWE5ZDQ4NGQ3ODYwYTRh
ODUzYzdhODYzMmFkOWRmZTQ2My4uMGZmMTNiZTA3MGJkZGNkMGEzN2M1NTU0NTRhMjFjZmEzN2I4
ZTIwNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDUtMTMgIE1hcmN1cyBC
dWxhY2ggIDxidWxhY2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkcyBzdXBwb3J0cyBmb3IgbGF5b3V0
IHRlc3RzIHVzaW5nIEdlb2xvY2F0aW9uU2VydmljZU1vY2suCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA4MQorCisgICAgICAgIEFsbG93cyBpbmpl
Y3Rpb24gb2YgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayBmYWN0b3J5LgorICAgICAgICBUZXN0czog
ZXhpc3RpbmcgZmFzdC9kb20vR2VvbG9jYXRpb24vKgorCisgICAgICAgICogV2ViS2l0Lmd5cDoK
KyAgICAgICAgKiBwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOiBBZGRlZC4KKyAg
ICAgICAgKiBzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpHZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bU1vY2spOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlQ2hyb21pdW1Nb2NrOjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xv
Y2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6bGFzdFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6bGFzdEVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6Z2VvbG9j
YXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0
aW9uU2VydmljZUNocm9taXVtTW9jazo6Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jazo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgorCiAyMDEwLTA1LTE2ICBNaWtlIEJlbHNo
ZSAgPG1iZWxzaGVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOGFjNWE5MDdmNzFlNDlmMmMwOTViNzI4NzA3NThh
MmZiNDg1NzY4Ni4uMWFhZGYzNDllMzA5ZDNmYjdmYjQ5M2IxMDJjNTU0ZWQwMmE5NmVjZCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKQEAgLTEyNiw2ICsxMjYsNyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViRm9ybUVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlv
blNlcnZpY2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZp
Y2VCcmlkZ2UuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2x5cGhDYWNoZS5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYkdMRVMyQ29udGV4dC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgnLApAQCAtMzM3LDYgKzMzOCw3IEBACiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJGcmFtZUltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJHZW9sb2NhdGlvblNlcnZpY2VCcmlkZ2VJbXBsLmgnLAorICAgICAgICAgICAgICAg
ICdzcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViR2x5cGhDYWNoZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViR3JhcGhpY3ND
b250ZXh0M0QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkdyYXBoaWNzQ29udGV4dDNE
RGVmYXVsdEltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZW9s
b2NhdGlvblNlcnZpY2VNb2NrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY5YmM1NmY3YmU0YTJhYTIxOTI2N2Qz
ZmUxZjk2NWI4NDUyZTZjNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKKyNkZWZpbmUgV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9ja19oCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNz
IFdlYkdlb2xvY2F0aW9uU2VydmljZU1vY2sgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIHNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
X2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViR2VvbG9jYXRpb25TZXJ2aWNl
TW9jay5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9uU2VydmljZU1vY2su
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZlZjc0ZTZkNWNmMDJhMTFhYTk4MWU5ZjY0Zjk0ODcxMjI5MTM3MmQK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkdlb2xvY2F0aW9uU2Vy
dmljZU1vY2suY3BwCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKKworI2luY2x1ZGUgIkdlb2xvY2F0aW9u
U2VydmljZS5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtLmgiCisjaW5j
bHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQor
Cit1c2luZyBXZWJDb3JlOjpDb29yZGluYXRlczsKK3VzaW5nIFdlYkNvcmU6OkZyYW1lOwordXNp
bmcgV2ViQ29yZTo6R2VvbG9jYXRpb247Cit1c2luZyBXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZp
Y2VCcmlkZ2U7Cit1c2luZyBXZWJDb3JlOjpHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bTsKK3Vz
aW5nIFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNsaWVudDsKK3VzaW5nIFdlYkNvcmU6Okdl
b2xvY2F0aW9uU2VydmljZU1vY2s7Cit1c2luZyBXZWJDb3JlOjpHZW9wb3NpdGlvbjsKK3VzaW5n
IFdlYkNvcmU6OlBvc2l0aW9uRXJyb3I7Cit1c2luZyBXZWJDb3JlOjpQb3NpdGlvbk9wdGlvbnM7
Cit1c2luZyBXZWJDb3JlOjpTdHJpbmc7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdl
b2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jayA6IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VD
aHJvbWl1bSwgcHVibGljIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCB7CitwdWJsaWM6CisgICAg
c3RhdGljIEdlb2xvY2F0aW9uU2VydmljZSogY3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCopOworICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyopOwor
ICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2aXJ0dWFsIEdlb3Bvc2l0aW9u
KiBsYXN0UG9zaXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBvc2l0aW9uRXJyb3IqIGxhc3RF
cnJvcigpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uU2VydmljZVBvc2l0
aW9uQ2hhbmdlZChHZW9sb2NhdGlvblNlcnZpY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9j
YXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKTsKKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1vY2soR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50Kik7CisKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1fZ2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50OworICAgIE93blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IG1f
Z2VvbG9jYXRpb25TZXJ2aWNlTW9jazsKK307CisKK0dlb2xvY2F0aW9uU2VydmljZSogR2VvbG9j
YXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
KiBnZW9sb2NhdGlvblNlcnZpY2VDbGllbnQpCit7CisgICAgcmV0dXJuIG5ldyBHZW9sb2NhdGlv
blNlcnZpY2VDaHJvbWl1bU1vY2soZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KTsKK30KKworR2Vv
bG9jYXRpb25TZXJ2aWNlQ2hyb21pdW1Nb2NrOjpHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bU1v
Y2soR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBnZW9sb2NhdGlvblNlcnZpY2VDbGllbnQpCisg
ICAgOiBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bShnZW9sb2NhdGlvblNlcnZpY2VDbGllbnQp
LAorICAgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQoZ2VvbG9jYXRpb25TZXJ2aWNlQ2xp
ZW50KQoreworICAgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VNb2NrLnNldChHZW9sb2NhdGlvblNl
cnZpY2VNb2NrOjpjcmVhdGUodGhpcykpOworfQorCitib29sIEdlb2xvY2F0aW9uU2VydmljZUNo
cm9taXVtTW9jazo6c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqIHBvc2l0aW9uT3B0aW9u
cykKK3sKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bTo6c3RhcnRVcGRhdGluZyhwb3Np
dGlvbk9wdGlvbnMpOworICAgIHJldHVybiBtX2dlb2xvY2F0aW9uU2VydmljZU1vY2stPnN0YXJ0
VXBkYXRpbmcocG9zaXRpb25PcHRpb25zKTsKK30KKwordm9pZCBHZW9sb2NhdGlvblNlcnZpY2VD
aHJvbWl1bU1vY2s6OnN0b3BVcGRhdGluZygpCit7CisgICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2hy
b21pdW06OnN0b3BVcGRhdGluZygpOworICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlTW9jay0+c3Rv
cFVwZGF0aW5nKCk7Cit9CisKK0dlb3Bvc2l0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1
bU1vY2s6Omxhc3RQb3NpdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZ2VvbG9jYXRpb25T
ZXJ2aWNlTW9jay0+bGFzdFBvc2l0aW9uKCk7Cit9CisKK1Bvc2l0aW9uRXJyb3IqIEdlb2xvY2F0
aW9uU2VydmljZUNocm9taXVtTW9jazo6bGFzdEVycm9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9nZW9sb2NhdGlvblNlcnZpY2VNb2NrLT5sYXN0RXJyb3IoKTsKK30KKwordm9pZCBHZW9sb2Nh
dGlvblNlcnZpY2VDaHJvbWl1bU1vY2s6Omdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdl
ZChHZW9sb2NhdGlvblNlcnZpY2UqIGdlb2xvY2F0aW9uU2VydmljZSkKK3sKKyAgICBBU1NFUlRf
VU5VU0VEKGdlb2xvY2F0aW9uU2VydmljZSwgZ2VvbG9jYXRpb25TZXJ2aWNlID09IG1fZ2VvbG9j
YXRpb25TZXJ2aWNlTW9jayk7CisgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQtPmdlb2xv
Y2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZCh0aGlzKTsKKworfQorCit2b2lkIEdlb2xvY2F0
aW9uU2VydmljZUNocm9taXVtTW9jazo6Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChH
ZW9sb2NhdGlvblNlcnZpY2UqIGdlb2xvY2F0aW9uU2VydmljZSkKK3sKKyAgICBBU1NFUlRfVU5V
U0VEKGdlb2xvY2F0aW9uU2VydmljZSwgZ2VvbG9jYXRpb25TZXJ2aWNlID09IG1fZ2VvbG9jYXRp
b25TZXJ2aWNlTW9jayk7CisgICAgbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQtPmdlb2xvY2F0
aW9uU2VydmljZUVycm9yT2NjdXJyZWQodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
azo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9u
Z2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCit7CisgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2
aWNlOjpzZXRDdXN0b21Nb2NrRmFjdG9yeSgmV2ViQ29yZTo6R2VvbG9jYXRpb25TZXJ2aWNlQ2hy
b21pdW1Nb2NrOjpjcmVhdGUpOworICAgIFJlZlB0cjxHZW9wb3NpdGlvbj4gZ2VvcG9zaXRpb24g
PSBHZW9wb3NpdGlvbjo6Y3JlYXRlKENvb3JkaW5hdGVzOjpjcmVhdGUobGF0aXR1ZGUsIGxvbmdp
dHVkZSwgZmFsc2UsIDAsIGFjY3VyYWN5LCB0cnVlLCAwLCBmYWxzZSwgMCwgZmFsc2UsIDApLCBj
dXJyZW50VGltZSgpICogMTAwMC4wKTsKKyAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRQ
b3NpdGlvbihnZW9wb3NpdGlvbik7Cit9CisKK3ZvaWQgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9j
azo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgV2ViU3RyaW5n
JiBtZXNzYWdlKQoreworICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZTo6c2V0Q3VzdG9t
TW9ja0ZhY3RvcnkoJldlYkNvcmU6Okdlb2xvY2F0aW9uU2VydmljZUNocm9taXVtTW9jazo6Y3Jl
YXRlKTsKKyAgICBSZWZQdHI8UG9zaXRpb25FcnJvcj4gcG9zaXRpb25FcnJvciA9IFBvc2l0aW9u
RXJyb3I6OmNyZWF0ZShzdGF0aWNfY2FzdDxQb3NpdGlvbkVycm9yOjpFcnJvckNvZGU+KGVycm9y
Q29kZSksIG1lc3NhZ2UpOworICAgIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldEVycm9yKHBv
c2l0aW9uRXJyb3IpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShHRU9MT0NBVElPTikK
</data>

          </attachment>
      

    </bug>

</bugzilla>