<?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>44599</bug_id>
          
          <creation_ts>2010-08-25 04:45:27 -0700</creation_ts>
          <short_desc>Add IndexedDB objects&apos; constructors to window</short_desc>
          <delta_ts>2010-09-05 09:23:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45044</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>bulach</cc>
    
    <cc>eric</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269154</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-25 04:45:27 -0700</bug_when>
    <thetext>Add IndexedDB objects&apos; constructors to window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269156</commentid>
    <comment_count>1</comment_count>
      <attachid>65397</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-25 04:52:28 -0700</bug_when>
    <thetext>Created attachment 65397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269169</commentid>
    <comment_count>2</comment_count>
      <attachid>65397</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-08-25 05:13:32 -0700</bug_when>
    <thetext>Comment on attachment 65397
Patch

Can you explain why we want these constructors on the window object?

Also, this patch seems to remove IDBkeyRange. I think you should at least mention that in the ChangeLog.

WebCore/bindings/generic/RuntimeEnabledFeatures.h:59

 +      static bool iDBCursorEnabled() { return isIndexedDBEnabled; }
The capitalization here is weird, but I guess you have no control over that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269182</commentid>
    <comment_count>3</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-08-25 05:40:19 -0700</bug_when>
    <thetext>Are you sure that adding the IDB*Constructors gives us access to interface objects. For example, can we still call IDBKeyRange.leftBound(...) ? I think the constructor is just an function and doesn&apos;t have any of the interface members. I think you can do IDBKeyRange.prototype.leftBound() but that throws when called that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269184</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-25 05:42:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 65397 [details])
&gt; Can you explain why we want these constructors on the window object?

You need this to access the constant definitions (like IDBDatabaseException.UNKNOWN_ERR).  You often need to access them without access to an instantiated object of that type.  This has been discussed on list extensively, and this is the way forward that was decided on.

Also, this is what&apos;s done for the majority of interfaces.

&gt; Also, this patch seems to remove IDBkeyRange. I think you should at least mention that in the ChangeLog.

It&apos;s still there, just done differently.
 
&gt; WebCore/bindings/generic/RuntimeEnabledFeatures.h:59
&gt; 
&gt;  +      static bool iDBCursorEnabled() { return isIndexedDBEnabled; }
&gt; The capitalization here is weird, but I guess you have no control over that?

Nope, no control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269208</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-25 06:26:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Are you sure that adding the IDB*Constructors gives us access to interface objects. For example, can we still call IDBKeyRange.leftBound(...) ? I think the constructor is just an function and doesn&apos;t have any of the interface members. I think you can do IDBKeyRange.prototype.leftBound() but that throws when called that way.

Looking into it.  This is probably a spec issue, actually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269223</commentid>
    <comment_count>6</comment_count>
      <attachid>65397</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-08-25 07:05:09 -0700</bug_when>
    <thetext>Comment on attachment 65397
Patch

r- until details are sorted out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273385</commentid>
    <comment_count>7</comment_count>
      <attachid>66369</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-02 07:42:48 -0700</bug_when>
    <thetext>Created attachment 66369
Ready for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273865</commentid>
    <comment_count>8</comment_count>
      <attachid>66369</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-03 04:33:22 -0700</bug_when>
    <thetext>Comment on attachment 66369
Ready for review

