<?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>83649</bug_id>
          
          <creation_ts>2012-04-10 18:03:29 -0700</creation_ts>
          <short_desc>[chromium] Ensure RateLimiter waits for Swapbuffers completion</short_desc>
          <delta_ts>2012-04-17 19:57: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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Bauman">jbauman</reporter>
          <assigned_to name="John Bauman">jbauman</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>jamesr</cc>
    
    <cc>levin+threading</cc>
    
    <cc>nduca</cc>
    
    <cc>senorblanco</cc>
    
    <cc>vollick</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>599871</commentid>
    <comment_count>0</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-10 18:03:29 -0700</bug_when>
    <thetext>[chromium] Ensure RateLimiter waits for Swapbuffers completion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599926</commentid>
    <comment_count>1</comment_count>
      <attachid>136604</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-10 18:59:40 -0700</bug_when>
    <thetext>Created attachment 136604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600588</commentid>
    <comment_count>2</comment_count>
      <attachid>136752</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-11 14:16:46 -0700</bug_when>
    <thetext>Created attachment 136752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600705</commentid>
    <comment_count>3</comment_count>
      <attachid>136752</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-11 16:37:41 -0700</bug_when>
    <thetext>Comment on attachment 136752
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        scheduling was causing the RateLimiter not to ratelimit enough. We
&gt; +        need to insert no-op commands in the compositor context, so that we&apos;ll
&gt; +        wait for the canvas context and SwapBuffers as well.

I don&apos;t really understand what the no-op command is for.  What&apos;s the failing case currently?  How does this help? Why are we handling this in the WebCore code instead of somewhere closer to the command buffer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600721</commentid>
    <comment_count>4</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-11 16:55:56 -0700</bug_when>
    <thetext>The thing that changed was that now the gpu process doesn&apos;t wait for the SwapBuffers to complete processing to process more commands on the canvas context. This means that instead of us putting in two canvas frames and waiting for the previous swapbuffers to finish, we can continually put in more canvas frames until the swapbuffers completes processing.

To avoid that, I&apos;m putting a command in on the canvas context, which forces the SwapBuffers to complete before processing it. Then the timing of the canvas commands is the same as it had been before.

I&apos;d put this code lower down, but the lower layers don&apos;t understand the threading and don&apos;t understand the relationship between the canvas context and compositor context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600729</commentid>
    <comment_count>5</comment_count>
      <attachid>136752</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-04-11 17:04:09 -0700</bug_when>
    <thetext>Comment on attachment 136752
Patch

So since this is releaseblock-stable, I think this makes sense. Do you think that it makes sense to open a post-M19 bug for fixing this in a cleaner way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600734</commentid>
    <comment_count>6</comment_count>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-11 17:10:40 -0700</bug_when>
    <thetext>Definitely. This was intended to be more of a simple stopgap fix, to make it as good as it had been until we figure out what in the world we should do to make it better. That might involve very elaborate changes.

Also, Nat recommended renaming the no-op command to explain its purpose a bit better. Maybe something like &quot;forceSerializeOnSwapBuffersComplete&quot;, although that might just be more confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601671</commentid>
    <comment_count>7</comment_count>
      <attachid>137002</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-12 17:53:34 -0700</bug_when>
    <thetext>Created attachment 137002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601718</commentid>
    <comment_count>8</comment_count>
      <attachid>137002</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-12 18:28:34 -0700</bug_when>
    <thetext>Comment on attachment 137002
Patch

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

R=me

&gt; Source/WebCore/platform/graphics/chromium/RateLimiter.h:54
&gt; +    explicit RateLimiter(GraphicsContext3D*, RateLimiterClient*);

no explicit for 2-arg c&apos;tors

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h:219
&gt; +    void rateLimit();

