<?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>106630</bug_id>
          
          <creation_ts>2013-01-10 20:15:28 -0800</creation_ts>
          <short_desc>Blur the label background of a snapshotted plugin</short_desc>
          <delta_ts>2013-01-14 19:51:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>eric</cc>
    
    <cc>jonlee</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>804901</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-10 20:15:28 -0800</bug_when>
    <thetext>Provide the ability to blur the snapshot of the plugin behind any label we want to display. This would allow a transparent label that is more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804902</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-01-10 20:16:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/12994916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804907</commentid>
    <comment_count>2</comment_count>
      <attachid>182250</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-10 20:26:54 -0800</bug_when>
    <thetext>Created attachment 182250
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806747</commentid>
    <comment_count>3</comment_count>
      <attachid>182655</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-14 16:27:50 -0800</bug_when>
    <thetext>Created attachment 182655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806772</commentid>
    <comment_count>4</comment_count>
      <attachid>182655</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-14 16:50:34 -0800</bug_when>
    <thetext>Comment on attachment 182655
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        slightly blur the snapshot behind the label so that it is more clear. All the code
&gt; +        here is platform-neutral, but the treatment is specific to Mac. Unfortunately I
&gt; +        couldn&apos;t find a better place to put the code (RenderThemeMac depends on a bunch
&gt; +        of Objective C classes). The good news is that this operation is probably
&gt; +        helpful to other ports, which would be a case of simply removing the #if PLATFORM.

I don&apos;t think you need to make excuses for this being here.

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:228
&gt; +    RefPtr&lt;RenderSnapshottedPlugInBlurFilter&gt; blurFilter = RenderSnapshottedPlugInBlurFilter::create(5);

Please move the &apos;5&apos; into a named constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806773</commentid>
    <comment_count>5</comment_count>
      <attachid>182655</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2013-01-14 16:51:58 -0800</bug_when>
    <thetext>Comment on attachment 182655
Patch

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

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:69
&gt; +    virtual FloatRect sourceImageRect() const { return m_sourceImageRect; }

OVERRIDE keyword?

&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:70
&gt; +    virtual FloatRect filterRegion() const { return m_filterRegion; }

OVERRIDE keyword?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806794</commentid>
    <comment_count>6</comment_count>
      <attachid>182655</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-14 17:06:20 -0800</bug_when>
    <thetext>Comment on attachment 182655
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp:69
&gt;&gt; +    virtual FloatRect sourceImageRect() const { return m_sourceImageRect; }
&gt; 
&gt; OVERRIDE keyword?

No need in this case - the parent is pure virtual here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806916</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-01-14 19:51:58 -0800</bug_when>
    <thetext>Committed r139701: &lt;http://trac.webkit.org/changeset/139701&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182250</attachid>
            <date>2013-01-10 20:26:54 -0800</date>
            <delta_ts>2013-01-14 16:27:45 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-106630-20130111152356.patch</filename>
            <type>text/plain</type>
            <size>5196</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY5NThhZjc1ZGY0YmQ3