&gt; [V8Static] IDBKeyRange bound(in IDBKey left, in IDBKey right, in [Optional] boolean openLeft, in [Optional] boolean
So presumably this is what makes these properties available only on window.IDBKeyRange, not on an instance? I assume it doesn&apos;t work for JSC? What&apos;s the plan for JSC?

I think you should be adding all these new tests to the GTK Skipped list individually - it doesn&apos;t allow entire directories to be skipped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273870</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-03 04:45:36 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 66369 [details])
&gt; &gt; [V8Static] IDBKeyRange bound(in IDBKey left, in IDBKey right, in [Optional] boolean openLeft, in [Optional] boolean
&gt; So presumably this is what makes these properties available only on window.IDBKeyRange, not on an instance? 

Yes.

&gt; I assume it doesn&apos;t work for JSC? What&apos;s the plan for JSC?

As stated in the changeLog, the plan is to implement this at some point.  But given that no one in JSC land seems to care about IndexedDB yet, there&apos;s a large amount of work required to serialize JSC SerializedScriptValues to a wire format, that blocks us being able to test IndexedDB on JSC, and implementing this for JSC would just be dead code sitting around, I don&apos;t think doing it now makes sense.
 
&gt; I think you should be adding all these new tests to the GTK Skipped list individually - it doesn&apos;t allow entire directories to be skipped.

Are you sure?  I haven&apos;t heard any complaints from them thus far or ever seen anything about this on webkit-dev.  If so, are they planning on implementing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273871</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-03 04:46:32 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 66369 [details] [details])
&gt; &gt; &gt; [V8Static] IDBKeyRange bound(in IDBKey left, in IDBKey right, in [Optional] boolean openLeft, in [Optional] boolean
&gt; &gt; So presumably this is what makes these properties available only on window.IDBKeyRange, not on an instance? 
&gt; 
&gt; Yes.
&gt; 
&gt; &gt; I assume it doesn&apos;t work for JSC? What&apos;s the plan for JSC?
&gt; 
&gt; As stated in the changeLog, the plan is to implement this at some point.  But given that no one in JSC land seems to care about IndexedDB yet, there&apos;s a large amount of work required to serialize JSC SerializedScriptValues to a wire format, that blocks us being able to test IndexedDB on JSC, and implementing this for JSC would just be dead code sitting around, I don&apos;t think doing it now makes sense.

Sorry this was stated in the change log for the patch this depends on...which is what implements V8Static/V8ClassMethod.  I guess I could add a fixme here to make it more clear.

&gt; &gt; I think you should be adding all these new tests to the GTK Skipped list individually - it doesn&apos;t allow entire directories to be skipped.
&gt; 
&gt; Are you sure?  I haven&apos;t heard any complaints from them thus far or ever seen anything about this on webkit-dev.  If so, are they planning on implementing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273884</commentid>
    <comment_count>11</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-03 04:53:59 -0700</bug_when>
    <thetext>&gt; Are you sure?  I haven&apos;t heard any complaints from them thus far or ever seen
&gt; anything about this on webkit-dev.
Take a look at the comment at the top of LayoutTests/platform/gtk/Skipped. Maybe skipping directories works, but you&apos;re not supposed to do so. That&apos;s what I was told when adding Geolocation tests.

&gt; Sorry this was stated in the change log for the patch this depends on...which
&gt; is what implements V8Static/V8ClassMethod.  I guess I could add a fixme here to
&gt; make it more clear.
That would be good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273897</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-03 05:51:29 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Are you sure?  I haven&apos;t heard any complaints from them thus far or ever seen
&gt; &gt; anything about this on webkit-dev.
&gt; Take a look at the comment at the top of LayoutTests/platform/gtk/Skipped. Maybe skipping directories works, but you&apos;re not supposed to do so. That&apos;s what I was told when adding Geolocation tests.

I started a thread on webkit-dev about this.  What&apos;s there now (a blanket exception for the directory) works fine, so I think it&apos;s fine until the policy is made clear.  In which case I can change it in another CL.

&gt; &gt; Sorry this was stated in the change log for the patch this depends on...which
&gt; &gt; is what implements V8Static/V8ClassMethod.  I guess I could add a fixme here to
&gt; &gt; make it more clear.
&gt; That would be good

Next patch will have this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273901</commentid>
    <comment_count>13</comment_count>
      <attachid>66485</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-03 06:03:28 -0700</bug_when>
    <thetext>Created attachment 66485
with comment + s/Static/ClassMethod/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273915</commentid>
    <comment_count>14</comment_count>
      <attachid>66485</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-09-03 06:54:06 -0700</bug_when>
    <thetext>Comment on attachment 66485
with comment + s/Static/ClassMethod/

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274432</commentid>
    <comment_count>15</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-09-05 08:10:07 -0700</bug_when>
    <thetext>landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274437</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-05 09:23:50 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66802 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65397</attachid>
            <date>2010-08-25 04:52:28 -0700</date>
            <delta_ts>2010-09-02 07:42:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44599-20100825125226.patch</filename>
            <type>text/plain</type>
            <size>6831</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2MzMzVhM2I4MzJkMjQ2M2UxYmMxMDIwYzRlNDFmMTM4OTlmYTNjNC4uMTI4OWNjYzhlYzNmMjM3
NGI0ZmQwZDIwMGQ5MzVhYzNkODU5ZTY2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wOC0yNSAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSW5kZXhlZERCIG9iamVjdHMnIGNvbnN0cnVj
dG9ycyB0byB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ0NTk5CisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgY292ZXIgdGhpcy4gIFdpbGwg
dXBkYXRlIGV4cGVjdGF0aW9ucyB1cG9uIGxhbmRpbmcuCisKKyAgICAgICAgKiBiaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmlEQkN1cnNvckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCRGF0YWJhc2VFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNlRXJyb3JFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNlRXhj
ZXB0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjppREJFcnJvckV2ZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjppREJFdmVudEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVu
YWJsZWRGZWF0dXJlczo6aURCRmFjdG9yeUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6aURCSW5kZXhFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQktleVJhbmdlRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJPYmplY3RTdG9yZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCUmVxdWVzdEVuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCU3VjY2Vz
c0V2ZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjppREJUcmFuc2FjdGlvbkVuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjppbmRleGVkREIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEwLTA4LTI1ICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFq
aQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKaW5kZXggZmQ3MzA4ZThlZjdmZTA4YjBmZDlmYmNiNmQxMTQ5YzM1YzM4NWRmMy4uNDFiNWZk
NzE5ZmE1NTRiODUwM2QzMDgzMzcwMzM1MGM3OTY0OTdkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC01Niw3ICs1NiwxOSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJbmRleGVkREJFbmFibGVkKGJvb2wgaXNF
bmFibGVkKSB7IGlzSW5kZXhlZERCRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIHN0YXRpYyBi
b29sIGluZGV4ZWREQkVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KLSAg
ICBzdGF0aWMgYm9vbCBpREJLZXlSYW5nZUVuYWJsZWQoKSB7IHJldHVybiBpbmRleGVkREJFbmFi
bGVkKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpREJDdXJzb3JFbmFibGVkKCkgeyByZXR1cm4gaXNJ
bmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgaURCRGF0YWJhc2VFbmFibGVkKCkg
eyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgaURCRGF0YWJh
c2VFcnJvckVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KKyAgICBzdGF0
aWMgYm9vbCBpREJEYXRhYmFzZUV4Y2VwdGlvbkVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWRE
QkVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBpREJFcnJvckV2ZW50RW5hYmxlZCgpIHsgcmV0
dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQkV2ZW50RW5hYmxl
ZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQkZh
Y3RvcnlFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGlj
IGJvb2wgaURCSW5kZXhFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9Cisg
ICAgc3RhdGljIGJvb2wgaURCS2V5UmFuZ2VFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJF
bmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgaURCT2JqZWN0U3RvcmVFbmFibGVkKCkgeyByZXR1
cm4gaXNJbmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgaURCUmVxdWVzdEVuYWJs
ZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBpREJT
dWNjZXNzRXZlbnRFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9CisgICAg
c3RhdGljIGJvb2wgaURCVHJhbnNhY3Rpb25FbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJF
bmFibGVkOyB9CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgc3RhdGljIGJvb2wgYXVkaW9FbmFi
bGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGFmNDNhNTUwZDE0NmQwZWYzNzFkM2FiYTM4ZmU2ZDdk
MmJhNTAyOTAuLmY1YzIxNGU0NGFkMjllYTRiNzU2MDQ0YTQ0NjJjYzMwMzlmMjVlYWIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC02MCw3ICs2MCw2IEBACiAjaW5jbHVkZSAiSGlzdG9yeS5oIgogI2luY2x1
ZGUgIklEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5o
IgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJMb2Nh
dGlvbi5oIgpAQCAtNDg3LDcgKzQ4Niw2IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBtX2lkYkZhY3RvcnkgPSAwOwotICAgIG1f
aWRiS2V5UmFuZ2UgPSAwOwogI2VuZGlmCiB9CiAKQEAgLTcwOSwxNCArNzA3LDYgQEAgSURCRmFj
dG9yeSogRE9NV2luZG93OjppbmRleGVkREIoKSBjb25zdAogICAgIG1faWRiRmFjdG9yeSA9IElE
QkZhY3Rvcnk6OmNyZWF0ZShwYWdlLT5ncm91cCgpLmlkYkZhY3RvcnkoKSk7CiAgICAgcmV0dXJu
IG1faWRiRmFjdG9yeS5nZXQoKTsKIH0KLQotSURCS2V5UmFuZ2UqIERPTVdpbmRvdzo6aURCS2V5
UmFuZ2UoKSBjb25zdAotewotICAgIGlmICghbV9pZGJLZXlSYW5nZSkKLSAgICAgICAgbV9pZGJL
ZXlSYW5nZSA9IElEQktleVJhbmdlOjpjcmVhdGUoMCwgMCwgMCk7Ci0KLSAgICByZXR1cm4gbV9p
ZGJLZXlSYW5nZS5nZXQoKTsKLX0KICNlbmRpZgogCiB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3Nh
Z2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0
KiBwb3J0LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4
Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDhkNTdkY2MxNGJmZjNkYzg1YTc3Njk4YWI3
MjdkNDhkOTNjMjVkZjkuLjI0NGIwOGMwNmU3YzExYjNmNTg2NmQ0M2IxYzdlMGEzNWE2MzYxYmYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKQEAgLTU0LDcgKzU0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIEZyYW1lOwogICAgIGNsYXNzIEhpc3Rvcnk7CiAgICAgY2xhc3MgSURCRmFjdG9yeTsKLSAg
ICBjbGFzcyBJREJLZXlSYW5nZTsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50Owog
ICAgIGNsYXNzIExvY2F0aW9uOwogICAgIGNsYXNzIFN0eWxlTWVkaWE7CkBAIC0yMzMsNyArMjMy
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAgICAgICAgIElEQkZhY3RvcnkqIGluZGV4ZWREQigpIGNvbnN0OwotICAgICAgICBJREJLZXlS
YW5nZSogaURCS2V5UmFuZ2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgcG9zdE1l
c3NhZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1l
c3NhZ2VQb3J0QXJyYXkqLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBz
b3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTQyNiw3ICs0MjQsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8SURCRmFjdG9yeT4gbV9pZGJGYWN0b3J5OwotICAgICAgICBtdXRhYmxlIFJl
ZlB0cjxJREJLZXlSYW5nZT4gbV9pZGJLZXlSYW5nZTsKICNlbmRpZgogCiAgICAgICAgIEV2ZW50
VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggMTliY2JlZTZl
YjI5YjFhZDM2YTNhNThhMDgwMWY3ZjE1Yjc3MGQ5Ni4uMGQ4YThmMDZkN2Q3NGIwMjUwOTZmZTE5
NzBhM2ZiZGM0MDQ5ZDgwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwK
KysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTE3NCw3ICsxNzQsMjAgQEAgbW9k
dWxlIHdpbmRvdyB7CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAmJiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
W0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZhY3RvcnkgaW5kZXhlZERCOwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQktleVJhbmdlIElEQktleVJhbmdlOwor
CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCQ3Vyc29yQ29uc3RydWN0
b3IgSURCQ3Vyc29yOworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkRh
dGFiYXNlQ29uc3RydWN0b3IgSURCRGF0YWJhc2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxl
ZEF0UnVudGltZV0gSURCRGF0YWJhc2VFcnJvckNvbnN0cnVjdG9yIElEQkRhdGFiYXNlRXJyb3I7
CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCRGF0YWJhc2VFeGNlcHRp
b25Db25zdHJ1Y3RvciBJREJEYXRhYmFzZUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtF
bmFibGVkQXRSdW50aW1lXSBJREJFcnJvckV2ZW50Q29uc3RydWN0b3IgSURCRXJyb3JFdmVudDsK
KyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJFdmVudENvbnN0cnVjdG9y
IElEQkV2ZW50OworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZhY3Rv
cnlDb25zdHJ1Y3RvciBJREJGYWN0b3J5OworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1
bnRpbWVdIElEQkluZGV4Q29uc3RydWN0b3IgSURCSW5kZXg7CisgICAgICAgIGF0dHJpYnV0ZSBb
RW5hYmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2VDb25zdHJ1Y3RvciBJREJLZXlSYW5nZTsKKyAg
ICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJPYmplY3RTdG9yZUNvbnN0cnVj
dG9yIElEQk9iamVjdFN0b3JlOworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVd
IElEQlJlcXVlc3RDb25zdHJ1Y3RvciBJREJSZXF1ZXN0OworICAgICAgICBhdHRyaWJ1dGUgW0Vu
YWJsZWRBdFJ1bnRpbWVdIElEQlN1Y2Nlc3NFdmVudENvbnN0cnVjdG9yIElEQlN1Y2Nlc3NFdmVu
dDsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJUcmFuc2FjdGlvbkNv
bnN0cnVjdG9yIElEQlRyYW5zYWN0aW9uOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMpICYmIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMK
</data>
<flag name="review"
          id="54178"
          type_id="1"
          status="-"
          setter="jorlow"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66369</attachid>
            <date>2010-09-02 07:42:48 -0700</date>
            <delta_ts>2010-09-03 06:03:28 -0700</delta_ts>
            <desc>Ready for review</desc>
            <filename>b</filename>
            <type>text/plain</type>
            <size>16644</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYzBiNThjLi44NGFhMjgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDkt
MDIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEluZGV4ZWREQiBvYmplY3RzJyBj
b25zdHJ1Y3RvcnMgdG8gd2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDU5OQorCisgICAgICAgIEJlZWYgdXAga2V5UmFuZ2UgdGVzdCB0byB2
ZXJpZnkgd2UncmUgYWN0dWFseSBvcGVyYXRpbmcKKyAgICAgICAgb24gdGhlIGludGVyZmFjZSBy
YXRoZXIgdGhhbiBhbiBpbnN0YW5jZS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIHZlcmlmeSB0
aGUgY29uc3RhbnRzLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2tleXJhbmdlLmpzOgorICAgICAg
ICAoKToKKwogMjAxMC0wOC0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY0NzY1NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNSBAQAorVGVzdCBJbmRleGVkREIncyBjb25zdGFudHMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIElEQktleVJhbmdlLlNJTkdMRSBpcyAwCitQQVNTIElE
QktleVJhbmdlLkxFRlRfT1BFTiBpcyAxCitQQVNTIElEQktleVJhbmdlLlJJR0hUX09QRU4gaXMg
MgorUEFTUyBJREJLZXlSYW5nZS5MRUZUX0JPVU5EIGlzIDQKK1BBU1MgSURCS2V5UmFuZ2UuUklH
SFRfQk9VTkQgaXMgOAorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5VTktOT1dOX0VSUiBpcyAw
CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSIGlzIDEKK1BBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiBpcyAyCitQQVNTIElEQkRhdGFiYXNl
RXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSIGlzIDMKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24u
REFUQV9FUlIgaXMgNAorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIg
aXMgNQorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5TRVJJQUxfRVJSIGlzIDExCitQQVNTIElE
QkRhdGFiYXNlRXhjZXB0aW9uLlJFQ09WRVJBQkxFX0VSUiBpcyAyMQorUEFTUyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5UUkFOU0lFTlRfRVJSIGlzIDMxCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9u
LlRJTUVPVVRfRVJSIGlzIDMyCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRFQURMT0NLX0VS
UiBpcyAzMworUEFTUyBJREJSZXF1ZXN0LkxPQURJTkcgaXMgMQorUEFTUyBJREJSZXF1ZXN0LkRP
TkUgaXMgMgorUEFTUyBJREJDdXJzb3IuTkVYVCBpcyAwCitQQVNTIElEQkN1cnNvci5ORVhUX05P
X0RVUExJQ0FURSBpcyAxCitQQVNTIElEQkN1cnNvci5QUkVWIGlzIDIKK1BBU1MgSURCQ3Vyc29y
LlBSRVZfTk9fRFVQTElDQVRFIGlzIDMKK1BBU1MgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSBp
cyAwCitQQVNTIElEQlRyYW5zYWN0aW9uLlJFQURfT05MWSBpcyAxCitQQVNTIElEQlRyYW5zYWN0
aW9uLlNOQVBTSE9UX1JFQUQgaXMgMgorUEFTUyBJREJUcmFuc2FjdGlvbi5WRVJTSU9OX0NIQU5H
RSBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDI0OTE3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0bWwKQEAgLTAsMCArMSw1
OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY29uc3RhbnRz
LiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBzaG91
bGRCZSgiSURCS2V5UmFuZ2UuU0lOR0xFIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiSURCS2V5UmFu
Z2UuTEVGVF9PUEVOIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiSURCS2V5UmFuZ2UuUklHSFRfT1BF
TiIsICIyIik7CisgICAgc2hvdWxkQmUoIklEQktleVJhbmdlLkxFRlRfQk9VTkQiLCAiNCIpOwor
ICAgIHNob3VsZEJlKCJJREJLZXlSYW5nZS5SSUdIVF9CT1VORCIsICI4Iik7CisKKyAgICBzaG91
bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIiLCAiMCIpOworICAgIHNob3Vs
ZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiIsICIxIik7CisgICAg
c2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiLCAiMiIpOworICAg
IHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIsICIzIik7Cisg
ICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIjQiKTsKKyAgICBz
aG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIiwgIjUiKTsKKyAg
ICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uU0VSSUFMX0VSUiIsICIxMSIpOworICAg
IHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUNPVkVSQUJMRV9FUlIiLCAiMjEiKTsK
KyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNJRU5UX0VSUiIsICIzMSIp
OworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIsICIzMiIp
OworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5ERUFETE9DS19FUlIiLCAiMzMi
KTsKKworICAgIHNob3VsZEJlKCJJREJSZXF1ZXN0LkxPQURJTkciLCAiMSIpOworICAgIHNob3Vs
ZEJlKCJJREJSZXF1ZXN0LkRPTkUiLCAiMiIpOworCisgICAgc2hvdWxkQmUoIklEQkN1cnNvci5O
RVhUIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFRfTk9fRFVQTElDQVRFIiwg
IjEiKTsKKyAgICBzaG91bGRCZSgiSURCQ3Vyc29yLlBSRVYiLCAiMiIpOworICAgIHNob3VsZEJl
KCJJREJDdXJzb3IuUFJFVl9OT19EVVBMSUNBVEUiLCAiMyIpOworCisgICAgc2hvdWxkQmUoIklE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUiLCAiMCIpOworICAgIHNob3VsZEJlKCJJREJUcmFuc2Fj
dGlvbi5SRUFEX09OTFkiLCAiMSIpOworICAgIHNob3VsZEJlKCJJREJUcmFuc2FjdGlvbi5TTkFQ
U0hPVF9SRUFEIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiSURCVHJhbnNhY3Rpb24uVkVSU0lPTl9D
SEFOR0UiLCAiMyIpOworfQorCit0ZXN0KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworZG9uZSgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLWV4cGVjdGVkLnR4dAppbmRleCBh
NTEwYTgwLi42NTI4YTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9rZXlyYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMzMgQEAgVGVzdCBJbmRleGVkREIn
cyBLZXlSYW5nZS4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitQQVNTICdTSU5HTEUn
IGluIElEQktleVJhbmdlIGlzIHRydWUKK1BBU1MgJ0xFRlRfT1BFTicgaW4gSURCS2V5UmFuZ2Ug
aXMgdHJ1ZQorUEFTUyAnUklHSFRfT1BFTicgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQorUEFTUyAn
TEVGVF9CT1VORCcgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQorUEFTUyAnUklHSFRfQk9VTkQnIGlu
IElEQktleVJhbmdlIGlzIHRydWUKK1BBU1MgJ2xlZnQnIGluIElEQktleVJhbmdlIGlzIGZhbHNl
CitQQVNTICdyaWdodCcgaW4gSURCS2V5UmFuZ2UgaXMgZmFsc2UKK1BBU1MgJ2ZsYWdzJyBpbiBJ
REJLZXlSYW5nZSBpcyBmYWxzZQorUEFTUyAnb25seScgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQor
UEFTUyAnbGVmdEJvdW5kJyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCitQQVNTICdyaWdodEJvdW5k
JyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCitQQVNTICdib3VuZCcgaW4gSURCS2V5UmFuZ2UgaXMg
dHJ1ZQorCitpbnN0YW5jZSA9IElEQktleVJhbmdlLm9ubHkoMSkKK1BBU1MgJ1NJTkdMRScgaW4g
aW5zdGFuY2UgaXMgdHJ1ZQorUEFTUyAnTEVGVF9PUEVOJyBpbiBpbnN0YW5jZSBpcyB0cnVlCitQ
QVNTICdSSUdIVF9PUEVOJyBpbiBpbnN0YW5jZSBpcyB0cnVlCitQQVNTICdMRUZUX0JPVU5EJyBp
biBpbnN0YW5jZSBpcyB0cnVlCitQQVNTICdSSUdIVF9CT1VORCcgaW4gaW5zdGFuY2UgaXMgdHJ1
ZQorUEFTUyAnbGVmdCcgaW4gaW5zdGFuY2UgaXMgdHJ1ZQorUEFTUyAncmlnaHQnIGluIGluc3Rh
bmNlIGlzIHRydWUKK1BBU1MgJ2ZsYWdzJyBpbiBpbnN0YW5jZSBpcyB0cnVlCitQQVNTICdvbmx5
JyBpbiBpbnN0YW5jZSBpcyBmYWxzZQorUEFTUyAnbGVmdEJvdW5kJyBpbiBpbnN0YW5jZSBpcyBm
YWxzZQorUEFTUyAncmlnaHRCb3VuZCcgaW4gaW5zdGFuY2UgaXMgZmFsc2UKK1BBU1MgJ2JvdW5k
JyBpbiBpbnN0YW5jZSBpcyBmYWxzZQorCiBJREJLZXlSYW5nZS5vbmx5KDEpCiBQQVNTIGtleVJh
bmdlLmxlZnQgaXMgMQogUEFTUyBrZXlSYW5nZS5yaWdodCBpcyAxCkBAIC0xMTcsMyArMTQ0LDQg
QEAgUEFTUyByaWdodEZsYWdzIGlzIGtleVJhbmdlLlJJR0hUX09QRU4gfCBrZXlSYW5nZS5SSUdI
VF9CT1VORAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0
cy9rZXlyYW5nZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0
cy9rZXlyYW5nZS5qcwppbmRleCA5MDdkODE3Li5hNWI1OGY0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMva2V5cmFuZ2UuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2tleXJhbmdlLmpzCkBAIC0z
OSw2ICszOSwzNyBAQCBmdW5jdGlvbiBjaGVja0JvdW5kS2V5UmFuZ2UobGVmdCwgcmlnaHQsIG9w
ZW5MZWZ0LCBvcGVuUmlnaHQpCiAKIGZ1bmN0aW9uIHRlc3QoKQogeworICAgIHNob3VsZEJlVHJ1
ZSgiJ1NJTkdMRScgaW4gSURCS2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidMRUZUX09Q
RU4nIGluIElEQktleVJhbmdlIik7CisgICAgc2hvdWxkQmVUcnVlKCInUklHSFRfT1BFTicgaW4g
SURCS2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidMRUZUX0JPVU5EJyBpbiBJREJLZXlS
YW5nZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ1JJR0hUX0JPVU5EJyBpbiBJREJLZXlSYW5nZSIp
OworICAgIHNob3VsZEJlRmFsc2UoIidsZWZ0JyBpbiBJREJLZXlSYW5nZSIpOworICAgIHNob3Vs
ZEJlRmFsc2UoIidyaWdodCcgaW4gSURCS2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZUZhbHNlKCIn
ZmxhZ3MnIGluIElEQktleVJhbmdlIik7CisgICAgc2hvdWxkQmVUcnVlKCInb25seScgaW4gSURC
S2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidsZWZ0Qm91bmQnIGluIElEQktleVJhbmdl
Iik7CisgICAgc2hvdWxkQmVUcnVlKCIncmlnaHRCb3VuZCcgaW4gSURCS2V5UmFuZ2UiKTsKKyAg
ICBzaG91bGRCZVRydWUoIidib3VuZCcgaW4gSURCS2V5UmFuZ2UiKTsKKworICAgIGRlYnVnKCIi
KTsKKworICAgIHZhciBpbnN0YW5jZSA9IGV2YWxBbmRMb2coImluc3RhbmNlID0gSURCS2V5UmFu
Z2Uub25seSgxKSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ1NJTkdMRScgaW4gaW5zdGFuY2UiKTsK
KyAgICBzaG91bGRCZVRydWUoIidMRUZUX09QRU4nIGluIGluc3RhbmNlIik7CisgICAgc2hvdWxk
QmVUcnVlKCInUklHSFRfT1BFTicgaW4gaW5zdGFuY2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidM
RUZUX0JPVU5EJyBpbiBpbnN0YW5jZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ1JJR0hUX0JPVU5E
JyBpbiBpbnN0YW5jZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ2xlZnQnIGluIGluc3RhbmNlIik7
CisgICAgc2hvdWxkQmVUcnVlKCIncmlnaHQnIGluIGluc3RhbmNlIik7CisgICAgc2hvdWxkQmVU
cnVlKCInZmxhZ3MnIGluIGluc3RhbmNlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiJ29ubHknIGlu
IGluc3RhbmNlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiJ2xlZnRCb3VuZCcgaW4gaW5zdGFuY2Ui
KTsKKyAgICBzaG91bGRCZUZhbHNlKCIncmlnaHRCb3VuZCcgaW4gaW5zdGFuY2UiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCInYm91bmQnIGluIGluc3RhbmNlIik7CisKKyAgICBkZWJ1ZygiIik7CisK
ICAgICBjaGVja1NpbmdsZUtleVJhbmdlKDEpOwogICAgIGNoZWNrU2luZ2xlS2V5UmFuZ2UoIidh
JyIpOwogCkBAIC02OCw2ICs5OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGNoZWNrQm91bmRL
ZXlSYW5nZSgiJ2FhZCciLCAiJ2FiZCciLCBmYWxzZSwgdHJ1ZSk7CiAgICAgY2hlY2tCb3VuZEtl
eVJhbmdlKCInYWFlJyIsICInYWJlJyIsIHRydWUsIGZhbHNlKTsKICAgICBjaGVja0JvdW5kS2V5
UmFuZ2UoIidhYWYnIiwgIidhYmYnIiwgdHJ1ZSwgdHJ1ZSk7CisKIH0KIAogdGVzdCgpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4M2Zh
ODA2Li5kNjhiMTQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMiw2ICsyLDQwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAKKyAgICAgICAgQWRkIEluZGV4ZWREQiBvYmplY3RzJyBjb25zdHJ1Y3RvcnMg
dG8gd2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NDU5OQorCisgICAgICAgIEFsc28gYWRkIGEgZm9yZ290dGVuIGNvbnN0YW50IHRvIElEQlRy
YW5zYWN0aW9uLCBhbmQKKyAgICAgICAgY2hhbmdlIElEQktleVJhbmdlIG92ZXIgdG8gdXNpbmcg
dGhlIFY4U3RhdGljIGF0dHJpYnV0ZQorICAgICAgICBzbyBpdCBhY3R1YWxseSBiZWhhdmVzIGFz
IGl0J3Mgc3VwcG9zZWQgdG8uCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OmlEQkN1cnNvckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6aURCRGF0YWJhc2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNlRXJyb3JFbmFibGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNlRXhjZXB0aW9uRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJFcnJvckV2ZW50
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJF
dmVudEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6
aURCRmFjdG9yeUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0
dXJlczo6aURCSW5kZXhFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmlEQktleVJhbmdlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjppREJPYmplY3RTdG9yZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCUmVxdWVzdEVuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCU3VjY2Vzc0V2ZW50RW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJUcmFuc2FjdGlv
bkVuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjppbmRl
eGVkREIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2UuaWRsOgorICAgICAgICAq
IHN0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0
aW9uLmlkbDoKKworMjAxMC0wOS0wMiAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBBZGQg
dGhlIGNvbmNlcHQgb2YgInN0YXRpYyIgbWV0aG9kcyB0byBiaW5kaW5ncyAoZm9yIEluZGV4ZWRE
QidzIElEQktleVJhbmdlKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1MDQ0CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGNjNTUzNjQuLjRhMmZmM2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtNTYsNyAr
NTYsMTkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2V0SW5kZXhlZERCRW5hYmxlZChi
b29sIGlzRW5hYmxlZCkgeyBpc0luZGV4ZWREQkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBz
dGF0aWMgYm9vbCBpbmRleGVkREJFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVk
OyB9Ci0gICAgc3RhdGljIGJvb2wgaURCS2V5UmFuZ2VFbmFibGVkKCkgeyByZXR1cm4gaW5kZXhl
ZERCRW5hYmxlZCgpOyB9CisgICAgc3RhdGljIGJvb2wgaURCQ3Vyc29yRW5hYmxlZCgpIHsgcmV0
dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQkRhdGFiYXNlRW5h
YmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlE
QkRhdGFiYXNlRXJyb3JFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9Cisg
ICAgc3RhdGljIGJvb2wgaURCRGF0YWJhc2VFeGNlcHRpb25FbmFibGVkKCkgeyByZXR1cm4gaXNJ
bmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgaURCRXJyb3JFdmVudEVuYWJsZWQo
KSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBpREJFdmVu
dEVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9v
bCBpREJGYWN0b3J5RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAg
IHN0YXRpYyBib29sIGlEQkluZGV4RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxl
ZDsgfQorICAgIHN0YXRpYyBib29sIGlEQktleVJhbmdlRW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5k
ZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQk9iamVjdFN0b3JlRW5hYmxlZCgp
IHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQlJlcXVl
c3RFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJv
b2wgaURCU3VjY2Vzc0V2ZW50RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsg
fQorICAgIHN0YXRpYyBib29sIGlEQlRyYW5zYWN0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5k
ZXhlZERCRW5hYmxlZDsgfQogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHN0YXRpYyBib29sIGF1
ZGlvRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhNmU4YjQwLi42ZWYyZmUyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtNjAsNyArNjAsNiBAQAogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRl
ICJJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIK
LSNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgpAQCAtNDg5LDcgKzQ4OCw2IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBtX2lkYkZhY3RvcnkgPSAwOwotICAgIG1faWRiS2V5
UmFuZ2UgPSAwOwogI2VuZGlmCiB9CiAKQEAgLTcxMSwxNCArNzA5LDYgQEAgSURCRmFjdG9yeSog
RE9NV2luZG93OjppbmRleGVkREIoKSBjb25zdAogICAgIG1faWRiRmFjdG9yeSA9IElEQkZhY3Rv
cnk6OmNyZWF0ZShwYWdlLT5ncm91cCgpLmlkYkZhY3RvcnkoKSk7CiAgICAgcmV0dXJuIG1faWRi
RmFjdG9yeS5nZXQoKTsKIH0KLQotSURCS2V5UmFuZ2UqIERPTVdpbmRvdzo6aURCS2V5UmFuZ2Uo
KSBjb25zdAotewotICAgIGlmICghbV9pZGJLZXlSYW5nZSkKLSAgICAgICAgbV9pZGJLZXlSYW5n
ZSA9IElEQktleVJhbmdlOjpjcmVhdGUoMCwgMCwgMCk7Ci0KLSAgICByZXR1cm4gbV9pZGJLZXlS
YW5nZS5nZXQoKTsKLX0KICNlbmRpZgogCiB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiBwb3J0
LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDlhNjMxNWYuLmRmMDI5YWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTU1LDcgKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZyYW1lOwogICAg
IGNsYXNzIEhpc3Rvcnk7CiAgICAgY2xhc3MgSURCRmFjdG9yeTsKLSAgICBjbGFzcyBJREJLZXlS
YW5nZTsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAgIGNsYXNzIExvY2F0
aW9uOwogICAgIGNsYXNzIFN0eWxlTWVkaWE7CkBAIC0yMzUsNyArMjM0LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgICAgIElEQkZh
Y3RvcnkqIGluZGV4ZWREQigpIGNvbnN0OwotICAgICAgICBJREJLZXlSYW5nZSogaURCS2V5UmFu
Z2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkq
LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlv
bkNvZGUmKTsKQEAgLTQzMyw3ICs0MzEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8SURC
RmFjdG9yeT4gbV9pZGJGYWN0b3J5OwotICAgICAgICBtdXRhYmxlIFJlZlB0cjxJREJLZXlSYW5n
ZT4gbV9pZGJLZXlSYW5nZTsKICNlbmRpZgogCiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2
ZW50VGFyZ2V0RGF0YTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggODRjMjEwOC4uMjg3Njk0NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKQEAgLTE3NCw3ICsxNzQsMjAgQEAgbW9kdWxlIHdpbmRvdyB7CiAjZW5kaWYKICNp
ZiBkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZh
Y3RvcnkgaW5kZXhlZERCOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1
bnRpbWVdIElEQktleVJhbmdlIElEQktleVJhbmdlOworCisgICAgICAgIGF0dHJpYnV0ZSBbRW5h
YmxlZEF0UnVudGltZV0gSURCQ3Vyc29yQ29uc3RydWN0b3IgSURCQ3Vyc29yOworICAgICAgICBh
dHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkRhdGFiYXNlQ29uc3RydWN0b3IgSURCRGF0
YWJhc2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCRGF0YWJhc2VF
cnJvckNvbnN0cnVjdG9yIElEQkRhdGFiYXNlRXJyb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5h
YmxlZEF0UnVudGltZV0gSURCRGF0YWJhc2VFeGNlcHRpb25Db25zdHJ1Y3RvciBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJFcnJv
ckV2ZW50Q29uc3RydWN0b3IgSURCRXJyb3JFdmVudDsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFi
bGVkQXRSdW50aW1lXSBJREJFdmVudENvbnN0cnVjdG9yIElEQkV2ZW50OworICAgICAgICBhdHRy
aWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZhY3RvcnlDb25zdHJ1Y3RvciBJREJGYWN0b3J5
OworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkluZGV4Q29uc3RydWN0
b3IgSURCSW5kZXg7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCS2V5
UmFuZ2VDb25zdHJ1Y3RvciBJREJLZXlSYW5nZTsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVk
QXRSdW50aW1lXSBJREJPYmplY3RTdG9yZUNvbnN0cnVjdG9yIElEQk9iamVjdFN0b3JlOworICAg
ICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQlJlcXVlc3RDb25zdHJ1Y3RvciBJ
REJSZXF1ZXN0OworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQlN1Y2Nl
c3NFdmVudENvbnN0cnVjdG9yIElEQlN1Y2Nlc3NFdmVudDsKKyAgICAgICAgYXR0cmlidXRlIFtF
bmFibGVkQXRSdW50aW1lXSBJREJUcmFuc2FjdGlvbkNvbnN0cnVjdG9yIElEQlRyYW5zYWN0aW9u
OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJL
ZXlSYW5nZS5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2UuaWRsCmluZGV4IDZkYWFl
YzEuLmNmZWJlNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5pZGwK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmlkbApAQCAtMzksMTAgKzM5LDEwIEBA
IG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQktleSByaWdo
dDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGZsYWdzOwogCi0g
ICAgICAgIElEQktleVJhbmdlIG9ubHkoaW4gSURCS2V5IHZhbHVlKTsKLSAgICAgICAgSURCS2V5
UmFuZ2UgbGVmdEJvdW5kKGluIElEQktleSBib3VuZCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9w
ZW4pOwotICAgICAgICBJREJLZXlSYW5nZSByaWdodEJvdW5kKGluIElEQktleSBib3VuZCwgaW4g
W09wdGlvbmFsXSBib29sZWFuIG9wZW4pOwotICAgICAgICBJREJLZXlSYW5nZSBib3VuZChpbiBJ
REJLZXkgbGVmdCwgaW4gSURCS2V5IHJpZ2h0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3Blbkxl
ZnQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuUmlnaHQpOworICAgICAgICBbVjhTdGF0aWNd
IElEQktleVJhbmdlIG9ubHkoaW4gSURCS2V5IHZhbHVlKTsKKyAgICAgICAgW1Y4U3RhdGljXSBJ
REJLZXlSYW5nZSBsZWZ0Qm91bmQoaW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gb3Blbik7CisgICAgICAgIFtWOFN0YXRpY10gSURCS2V5UmFuZ2UgcmlnaHRCb3VuZChpbiBJ
REJLZXkgYm91bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsKKyAgICAgICAgW1Y4U3Rh
dGljXSBJREJLZXlSYW5nZSBib3VuZChpbiBJREJLZXkgbGVmdCwgaW4gSURCS2V5IHJpZ2h0LCBp
biBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlbkxlZnQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVu
UmlnaHQpOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFu
c2FjdGlvbi5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgKaW5kZXggM2M3Zjlk
ZC4uMGQ2ZjNlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmgKQEAgLTU0LDcgKzU0LDggQEAg
cHVibGljOgogICAgIGVudW0gTW9kZSB7CiAgICAgICAgIFJFQURfV1JJVEUgPSAwLAogICAgICAg
ICBSRUFEX09OTFkgPSAxLAotICAgICAgICBTTkFQU0hPVF9SRUFEID0gMgorICAgICAgICBTTkFQ
U0hPVF9SRUFEID0gMiwKKyAgICAgICAgVkVSU0lPTl9DSEFOR0UgPSAzCiAgICAgfTsKIAogICAg
IHVuc2lnbmVkIHNob3J0IG1vZGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJUcmFuc2FjdGlvbi5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaWRs
CmluZGV4IGEzOTA3ZGMuLmNkZjlmNjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJU
cmFuc2FjdGlvbi5pZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmlkbApA
QCAtMzMsNiArMzMsOCBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFJFQURfV1JJVEUgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRUFE
X09OTFkgPSAxOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTTkFQU0hPVF9SRUFEID0g
MjsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVkVSU0lPTl9DSEFOR0UgPSAzOworCiAg
ICAgICAgIC8vIFByb3BlcnRpZXMKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IHNob3J0IG1vZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJEYXRhYmFzZSBkYjsK
</data>
<flag name="review"
          id="55375"
          type_id="1"
          status="-"
          setter="jorlow"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66485</attachid>
            <date>2010-09-03 06:03:28 -0700</date>
            <delta_ts>2010-09-03 06:54:06 -0700</delta_ts>
            <desc>with comment + s/Static/ClassMethod/</desc>
            <filename>a</filename>
            <type>text/plain</type>
            <size>16747</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYzBiNThjLi44NGFhMjgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDkt
MDIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEluZGV4ZWREQiBvYmplY3RzJyBj
b25zdHJ1Y3RvcnMgdG8gd2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDU5OQorCisgICAgICAgIEJlZWYgdXAga2V5UmFuZ2UgdGVzdCB0byB2
ZXJpZnkgd2UncmUgYWN0dWFseSBvcGVyYXRpbmcKKyAgICAgICAgb24gdGhlIGludGVyZmFjZSBy
YXRoZXIgdGhhbiBhbiBpbnN0YW5jZS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIHZlcmlmeSB0
aGUgY29uc3RhbnRzLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0
bWw6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2tleXJhbmdlLmpzOgorICAgICAg
ICAoKToKKwogMjAxMC0wOC0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY0NzY1NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzNSBAQAorVGVzdCBJbmRleGVkREIncyBjb25zdGFudHMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIElEQktleVJhbmdlLlNJTkdMRSBpcyAwCitQQVNTIElE
QktleVJhbmdlLkxFRlRfT1BFTiBpcyAxCitQQVNTIElEQktleVJhbmdlLlJJR0hUX09QRU4gaXMg
MgorUEFTUyBJREJLZXlSYW5nZS5MRUZUX0JPVU5EIGlzIDQKK1BBU1MgSURCS2V5UmFuZ2UuUklH
SFRfQk9VTkQgaXMgOAorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5VTktOT1dOX0VSUiBpcyAw
CitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSIGlzIDEKK1BBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0ZPVU5EX0VSUiBpcyAyCitQQVNTIElEQkRhdGFiYXNl
RXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSIGlzIDMKK1BBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24u
REFUQV9FUlIgaXMgNAorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT1RfQUxMT1dFRF9FUlIg
aXMgNQorUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5TRVJJQUxfRVJSIGlzIDExCitQQVNTIElE
QkRhdGFiYXNlRXhjZXB0aW9uLlJFQ09WRVJBQkxFX0VSUiBpcyAyMQorUEFTUyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbi5UUkFOU0lFTlRfRVJSIGlzIDMxCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9u
LlRJTUVPVVRfRVJSIGlzIDMyCitQQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLkRFQURMT0NLX0VS
UiBpcyAzMworUEFTUyBJREJSZXF1ZXN0LkxPQURJTkcgaXMgMQorUEFTUyBJREJSZXF1ZXN0LkRP
TkUgaXMgMgorUEFTUyBJREJDdXJzb3IuTkVYVCBpcyAwCitQQVNTIElEQkN1cnNvci5ORVhUX05P
X0RVUExJQ0FURSBpcyAxCitQQVNTIElEQkN1cnNvci5QUkVWIGlzIDIKK1BBU1MgSURCQ3Vyc29y
LlBSRVZfTk9fRFVQTElDQVRFIGlzIDMKK1BBU1MgSURCVHJhbnNhY3Rpb24uUkVBRF9XUklURSBp
cyAwCitQQVNTIElEQlRyYW5zYWN0aW9uLlJFQURfT05MWSBpcyAxCitQQVNTIElEQlRyYW5zYWN0
aW9uLlNOQVBTSE9UX1JFQUQgaXMgMgorUEFTUyBJREJUcmFuc2FjdGlvbi5WRVJTSU9OX0NIQU5H
RSBpcyAzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDI0OTE3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY29uc3RhbnRzLmh0bWwKQEAgLTAsMCArMSw1
OCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY29uc3RhbnRz
LiIpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBzaG91
bGRCZSgiSURCS2V5UmFuZ2UuU0lOR0xFIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiSURCS2V5UmFu
Z2UuTEVGVF9PUEVOIiwgIjEiKTsKKyAgICBzaG91bGRCZSgiSURCS2V5UmFuZ2UuUklHSFRfT1BF
TiIsICIyIik7CisgICAgc2hvdWxkQmUoIklEQktleVJhbmdlLkxFRlRfQk9VTkQiLCAiNCIpOwor
ICAgIHNob3VsZEJlKCJJREJLZXlSYW5nZS5SSUdIVF9CT1VORCIsICI4Iik7CisKKyAgICBzaG91
bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIiLCAiMCIpOworICAgIHNob3Vs
ZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiIsICIxIik7CisgICAg
c2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiLCAiMiIpOworICAg
IHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIsICIzIik7Cisg
ICAgc2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIjQiKTsKKyAgICBz
aG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIiwgIjUiKTsKKyAg
ICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uU0VSSUFMX0VSUiIsICIxMSIpOworICAg
IHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUNPVkVSQUJMRV9FUlIiLCAiMjEiKTsK
KyAgICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNJRU5UX0VSUiIsICIzMSIp
OworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIsICIzMiIp
OworICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5ERUFETE9DS19FUlIiLCAiMzMi
KTsKKworICAgIHNob3VsZEJlKCJJREJSZXF1ZXN0LkxPQURJTkciLCAiMSIpOworICAgIHNob3Vs
ZEJlKCJJREJSZXF1ZXN0LkRPTkUiLCAiMiIpOworCisgICAgc2hvdWxkQmUoIklEQkN1cnNvci5O
RVhUIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFRfTk9fRFVQTElDQVRFIiwg
IjEiKTsKKyAgICBzaG91bGRCZSgiSURCQ3Vyc29yLlBSRVYiLCAiMiIpOworICAgIHNob3VsZEJl
KCJJREJDdXJzb3IuUFJFVl9OT19EVVBMSUNBVEUiLCAiMyIpOworCisgICAgc2hvdWxkQmUoIklE
QlRyYW5zYWN0aW9uLlJFQURfV1JJVEUiLCAiMCIpOworICAgIHNob3VsZEJlKCJJREJUcmFuc2Fj
dGlvbi5SRUFEX09OTFkiLCAiMSIpOworICAgIHNob3VsZEJlKCJJREJUcmFuc2FjdGlvbi5TTkFQ
U0hPVF9SRUFEIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiSURCVHJhbnNhY3Rpb24uVkVSU0lPTl9D
SEFOR0UiLCAiMyIpOworfQorCit0ZXN0KCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworZG9uZSgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLWV4cGVjdGVkLnR4dAppbmRleCBh
NTEwYTgwLi42NTI4YTExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9rZXlyYW5nZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsMzMgQEAgVGVzdCBJbmRleGVkREIn
cyBLZXlSYW5nZS4KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCitQQVNTICdTSU5HTEUn
IGluIElEQktleVJhbmdlIGlzIHRydWUKK1BBU1MgJ0xFRlRfT1BFTicgaW4gSURCS2V5UmFuZ2Ug
aXMgdHJ1ZQorUEFTUyAnUklHSFRfT1BFTicgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQorUEFTUyAn
TEVGVF9CT1VORCcgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQorUEFTUyAnUklHSFRfQk9VTkQnIGlu
IElEQktleVJhbmdlIGlzIHRydWUKK1BBU1MgJ2xlZnQnIGluIElEQktleVJhbmdlIGlzIGZhbHNl
CitQQVNTICdyaWdodCcgaW4gSURCS2V5UmFuZ2UgaXMgZmFsc2UKK1BBU1MgJ2ZsYWdzJyBpbiBJ
REJLZXlSYW5nZSBpcyBmYWxzZQorUEFTUyAnb25seScgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQor
UEFTUyAnbGVmdEJvdW5kJyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCitQQVNTICdyaWdodEJvdW5k
JyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCitQQVNTICdib3VuZCcgaW4gSURCS2V5UmFuZ2UgaXMg
dHJ1ZQorCitpbnN0YW5jZSA9IElEQktleVJhbmdlLm9ubHkoMSkKK1BBU1MgJ1NJTkdMRScgaW4g
aW5zdGFuY2UgaXMgdHJ1ZQorUEFTUyAnTEVGVF9PUEVOJyBpbiBpbnN0YW5jZSBpcyB0cnVlCitQ
QVNTICdSSUdIVF9PUEVOJyBpbiBpbnN0YW5jZSBpcyB0cnVlCitQQVNTICdMRUZUX0JPVU5EJyBp
biBpbnN0YW5jZSBpcyB0cnVlCitQQVNTICdSSUdIVF9CT1VORCcgaW4gaW5zdGFuY2UgaXMgdHJ1
ZQorUEFTUyAnbGVmdCcgaW4gaW5zdGFuY2UgaXMgdHJ1ZQorUEFTUyAncmlnaHQnIGluIGluc3Rh
bmNlIGlzIHRydWUKK1BBU1MgJ2ZsYWdzJyBpbiBpbnN0YW5jZSBpcyB0cnVlCitQQVNTICdvbmx5
JyBpbiBpbnN0YW5jZSBpcyBmYWxzZQorUEFTUyAnbGVmdEJvdW5kJyBpbiBpbnN0YW5jZSBpcyBm
YWxzZQorUEFTUyAncmlnaHRCb3VuZCcgaW4gaW5zdGFuY2UgaXMgZmFsc2UKK1BBU1MgJ2JvdW5k
JyBpbiBpbnN0YW5jZSBpcyBmYWxzZQorCiBJREJLZXlSYW5nZS5vbmx5KDEpCiBQQVNTIGtleVJh
bmdlLmxlZnQgaXMgMQogUEFTUyBrZXlSYW5nZS5yaWdodCBpcyAxCkBAIC0xMTcsMyArMTQ0LDQg
QEAgUEFTUyByaWdodEZsYWdzIGlzIGtleVJhbmdlLlJJR0hUX09QRU4gfCBrZXlSYW5nZS5SSUdI
VF9CT1VORAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0
cy9rZXlyYW5nZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0
cy9rZXlyYW5nZS5qcwppbmRleCA5MDdkODE3Li5hNWI1OGY0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMva2V5cmFuZ2UuanMKKysrIGIvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2tleXJhbmdlLmpzCkBAIC0z
OSw2ICszOSwzNyBAQCBmdW5jdGlvbiBjaGVja0JvdW5kS2V5UmFuZ2UobGVmdCwgcmlnaHQsIG9w
ZW5MZWZ0LCBvcGVuUmlnaHQpCiAKIGZ1bmN0aW9uIHRlc3QoKQogeworICAgIHNob3VsZEJlVHJ1
ZSgiJ1NJTkdMRScgaW4gSURCS2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidMRUZUX09Q
RU4nIGluIElEQktleVJhbmdlIik7CisgICAgc2hvdWxkQmVUcnVlKCInUklHSFRfT1BFTicgaW4g
SURCS2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidMRUZUX0JPVU5EJyBpbiBJREJLZXlS
YW5nZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ1JJR0hUX0JPVU5EJyBpbiBJREJLZXlSYW5nZSIp
OworICAgIHNob3VsZEJlRmFsc2UoIidsZWZ0JyBpbiBJREJLZXlSYW5nZSIpOworICAgIHNob3Vs
ZEJlRmFsc2UoIidyaWdodCcgaW4gSURCS2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZUZhbHNlKCIn
ZmxhZ3MnIGluIElEQktleVJhbmdlIik7CisgICAgc2hvdWxkQmVUcnVlKCInb25seScgaW4gSURC
S2V5UmFuZ2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidsZWZ0Qm91bmQnIGluIElEQktleVJhbmdl
Iik7CisgICAgc2hvdWxkQmVUcnVlKCIncmlnaHRCb3VuZCcgaW4gSURCS2V5UmFuZ2UiKTsKKyAg
ICBzaG91bGRCZVRydWUoIidib3VuZCcgaW4gSURCS2V5UmFuZ2UiKTsKKworICAgIGRlYnVnKCIi
KTsKKworICAgIHZhciBpbnN0YW5jZSA9IGV2YWxBbmRMb2coImluc3RhbmNlID0gSURCS2V5UmFu
Z2Uub25seSgxKSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ1NJTkdMRScgaW4gaW5zdGFuY2UiKTsK
KyAgICBzaG91bGRCZVRydWUoIidMRUZUX09QRU4nIGluIGluc3RhbmNlIik7CisgICAgc2hvdWxk
QmVUcnVlKCInUklHSFRfT1BFTicgaW4gaW5zdGFuY2UiKTsKKyAgICBzaG91bGRCZVRydWUoIidM
RUZUX0JPVU5EJyBpbiBpbnN0YW5jZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ1JJR0hUX0JPVU5E
JyBpbiBpbnN0YW5jZSIpOworICAgIHNob3VsZEJlVHJ1ZSgiJ2xlZnQnIGluIGluc3RhbmNlIik7
CisgICAgc2hvdWxkQmVUcnVlKCIncmlnaHQnIGluIGluc3RhbmNlIik7CisgICAgc2hvdWxkQmVU
cnVlKCInZmxhZ3MnIGluIGluc3RhbmNlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiJ29ubHknIGlu
IGluc3RhbmNlIik7CisgICAgc2hvdWxkQmVGYWxzZSgiJ2xlZnRCb3VuZCcgaW4gaW5zdGFuY2Ui
KTsKKyAgICBzaG91bGRCZUZhbHNlKCIncmlnaHRCb3VuZCcgaW4gaW5zdGFuY2UiKTsKKyAgICBz
aG91bGRCZUZhbHNlKCInYm91bmQnIGluIGluc3RhbmNlIik7CisKKyAgICBkZWJ1ZygiIik7CisK
ICAgICBjaGVja1NpbmdsZUtleVJhbmdlKDEpOwogICAgIGNoZWNrU2luZ2xlS2V5UmFuZ2UoIidh
JyIpOwogCkBAIC02OCw2ICs5OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGNoZWNrQm91bmRL
ZXlSYW5nZSgiJ2FhZCciLCAiJ2FiZCciLCBmYWxzZSwgdHJ1ZSk7CiAgICAgY2hlY2tCb3VuZEtl
eVJhbmdlKCInYWFlJyIsICInYWJlJyIsIHRydWUsIGZhbHNlKTsKICAgICBjaGVja0JvdW5kS2V5
UmFuZ2UoIidhYWYnIiwgIidhYmYnIiwgdHJ1ZSwgdHJ1ZSk7CisKIH0KIAogdGVzdCgpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4M2Zh
ODA2Li5kNjhiMTQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMiw2ICsyLDQwIEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAKKyAgICAgICAgQWRkIEluZGV4ZWREQiBvYmplY3RzJyBjb25zdHJ1Y3RvcnMg
dG8gd2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NDU5OQorCisgICAgICAgIEFsc28gYWRkIGEgZm9yZ290dGVuIGNvbnN0YW50IHRvIElEQlRy
YW5zYWN0aW9uLCBhbmQKKyAgICAgICAgY2hhbmdlIElEQktleVJhbmdlIG92ZXIgdG8gdXNpbmcg
dGhlIFY4U3RhdGljIGF0dHJpYnV0ZQorICAgICAgICBzbyBpdCBhY3R1YWxseSBiZWhhdmVzIGFz
IGl0J3Mgc3VwcG9zZWQgdG8uCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OmlEQkN1cnNvckVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6aURCRGF0YWJhc2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNlRXJyb3JFbmFibGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNlRXhjZXB0aW9uRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJFcnJvckV2ZW50
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJF
dmVudEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6
aURCRmFjdG9yeUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0
dXJlczo6aURCSW5kZXhFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OmlEQktleVJhbmdlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjppREJPYmplY3RTdG9yZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCUmVxdWVzdEVuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCU3VjY2Vzc0V2ZW50RW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJUcmFuc2FjdGlv
bkVuYWJsZWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjppbmRl
eGVkREIpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2UuaWRsOgorICAgICAgICAq
IHN0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0
aW9uLmlkbDoKKworMjAxMC0wOS0wMiAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBBZGQg
dGhlIGNvbmNlcHQgb2YgInN0YXRpYyIgbWV0aG9kcyB0byBiaW5kaW5ncyAoZm9yIEluZGV4ZWRE
QidzIElEQktleVJhbmdlKS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1MDQ0CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGNjNTUzNjQuLjRhMmZmM2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtNTYsNyAr
NTYsMTkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2V0SW5kZXhlZERCRW5hYmxlZChi
b29sIGlzRW5hYmxlZCkgeyBpc0luZGV4ZWREQkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBz
dGF0aWMgYm9vbCBpbmRleGVkREJFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVk
OyB9Ci0gICAgc3RhdGljIGJvb2wgaURCS2V5UmFuZ2VFbmFibGVkKCkgeyByZXR1cm4gaW5kZXhl
ZERCRW5hYmxlZCgpOyB9CisgICAgc3RhdGljIGJvb2wgaURCQ3Vyc29yRW5hYmxlZCgpIHsgcmV0
dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQkRhdGFiYXNlRW5h
YmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlE
QkRhdGFiYXNlRXJyb3JFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9Cisg
ICAgc3RhdGljIGJvb2wgaURCRGF0YWJhc2VFeGNlcHRpb25FbmFibGVkKCkgeyByZXR1cm4gaXNJ
bmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgaURCRXJyb3JFdmVudEVuYWJsZWQo
KSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBpREJFdmVu
dEVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9v
bCBpREJGYWN0b3J5RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAg
IHN0YXRpYyBib29sIGlEQkluZGV4RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxl
ZDsgfQorICAgIHN0YXRpYyBib29sIGlEQktleVJhbmdlRW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5k
ZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQk9iamVjdFN0b3JlRW5hYmxlZCgp
IHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGlEQlJlcXVl
c3RFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9CisgICAgc3RhdGljIGJv
b2wgaURCU3VjY2Vzc0V2ZW50RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsg
fQorICAgIHN0YXRpYyBib29sIGlEQlRyYW5zYWN0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5k
ZXhlZERCRW5hYmxlZDsgfQogCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHN0YXRpYyBib29sIGF1
ZGlvRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBhNmU4YjQwLi42ZWYyZmUyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtNjAsNyArNjAsNiBAQAogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRl
ICJJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIK
LSNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgpAQCAtNDg5LDcgKzQ4OCw2IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBtX2lkYkZhY3RvcnkgPSAwOwotICAgIG1faWRiS2V5
UmFuZ2UgPSAwOwogI2VuZGlmCiB9CiAKQEAgLTcxMSwxNCArNzA5LDYgQEAgSURCRmFjdG9yeSog
RE9NV2luZG93OjppbmRleGVkREIoKSBjb25zdAogICAgIG1faWRiRmFjdG9yeSA9IElEQkZhY3Rv
cnk6OmNyZWF0ZShwYWdlLT5ncm91cCgpLmlkYkZhY3RvcnkoKSk7CiAgICAgcmV0dXJuIG1faWRi
RmFjdG9yeS5nZXQoKTsKIH0KLQotSURCS2V5UmFuZ2UqIERPTVdpbmRvdzo6aURCS2V5UmFuZ2Uo
KSBjb25zdAotewotICAgIGlmICghbV9pZGJLZXlSYW5nZSkKLSAgICAgICAgbV9pZGJLZXlSYW5n
ZSA9IElEQktleVJhbmdlOjpjcmVhdGUoMCwgMCwgMCk7Ci0KLSAgICByZXR1cm4gbV9pZGJLZXlS
YW5nZS5nZXQoKTsKLX0KICNlbmRpZgogCiB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2UoUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIE1lc3NhZ2VQb3J0KiBwb3J0
LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlv
bkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDlhNjMxNWYuLmRmMDI5YWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAg
LTU1LDcgKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEZyYW1lOwogICAg
IGNsYXNzIEhpc3Rvcnk7CiAgICAgY2xhc3MgSURCRmFjdG9yeTsKLSAgICBjbGFzcyBJREJLZXlS
YW5nZTsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogICAgIGNsYXNzIExvY2F0
aW9uOwogICAgIGNsYXNzIFN0eWxlTWVkaWE7CkBAIC0yMzUsNyArMjM0LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgICAgIElEQkZh
Y3RvcnkqIGluZGV4ZWREQigpIGNvbnN0OwotICAgICAgICBJREJLZXlSYW5nZSogaURCS2V5UmFu
Z2UoKSBjb25zdDsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgcG9zdE1lc3NhZ2UoUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0QXJyYXkq
LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgRE9NV2luZG93KiBzb3VyY2UsIEV4Y2VwdGlv
bkNvZGUmKTsKQEAgLTQzMyw3ICs0MzEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8SURC
RmFjdG9yeT4gbV9pZGJGYWN0b3J5OwotICAgICAgICBtdXRhYmxlIFJlZlB0cjxJREJLZXlSYW5n
ZT4gbV9pZGJLZXlSYW5nZTsKICNlbmRpZgogCiAgICAgICAgIEV2ZW50VGFyZ2V0RGF0YSBtX2V2
ZW50VGFyZ2V0RGF0YTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggODRjMjEwOC4uMjg3Njk0NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwKQEAgLTE3NCw3ICsxNzQsMjAgQEAgbW9kdWxlIHdpbmRvdyB7CiAjZW5kaWYKICNp
ZiBkZWZpbmVkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZh
Y3RvcnkgaW5kZXhlZERCOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1
bnRpbWVdIElEQktleVJhbmdlIElEQktleVJhbmdlOworCisgICAgICAgIGF0dHJpYnV0ZSBbRW5h
YmxlZEF0UnVudGltZV0gSURCQ3Vyc29yQ29uc3RydWN0b3IgSURCQ3Vyc29yOworICAgICAgICBh
dHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkRhdGFiYXNlQ29uc3RydWN0b3IgSURCRGF0
YWJhc2U7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCRGF0YWJhc2VF
cnJvckNvbnN0cnVjdG9yIElEQkRhdGFiYXNlRXJyb3I7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5h
YmxlZEF0UnVudGltZV0gSURCRGF0YWJhc2VFeGNlcHRpb25Db25zdHJ1Y3RvciBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJFcnJv
ckV2ZW50Q29uc3RydWN0b3IgSURCRXJyb3JFdmVudDsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFi
bGVkQXRSdW50aW1lXSBJREJFdmVudENvbnN0cnVjdG9yIElEQkV2ZW50OworICAgICAgICBhdHRy
aWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkZhY3RvcnlDb25zdHJ1Y3RvciBJREJGYWN0b3J5
OworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkluZGV4Q29uc3RydWN0
b3IgSURCSW5kZXg7CisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCS2V5
UmFuZ2VDb25zdHJ1Y3RvciBJREJLZXlSYW5nZTsKKyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVk
QXRSdW50aW1lXSBJREJPYmplY3RTdG9yZUNvbnN0cnVjdG9yIElEQk9iamVjdFN0b3JlOworICAg
ICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQlJlcXVlc3RDb25zdHJ1Y3RvciBJ
REJSZXF1ZXN0OworICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQlN1Y2Nl
c3NFdmVudENvbnN0cnVjdG9yIElEQlN1Y2Nlc3NFdmVudDsKKyAgICAgICAgYXR0cmlidXRlIFtF
bmFibGVkQXRSdW50aW1lXSBJREJUcmFuc2FjdGlvbkNvbnN0cnVjdG9yIElEQlRyYW5zYWN0aW9u
OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMpICYmIEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJL
ZXlSYW5nZS5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2UuaWRsCmluZGV4IDZkYWFl
YzEuLmVmOTY1NGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5pZGwK
KysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmlkbApAQCAtMzksMTAgKzM5LDExIEBA
IG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQktleSByaWdo
dDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGZsYWdzOwogCi0g
ICAgICAgIElEQktleVJhbmdlIG9ubHkoaW4gSURCS2V5IHZhbHVlKTsKLSAgICAgICAgSURCS2V5
UmFuZ2UgbGVmdEJvdW5kKGluIElEQktleSBib3VuZCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9w
ZW4pOwotICAgICAgICBJREJLZXlSYW5nZSByaWdodEJvdW5kKGluIElEQktleSBib3VuZCwgaW4g
W09wdGlvbmFsXSBib29sZWFuIG9wZW4pOwotICAgICAgICBJREJLZXlSYW5nZSBib3VuZChpbiBJ
REJLZXkgbGVmdCwgaW4gSURCS2V5IHJpZ2h0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3Blbkxl
ZnQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuUmlnaHQpOworICAgICAgICAvLyBGSVhNRTog
TWFrZSBDbGFzc01ldGhvZCB3b3JrIGZvciBKU0MgYXMgd2VsbCBhbmQgcmVtb3ZlIHRoZSAiVjgi
IHBhcnQuCisgICAgICAgIFtWOENsYXNzTWV0aG9kXSBJREJLZXlSYW5nZSBvbmx5KGluIElEQktl
eSB2YWx1ZSk7CisgICAgICAgIFtWOENsYXNzTWV0aG9kXSBJREJLZXlSYW5nZSBsZWZ0Qm91bmQo
aW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3Blbik7CisgICAgICAgIFtW
OENsYXNzTWV0aG9kXSBJREJLZXlSYW5nZSByaWdodEJvdW5kKGluIElEQktleSBib3VuZCwgaW4g
W09wdGlvbmFsXSBib29sZWFuIG9wZW4pOworICAgICAgICBbVjhDbGFzc01ldGhvZF0gSURCS2V5
UmFuZ2UgYm91bmQoaW4gSURCS2V5IGxlZnQsIGluIElEQktleSByaWdodCwgaW4gW09wdGlvbmFs
XSBib29sZWFuIG9wZW5MZWZ0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlblJpZ2h0KTsKICAg
ICB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaCBi
L1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDNjN2Y5ZGQuLjBkNmYzZWEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5oCkBAIC01NCw3ICs1NCw4IEBAIHB1YmxpYzoKICAg
ICBlbnVtIE1vZGUgewogICAgICAgICBSRUFEX1dSSVRFID0gMCwKICAgICAgICAgUkVBRF9PTkxZ
ID0gMSwKLSAgICAgICAgU05BUFNIT1RfUkVBRCA9IDIKKyAgICAgICAgU05BUFNIT1RfUkVBRCA9
IDIsCisgICAgICAgIFZFUlNJT05fQ0hBTkdFID0gMwogICAgIH07CiAKICAgICB1bnNpZ25lZCBz
aG9ydCBtb2RlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNh
Y3Rpb24uaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRleCBhMzkw
N2RjLi5jZGY5ZjYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24u
aWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5pZGwKQEAgLTMzLDYgKzMz
LDggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRUFE
X1dSSVRFID0gMDsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9PTkxZID0gMTsK
ICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU05BUFNIT1RfUkVBRCA9IDI7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IFZFUlNJT05fQ0hBTkdFID0gMzsKKwogICAgICAgICAvLyBQ
cm9wZXJ0aWVzCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBtb2Rl
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCRGF0YWJhc2UgZGI7Cg==
</data>
<flag name="review"
          id="55522"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>