this is overriding RateLimitClient::rateLimit(), right? would you mind adding virtual and OVERRIDE keywords and documenting what it&apos;s overriding here explicitly? (with a short &quot;// RateLimitClient implementation.&quot; comment or the like)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604543</commentid>
    <comment_count>9</comment_count>
      <attachid>137646</attachid>
    <who name="John Bauman">jbauman</who>
    <bug_when>2012-04-17 18:38:57 -0700</bug_when>
    <thetext>Created attachment 137646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604561</commentid>
    <comment_count>10</comment_count>
      <attachid>137646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 19:57:45 -0700</bug_when>
    <thetext>Comment on attachment 137646
Patch

Clearing flags on attachment: 137646

Committed r114475: &lt;http://trac.webkit.org/changeset/114475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604562</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 19:57:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136604</attachid>
            <date>2012-04-10 18:59:40 -0700</date>
            <delta_ts>2012-04-11 14:16:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83649-20120410185939.patch</filename>
            <type>text/plain</type>
            <size>12834</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzMzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWEzMzhjNjNjODRjZjU4
NGQ4Njc2NGUyZTQ2MDk1MmZhYzUwYjk3MC4uZDQzNGVmNGE3MTljNmZiNWI2MzU1MTNiNzFlY2Iz
MzViZmYwOGZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTEwICBKb2hu
IEJhdW1hbiAgPGpiYXVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRW5z
dXJlIFJhdGVMaW1pdGVyIHdhaXRzIGZvciBTd2FwYnVmZmVycyBjb21wbGV0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgd2FpdGluZyBv
bmx5IG9uIHRoZSBjYW52YXMgY29udGV4dCwgd2hpY2ggd2l0aCB0aGUgbmV3IEdQVQorICAgICAg
ICBzY2hlZHVsaW5nIHdhcyBjYXVzaW5nIHRoZSBSYXRlTGltaXRlciBub3QgdG8gcmF0ZWxpbWl0
IGVub3VnaC4gV2UKKyAgICAgICAgbmVlZCB0byBpbnNlcnQgbm8tb3AgY29tbWFuZHMgaW4gdGhl
IGNvbXBvc2l0b3IgY29udGV4dCwgc28gdGhhdCB3ZSdsbAorICAgICAgICB3YWl0IGZvciB0aGUg
Y2FudmFzIGNvbnRleHQgYW5kIFN3YXBCdWZmZXJzIGFzIHdlbGwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkb05vT3ApOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhdGVMaW1pdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmF0ZUxpbWl0
ZXI6OlJhdGVMaW1pdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJhdGVMaW1pdGVyOjpyYXRlTGlt
aXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGlt
aXRlci5oOgorICAgICAgICAoUmF0ZUxpbWl0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChSYXRlTGltaXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6c3RhcnRSYXRlTGltaXRlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3Q6OnJhdGVMaW1pdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKENDTGF5
ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQ
cm94eS5oOgorICAgICAgICAoQ0NQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1NpbmdsZVRocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaDoKKyAgICAgICAgKENDU2luZ2xlVGhyZWFkUHJveHkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUaHJlYWRQcm94eTo6Zm9yY2VOb09wQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmZvcmNlTm9PcENvbW1hbmRPbklt
cGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaDoKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTA0LTA1ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
OTM1OTAyOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzMx
MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggMTE1Mjk0MTEyNzgy
ZDFhOTZhOWEwODA0NjQ0ZWI0NGU3YWZhNWE0YS4uZDcxOGQ0MjM3N2RlYmFmMjAwOWY0NzZkNjk3
ZDg4NWYyNjg4MmEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBA
IC00MjksNiArNDI5LDEyIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpiZWdpbkRyYXdp
bmdGcmFtZSgpCiAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5ibGVuZEZ1bmMo
R3JhcGhpY3NDb250ZXh0M0Q6Ok9ORSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok9ORV9NSU5VU19TUkNf
QUxQSEEpKTsKIH0KIAordm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRvTm9PcCgpCit7Cisg
ICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCAwKSk7CisgICAgR0xDKG1fY29udGV4dC5nZXQoKSwg
bV9jb250ZXh0LT5mbHVzaCgpKTsKK30KKwogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRy
YXdSZW5kZXJQYXNzKGNvbnN0IENDUmVuZGVyUGFzcyogcmVuZGVyUGFzcykKIHsKICAgICBDQ1Jl
bmRlclN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSByZW5kZXJQYXNzLT50YXJnZXRTdXJmYWNlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IGQ2YWM2ODIyOTA2OTEyN2Uz
YjEyMGU5MzQ0OWNiYTk1ZTE5NzU2OTEuLjIzMGYwMzYxYzJiOTgxZjNiYzQ0YjU5NTA1YTY5M2U0
ZTRjZDI3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCkBAIC0xMDUsNiAr
MTA1LDcgQEAgcHVibGljOgogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8gZmluaXNoCiAg
ICAgdm9pZCBmaW5pc2goKTsKIAorICAgIHZvaWQgZG9Ob09wKCk7CiAgICAgLy8gcHV0cyBiYWNr
YnVmZmVyIG9uc2NyZWVuCiAgICAgYm9vbCBzd2FwQnVmZmVycyhjb25zdCBJbnRSZWN0JiBzdWJC
dWZmZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9SYXRlTGltaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9SYXRlTGltaXRlci5jcHAKaW5kZXggNTcxMjYzZTc3ZjAxZGFmYzFmZDY5NzVl
MDY4NzM2MDRiMDRlNzA3Zi4uZmRhZGY5M2I0M2JkNDBlNmY5NGEzYzdmYTAwMDEwYzdmYmIyNThm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UmF0ZUxpbWl0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1JhdGVMaW1pdGVyLmNwcApAQCAtMzUsMTQgKzM1LDE1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxSYXRlTGltaXRlcj4gUmF0ZUxpbWl0ZXI6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKK1Bhc3NSZWZQdHI8UmF0ZUxpbWl0ZXI+IFJhdGVM
aW1pdGVyOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFJhdGVMaW1pdGVyQ2xp
ZW50ICpjbGllbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXRlTGltaXRlcihjb250
ZXh0KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXRlTGltaXRlcihjb250ZXh0LCBjbGll
bnQpKTsKIH0KIAotUmF0ZUxpbWl0ZXI6OlJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KQorUmF0ZUxpbWl0ZXI6OlJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0LCBSYXRlTGltaXRlckNsaWVudCAqY2xpZW50KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQp
CiAgICAgLCBtX3RpbWVyKHRoaXMsICZSYXRlTGltaXRlcjo6cmF0ZUxpbWl0Q29udGV4dCkKKyAg
ICAsIG1fY2xpZW50KGNsaWVudCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAgQVNTRVJU
KGNvbnRleHQtPmdldEV4dGVuc2lvbnMoKSk7CkBAIC03MCw2ICs3MSw3IEBAIHZvaWQgUmF0ZUxp
bWl0ZXI6OnJhdGVMaW1pdENvbnRleHQoVGltZXI8UmF0ZUxpbWl0ZXI+KikKIAogICAgIEV4dGVu
c2lvbnMzRENocm9taXVtKiBleHRlbnNpb25zID0gc3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNEQ2hy
b21pdW0qPihtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKSk7CiAKKyAgICBtX2NsaWVudC0+cmF0
ZUxpbWl0KCk7CiAgICAgZXh0ZW5zaW9ucy0+cmF0ZUxpbWl0T2Zmc2NyZWVuQ29udGV4dENIUk9N
SVVNKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1JhdGVMaW1pdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9SYXRlTGltaXRlci5oCmluZGV4IGQ0ZTgyNGQ2MDZlYTAxODFiZDQwMDY4NWQ5
MTM1ZjE1ZTEwOTk0NzQuLjU4ZTVlN2U0ZGZhMmRjYTMwY2Q1ZDZiOTVlNzdjZjI2MGQxNTlmNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Jh
dGVMaW1pdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vUmF0ZUxpbWl0ZXIuaApAQCAtMzYsMjEgKzM2LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKK2NsYXNzIFJhdGVMaW1pdGVyQ2xpZW50IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmF0ZUxpbWl0KCkgPSAwOworfTsKKwogLy8gQSBj
bGFzcyBjb250YWluaW5nIGEgdGltZXIsIHdoaWNoIGNhbGxzIHJhdGVMaW1pdENIUk9NSVVNIG9u
IGV4cGlyeQogY2xhc3MgUmF0ZUxpbWl0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSYXRlTGltaXRl
cj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJhdGVMaW1pdGVyPiBjcmVhdGUo
R3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSYXRlTGltaXRlcj4g
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgUmF0ZUxpbWl0ZXJDbGllbnQqKTsKICAgICB+UmF0
ZUxpbWl0ZXIoKTsKIAogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBSYXRlTGltaXRlcihHcmFwaGljc0NvbnRleHQzRCopOworICAg
IGV4cGxpY2l0IFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiwgUmF0ZUxpbWl0ZXJDbGll
bnQqKTsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBib29s
IG1fY29udGV4dFN1cHBvcnRzUmF0ZUxpbWl0aW5nRXh0ZW5zaW9uOwogICAgIFRpbWVyPFJhdGVM
aW1pdGVyPiBtX3RpbWVyOwogICAgIHZvaWQgcmF0ZUxpbWl0Q29udGV4dChUaW1lcjxSYXRlTGlt
aXRlcj4qKTsKKyAgICBSYXRlTGltaXRlckNsaWVudCAqbV9jbGllbnQ7CiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCBkM2ZjOTcwYmQzNjczZDcxYzgyMGJhMzM4
YTZiZDA2ZDQ2MjM1NmVlLi4wOGJiMjE3ZjBlN2JiMzc3MTVlOTA3MmVhZWRjOWM5OWM3MDVmZTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTYyNywxMiArNjI3LDE5IEBA
IHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzdGFydFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0KQogICAgIGlmIChpdCAhPSBtX3JhdGVMaW1pdGVycy5lbmQoKSkKICAgICAgICAg
aXQtPnNlY29uZC0+c3RhcnQoKTsKICAgICBlbHNlIHsKLSAgICAgICAgUmVmUHRyPFJhdGVMaW1p
dGVyPiByYXRlTGltaXRlciA9IFJhdGVMaW1pdGVyOjpjcmVhdGUoY29udGV4dCk7CisgICAgICAg
IFJlZlB0cjxSYXRlTGltaXRlcj4gcmF0ZUxpbWl0ZXIgPSBSYXRlTGltaXRlcjo6Y3JlYXRlKGNv
bnRleHQsIHRoaXMpOwogICAgICAgICBtX3JhdGVMaW1pdGVycy5zZXQoY29udGV4dCwgcmF0ZUxp
bWl0ZXIpOwogICAgICAgICByYXRlTGltaXRlci0+c3RhcnQoKTsKICAgICB9CiB9CiAKK3ZvaWQg
Q0NMYXllclRyZWVIb3N0OjpyYXRlTGltaXQoKQoreworICAgIC8vIEZvcmNlIGEgbm8tb3AgY29t
bWFuZCBvbiB0aGUgY29tcG9zaXRvciBjb250ZXh0LCBzbyB0aGF0IGFueSByYXRlbGltaXRpbmcg
Y29tbWFuZHMgd2lsbCB3YWl0IGZvciB0aGUgY29tcG9zaXRpbmcKKyAgICAvLyBjb250ZXh0LCBh
bmQgdGhlcmVmb3JlIGZvciB0aGUgU3dhcEJ1ZmZlcnMuCisgICAgbV9wcm94eS0+Zm9yY2VOb09w
Q29tbWFuZCgpOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c3RvcFJhdGVMaW1pdGVyKEdy
YXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogewogICAgIFJhdGVMaW1pdGVyTWFwOjppdGVyYXRv
ciBpdCA9IG1fcmF0ZUxpbWl0ZXJzLmZpbmQoY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oCmluZGV4IDljYTE0ZmMwNDQ4ODNhYjBjMzEwOWE5N2ZiOGJlMWIyYmEyMzcxNjEuLjU2
NWZjZDg2YjExNTczNDI0M2QyODJmMzBlOGIyMDY3ODA2ZTAzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCkBAIC0xMjIsNyArMTIyLDcgQEAgc3RydWN0IExheWVyUmVuZGVyZXJDYXBh
YmlsaXRpZXMgewogICAgIGludCBtYXhUZXh0dXJlU2l6ZTsKIH07CiAKLWNsYXNzIENDTGF5ZXJU
cmVlSG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPENDTGF5ZXJUcmVlSG9zdD4geworY2xhc3MgQ0NM
YXllclRyZWVIb3N0IDogcHVibGljIFJlZkNvdW50ZWQ8Q0NMYXllclRyZWVIb3N0PiwgUmF0ZUxp
bWl0ZXJDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENDTGF5ZXJUcmVl
SG9zdD4gY3JlYXRlKENDTGF5ZXJUcmVlSG9zdENsaWVudCosIGNvbnN0IENDU2V0dGluZ3MmKTsK
ICAgICB2aXJ0dWFsIH5DQ0xheWVyVHJlZUhvc3QoKTsKQEAgLTIxMiw2ICsyMTIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVT
ZXQmKTsKICAgICB2b2lkIHN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqKTsKICAg
ICB2b2lkIHN0b3BSYXRlTGltaXRlcihHcmFwaGljc0NvbnRleHQzRCopOworICAgIHZvaWQgcmF0
ZUxpbWl0KCk7CiAKICAgICBib29sIHJlcXVlc3RQYXJ0aWFsVGV4dHVyZVVwZGF0ZSgpOwogICAg
IHZvaWQgZGVsZXRlVGV4dHVyZUFmdGVyQ29tbWl0KFBhc3NPd25QdHI8TWFuYWdlZFRleHR1cmU+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDUHJveHkuaAppbmRleCAxYThkZTE2NTRlZTYyNzRhNmEwYjg1NWM0N2Y5ZGY1ZjI0ODNi
MjY4Li4xZDMyNmFmMmVkNzc4OTQxNTkyNzJmZThkN2UyYzRmMTQzMWI3MmU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcm94
eS5oCkBAIC05MSw2ICs5MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSA9
IDA7IC8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSB1c2luZyB0aGUgcHJveHkuCiAgICAgdmlydHVh
bCB2b2lkIHN0b3AoKSA9IDA7IC8vIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBkZWxldGluZyB0aGUg
cHJveHkuCiAKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VOb09wQ29tbWFuZCgpID0gMDsKKwogICAg
IC8vIE1heGltdW0gbnVtYmVyIG9mIHN1Yi1yZWdpb24gdGV4dHVyZSB1cGRhdGVzIHN1cHBvcnRl
ZCBmb3IgZWFjaCBjb21taXQuCiAgICAgdmlydHVhbCBzaXplX3QgbWF4UGFydGlhbFRleHR1cmVV
cGRhdGVzKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHku
Y3BwCmluZGV4IGVjODQyOGQ2NTA1ZmExOTk3MWY4YWEzMjAxNjY1MDMxMzI3YzIyYjYuLjJiYmJj
MmU2M2M2YTc4MmMzNmI1NjAyMjJmZDE0YzAyNWVlNWE3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC0yODMsNiArMjgzLDE1IEBAIHZvaWQgQ0NTaW5nbGVU
aHJlYWRQcm94eTo6Y29tcG9zaXRlSW1tZWRpYXRlbHkoKQogICAgIH0KIH0KIAordm9pZCBDQ1Np
bmdsZVRocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kKCkKK3sKKyAgICB7CisgICAgICAgIERl
YnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOworICAgICAgICBpZiAobV9sYXllclJlbmRlcmVy
SW5pdGlhbGl6ZWQpCisgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRl
cmVyKCktPmRvTm9PcCgpOworICAgIH0KK30KKwogYm9vbCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpj
b21taXRJZk5lZWRlZCgpCiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDU2luZ2xlVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAppbmRleCA5ODg3NDMyZWJhZDZlNTNj
ZTQwNTI2YzYwZTEyMDExNjA2MTYzMTRlLi4xZGJjMGUzMTVmNTM0NTIxNDAzZDEzZjIyMzY0NDIz
ZGUyNjEyZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCkBAIC02MSw2
ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc3RvcCgpOwogICAgIHZpcnR1YWwgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRl
cygpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VOb09wQ29tbWFuZCgpOwogCiAgICAgLy8gQ0NMYXllclRy
ZWVIb3N0SW1wbENsaWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkaWRMb3Nl
Q29udGV4dE9uSW1wbFRocmVhZCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRl
eCA0NTg0ZjE1ZmJjYTJlNWJlNDg5OTZkYWQ1ZjA5ZjNjYWM4YTNhOTc2Li5lMTA4NWQ0OTI0ZWIy
MDlmZjM5NWE3N2UzMTUzYmMwOWQzMjYwN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNw
cApAQCAtMzgwLDYgKzM4MCwyMSBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnN0b3AoKQogICAgIG1f
c3RhcnRlZCA9IGZhbHNlOwogfQogCit2b2lkIENDVGhyZWFkUHJveHk6OmZvcmNlTm9PcENvbW1h
bmQoKQoreworICAgIENDQ29tcGxldGlvbkV2ZW50IGNvbXBsZXRpb247CisgICAgQ0NQcm94eTo6
aW1wbFRocmVhZCgpLT5wb3N0VGFzayhjcmVhdGVDQ1RocmVhZFRhc2sodGhpcywgJkNDVGhyZWFk
UHJveHk6OmZvcmNlTm9PcENvbW1hbmRPbkltcGxUaHJlYWQsIEFsbG93Q3Jvc3NUaHJlYWRBY2Nl
c3MoJmNvbXBsZXRpb24pKSk7CisgICAgY29tcGxldGlvbi53YWl0KCk7Cit9CisKK3ZvaWQgQ0NU
aHJlYWRQcm94eTo6Zm9yY2VOb09wQ29tbWFuZE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVu
dCogY29tcGxldGlvbikKK3sKKyAgICBpZiAobV9sYXllclJlbmRlcmVySW5pdGlhbGl6ZWQpCisg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+ZG9Ob09wKCk7Cisg
ICAgY29tcGxldGlvbi0+c2lnbmFsKCk7Cit9CisKKwogdm9pZCBDQ1RocmVhZFByb3h5OjpmaW5p
c2hBbGxSZW5kZXJpbmdPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24p
CiB7CiAgICAgVFJBQ0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmluZ09u
SW1wbFRocmVhZCIsIHRoaXMsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IDM1ZmUx
ZGJhZmY0MGI0YTZlMmRmOWZjZDg0ZDIyZjkyNTYwYzliMzcuLjBlNGU3NjUxYTVjZmM0Njg4YWYz
N2EwZjhlMWJkMmY4YzA1OGViNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTcwLDYg
KzcwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpOwogICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCk7CiAgICAgdmlydHVhbCBzaXplX3QgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVz
KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTm9PcENvbW1hbmQoKTsKIAogICAgIC8v
IENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2aXJ0dWFsIHZv
aWQgZGlkTG9zZUNvbnRleHRPbkltcGxUaHJlYWQoKTsKQEAgLTEyOCw2ICsxMjksNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0RnVsbFJvb3RMYXllckRhbWFnZU9uSW1wbFRocmVhZCgpOwogICAg
IHZvaWQgcmVjcmVhdGVDb250ZXh0T25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiwgR3Jh
cGhpY3NDb250ZXh0M0QqLCBib29sKiByZWNyZWF0ZVN1Y2NlZWRlZCwgTGF5ZXJSZW5kZXJlckNh
cGFiaWxpdGllcyopOwogICAgIENDU2NoZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgc2No
ZWR1bGVkQWN0aW9uRHJhd0FuZFN3YXBJbnRlcm5hbChib29sIGZvcmNlZERyYXcpOworICAgIHZv
aWQgZm9yY2VOb09wQ29tbWFuZE9uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOwogCiAg
ICAgLy8gQWNjZXNzZWQgb24gbWFpbiB0aHJlYWQgb25seS4KICAgICBib29sIG1fYW5pbWF0ZVJl
cXVlc3RlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136752</attachid>
            <date>2012-04-11 14:16:46 -0700</date>
            <delta_ts>2012-04-12 17:53:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83649-20120411141645.patch</filename>
            <type>text/plain</type>
            <size>12853</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzOTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQ3OTE3ZTdmODE0MDdh
ODRlZWFmN2NlNDkwZGEzZmU4MmQ1MTc2Zi4uNjU2ZjE3MjJjYzUwYjVkZWE4ZTk5NDI0NGIyYTBl
NThjZjliMWU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTEwICBKb2hu
IEJhdW1hbiAgPGpiYXVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRW5z
dXJlIFJhdGVMaW1pdGVyIHdhaXRzIGZvciBTd2FwYnVmZmVycyBjb21wbGV0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgd2FpdGluZyBv
bmx5IG9uIHRoZSBjYW52YXMgY29udGV4dCwgd2hpY2ggd2l0aCB0aGUgbmV3IEdQVQorICAgICAg
ICBzY2hlZHVsaW5nIHdhcyBjYXVzaW5nIHRoZSBSYXRlTGltaXRlciBub3QgdG8gcmF0ZWxpbWl0
IGVub3VnaC4gV2UKKyAgICAgICAgbmVlZCB0byBpbnNlcnQgbm8tb3AgY29tbWFuZHMgaW4gdGhl
IGNvbXBvc2l0b3IgY29udGV4dCwgc28gdGhhdCB3ZSdsbAorICAgICAgICB3YWl0IGZvciB0aGUg
Y2FudmFzIGNvbnRleHQgYW5kIFN3YXBCdWZmZXJzIGFzIHdlbGwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkb05vT3ApOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhdGVMaW1pdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmF0ZUxpbWl0
ZXI6OlJhdGVMaW1pdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJhdGVMaW1pdGVyOjpyYXRlTGlt
aXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGlt
aXRlci5oOgorICAgICAgICAoUmF0ZUxpbWl0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChSYXRlTGltaXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6c3RhcnRSYXRlTGltaXRlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3Q6OnJhdGVMaW1pdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKENDTGF5
ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQ
cm94eS5oOgorICAgICAgICAoQ0NQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1NpbmdsZVRocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaDoKKyAgICAgICAgKENDU2luZ2xlVGhyZWFkUHJveHkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUaHJlYWRQcm94eTo6Zm9yY2VOb09wQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmZvcmNlTm9PcENvbW1hbmRPbklt
cGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaDoKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTA0LTEwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBB
ZGQgT1ZFUlJJREUgYW5ub3RhdGlvbnMgZm9yIGNjIGxheWVyIHR5cGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcAppbmRleCBmNGE1MDBhODczOWExMGNhNzc1MGUyZjhjODg4
ZDgwZWY0YzZhMzM3Li5kMGI3OTUwZGNjMmJlNWQyODRmODYyMjNjNWU2ODMxZWRhYzQ5MjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTQzMCw2ICs0MzAsMTIg
QEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKCkKICAgICBH
TEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmJsZW5kRnVuYyhHcmFwaGljc0NvbnRleHQz
RDo6T05FLCBHcmFwaGljc0NvbnRleHQzRDo6T05FX01JTlVTX1NSQ19BTFBIQSkpOwogfQogCit2
b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZG9Ob09wKCkKK3sKKyAgICBHTEMobV9jb250ZXh0
LmdldCgpLCBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVIsIDApKTsKKyAgICBHTEMobV9jb250ZXh0LmdldCgpLCBtX2NvbnRleHQtPmZsdXNo
KCkpOworfQorCiB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd1JlbmRlclBhc3MoY29u
c3QgQ0NSZW5kZXJQYXNzKiByZW5kZXJQYXNzKQogewogICAgIENDUmVuZGVyU3VyZmFjZSogcmVu
ZGVyU3VyZmFjZSA9IHJlbmRlclBhc3MtPnRhcmdldFN1cmZhY2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmgKaW5kZXggN2NiOWViNTZhMjM1M2JhODBkNzIwMDExOGIyOTZhOTJk
YjgwZGQ4YS4uMjk0NzQ5MGQwZTViNDRkM2YyM2FlMGI0NDQzNThhYjczZWY0MWJhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5k
ZXJlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6
CiAgICAgLy8gd2FpdHMgZm9yIHJlbmRlcmluZyB0byBmaW5pc2gKICAgICB2b2lkIGZpbmlzaCgp
OwogCisgICAgdm9pZCBkb05vT3AoKTsKICAgICAvLyBwdXRzIGJhY2tidWZmZXIgb25zY3JlZW4K
ICAgICBib29sIHN3YXBCdWZmZXJzKGNvbnN0IEludFJlY3QmIHN1YkJ1ZmZlcik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1p
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVM
aW1pdGVyLmNwcAppbmRleCA1NzEyNjNlNzdmMDFkYWZjMWZkNjk3NWUwNjg3MzYwNGIwNGU3MDdm
Li5mZGFkZjkzYjQzYmQ0MGU2Zjk0YTNjN2ZhMDAwMTBjN2ZiYjI1OGY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGltaXRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmF0ZUxpbWl0
ZXIuY3BwCkBAIC0zNSwxNCArMzUsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNz
UmVmUHRyPFJhdGVMaW1pdGVyPiBSYXRlTGltaXRlcjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0KQorUGFzc1JlZlB0cjxSYXRlTGltaXRlcj4gUmF0ZUxpbWl0ZXI6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgUmF0ZUxpbWl0ZXJDbGllbnQgKmNsaWVudCkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJhdGVMaW1pdGVyKGNvbnRleHQpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFJhdGVMaW1pdGVyKGNvbnRleHQsIGNsaWVudCkpOwogfQogCi1SYXRl
TGltaXRlcjo6UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCitSYXRlTGlt
aXRlcjo6UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFJhdGVMaW1pdGVy
Q2xpZW50ICpjbGllbnQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fdGltZXIo
dGhpcywgJlJhdGVMaW1pdGVyOjpyYXRlTGltaXRDb250ZXh0KQorICAgICwgbV9jbGllbnQoY2xp
ZW50KQogewogICAgIEFTU0VSVChjb250ZXh0KTsKICAgICBBU1NFUlQoY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpKTsKQEAgLTcwLDYgKzcxLDcgQEAgdm9pZCBSYXRlTGltaXRlcjo6cmF0ZUxpbWl0
Q29udGV4dChUaW1lcjxSYXRlTGltaXRlcj4qKQogCiAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0q
IGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RDaHJvbWl1bSo+KG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpKTsKIAorICAgIG1fY2xpZW50LT5yYXRlTGltaXQoKTsKICAgICBl
eHRlbnNpb25zLT5yYXRlTGltaXRPZmZzY3JlZW5Db250ZXh0Q0hST01JVU0oKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmF0ZUxp
bWl0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVM
aW1pdGVyLmgKaW5kZXggZDRlODI0ZDYwNmVhMDE4MWJkNDAwNjg1ZDkxMzVmMTVlMTA5OTQ3NC4u
NThlNWU3ZTRkZmEyZGNhMzBjZDVkNmI5NWU3N2NmMjYwZDE1OWY2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmF0ZUxpbWl0ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGltaXRlci5o
CkBAIC0zNiwyMSArMzYsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRDsKIAorY2xhc3MgUmF0ZUxpbWl0ZXJDbGllbnQgeworcHVibGljOgorICAgIHZp
cnR1YWwgdm9pZCByYXRlTGltaXQoKSA9IDA7Cit9OworCiAvLyBBIGNsYXNzIGNvbnRhaW5pbmcg
YSB0aW1lciwgd2hpY2ggY2FsbHMgcmF0ZUxpbWl0Q0hST01JVU0gb24gZXhwaXJ5CiBjbGFzcyBS
YXRlTGltaXRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFJhdGVMaW1pdGVyPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmF0ZUxpbWl0ZXI+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQz
RCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJhdGVMaW1pdGVyPiBjcmVhdGUoR3JhcGhpY3ND
b250ZXh0M0QqLCBSYXRlTGltaXRlckNsaWVudCopOwogICAgIH5SYXRlTGltaXRlcigpOwogCiAg
ICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOwogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKik7CisgICAgZXhwbGljaXQgUmF0ZUxp
bWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqLCBSYXRlTGltaXRlckNsaWVudCopOwogICAgIFJlZlB0
cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwogICAgIGJvb2wgbV9jb250ZXh0U3VwcG9y
dHNSYXRlTGltaXRpbmdFeHRlbnNpb247CiAgICAgVGltZXI8UmF0ZUxpbWl0ZXI+IG1fdGltZXI7
CiAgICAgdm9pZCByYXRlTGltaXRDb250ZXh0KFRpbWVyPFJhdGVMaW1pdGVyPiopOworICAgIFJh
dGVMaW1pdGVyQ2xpZW50ICptX2NsaWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuY3BwCmluZGV4IDhkNDdhNzk5YTlkNDJkZjlkNTZmY2M0OGI2M2UxYmU1ZWJhMjRlNWMu
LjhkZGJlMGJlMGNiNjUyNzA2ODY4MTg2NjM5OGJhNTU4Y2I4NzQzMDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcApAQCAtNTgzLDEyICs1ODMsMTkgQEAgdm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAg
aWYgKGl0ICE9IG1fcmF0ZUxpbWl0ZXJzLmVuZCgpKQogICAgICAgICBpdC0+c2Vjb25kLT5zdGFy
dCgpOwogICAgIGVsc2UgewotICAgICAgICBSZWZQdHI8UmF0ZUxpbWl0ZXI+IHJhdGVMaW1pdGVy
ID0gUmF0ZUxpbWl0ZXI6OmNyZWF0ZShjb250ZXh0KTsKKyAgICAgICAgUmVmUHRyPFJhdGVMaW1p
dGVyPiByYXRlTGltaXRlciA9IFJhdGVMaW1pdGVyOjpjcmVhdGUoY29udGV4dCwgdGhpcyk7CiAg
ICAgICAgIG1fcmF0ZUxpbWl0ZXJzLnNldChjb250ZXh0LCByYXRlTGltaXRlcik7CiAgICAgICAg
IHJhdGVMaW1pdGVyLT5zdGFydCgpOwogICAgIH0KIH0KIAordm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OnJhdGVMaW1pdCgpCit7CisgICAgLy8gRm9yY2UgYSBuby1vcCBjb21tYW5kIG9uIHRoZSBjb21w
b3NpdG9yIGNvbnRleHQsIHNvIHRoYXQgYW55IHJhdGVsaW1pdGluZyBjb21tYW5kcyB3aWxsIHdh
aXQgZm9yIHRoZSBjb21wb3NpdGluZworICAgIC8vIGNvbnRleHQsIGFuZCB0aGVyZWZvcmUgZm9y
IHRoZSBTd2FwQnVmZmVycy4KKyAgICBtX3Byb3h5LT5mb3JjZU5vT3BDb21tYW5kKCk7Cit9CisK
IHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzdG9wUmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQpCiB7CiAgICAgUmF0ZUxpbWl0ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yYXRlTGlt
aXRlcnMuZmluZChjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKaW5kZXggZjc4
ODlmZGE0NzI0MTE1MDg5NGFkMTc2ZjFkZjg1ZTk3ZDIyZTliOS4uNzFmMzQyYWI5MDBmNTAzMGFi
NGRiNmJkZjZlOGI2YzdlZDJlZDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKQEAg
LTEyNCw3ICsxMjQsNyBAQCBzdHJ1Y3QgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyB7CiAgICAg
aW50IG1heFRleHR1cmVTaXplOwogfTsKIAotY2xhc3MgQ0NMYXllclRyZWVIb3N0IHsKK2NsYXNz
IENDTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBSYXRlTGltaXRlckNsaWVudCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoQ0NMYXllclRyZWVIb3N0KTsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c093blB0cjxDQ0xheWVyVHJlZUhvc3Q+IGNyZWF0ZShDQ0xheWVyVHJlZUhvc3RDbGllbnQqLCBj
b25zdCBDQ1NldHRpbmdzJik7CkBAIC0yMTYsNiArMjE2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
YXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBDQ1Njcm9sbEFuZFNjYWxlU2V0Jik7CiAgICAgdm9p
ZCBzdGFydFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKik7CiAgICAgdm9pZCBzdG9wUmF0
ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAgICB2b2lkIHJhdGVMaW1pdCgpOwogCiAg
ICAgYm9vbCByZXF1ZXN0UGFydGlhbFRleHR1cmVVcGRhdGUoKTsKICAgICB2b2lkIGRlbGV0ZVRl
eHR1cmVBZnRlckNvbW1pdChQYXNzT3duUHRyPE1hbmFnZWRUZXh0dXJlPik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5LmgK
aW5kZXggMjY3ODA1NDc1OGFmMzBlOWJlMjU1ZTBjNDJhY2M4ZDNhNThhODkyMi4uN2NjZWU5ZjY5
MGJlNjNjN2Y0YjVlZDRmMDNhOWQ1NDQ2YzM5YmNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaApAQCAtODcsNiAr
ODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgPSAwOyAvLyBNdXN0IGJl
IGNhbGxlZCBiZWZvcmUgdXNpbmcgdGhlIHByb3h5LgogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkg
PSAwOyAvLyBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgZGVsZXRpbmcgdGhlIHByb3h5LgogCisgICAg
dmlydHVhbCB2b2lkIGZvcmNlTm9PcENvbW1hbmQoKSA9IDA7CisKICAgICAvLyBNYXhpbXVtIG51
bWJlciBvZiBzdWItcmVnaW9uIHRleHR1cmUgdXBkYXRlcyBzdXBwb3J0ZWQgZm9yIGVhY2ggY29t
bWl0LgogICAgIHZpcnR1YWwgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpIGNvbnN0
ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCA5MjIz
YzVmNmIwMGQxZWRkMWVhNjM0NjBjOWYwOTk5YTRkZmRiZDA5Li5lOThlNmRjYTU3MTY3Zjc0NGYy
Y2M2NzcwZmViY2Q4ZDJmMTE5NWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmNwcApAQCAtMjgxLDYgKzI4MSwxNSBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OmNv
bXBvc2l0ZUltbWVkaWF0ZWx5KCkKICAgICB9CiB9CiAKK3ZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94
eTo6Zm9yY2VOb09wQ29tbWFuZCgpCit7CisgICAgeworICAgICAgICBEZWJ1Z1Njb3BlZFNldElt
cGxUaHJlYWQgaW1wbDsKKyAgICAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKQor
ICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpLT5kb05vT3Ao
KTsKKyAgICB9Cit9CisKIGJvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tbWl0SWZOZWVkZWQo
KQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVh
ZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1NpbmdsZVRocmVhZFByb3h5LmgKaW5kZXggOWRlYzRmNDczZWQ1OTBiOWJkNDgwZWM2Y2YxMmRm
NjcxNWFlYjE2MC4uYjhjMTk5MmVlY2UwZmU4ZWNiZmZmNTkyZDE0MGM1Y2EzNjcxNjE5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
aW5nbGVUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHNpemVfdCBtYXhQYXJ0aWFsVGV4dHVyZVVw
ZGF0ZXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVf
dD46Om1heCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTm9PcENvbW1hbmQoKSBPVkVSUklE
RTsKIAogICAgIC8vIENDTGF5ZXJUcmVlSG9zdEltcGxDbGllbnQgaW1wbGVtZW50YXRpb24KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHRPbkltcGxUaHJlYWQoKSBPVkVSUklERSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggNjM4ZWNkMjU1N2RjNjg4MTQ0MDczMDcy
M2RiOWZhY2I2NDgwMDQ1My4uMTEwNTBlZWI0MThlOTljM2U5NWIwNDQ2YzQ5ZGVkODZjOWU4MTEw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTM4MCw2ICszODAsMjEgQEAgdm9p
ZCBDQ1RocmVhZFByb3h5OjpzdG9wKCkKICAgICBtX3N0YXJ0ZWQgPSBmYWxzZTsKIH0KIAordm9p
ZCBDQ1RocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kKCkKK3sKKyAgICBDQ0NvbXBsZXRpb25F
dmVudCBjb21wbGV0aW9uOworICAgIENDUHJveHk6OmltcGxUaHJlYWQoKS0+cG9zdFRhc2soY3Jl
YXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kT25J
bXBsVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOworICAgIGNv
bXBsZXRpb24ud2FpdCgpOworfQorCit2b2lkIENDVGhyZWFkUHJveHk6OmZvcmNlTm9PcENvbW1h
bmRPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24pCit7CisgICAgaWYg
KG1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKQorICAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBs
LT5sYXllclJlbmRlcmVyKCktPmRvTm9PcCgpOworICAgIGNvbXBsZXRpb24tPnNpZ25hbCgpOwor
fQorCisKIHZvaWQgQ0NUaHJlYWRQcm94eTo6ZmluaXNoQWxsUmVuZGVyaW5nT25JbXBsVGhyZWFk
KENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ1Ro
cmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJpbmdPbkltcGxUaHJlYWQiLCB0aGlzLCAwKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCA3MDdmNGUxNTFkMzA1MzFhNmRhNDY1YjUzMTcwYzgz
MmJmZWM3OWY4Li5lODYzNmYyNDMwNTUzZTU3ZjY1ZmU0MjAxNjQxNjhjMmY3MmExODY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc3RhcnQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZU5vT3BDb21tYW5kKCkgT1ZFUlJJREU7
CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50IGltcGxlbWVudGF0aW9uCiAgICAg
dmlydHVhbCB2b2lkIGRpZExvc2VDb250ZXh0T25JbXBsVGhyZWFkKCkgT1ZFUlJJREU7CkBAIC0x
MzQsNiArMTM1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1hZ2VP
bkltcGxUaHJlYWQoKTsKICAgICB2b2lkIHJlY3JlYXRlQ29udGV4dE9uSW1wbFRocmVhZChDQ0Nv
bXBsZXRpb25FdmVudCosIEdyYXBoaWNzQ29udGV4dDNEKiwgYm9vbCogcmVjcmVhdGVTdWNjZWVk
ZWQsIExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMqKTsKICAgICBDQ1NjaGVkdWxlZEFjdGlvbkRy
YXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSW50ZXJuYWwoYm9vbCBm
b3JjZWREcmF3KTsKKyAgICB2b2lkIGZvcmNlTm9PcENvbW1hbmRPbkltcGxUaHJlYWQoQ0NDb21w
bGV0aW9uRXZlbnQqKTsKIAogICAgIC8vIEFjY2Vzc2VkIG9uIG1haW4gdGhyZWFkIG9ubHkuCiAg
ICAgYm9vbCBtX2FuaW1hdGVSZXF1ZXN0ZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137002</attachid>
            <date>2012-04-12 17:53:34 -0700</date>
            <delta_ts>2012-04-17 18:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83649-20120412175333.patch</filename>
            <type>text/plain</type>
            <size>13044</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk4YTAwM2QzMmE1NmFk
Yzk0M2Q2MmRlYmUyOTg2Mjg4Yjc3ZjM1Yy4uZDVmZjI2ZWE4MTBjZDkwYmViYjRkNTNmZWYwMzFl
NmFiMTcyYjI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTEwICBKb2hu
IEJhdW1hbiAgPGpiYXVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRW5z
dXJlIFJhdGVMaW1pdGVyIHdhaXRzIGZvciBTd2FwYnVmZmVycyBjb21wbGV0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgd2FpdGluZyBv
bmx5IG9uIHRoZSBjYW52YXMgY29udGV4dCwgd2hpY2ggd2l0aCB0aGUgbmV3IEdQVQorICAgICAg
ICBzY2hlZHVsaW5nIHdhcyBjYXVzaW5nIHRoZSBSYXRlTGltaXRlciBub3QgdG8gcmF0ZWxpbWl0
IGVub3VnaC4gV2UKKyAgICAgICAgbmVlZCB0byBpbnNlcnQgbm8tb3AgY29tbWFuZHMgaW4gdGhl
IGNvbXBvc2l0b3IgY29udGV4dCwgc28gdGhhdCB3ZSdsbAorICAgICAgICB3YWl0IGZvciB0aGUg
Y2FudmFzIGNvbnRleHQgYW5kIFN3YXBCdWZmZXJzIGFzIHdlbGwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkb05vT3ApOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhdGVMaW1pdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmF0ZUxpbWl0
ZXI6OlJhdGVMaW1pdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJhdGVMaW1pdGVyOjpyYXRlTGlt
aXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGlt
aXRlci5oOgorICAgICAgICAoUmF0ZUxpbWl0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChSYXRlTGltaXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6c3RhcnRSYXRlTGltaXRlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3Q6OnJhdGVMaW1pdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKENDTGF5
ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQ
cm94eS5oOgorICAgICAgICAoQ0NQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1NpbmdsZVRocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaDoKKyAgICAgICAgKENDU2luZ2xlVGhyZWFkUHJveHkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUaHJlYWRQcm94eTo6Zm9yY2VOb09wQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmZvcmNlTm9PcENvbW1hbmRPbklt
cGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaDoKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTA0LTEyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5
ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggZjRhNTAwYTg3MzlhMTBj
YTc3NTBlMmY4Yzg4OGQ4MGVmNGM2YTMzNy4uZDBiNzk1MGRjYzJiZTVkMjg0Zjg2MjIzYzVlNjgz
MWVkYWM0OTI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC00
MzAsNiArNDMwLDEyIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpiZWdpbkRyYXdpbmdG
cmFtZSgpCiAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5ibGVuZEZ1bmMoR3Jh
cGhpY3NDb250ZXh0M0Q6Ok9ORSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok9ORV9NSU5VU19TUkNfQUxQ
SEEpKTsKIH0KIAordm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRvTm9PcCgpCit7CisgICAg
R0xDKG1fY29udGV4dC5nZXQoKSwgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCAwKSk7CisgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9j
b250ZXh0LT5mbHVzaCgpKTsKK30KKwogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdS
ZW5kZXJQYXNzKGNvbnN0IENDUmVuZGVyUGFzcyogcmVuZGVyUGFzcykKIHsKICAgICBDQ1JlbmRl
clN1cmZhY2UqIHJlbmRlclN1cmZhY2UgPSByZW5kZXJQYXNzLT50YXJnZXRTdXJmYWNlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IDdjYjllYjU2YTIzNTNiYTgwZDcy
MDAxMThiMjk2YTkyZGI4MGRkOGEuLjI5NDc0OTBkMGU1YjQ0ZDNmMjNhZTBiNDQ0MzU4YWI3M2Vm
NDFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCkBAIC0xMDUsNiArMTA1
LDcgQEAgcHVibGljOgogICAgIC8vIHdhaXRzIGZvciByZW5kZXJpbmcgdG8gZmluaXNoCiAgICAg
dm9pZCBmaW5pc2goKTsKIAorICAgIHZvaWQgZG9Ob09wKCk7CiAgICAgLy8gcHV0cyBiYWNrYnVm
ZmVyIG9uc2NyZWVuCiAgICAgYm9vbCBzd2FwQnVmZmVycyhjb25zdCBJbnRSZWN0JiBzdWJCdWZm
ZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9SYXRlTGltaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9SYXRlTGltaXRlci5jcHAKaW5kZXggNTcxMjYzZTc3ZjAxZGFmYzFmZDY5NzVlMDY4
NzM2MDRiMDRlNzA3Zi4uZmRhZGY5M2I0M2JkNDBlNmY5NGEzYzdmYTAwMDEwYzdmYmIyNThmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmF0
ZUxpbWl0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1JhdGVMaW1pdGVyLmNwcApAQCAtMzUsMTQgKzM1LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotUGFzc1JlZlB0cjxSYXRlTGltaXRlcj4gUmF0ZUxpbWl0ZXI6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzRCogY29udGV4dCkKK1Bhc3NSZWZQdHI8UmF0ZUxpbWl0ZXI+IFJhdGVMaW1p
dGVyOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIFJhdGVMaW1pdGVyQ2xpZW50
ICpjbGllbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXRlTGltaXRlcihjb250ZXh0
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSYXRlTGltaXRlcihjb250ZXh0LCBjbGllbnQp
KTsKIH0KIAotUmF0ZUxpbWl0ZXI6OlJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0KQorUmF0ZUxpbWl0ZXI6OlJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
LCBSYXRlTGltaXRlckNsaWVudCAqY2xpZW50KQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAg
ICAgLCBtX3RpbWVyKHRoaXMsICZSYXRlTGltaXRlcjo6cmF0ZUxpbWl0Q29udGV4dCkKKyAgICAs
IG1fY2xpZW50KGNsaWVudCkKIHsKICAgICBBU1NFUlQoY29udGV4dCk7CiAgICAgQVNTRVJUKGNv
bnRleHQtPmdldEV4dGVuc2lvbnMoKSk7CkBAIC03MCw2ICs3MSw3IEBAIHZvaWQgUmF0ZUxpbWl0
ZXI6OnJhdGVMaW1pdENvbnRleHQoVGltZXI8UmF0ZUxpbWl0ZXI+KikKIAogICAgIEV4dGVuc2lv
bnMzRENocm9taXVtKiBleHRlbnNpb25zID0gc3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNEQ2hyb21p
dW0qPihtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKSk7CiAKKyAgICBtX2NsaWVudC0+cmF0ZUxp
bWl0KCk7CiAgICAgZXh0ZW5zaW9ucy0+cmF0ZUxpbWl0T2Zmc2NyZWVuQ29udGV4dENIUk9NSVVN
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1JhdGVMaW1pdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9SYXRlTGltaXRlci5oCmluZGV4IGQ0ZTgyNGQ2MDZlYTAxODFiZDQwMDY4NWQ5MTM1
ZjE1ZTEwOTk0NzQuLjU4ZTVlN2U0ZGZhMmRjYTMwY2Q1ZDZiOTVlNzdjZjI2MGQxNTlmNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVM
aW1pdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UmF0ZUxpbWl0ZXIuaApAQCAtMzYsMjEgKzM2LDI3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKK2NsYXNzIFJhdGVMaW1pdGVyQ2xpZW50IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgcmF0ZUxpbWl0KCkgPSAwOworfTsKKwogLy8gQSBjbGFz
cyBjb250YWluaW5nIGEgdGltZXIsIHdoaWNoIGNhbGxzIHJhdGVMaW1pdENIUk9NSVVNIG9uIGV4
cGlyeQogY2xhc3MgUmF0ZUxpbWl0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxSYXRlTGltaXRlcj4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJhdGVMaW1pdGVyPiBjcmVhdGUoR3Jh
cGhpY3NDb250ZXh0M0QqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSYXRlTGltaXRlcj4gY3Jl
YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgUmF0ZUxpbWl0ZXJDbGllbnQqKTsKICAgICB+UmF0ZUxp
bWl0ZXIoKTsKIAogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKIAogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBSYXRlTGltaXRlcihHcmFwaGljc0NvbnRleHQzRCopOworICAgIGV4
cGxpY2l0IFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiwgUmF0ZUxpbWl0ZXJDbGllbnQq
KTsKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IG1fY29udGV4dDsKICAgICBib29sIG1f
Y29udGV4dFN1cHBvcnRzUmF0ZUxpbWl0aW5nRXh0ZW5zaW9uOwogICAgIFRpbWVyPFJhdGVMaW1p
dGVyPiBtX3RpbWVyOwogICAgIHZvaWQgcmF0ZUxpbWl0Q29udGV4dChUaW1lcjxSYXRlTGltaXRl
cj4qKTsKKyAgICBSYXRlTGltaXRlckNsaWVudCAqbV9jbGllbnQ7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCA4ZDQ3YTc5OWE5ZDQyZGY5ZDU2ZmNjNDhiNjNl
MWJlNWViYTI0ZTVjLi5jOWRiZjg3YThmMTk0ODUyMzA3YmJkOTNjNzUzNjdjZjE1ZDg3N2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTU4MywxMiArNTgzLDE5IEBAIHZv
aWQgQ0NMYXllclRyZWVIb3N0OjpzdGFydFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4dDNEKiBj
b250ZXh0KQogICAgIGlmIChpdCAhPSBtX3JhdGVMaW1pdGVycy5lbmQoKSkKICAgICAgICAgaXQt
PnNlY29uZC0+c3RhcnQoKTsKICAgICBlbHNlIHsKLSAgICAgICAgUmVmUHRyPFJhdGVMaW1pdGVy
PiByYXRlTGltaXRlciA9IFJhdGVMaW1pdGVyOjpjcmVhdGUoY29udGV4dCk7CisgICAgICAgIFJl
ZlB0cjxSYXRlTGltaXRlcj4gcmF0ZUxpbWl0ZXIgPSBSYXRlTGltaXRlcjo6Y3JlYXRlKGNvbnRl
eHQsIHRoaXMpOwogICAgICAgICBtX3JhdGVMaW1pdGVycy5zZXQoY29udGV4dCwgcmF0ZUxpbWl0
ZXIpOwogICAgICAgICByYXRlTGltaXRlci0+c3RhcnQoKTsKICAgICB9CiB9CiAKK3ZvaWQgQ0NM
YXllclRyZWVIb3N0OjpyYXRlTGltaXQoKQoreworICAgIC8vIEZvcmNlIGEgbm8tb3AgY29tbWFu
ZCBvbiB0aGUgY29tcG9zaXRvciBjb250ZXh0LCBzbyB0aGF0IGFueSByYXRlbGltaXRpbmcgY29t
bWFuZHMgd2lsbCB3YWl0IGZvciB0aGUgY29tcG9zaXRpbmcKKyAgICAvLyBjb250ZXh0LCBhbmQg
dGhlcmVmb3JlIGZvciB0aGUgU3dhcEJ1ZmZlcnMuCisgICAgbV9wcm94eS0+Zm9yY2VTZXJpYWxp
emVPblN3YXBCdWZmZXJzKCk7Cit9CisKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzdG9wUmF0ZUxp
bWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB7CiAgICAgUmF0ZUxpbWl0ZXJNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9yYXRlTGltaXRlcnMuZmluZChjb250ZXh0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmgKaW5kZXggZjc4ODlmZGE0NzI0MTE1MDg5NGFkMTc2ZjFkZjg1ZTk3ZDIy
ZTliOS4uNzFmMzQyYWI5MDBmNTAzMGFiNGRiNmJkZjZlOGI2YzdlZDJlZDgxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdHJ1Y3QgTGF5ZXJSZW5k
ZXJlckNhcGFiaWxpdGllcyB7CiAgICAgaW50IG1heFRleHR1cmVTaXplOwogfTsKIAotY2xhc3Mg
Q0NMYXllclRyZWVIb3N0IHsKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBSYXRlTGlt
aXRlckNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NMYXllclRyZWVIb3N0KTsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxDQ0xheWVyVHJlZUhvc3Q+IGNyZWF0ZShD
Q0xheWVyVHJlZUhvc3RDbGllbnQqLCBjb25zdCBDQ1NldHRpbmdzJik7CkBAIC0yMTYsNiArMjE2
LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBDQ1Njcm9s
bEFuZFNjYWxlU2V0Jik7CiAgICAgdm9pZCBzdGFydFJhdGVMaW1pdGVyKEdyYXBoaWNzQ29udGV4
dDNEKik7CiAgICAgdm9pZCBzdG9wUmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqKTsKKyAg
ICB2b2lkIHJhdGVMaW1pdCgpOwogCiAgICAgYm9vbCByZXF1ZXN0UGFydGlhbFRleHR1cmVVcGRh
dGUoKTsKICAgICB2b2lkIGRlbGV0ZVRleHR1cmVBZnRlckNvbW1pdChQYXNzT3duUHRyPE1hbmFn
ZWRUZXh0dXJlPik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1Byb3h5LmgKaW5kZXggMjY3ODA1NDc1OGFmMzBlOWJlMjU1ZTBjNDJh
Y2M4ZDNhNThhODkyMi4uM2ZlZDlhNjRmNTFjZWMwZmJjZWMzZWRiMDNkOTE5N2NiOTY0ODNiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDUHJveHkuaApAQCAtODcsNiArODcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzdGFydCgpID0gMDsgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIHVzaW5nIHRoZSBwcm94eS4K
ICAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGRl
bGV0aW5nIHRoZSBwcm94eS4KIAorICAgIC8vIEZvcmNlcyAzRCBjb21tYW5kcyBvbiBhbGwgY29u
dGV4dHMgdG8gd2FpdCBmb3IgYWxsIHByZXZpb3VzIFN3YXBCdWZmZXJzIHRvIGZpbmlzaCBiZWZv
cmUgZXhlY3V0aW5nIGluIHRoZSBHUFUKKyAgICAvLyBwcm9jZXNzLgorICAgIHZpcnR1YWwgdm9p
ZCBmb3JjZVNlcmlhbGl6ZU9uU3dhcEJ1ZmZlcnMoKSA9IDA7CisKICAgICAvLyBNYXhpbXVtIG51
bWJlciBvZiBzdWItcmVnaW9uIHRleHR1cmUgdXBkYXRlcyBzdXBwb3J0ZWQgZm9yIGVhY2ggY29t
bWl0LgogICAgIHZpcnR1YWwgc2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpIGNvbnN0
ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCA5MjIz
YzVmNmIwMGQxZWRkMWVhNjM0NjBjOWYwOTk5YTRkZmRiZDA5Li5lNDE4ZDFkNDU0NzUwM2IzNzA2
MjBiMDQ4MGJhMjMzNDY1ZWY3ZDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmNwcApAQCAtMjgxLDYgKzI4MSwxNSBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OmNv
bXBvc2l0ZUltbWVkaWF0ZWx5KCkKICAgICB9CiB9CiAKK3ZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94
eTo6Zm9yY2VTZXJpYWxpemVPblN3YXBCdWZmZXJzKCkKK3sKKyAgICB7CisgICAgICAgIERlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsOworICAgICAgICBpZiAobV9sYXllclJlbmRlcmVySW5p
dGlhbGl6ZWQpCisgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVy
KCktPmRvTm9PcCgpOworICAgIH0KK30KKwogYm9vbCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpjb21t
aXRJZk5lZWRlZCgpCiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAppbmRleCA5ZGVjNGY0NzNlZDU5MGI5YmQ0
ODBlYzZjZjEyZGY2NzE1YWViMTYwLi45YTYyNzI2MTNlZGNhMDAxMTY4NjY2ODFjZmQyZWRlNWIz
YmFmYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCkBAIC02MSw2ICs2
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnQoKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgc2l6ZV90IG1heFBhcnRp
YWxUZXh0dXJlVXBkYXRlcygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19s
aW1pdHM8c2l6ZV90Pjo6bWF4KCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VTZXJpYWxpemVP
blN3YXBCdWZmZXJzKCkgT1ZFUlJJREU7CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xp
ZW50IGltcGxlbWVudGF0aW9uCiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VDb250ZXh0T25JbXBs
VGhyZWFkKCkgT1ZFUlJJREUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCmluZGV4IDYz
OGVjZDI1NTdkYzY4ODE0NDA3MzA3MjNkYjlmYWNiNjQ4MDA0NTMuLjQ5MDc2NDc5OTFkZmUwYTZl
MDU2MmE4NGYyMWExMDYxMDJkMWE5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwCkBA
IC0zODAsNiArMzgwLDIxIEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c3RvcCgpCiAgICAgbV9zdGFy
dGVkID0gZmFsc2U7CiB9CiAKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6Zm9yY2VTZXJpYWxpemVPblN3
YXBCdWZmZXJzKCkKK3sKKyAgICBDQ0NvbXBsZXRpb25FdmVudCBjb21wbGV0aW9uOworICAgIEND
UHJveHk6OmltcGxUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZD
Q1RocmVhZFByb3h5Ojpmb3JjZVNlcmlhbGl6ZU9uU3dhcEJ1ZmZlcnNPbkltcGxUaHJlYWQsIEFs
bG93Q3Jvc3NUaHJlYWRBY2Nlc3MoJmNvbXBsZXRpb24pKSk7CisgICAgY29tcGxldGlvbi53YWl0
KCk7Cit9CisKK3ZvaWQgQ0NUaHJlYWRQcm94eTo6Zm9yY2VTZXJpYWxpemVPblN3YXBCdWZmZXJz
T25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50KiBjb21wbGV0aW9uKQoreworICAgIGlmICht
X2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkKKyAgICAgICAgbV9sYXllclRyZWVIb3N0SW1wbC0+
bGF5ZXJSZW5kZXJlcigpLT5kb05vT3AoKTsKKyAgICBjb21wbGV0aW9uLT5zaWduYWwoKTsKK30K
KworCiB2b2lkIENDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmluZ09uSW1wbFRocmVhZChD
Q0NvbXBsZXRpb25FdmVudCogY29tcGxldGlvbikKIHsKICAgICBUUkFDRV9FVkVOVCgiQ0NUaHJl
YWRQcm94eTo6ZmluaXNoQWxsUmVuZGVyaW5nT25JbXBsVGhyZWFkIiwgdGhpcywgMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmgKaW5kZXggNzA3ZjRlMTUxZDMwNTMxYTZkYTQ2NWI1MzE3MGM4MzJi
ZmVjNzlmOC4uZTliMGQ3YWFmMzk5NzNmYzM3MjY4MTUyZDZlZWYyM2ZmYThlY2I5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHN0YXJ0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHNpemVfdCBtYXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VTZXJpYWxpemVPblN3YXBCdWZmZXJzKCkg
T1ZFUlJJREU7CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3RJbXBsQ2xpZW50IGltcGxlbWVudGF0
aW9uCiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VDb250ZXh0T25JbXBsVGhyZWFkKCkgT1ZFUlJJ
REU7CkBAIC0xMzQsNiArMTM1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEZ1bGxSb290TGF5
ZXJEYW1hZ2VPbkltcGxUaHJlYWQoKTsKICAgICB2b2lkIHJlY3JlYXRlQ29udGV4dE9uSW1wbFRo
cmVhZChDQ0NvbXBsZXRpb25FdmVudCosIEdyYXBoaWNzQ29udGV4dDNEKiwgYm9vbCogcmVjcmVh
dGVTdWNjZWVkZWQsIExheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMqKTsKICAgICBDQ1NjaGVkdWxl
ZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IHNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSW50ZXJu
YWwoYm9vbCBmb3JjZWREcmF3KTsKKyAgICB2b2lkIGZvcmNlU2VyaWFsaXplT25Td2FwQnVmZmVy
c09uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCopOwogCiAgICAgLy8gQWNjZXNzZWQgb24g
bWFpbiB0aHJlYWQgb25seS4KICAgICBib29sIG1fYW5pbWF0ZVJlcXVlc3RlZDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137646</attachid>
            <date>2012-04-17 18:38:57 -0700</date>
            <delta_ts>2012-04-17 19:57:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83649-20120417183856.patch</filename>
            <type>text/plain</type>
            <size>13217</size>
            <attacher name="John Bauman">jbauman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2I2MmUzNjcxZGE1NGZi
MGQ0MGMzZmMwYzQ1NzNjYzVhMGVjZTEyZC4uMTlmYTk1ZWIyMTU5OWVkZGY3YTc3MDAzNDViMzI2
NGM4N2Y2MjBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTA0LTEwICBKb2hu
IEJhdW1hbiAgPGpiYXVtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gRW5z
dXJlIFJhdGVMaW1pdGVyIHdhaXRzIGZvciBTd2FwYnVmZmVycyBjb21wbGV0aW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzY0OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgd2FpdGluZyBv
bmx5IG9uIHRoZSBjYW52YXMgY29udGV4dCwgd2hpY2ggd2l0aCB0aGUgbmV3IEdQVQorICAgICAg
ICBzY2hlZHVsaW5nIHdhcyBjYXVzaW5nIHRoZSBSYXRlTGltaXRlciBub3QgdG8gcmF0ZWxpbWl0
IGVub3VnaC4gV2UKKyAgICAgICAgbmVlZCB0byBpbnNlcnQgbm8tb3AgY29tbWFuZHMgaW4gdGhl
IGNvbXBvc2l0b3IgY29udGV4dCwgc28gdGhhdCB3ZSdsbAorICAgICAgICB3YWl0IGZvciB0aGUg
Y2FudmFzIGNvbnRleHQgYW5kIFN3YXBCdWZmZXJzIGFzIHdlbGwuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkb05vT3ApOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmg6CisgICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhdGVMaW1pdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmF0ZUxpbWl0
ZXI6OlJhdGVMaW1pdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJhdGVMaW1pdGVyOjpyYXRlTGlt
aXRDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGlt
aXRlci5oOgorICAgICAgICAoUmF0ZUxpbWl0ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChSYXRlTGltaXRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJU
cmVlSG9zdDo6c3RhcnRSYXRlTGltaXRlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3Q6OnJhdGVMaW1pdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKENDTGF5
ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQ
cm94eS5oOgorICAgICAgICAoQ0NQcm94eSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q1NpbmdsZVRocmVhZFByb3h5Ojpmb3JjZU5vT3BDb21tYW5kKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaDoKKyAgICAgICAgKENDU2luZ2xlVGhyZWFkUHJveHkpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUaHJlYWRQcm94eTo6Zm9yY2VOb09wQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmZvcmNlTm9PcENvbW1hbmRPbklt
cGxUaHJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaDoKKyAgICAgICAgKENDVGhyZWFkUHJveHkpOgorCiAyMDEyLTA0LTE3ICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgogCiAgICAgICAgIEFz
c2VydHMgaW4gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJD
aHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IDBkMDY2MzMyOTBhMmI0ZDdkYjgzZTQxOTlj
MTFhYzA4ODkxZWM5OTQuLmM2MWQ4MzI5MDgzOTUzZThlYmExM2IyYWU3NmNkMzkxNzg3MjZiNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtNDIzLDYgKzQyMywx
MiBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6YmVnaW5EcmF3aW5nRnJhbWUoQ0NSZW5k
ZXJTdXJmYWNlKiBkZWZhdWx0UmVuZGVyU3VyZgogICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1f
Y29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpPTkUsIEdyYXBoaWNzQ29udGV4
dDNEOjpPTkVfTUlOVVNfU1JDX0FMUEhBKSk7CiB9CiAKK3ZvaWQgTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpkb05vT3AoKQoreworICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+Ymlu
ZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgMCkpOworICAgIEdM
QyhtX2NvbnRleHQuZ2V0KCksIG1fY29udGV4dC0+Zmx1c2goKSk7Cit9CisKIHZvaWQgTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpkcmF3UmVuZGVyUGFzcyhjb25zdCBDQ1JlbmRlclBhc3MqIHJlbmRl
clBhc3MpCiB7CiAgICAgQ0NSZW5kZXJTdXJmYWNlKiByZW5kZXJTdXJmYWNlID0gcmVuZGVyUGFz
cy0+dGFyZ2V0U3VyZmFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAppbmRl
eCBiZGUxYzk1ZjNiYzVjYTdlYmZkNTZlMmJkODI5MTNhNTI3MGQyY2I1Li43NmUzMDNmNTUzZTcw
MmE1NDUzYzlhYTEyM2I5YmE1NzQ3ODdiNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uaApAQCAtOTksNiArOTksNyBAQCBwdWJsaWM6CiAgICAgLy8gd2FpdHMgZm9yIHJlbmRl
cmluZyB0byBmaW5pc2gKICAgICB2b2lkIGZpbmlzaCgpOwogCisgICAgdm9pZCBkb05vT3AoKTsK
ICAgICAvLyBwdXRzIGJhY2tidWZmZXIgb25zY3JlZW4KICAgICBib29sIHN3YXBCdWZmZXJzKGNv
bnN0IEludFJlY3QmIHN1YkJ1ZmZlcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmNwcAppbmRleCA1NzEyNjNl
NzdmMDFkYWZjMWZkNjk3NWUwNjg3MzYwNGIwNGU3MDdmLi5mZGFkZjkzYjQzYmQ0MGU2Zjk0YTNj
N2ZhMDAwMTBjN2ZiYjI1OGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9SYXRlTGltaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmF0ZUxpbWl0ZXIuY3BwCkBAIC0zNSwxNCArMzUsMTUg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFJhdGVMaW1pdGVyPiBSYXRl
TGltaXRlcjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQorUGFzc1JlZlB0cjxS
YXRlTGltaXRlcj4gUmF0ZUxpbWl0ZXI6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dCwgUmF0ZUxpbWl0ZXJDbGllbnQgKmNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFJhdGVMaW1pdGVyKGNvbnRleHQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJhdGVMaW1p
dGVyKGNvbnRleHQsIGNsaWVudCkpOwogfQogCi1SYXRlTGltaXRlcjo6UmF0ZUxpbWl0ZXIoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCitSYXRlTGltaXRlcjo6UmF0ZUxpbWl0ZXIoR3JhcGhp
Y3NDb250ZXh0M0QqIGNvbnRleHQsIFJhdGVMaW1pdGVyQ2xpZW50ICpjbGllbnQpCiAgICAgOiBt
X2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fdGltZXIodGhpcywgJlJhdGVMaW1pdGVyOjpyYXRl
TGltaXRDb250ZXh0KQorICAgICwgbV9jbGllbnQoY2xpZW50KQogewogICAgIEFTU0VSVChjb250
ZXh0KTsKICAgICBBU1NFUlQoY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKTsKQEAgLTcwLDYgKzcx
LDcgQEAgdm9pZCBSYXRlTGltaXRlcjo6cmF0ZUxpbWl0Q29udGV4dChUaW1lcjxSYXRlTGltaXRl
cj4qKQogCiAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2Fz
dDxFeHRlbnNpb25zM0RDaHJvbWl1bSo+KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKTsKIAor
ICAgIG1fY2xpZW50LT5yYXRlTGltaXQoKTsKICAgICBleHRlbnNpb25zLT5yYXRlTGltaXRPZmZz
Y3JlZW5Db250ZXh0Q0hST01JVU0oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmF0ZUxpbWl0ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmgKaW5kZXggZDRlODI0ZDYw
NmVhMDE4MWJkNDAwNjg1ZDkxMzVmMTVlMTA5OTQ3NC4uNjhlMDQ0NTVlNjk0ZDliYTc2ZmUwMzA5
NTE5ODA3YWRjNGYxM2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vUmF0ZUxpbWl0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGltaXRlci5oCkBAIC0zNiwyMSArMzYsMjcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIAorY2xhc3MgUmF0
ZUxpbWl0ZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCByYXRlTGltaXQoKSA9
IDA7Cit9OworCiAvLyBBIGNsYXNzIGNvbnRhaW5pbmcgYSB0aW1lciwgd2hpY2ggY2FsbHMgcmF0
ZUxpbWl0Q0hST01JVU0gb24gZXhwaXJ5CiBjbGFzcyBSYXRlTGltaXRlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFJhdGVMaW1pdGVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmF0
ZUxpbWl0ZXI+IGNyZWF0ZShHcmFwaGljc0NvbnRleHQzRCopOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFJhdGVMaW1pdGVyPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBSYXRlTGltaXRlckNs
aWVudCopOwogICAgIH5SYXRlTGltaXRlcigpOwogCiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZv
aWQgc3RvcCgpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJhdGVMaW1pdGVyKEdyYXBoaWNz
Q29udGV4dDNEKik7CisgICAgUmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqLCBSYXRlTGlt
aXRlckNsaWVudCopOwogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0Owog
ICAgIGJvb2wgbV9jb250ZXh0U3VwcG9ydHNSYXRlTGltaXRpbmdFeHRlbnNpb247CiAgICAgVGlt
ZXI8UmF0ZUxpbWl0ZXI+IG1fdGltZXI7CiAgICAgdm9pZCByYXRlTGltaXRDb250ZXh0KFRpbWVy
PFJhdGVMaW1pdGVyPiopOworICAgIFJhdGVMaW1pdGVyQ2xpZW50ICptX2NsaWVudDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDZlMzNlMzkxMzU2Mjk2NDJi
MzYyZjg4MDdhOWM0ZDEyNDk5ZjhhNDYuLmM0YTM4NWViNDU2NzI1NTMwNDRjYmQyNWQ4NWVkNDI4
MzM2ZmEyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNTkzLDEyICs1
OTMsMTkgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQpCiAgICAgaWYgKGl0ICE9IG1fcmF0ZUxpbWl0ZXJzLmVuZCgpKQog
ICAgICAgICBpdC0+c2Vjb25kLT5zdGFydCgpOwogICAgIGVsc2UgewotICAgICAgICBSZWZQdHI8
UmF0ZUxpbWl0ZXI+IHJhdGVMaW1pdGVyID0gUmF0ZUxpbWl0ZXI6OmNyZWF0ZShjb250ZXh0KTsK
KyAgICAgICAgUmVmUHRyPFJhdGVMaW1pdGVyPiByYXRlTGltaXRlciA9IFJhdGVMaW1pdGVyOjpj
cmVhdGUoY29udGV4dCwgdGhpcyk7CiAgICAgICAgIG1fcmF0ZUxpbWl0ZXJzLnNldChjb250ZXh0
LCByYXRlTGltaXRlcik7CiAgICAgICAgIHJhdGVMaW1pdGVyLT5zdGFydCgpOwogICAgIH0KIH0K
IAordm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnJhdGVMaW1pdCgpCit7CisgICAgLy8gRm9yY2UgYSBu
by1vcCBjb21tYW5kIG9uIHRoZSBjb21wb3NpdG9yIGNvbnRleHQsIHNvIHRoYXQgYW55IHJhdGVs
aW1pdGluZyBjb21tYW5kcyB3aWxsIHdhaXQgZm9yIHRoZSBjb21wb3NpdGluZworICAgIC8vIGNv
bnRleHQsIGFuZCB0aGVyZWZvcmUgZm9yIHRoZSBTd2FwQnVmZmVycy4KKyAgICBtX3Byb3h5LT5m
b3JjZVNlcmlhbGl6ZU9uU3dhcEJ1ZmZlcnMoKTsKK30KKwogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6
OnN0b3BSYXRlTGltaXRlcihHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKIHsKICAgICBSYXRl
TGltaXRlck1hcDo6aXRlcmF0b3IgaXQgPSBtX3JhdGVMaW1pdGVycy5maW5kKGNvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRleCBiYWFjYzFhNDMzZjgxOTVmMWViMDFhOGI0
MjVjNjAzOWY5YWYwZTNmLi4yMDI4ODA0ODM5MDIxNDJlYjJhZjRjYjRhYjU1M2QzZWMyMmNhNjYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApAQCAtMTIyLDcgKzEyMiw3IEBAIHN0cnVj
dCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzIHsKICAgICBpbnQgbWF4VGV4dHVyZVNpemU7CiB9
OwogCi1jbGFzcyBDQ0xheWVyVHJlZUhvc3QgeworY2xhc3MgQ0NMYXllclRyZWVIb3N0IDogcHVi
bGljIFJhdGVMaW1pdGVyQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ0xheWVy
VHJlZUhvc3QpOwogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9z
dD4gY3JlYXRlKENDTGF5ZXJUcmVlSG9zdENsaWVudCosIGNvbnN0IENDU2V0dGluZ3MmKTsKQEAg
LTIxNSw2ICsyMTUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFJhdGVMaW1pdGVyKEdyYXBo
aWNzQ29udGV4dDNEKik7CiAgICAgdm9pZCBzdG9wUmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0
M0QqKTsKIAorICAgIC8vIFJhdGVMaW1pdENsaWVudCBpbXBsZW1lbnRhdGlvbgorICAgIHZpcnR1
YWwgdm9pZCByYXRlTGltaXQoKSBPVkVSUklERTsKKwogICAgIGJvb2wgYnVmZmVyZWRVcGRhdGVz
KCk7CiAgICAgYm9vbCByZXF1ZXN0UGFydGlhbFRleHR1cmVVcGRhdGUoKTsKICAgICB2b2lkIGRl
bGV0ZVRleHR1cmVBZnRlckNvbW1pdChQYXNzT3duUHRyPE1hbmFnZWRUZXh0dXJlPik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1By
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1By
b3h5LmgKaW5kZXggN2Y5ZTFjNTkxNjdkYmMwNGQ3NmI1NDU1OWI1NGZiYjQ5YThiNzg4Ny4uZjll
OWMzZjI3NmIyNmU3MGQ1NmVmZThhMDJmNmM2OGUzNjBlMmY0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuaApAQCAt
ODgsNiArODgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydCgpID0gMDsgLy8g
TXVzdCBiZSBjYWxsZWQgYmVmb3JlIHVzaW5nIHRoZSBwcm94eS4KICAgICB2aXJ0dWFsIHZvaWQg
c3RvcCgpID0gMDsgLy8gTXVzdCBiZSBjYWxsZWQgYmVmb3JlIGRlbGV0aW5nIHRoZSBwcm94eS4K
IAorICAgIC8vIEZvcmNlcyAzRCBjb21tYW5kcyBvbiBhbGwgY29udGV4dHMgdG8gd2FpdCBmb3Ig
YWxsIHByZXZpb3VzIFN3YXBCdWZmZXJzIHRvIGZpbmlzaCBiZWZvcmUgZXhlY3V0aW5nIGluIHRo
ZSBHUFUKKyAgICAvLyBwcm9jZXNzLgorICAgIHZpcnR1YWwgdm9pZCBmb3JjZVNlcmlhbGl6ZU9u
U3dhcEJ1ZmZlcnMoKSA9IDA7CisKICAgICAvLyBNYXhpbXVtIG51bWJlciBvZiBzdWItcmVnaW9u
IHRleHR1cmUgdXBkYXRlcyBzdXBwb3J0ZWQgZm9yIGVhY2ggY29tbWl0LgogICAgIHZpcnR1YWwg
c2l6ZV90IG1heFBhcnRpYWxUZXh0dXJlVXBkYXRlcygpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVU
aHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCA4MDdkODBiNzg5M2E4MjJlZmU4MmM2
NjhhZWU1ZmQ1Y2RmNzlhNzQzLi4zZTUxMWIzM2Y3YzI3NDc3ZTA2ZTYzZWI0MDE4ZjYyMWZmZmZi
MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMjgyLDYg
KzI4MiwxNSBAQCB2b2lkIENDU2luZ2xlVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUltbWVkaWF0ZWx5
KCkKICAgICB9CiB9CiAKK3ZvaWQgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Zm9yY2VTZXJpYWxpemVP
blN3YXBCdWZmZXJzKCkKK3sKKyAgICB7CisgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVh
ZCBpbXBsOworICAgICAgICBpZiAobV9sYXllclJlbmRlcmVySW5pdGlhbGl6ZWQpCisgICAgICAg
ICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCktPmRvTm9PcCgpOworICAg
IH0KK30KKwogYm9vbCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpjb21taXRBbmRDb21wb3NpdGUoKQog
ewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Np
bmdsZVRocmVhZFByb3h5LmgKaW5kZXggOTQ1MmI5OTZkMjQ5ZWFkZmZhYjJiODk5MDMyODJiOTEx
ZGU3NjhjNi4uYmVjMDQ4NjA4ZDcwZWNjZWI0ZDdiMzQ5OTUwOGI4MzA4MDE1MzllZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5n
bGVUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHNpemVfdCBt
YXhQYXJ0aWFsVGV4dHVyZVVwZGF0ZXMoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBzdGQ6Om51
bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZvbnRB
dGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGZvcmNlU2VyaWFsaXplT25Td2FwQnVmZmVycygpIE9WRVJSSURFOwogCiAgICAgLy8gQ0NMYXll
clRyZWVIb3N0SW1wbENsaWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgdm9pZCBkaWRM
b3NlQ29udGV4dE9uSW1wbFRocmVhZCgpIE9WRVJSSURFIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmNwcAppbmRleCA3ZTk5NzI0MWJjNzdjODNiZTBlMjc5MDJiNjNjNzZlNTdlYzYxOTAwLi5m
ZWIyMmYxMDUyZjc1Zjk4ZjZiMzRlMTQ0NzQ3NGNlYzE3ZjE3ODk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcApAQCAtMzgwLDYgKzM4MCwyMSBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnN0
b3AoKQogICAgIG1fc3RhcnRlZCA9IGZhbHNlOwogfQogCit2b2lkIENDVGhyZWFkUHJveHk6OmZv
cmNlU2VyaWFsaXplT25Td2FwQnVmZmVycygpCit7CisgICAgQ0NDb21wbGV0aW9uRXZlbnQgY29t
cGxldGlvbjsKKyAgICBDQ1Byb3h5OjppbXBsVGhyZWFkKCktPnBvc3RUYXNrKGNyZWF0ZUNDVGhy
ZWFkVGFzayh0aGlzLCAmQ0NUaHJlYWRQcm94eTo6Zm9yY2VTZXJpYWxpemVPblN3YXBCdWZmZXJz
T25JbXBsVGhyZWFkLCBBbGxvd0Nyb3NzVGhyZWFkQWNjZXNzKCZjb21wbGV0aW9uKSkpOworICAg
IGNvbXBsZXRpb24ud2FpdCgpOworfQorCit2b2lkIENDVGhyZWFkUHJveHk6OmZvcmNlU2VyaWFs
aXplT25Td2FwQnVmZmVyc09uSW1wbFRocmVhZChDQ0NvbXBsZXRpb25FdmVudCogY29tcGxldGlv
bikKK3sKKyAgICBpZiAobV9sYXllclJlbmRlcmVySW5pdGlhbGl6ZWQpCisgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKS0+ZG9Ob09wKCk7CisgICAgY29tcGxldGlv
bi0+c2lnbmFsKCk7Cit9CisKKwogdm9pZCBDQ1RocmVhZFByb3h5OjpmaW5pc2hBbGxSZW5kZXJp
bmdPbkltcGxUaHJlYWQoQ0NDb21wbGV0aW9uRXZlbnQqIGNvbXBsZXRpb24pCiB7CiAgICAgVFJB
Q0VfRVZFTlQoIkNDVGhyZWFkUHJveHk6OmZpbmlzaEFsbFJlbmRlcmluZ09uSW1wbFRocmVhZCIs
IHRoaXMsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IDc2YzJlMzdjZDZjMDE1NWY5
YTU5MmI4YjM4NzEzM2NkODBjOTFlNDMuLmY5Njk3ZDM2ZjI3YjRiYjIzZGNkMGM2YWE5NmIyMTc3
MDFkZjg5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBzaXpl
X3QgbWF4UGFydGlhbFRleHR1cmVVcGRhdGVzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldEZvbnRBdGxhcyhQYXNzT3duUHRyPENDRm9udEF0bGFzPikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGZvcmNlU2VyaWFsaXplT25Td2FwQnVmZmVycygpIE9WRVJSSURFOwog
CiAgICAgLy8gQ0NMYXllclRyZWVIb3N0SW1wbENsaWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZp
cnR1YWwgdm9pZCBkaWRMb3NlQ29udGV4dE9uSW1wbFRocmVhZCgpIE9WRVJSSURFOwpAQCAtMTM2
LDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWNyZWF0ZUNvbnRleHRPbkltcGxUaHJl
YWQoQ0NDb21wbGV0aW9uRXZlbnQqLCBHcmFwaGljc0NvbnRleHQzRCosIGJvb2wqIHJlY3JlYXRl
U3VjY2VlZGVkLCBMYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKik7CiAgICAgQ0NTY2hlZHVsZWRB
Y3Rpb25EcmF3QW5kU3dhcFJlc3VsdCBzY2hlZHVsZWRBY3Rpb25EcmF3QW5kU3dhcEludGVybmFs
KGJvb2wgZm9yY2VkRHJhdyk7CiAgICAgdm9pZCBzZXRGb250QXRsYXNPbkltcGxUaHJlYWQoUGFz
c093blB0cjxDQ0ZvbnRBdGxhcz4pOworICAgIHZvaWQgZm9yY2VTZXJpYWxpemVPblN3YXBCdWZm
ZXJzT25JbXBsVGhyZWFkKENDQ29tcGxldGlvbkV2ZW50Kik7CiAKICAgICAvLyBBY2Nlc3NlZCBv
biBtYWluIHRocmVhZCBvbmx5LgogICAgIGJvb2wgbV9hbmltYXRlUmVxdWVzdGVkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>