YmFmMTA3MTY4ZDZjZjJlODczNWMwNTQ0MS4uODNkY2YwNTk5NDQ0MTQ2MzQ5NjBiOTIwODMxODBk
MDg2N2ExZTRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI2IEBACiAyMDEzLTAxLTEwICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBCbHVyIHRoZSBsYWJlbCBiYWNr
Z3JvdW5kIG9mIGEgc25hcHNob3R0ZWQgcGx1Z2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyOjpzZXRTb3VyY2VJbWFnZVJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyOjpzb3VyY2VJ
bWFnZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVy
RmlsdGVyOjpmaWx0ZXJSZWdpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW5CbHVyRmlsdGVyOjpvdXRwdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z0luQmx1ckZpbHRlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpwYWludExhYmVsKToKKworMjAxMy0wMS0xMCAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CisKICAgICAgICAgUGx1Z2luIHNuYXBzaG90IGxhYmVsIHNob3Vs
ZCB0YWtlIGRldmljZSByZXNvbHV0aW9uIGFuZCBpbnNldCBpbnRvIGFjY291bnQKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjYxOQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApp
bmRleCBmNjI4MGJiNjg5MDZkNjI1MWY0OTQyNGQ1OTEzYzQ0NTMzNTZmNjBiLi4zOGM3NDcwYWMw
YjY4NzZhNmEyOWJmNDVkZDc2ZTYyYWFiNjA1ZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTI5LDE0ICsyOSwx
OCBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkN1cnNvci5oIgorI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyLmgiCisjaW5jbHVkZSAi
RmlsdGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVk
ZSAiUGF0aC5oIgorI2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00Nyw2ICs1MSw1MSBAQCBzdGF0aWMgY29uc3QgaW50IHN0YXJ0TGFiZWxJbnNl
dCA9IDIwOyAvLyBCdXQgdGhlIGxhYmVsIGlzIGluc2V0IGZyb20gaXRzIGJveCBhbAogc3RhdGlj
IGNvbnN0IGRvdWJsZSBzaG93TGFiZWxBZnRlck1vdXNlT3ZlckRlbGF5ID0gMTsKIHN0YXRpYyBj
b25zdCBkb3VibGUgc2hvd0xhYmVsQXV0b21hdGljYWxseURlbGF5ID0gMzsKIAorY2xhc3MgUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyIDogcHVibGljIEZpbHRlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXIoKSk7
CisgICAgfQorCisgICAgdm9pZCBzZXRTb3VyY2VJbWFnZVJlY3QoY29uc3QgRmxvYXRSZWN0JiBy
KQorICAgIHsKKyAgICAgICAgbV9zb3VyY2VJbWFnZVJlY3QgPSByOworICAgICAgICBtX2ZpbHRl
clJlZ2lvbiA9IHI7CisgICAgICAgIG1fc291cmNlR3JhcGhpYy0+c2V0TWF4RWZmZWN0UmVjdChy
KTsKKyAgICAgICAgbV9ibHVyLT5zZXRNYXhFZmZlY3RSZWN0KHIpOworICAgIH0KKyAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUlt
YWdlUmVjdDsgfQorICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0IHsg
cmV0dXJuIG1fZmlsdGVyUmVnaW9uOyB9CisKKyAgICB2b2lkIGFwcGx5KCk7CisgICAgSW1hZ2VC
dWZmZXIqIG91dHB1dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmx1ci0+YXNJbWFnZUJ1ZmZlcigpOyB9
CisKK3ByaXZhdGU6CisgICAgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyKCk7CisK
KyAgICBGbG9hdFJlY3QgbV9zb3VyY2VJbWFnZVJlY3Q7CisgICAgRmxvYXRSZWN0IG1fZmlsdGVy
UmVnaW9uOworICAgIFJlZlB0cjxTb3VyY2VHcmFwaGljPiBtX3NvdXJjZUdyYXBoaWM7CisgICAg
UmVmUHRyPEZFR2F1c3NpYW5CbHVyPiBtX2JsdXI7Cit9OworCitSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbkJsdXJGaWx0ZXI6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcigpCit7Cisg
ICAgc2V0RmlsdGVyUmVzb2x1dGlvbihGbG9hdFNpemUoMSwgMSkpOworICAgIG1fc291cmNlR3Jh
cGhpYyA9IFNvdXJjZUdyYXBoaWM6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2JsdXIgPSBGRUdhdXNz
aWFuQmx1cjo6Y3JlYXRlKHRoaXMsIDUsIDUpOworICAgIG1fYmx1ci0+aW5wdXRFZmZlY3RzKCku
YXBwZW5kKG1fc291cmNlR3JhcGhpYyk7Cit9CisKK3ZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW5CbHVyRmlsdGVyOjphcHBseSgpCit7CisgICAgbV9zb3VyY2VHcmFwaGljLT5jbGVhclJlc3Vs
dCgpOworICAgIG1fYmx1ci0+Y2xlYXJSZXN1bHQoKTsKKyAgICBtX2JsdXItPmFwcGx5KCk7Cit9
CisKIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbihIVE1M
UGx1Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50KQogICAgIDogUmVuZGVyRW1iZWRkZWRPYmplY3Qo
ZWxlbWVudCkKICAgICAsIG1fc25hcHNob3RSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpj
cmVhdGUoKSkKQEAgLTE3OSw2ICsyMjgsMjIgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJ
bjo6cGFpbnRMYWJlbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQKICAg
ICBpZiAoIWxhYmVsSW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIFJlZlB0cjxJbWFnZT4g
c25hcHNob3RJbWFnZSA9IG1fc25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKTsKKyAgICBpZiAoIXNu
YXBzaG90SW1hZ2UgfHwgc25hcHNob3RJbWFnZS0+aXNOdWxsKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFBhaW50IGEgYmx1cnJlZCB2ZXJzaW9uIG9mIHRoZSBzbmFwc2hvdCB3aGVyZSB0
aGUgbGFiZWwgc2hvdWxkIGJlLgorICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYmx1ckJ1ZmZlciA9
IEltYWdlQnVmZmVyOjpjcmVhdGUocm91bmRlZEludFNpemUobGFiZWxSZWN0LnNpemUoKSkpOwor
ICAgIAorICAgIC8vIEZpcnN0LCByZW5kZXIgdGhlIHNuYXBzbm90IGludG8gdGhlIGJsdXIgYnVm
ZmVyIGF0IHRoZSBjb3JyZWN0IGxvY2F0aW9uLgorICAgIGJsdXJCdWZmZXItPmNvbnRleHQoKS0+
ZHJhd0ltYWdlKHNuYXBzaG90SW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9yU3BhY2UoKSwgSW50
UG9pbnQoLWxhYmVsUmVjdC54KCksIC1sYWJlbFJlY3QueSgpKSk7CisgICAgCisgICAgUmVmUHRy
PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcj4gYmx1ckZpbHRlciA9IFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcjo6Y3JlYXRlKCk7CisgICAgYmx1ckZpbHRlci0+c2V0
U291cmNlSW1hZ2UoYmx1ckJ1ZmZlci5yZWxlYXNlKCkpOworICAgIGJsdXJGaWx0ZXItPnNldFNv
dXJjZUltYWdlUmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBsYWJlbFJlY3Quc2l6ZSgpKSk7
CisgICAgYmx1ckZpbHRlci0+YXBwbHkoKTsKKyAgICBwYWludEluZm8uY29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGJsdXJGaWx0ZXItPm91dHB1dCgpLCBzdHlsZSgpLT5jb2xvclNwYWNlKCksIHJv
dW5kZWRJbnRQb2ludChwYWludE9mZnNldCArIGxhYmVsUmVjdC5sb2NhdGlvbigpKSk7CisKICAg
ICAvLyBSZW1lbWJlciB0aGF0IHRoZSBsYWJlbFJlY3QgaW5jbHVkZXMgdGhlIGxhYmVsIGluc2V0
LCBzbyB3ZSBuZWVkIHRvIGFkanVzdCBmb3IgaXQuCiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmRy
YXdJbWFnZShsYWJlbEltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSW50UmVjdChyb3VuZGVkSW50UG9pbnQocGFpbnRPZmZzZXQgKyBs
YWJlbFJlY3QubG9jYXRpb24oKSAtIEludFNpemUoc3RhcnRMYWJlbEluc2V0LCBzdGFydExhYmVs
SW5zZXQpKSwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182655</attachid>
            <date>2013-01-14 16:27:50 -0800</date>
            <delta_ts>2013-01-14 17:06:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106630-20130115112450.patch</filename>
            <type>text/plain</type>
            <size>12463</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY5NThhZjc1ZGY0YmQ3
YmFmMTA3MTY4ZDZjZjJlODczNWMwNTQ0MS4uMmZiNDI2YjVhZWJmMTYwYzliNjVhZmJiZGE5Y2Ey
YWU2ZDI2YWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAxLTE0ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBCbHVyIHRoZSBsYWJlbCBiYWNr
Z3JvdW5kIG9mIGEgc25hcHNob3R0ZWQgcGx1Z2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBPbiBNYWMsIHdoZW4gd2UgYXJlIHNob3dpbmcgYSBsYWJl
bCBpbmRpY2F0aW5nIHRoZSBwbHVnaW4gaGFzIGJlZW4gc25hcHNob3R0ZWQsIHdlCisgICAgICAg
IHNsaWdodGx5IGJsdXIgdGhlIHNuYXBzaG90IGJlaGluZCB0aGUgbGFiZWwgc28gdGhhdCBpdCBp
cyBtb3JlIGNsZWFyLiBBbGwgdGhlIGNvZGUKKyAgICAgICAgaGVyZSBpcyBwbGF0Zm9ybS1uZXV0
cmFsLCBidXQgdGhlIHRyZWF0bWVudCBpcyBzcGVjaWZpYyB0byBNYWMuIFVuZm9ydHVuYXRlbHkg
SQorICAgICAgICBjb3VsZG4ndCBmaW5kIGEgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGUgY29kZSAo
UmVuZGVyVGhlbWVNYWMgZGVwZW5kcyBvbiBhIGJ1bmNoCisgICAgICAgIG9mIE9iamVjdGl2ZSBD
IGNsYXNzZXMpLiBUaGUgZ29vZCBuZXdzIGlzIHRoYXQgdGhpcyBvcGVyYXRpb24gaXMgcHJvYmFi
bHkKKyAgICAgICAgaGVscGZ1bCB0byBvdGhlciBwb3J0cywgd2hpY2ggd291bGQgYmUgYSBjYXNl
IG9mIHNpbXBseSByZW1vdmluZyB0aGUgI2lmIFBMQVRGT1JNLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcDoKKyAgICAgICAgKFJlbmRlclNuYXBzaG90
dGVkUGx1Z0luQmx1ckZpbHRlcik6IFByaXZhdGUgY2xhc3MgdG8gdXNlIEZFR2F1c3NpYW5CbHVy
IHRvIGJsdXIgYW4gaW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbkJsdXJGaWx0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbkJsdXJGaWx0ZXI6OnNldFNvdXJjZUltYWdlUmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OnNvdXJjZUltYWdlUmVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmZp
bHRlclJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJs
dXJGaWx0ZXI6Om91dHB1dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBs
dWdJbkJsdXJGaWx0ZXI6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbkJsdXJGaWx0ZXI6OmFwcGx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbik6IE5ldyBtZW1iZXIgdmFyaWFibGUgdG8gaG9sZCBhIGNhY2hlZCB2ZXJzaW9u
IG9mIGEgcHJlYmx1cnJlZCBzbmFwc2hvdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBz
aG90dGVkUGx1Z0luOjp+UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4pOiBSZW1lbWJlciB0byByZW1v
dmUgdGhlIHByZWJsdXJyZWQgaW1hZ2UgZnJvbSB0aGUgY2FjaGUuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6dXBkYXRlU25hcHNob3QpOiBaZXJvIHRoZSBwcmVi
bHVycmVkIHZlcnNpb24gaWYgaXQgZXhpc3RzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50UmVwbGFjZWQpOiBFaXRoZXIgcGFpbnQgc25hcHNob3Qgb3Ig
Ymx1cnJlZCBzbmFwc2hvdCB3aXRoIGxhYmVsLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25h
cHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNob3QpOiBOZXcgbWV0aG9kIHRvIHBhaW50IGEgZnVs
bCBzaXplZCBzbmFwc2hvdC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpwYWludFJlcGxhY2VkU25hcHNob3QpOgorICAgICAgICAoV2ViQ29yZTo6c25hcHNob3R0
ZWRQbHVnaW5JbWFnZUZvckxhYmVsRGlzcGxheSk6IFN0YXRpYyBmdW5jdGlvbiB0byBwcm9kdWNl
IHRoZSBibHVycmVkIHNuYXBzaG90LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OnBhaW50UmVwbGFjZWRTbmFwc2hvdFdpdGhMYWJlbCk6IENhbGxzIHBhaW50U25h
cHNob3Qgd2l0aCB0aGUgYmx1cnJlZCBzbmFwc2hvdCBvbiBNYWMuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmg6CisKIDIwMTMtMDEtMTAgIERlYW4gSmFja3Nv
biAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFBsdWdpbiBzbmFwc2hvdCBsYWJlbCBzaG91
bGQgdGFrZSBkZXZpY2UgcmVzb2x1dGlvbiBhbmQgaW5zZXQgaW50byBhY2NvdW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApp
bmRleCBmNjI4MGJiNjg5MDZkNjI1MWY0OTQyNGQ1OTEzYzQ0NTMzNTZmNjBiLi5hZWIxYzkzOWE3
ZDU1NDE0YWM2Y2YzMmJlZjU2ZGM5ZDI4YzYyMjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTI5LDE0ICsyOSwx
OCBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkN1cnNvci5oIgorI2luY2x1ZGUgIkZFR2F1c3NpYW5CbHVyLmgiCisjaW5jbHVkZSAi
RmlsdGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJHcmFkaWVudC5oIgogI2luY2x1ZGUgIkhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFpbnRJbmZvLmgiCiAjaW5jbHVk
ZSAiUGF0aC5oIgorI2luY2x1ZGUgIlNvdXJjZUdyYXBoaWMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00Nyw2ICs1MSw1MSBAQCBzdGF0aWMgY29uc3QgaW50IHN0YXJ0TGFiZWxJbnNl
dCA9IDIwOyAvLyBCdXQgdGhlIGxhYmVsIGlzIGluc2V0IGZyb20gaXRzIGJveCBhbAogc3RhdGlj
IGNvbnN0IGRvdWJsZSBzaG93TGFiZWxBZnRlck1vdXNlT3ZlckRlbGF5ID0gMTsKIHN0YXRpYyBj
b25zdCBkb3VibGUgc2hvd0xhYmVsQXV0b21hdGljYWxseURlbGF5ID0gMzsKIAorY2xhc3MgUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyIDogcHVibGljIEZpbHRlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVyRmlsdGVyPiBjcmVhdGUoaW50IHJhZGl1cykKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW5CbHVy
RmlsdGVyKHJhZGl1cykpOworICAgIH0KKworICAgIHZvaWQgc2V0U291cmNlSW1hZ2VSZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcikKKyAgICB7CisgICAgICAgIG1fc291cmNlSW1hZ2VSZWN0ID0gcjsK
KyAgICAgICAgbV9maWx0ZXJSZWdpb24gPSByOworICAgICAgICBtX3NvdXJjZUdyYXBoaWMtPnNl
dE1heEVmZmVjdFJlY3Qocik7CisgICAgICAgIG1fYmx1ci0+c2V0TWF4RWZmZWN0UmVjdChyKTsK
KyAgICB9CisgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zb3VyY2VJbWFnZVJlY3Q7IH0KKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBmaWx0ZXJS
ZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsgfQorCisgICAgdm9pZCBhcHBs
eSgpOworICAgIEltYWdlQnVmZmVyKiBvdXRwdXQoKSBjb25zdCB7IHJldHVybiBtX2JsdXItPmFz
SW1hZ2VCdWZmZXIoKTsgfQorCitwcml2YXRlOgorICAgIFJlbmRlclNuYXBzaG90dGVkUGx1Z0lu
Qmx1ckZpbHRlcihpbnQgcmFkaXVzKTsKKworICAgIEZsb2F0UmVjdCBtX3NvdXJjZUltYWdlUmVj
dDsKKyAgICBGbG9hdFJlY3QgbV9maWx0ZXJSZWdpb247CisgICAgUmVmUHRyPFNvdXJjZUdyYXBo
aWM+IG1fc291cmNlR3JhcGhpYzsKKyAgICBSZWZQdHI8RkVHYXVzc2lhbkJsdXI+IG1fYmx1cjsK
K307CisKK1JlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcjo6UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW5CbHVyRmlsdGVyKGludCByYWRpdXMpCit7CisgICAgc2V0RmlsdGVyUmVzb2x1dGlv
bihGbG9hdFNpemUoMSwgMSkpOworICAgIG1fc291cmNlR3JhcGhpYyA9IFNvdXJjZUdyYXBoaWM6
OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2JsdXIgPSBGRUdhdXNzaWFuQmx1cjo6Y3JlYXRlKHRoaXMs
IHJhZGl1cywgcmFkaXVzKTsKKyAgICBtX2JsdXItPmlucHV0RWZmZWN0cygpLmFwcGVuZChtX3Nv
dXJjZUdyYXBoaWMpOworfQorCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRl
cjo6YXBwbHkoKQoreworICAgIG1fc291cmNlR3JhcGhpYy0+Y2xlYXJSZXN1bHQoKTsKKyAgICBt
X2JsdXItPmNsZWFyUmVzdWx0KCk7CisgICAgbV9ibHVyLT5hcHBseSgpOworfQorCiBSZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbjo6UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oSFRNTFBsdWdJbkltYWdl
RWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckVtYmVkZGVkT2JqZWN0KGVsZW1lbnQpCiAg
ICAgLCBtX3NuYXBzaG90UmVzb3VyY2UoUmVuZGVySW1hZ2VSZXNvdXJjZTo6Y3JlYXRlKCkpCkBA
IC01NSwxNCArMTA0LDE4IEBAIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBlbGVtZW50CiAgICAgLCBtX3Nob3dl
ZExhYmVsT25jZShmYWxzZSkKICAgICAsIG1fc2hvd1JlYXNvbihVc2VyTW91c2VkT3ZlcikKICAg
ICAsIG1fc2hvd0xhYmVsRGVsYXlUaW1lcih0aGlzLCAmUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46
OnNob3dMYWJlbERlbGF5VGltZXJGaXJlZCkKKyAgICAsIG1fc25hcHNob3RSZXNvdXJjZUZvckxh
YmVsKFJlbmRlckltYWdlUmVzb3VyY2U6OmNyZWF0ZSgpKQogewogICAgIG1fc25hcHNob3RSZXNv
dXJjZS0+aW5pdGlhbGl6ZSh0aGlzKTsKKyAgICBtX3NuYXBzaG90UmVzb3VyY2VGb3JMYWJlbC0+
aW5pdGlhbGl6ZSh0aGlzKTsKIH0KIAogUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46On5SZW5kZXJT
bmFwc2hvdHRlZFBsdWdJbigpCiB7CiAgICAgQVNTRVJUKG1fc25hcHNob3RSZXNvdXJjZSk7CiAg
ICAgbV9zbmFwc2hvdFJlc291cmNlLT5zaHV0ZG93bigpOworICAgIEFTU0VSVChtX3NuYXBzaG90
UmVzb3VyY2VGb3JMYWJlbCk7CisgICAgbV9zbmFwc2hvdFJlc291cmNlRm9yTGFiZWwtPnNodXRk
b3duKCk7CiB9CiAKIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIFJlbmRlclNuYXBzaG90dGVkUGx1
Z0luOjpwbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdApAQCAtNzYsNiArMTI5LDExIEBAIHZvaWQg
UmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnVwZGF0ZVNuYXBzaG90KFBhc3NSZWZQdHI8SW1hZ2U+
IGltYWdlKQogICAgIGlmICghaW1hZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIFdlIG1h
eSBoYXZlIHN0b3JlZCBhIHZlcnNpb24gb2YgdGhpcyBzbmFwc2hvdCB0byB1c2Ugd2hlbiBzaG93
aW5nIHRoZQorICAgIC8vIGxhYmVsLiBJbnZhbGlkYXRlIGl0IG5vdyBhbmQgaXQgd2lsbCBiZSBy
ZWdlbmVyYXRlZCBsYXRlci4KKyAgICBpZiAobV9zbmFwc2hvdFJlc291cmNlRm9yTGFiZWwtPmhh
c0ltYWdlKCkpCisgICAgICAgIG1fc25hcHNob3RSZXNvdXJjZUZvckxhYmVsLT5zZXRDYWNoZWRJ
bWFnZSgwKTsKKwogICAgIG1fc25hcHNob3RSZXNvdXJjZS0+c2V0Q2FjaGVkSW1hZ2UobmV3IENh
Y2hlZEltYWdlKGltYWdlLmdldCgpKSk7CiAgICAgcmVwYWludCgpOwogICAgIGlmIChtX3Nob3Vs
ZFNob3dMYWJlbEF1dG9tYXRpY2FsbHkpCkBAIC05NSwyNyArMTUzLDIzIEBAIHZvaWQgUmVuZGVy
U25hcHNob3R0ZWRQbHVnSW46OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpCiB2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFJlcGxhY2Vk
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7
CiAgICAgaWYgKHBsdWdJbkltYWdlRWxlbWVudCgpLT5kaXNwbGF5U3RhdGUoKSA8IEhUTUxQbHVn
SW5FbGVtZW50OjpQbGF5aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKSB7Ci0gICAgICAgIHBhaW50
UmVwbGFjZWRTbmFwc2hvdChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKICAgICAgICAgaWYgKG1f
c2hvdWxkU2hvd0xhYmVsKQotICAgICAgICAgICAgcGFpbnRMYWJlbChwYWludEluZm8sIHBhaW50
T2Zmc2V0KTsKKyAgICAgICAgICAgIHBhaW50UmVwbGFjZWRTbmFwc2hvdFdpdGhMYWJlbChwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcGFpbnRSZXBs
YWNlZFNuYXBzaG90KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQocGFpbnRJbmZv
LCBwYWludE9mZnNldCk7CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50
UmVwbGFjZWRTbmFwc2hvdChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0KQordm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRTbmFwc2hv
dChJbWFnZSogaW1hZ2UsIFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQpCiB7Ci0gICAgLy8gVGhpcyBjb2RlIHNob3VsZCBiZSBzaW1pbGFyIHRvIFJl
bmRlckltYWdlOjpwYWludFJlcGxhY2VkKCkgYW5kIFJlbmRlckltYWdlOjpwYWludEludG9SZWN0
KCkuCiAgICAgTGF5b3V0VW5pdCBjV2lkdGggPSBjb250ZW50V2lkdGgoKTsKICAgICBMYXlvdXRV
bml0IGNIZWlnaHQgPSBjb250ZW50SGVpZ2h0KCk7CiAgICAgaWYgKCFjV2lkdGggfHwgIWNIZWln
aHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX3NuYXBz
aG90UmVzb3VyY2UtPmltYWdlKCk7Ci0gICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+aXNOdWxsKCkp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50
SW5mby5jb250ZXh0OwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoc3R5bGUoKS0+aGlnaGxp
Z2h0KCkgIT0gbnVsbEF0b20gJiYgIWNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkKQEAgLTEz
MSw4ICsxODUsMTcgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRSZXBsYWNl
ZFNuYXBzaG90KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdAogICAgIGlmIChhbGlnbmVkUmVj
dC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3VsZFBhaW50QXRMb3dR
dWFsaXR5KGNvbnRleHQsIGltYWdlLmdldCgpLCBpbWFnZS5nZXQoKSwgYWxpZ25lZFJlY3Quc2l6
ZSgpKTsKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCktPmNvbG9y
U3BhY2UoKSwgYWxpZ25lZFJlY3QsIENvbXBvc2l0ZVNvdXJjZU92ZXIsIHNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKTsKKyAgICBib29sIHVzZUxv
d1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2Us
IGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOworICAgIGNvbnRleHQtPmRyYXdJbWFnZShpbWFn
ZSwgc3R5bGUoKS0+Y29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgQ29tcG9zaXRlU291cmNlT3Zl
ciwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSwgdXNlTG93UXVhbGl0eVNjYWxpbmcp
OworfQorCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwYWludFJlcGxhY2VkU25hcHNo
b3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
K3sKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gbV9zbmFwc2hvdFJlc291cmNlLT5pbWFnZSgp
OworICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmlzTnVsbCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBwYWludFNuYXBzaG90KGltYWdlLmdldCgpLCBwYWludEluZm8sIHBhaW50T2Zmc2V0KTsK
IH0KIAogSW1hZ2UqIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpzdGFydExhYmVsSW1hZ2UoTGFi
ZWxTaXplIHNpemUpIGNvbnN0CkBAIC0xNTMsNyArMjE2LDI2IEBAIEltYWdlKiBSZW5kZXJTbmFw
c2hvdHRlZFBsdWdJbjo6c3RhcnRMYWJlbEltYWdlKExhYmVsU2l6ZSBzaXplKSBjb25zdAogICAg
IHJldHVybiBsYWJlbEltYWdlc1thcnJheUluZGV4XTsKIH0KIAotdm9pZCBSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbjo6cGFpbnRMYWJlbChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0
UG9pbnQmIHBhaW50T2Zmc2V0KQorI2lmIFBMQVRGT1JNKE1BQykKK3N0YXRpYyBQYXNzUmVmUHRy
PEltYWdlPiBzbmFwc2hvdHRlZFBsdWdpbkltYWdlRm9yTGFiZWxEaXNwbGF5KFBhc3NSZWZQdHI8
SW1hZ2U+IHNuYXBzaG90LCBjb25zdCBMYXlvdXRSZWN0JiBibHVyUmVnaW9uKQoreworICAgIE93
blB0cjxJbWFnZUJ1ZmZlcj4gc25hcHNob3RCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNu
YXBzaG90LT5zaXplKCkpOworICAgIHNuYXBzaG90QnVmZmVyLT5jb250ZXh0KCktPmRyYXdJbWFn
ZShzbmFwc2hvdC5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoMCwgMCkpOwor
CisgICAgT3duUHRyPEltYWdlQnVmZmVyPiBibHVyQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0
ZShyb3VuZGVkSW50U2l6ZShibHVyUmVnaW9uLnNpemUoKSkpOworICAgIGJsdXJCdWZmZXItPmNv
bnRleHQoKS0+ZHJhd0ltYWdlKHNuYXBzaG90LmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJ
bnRQb2ludCgtYmx1clJlZ2lvbi54KCksIC1ibHVyUmVnaW9uLnkoKSkpOworCisgICAgUmVmUHRy
PFJlbmRlclNuYXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcj4gYmx1ckZpbHRlciA9IFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luQmx1ckZpbHRlcjo6Y3JlYXRlKDUpOworICAgIGJsdXJGaWx0ZXItPnNl
dFNvdXJjZUltYWdlKGJsdXJCdWZmZXIucmVsZWFzZSgpKTsKKyAgICBibHVyRmlsdGVyLT5zZXRT
b3VyY2VJbWFnZVJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgYmx1clJlZ2lvbi5zaXplKCkp
KTsKKyAgICBibHVyRmlsdGVyLT5hcHBseSgpOworCisgICAgc25hcHNob3RCdWZmZXItPmNvbnRl
eHQoKS0+ZHJhd0ltYWdlQnVmZmVyKGJsdXJGaWx0ZXItPm91dHB1dCgpLCBDb2xvclNwYWNlRGV2
aWNlUkdCLCByb3VuZGVkSW50UG9pbnQoYmx1clJlZ2lvbi5sb2NhdGlvbigpKSk7CisgICAgcmV0
dXJuIHNuYXBzaG90QnVmZmVyLT5jb3B5SW1hZ2UoKTsKK30KKyNlbmRpZgorCit2b2lkIFJlbmRl
clNuYXBzaG90dGVkUGx1Z0luOjpwYWludFJlcGxhY2VkU25hcHNob3RXaXRoTGFiZWwoUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIHsKICAgICBp
ZiAoY29udGVudEJveFJlY3QoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE3OSw2
ICsyNjEsMjEgQEAgdm9pZCBSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6cGFpbnRMYWJlbChQYWlu
dEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQKICAgICBpZiAoIWxhYmVsSW1hZ2Up
CiAgICAgICAgIHJldHVybjsKIAorICAgIFJlZlB0cjxJbWFnZT4gc25hcHNob3RJbWFnZSA9IG1f
c25hcHNob3RSZXNvdXJjZS0+aW1hZ2UoKTsKKyAgICBpZiAoIXNuYXBzaG90SW1hZ2UgfHwgc25h
cHNob3RJbWFnZS0+aXNOdWxsKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBSZWZQdHI8SW1hZ2U+IGJsdXJyZWRTbmFwc2hvdEltYWdlID0gbV9zbmFwc2hvdFJl
c291cmNlRm9yTGFiZWwtPmltYWdlKCk7CisgICAgaWYgKCFibHVycmVkU25hcHNob3RJbWFnZSB8
fCBibHVycmVkU25hcHNob3RJbWFnZS0+aXNOdWxsKCkpIHsKKyAgICAgICAgYmx1cnJlZFNuYXBz
aG90SW1hZ2UgPSBzbmFwc2hvdHRlZFBsdWdpbkltYWdlRm9yTGFiZWxEaXNwbGF5KHNuYXBzaG90
SW1hZ2UsIGxhYmVsUmVjdCk7CisgICAgICAgIG1fc25hcHNob3RSZXNvdXJjZUZvckxhYmVsLT5z
ZXRDYWNoZWRJbWFnZShuZXcgQ2FjaGVkSW1hZ2UoYmx1cnJlZFNuYXBzaG90SW1hZ2UuZ2V0KCkp
KTsKKyAgICB9CisgICAgc25hcHNob3RJbWFnZSA9IGJsdXJyZWRTbmFwc2hvdEltYWdlOworI2Vu
ZGlmCisKKyAgICBwYWludFNuYXBzaG90KHNuYXBzaG90SW1hZ2UuZ2V0KCksIHBhaW50SW5mbywg
cGFpbnRPZmZzZXQpOworCiAgICAgLy8gUmVtZW1iZXIgdGhhdCB0aGUgbGFiZWxSZWN0IGluY2x1
ZGVzIHRoZSBsYWJlbCBpbnNldCwgc28gd2UgbmVlZCB0byBhZGp1c3QgZm9yIGl0LgogICAgIHBh
aW50SW5mby5jb250ZXh0LT5kcmF3SW1hZ2UobGFiZWxJbWFnZSwgQ29sb3JTcGFjZURldmljZVJH
QiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFJlY3Qocm91bmRlZEludFBv
aW50KHBhaW50T2Zmc2V0ICsgbGFiZWxSZWN0LmxvY2F0aW9uKCkgLSBJbnRTaXplKHN0YXJ0TGFi
ZWxJbnNldCwgc3RhcnRMYWJlbEluc2V0KSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5oCmluZGV4IGQ5YzJlOTRiYzczOTU3NmQyZWQx
NWE5MjBmNzc3YTgyZWJmMDY4M2QuLjgyMDZlZDA4MWIyMDY2Mzc4NDY0MDMzYWVmZGE5NTkyMzE3
OTA5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5oCkBAIC02Myw3ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsK
IAogICAgIHZvaWQgcGFpbnRSZXBsYWNlZFNuYXBzaG90KFBhaW50SW5mbyYsIGNvbnN0IExheW91
dFBvaW50Jik7Ci0gICAgdm9pZCBwYWludExhYmVsKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50Jik7CisgICAgdm9pZCBwYWludFJlcGxhY2VkU25hcHNob3RXaXRoTGFiZWwoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKKyAgICB2b2lkIHBhaW50U25hcHNob3QoSW1hZ2UqLCBQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIHZvaWQgcmVwYWludExhYmVsKCk7
CiAKICAgICBMYXlvdXRSZWN0IHRyeVRvRml0U3RhcnRMYWJlbChMYWJlbFNpemUsIGNvbnN0IExh
eW91dFJlY3QmIGNvbnRlbnRCb3gpIGNvbnN0OwpAQCAtODIsNiArODMsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9zaG93ZWRMYWJlbE9uY2U7CiAgICAgU2hvd1JlYXNvbiBtX3Nob3dSZWFzb247
CiAgICAgVGltZXI8UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4+IG1fc2hvd0xhYmVsRGVsYXlUaW1l
cjsKKyAgICBPd25QdHI8UmVuZGVySW1hZ2VSZXNvdXJjZT4gbV9zbmFwc2hvdFJlc291cmNlRm9y
TGFiZWw7CiB9OwogCiBpbmxpbmUgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4qIHRvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4oUmVuZGVyT2JqZWN0KiBvYmplY3QpCg==
</data>
<flag name="review"
          id="200745"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>