<?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>157824</bug_id>
          
          <creation_ts>2016-05-17 17:59:16 -0700</creation_ts>
          <short_desc>Add media query support for wide gamut displays on Mac</short_desc>
          <delta_ts>2016-05-22 10:28:21 -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>WebKit 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>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ossy</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1194079</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-17 17:59:16 -0700</bug_when>
    <thetext>Add media query support for wide gamut displays on Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194080</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-17 17:59:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/26333137&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194081</commentid>
    <comment_count>2</comment_count>
      <attachid>279190</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-17 18:06:21 -0700</bug_when>
    <thetext>Created attachment 279190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194082</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-17 18:08:05 -0700</bug_when>
    <thetext>Attachment 279190 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformScreen.h:66:  The parameter name &quot;widget&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h:40:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/css/MediaQueryEvaluator.cpp:249:  color_gamutMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194083</commentid>
    <comment_count>4</comment_count>
      <attachid>279190</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-05-17 18:08:58 -0700</bug_when>
    <thetext>Comment on attachment 279190
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:249
&gt; +static bool color_gamutMediaFeatureEval(CSSValue* value, const CSSToLengthConversionData&amp;, Frame* frame, MediaFeaturePrefix)

Can this be a Frame&amp;?

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:159
&gt; +    CFDataRef iccData = CGColorSpaceCopyICCProfile(colorSpace);

RetainPtr

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:160
&gt; +    ColorSyncProfileRef profile = ColorSyncProfileCreate(iccData, NULL);

RetainPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194099</commentid>
    <comment_count>5</comment_count>
      <attachid>279195</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-17 18:30:46 -0700</bug_when>
    <thetext>Created attachment 279195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194100</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-17 18:31:44 -0700</bug_when>
    <thetext>Attachment 279195 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformScreen.h:66:  The parameter name &quot;widget&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/css/MediaQueryEvaluator.cpp:249:  color_gamutMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194101</commentid>
    <comment_count>7</comment_count>
      <attachid>279196</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-17 18:41:14 -0700</bug_when>
    <thetext>Created attachment 279196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194102</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-17 18:42:25 -0700</bug_when>
    <thetext>Attachment 279196 did not pass style-queue:


ERROR: Source/WebCore/platform/PlatformScreen.h:66:  The parameter name &quot;widget&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/css/MediaQueryEvaluator.cpp:249:  color_gamutMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194113</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-17 19:15:48 -0700</bug_when>
    <thetext>https://trac.webkit.org/r201065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194153</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-05-17 22:48:07 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; https://trac.webkit.org/r201065

It broke the Apple Mac cmke build: https://build.webkit.org/builders/Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/5181</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194762</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-05-19 08:21:54 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; https://trac.webkit.org/r201065
&gt; 
&gt; It broke the Apple Mac cmke build:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/5181

build log:

/Volumes/Data/slave/elcapitan-cmake-debug/build/Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h:37:10: fatal error: &apos;ColorSync/ColorSync.h&apos; file not found
#include &lt;ColorSync/ColorSync.h&gt;
         ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195425</commentid>
    <comment_count>12</comment_count>
      <attachid>279196</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-22 10:19:39 -0700</bug_when>
    <thetext>Comment on attachment 279196
Patch

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

Some null checks and coding style tweak thoughts.

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:260
&gt; +        return screenSupportsExtendedColor(frame-&gt;page()-&gt;mainFrame().view());

Two thoughts:

1) No null check needed for frame? We should change this file so it uses a reference for those arguments if they are guaranteed never to be null.
2) Why not use frame-&gt;mainFrame().view() without mentioning page()? That will obviate the need for a null check of page(), and will be more efficient, too.

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:152
&gt; +    NSWindow *window = [widget-&gt;platformWidget() window];
&gt; +    NSScreen *screen = screenForWidget(widget, window);
&gt; +    CGColorSpaceRef colorSpace = screen.colorSpace.CGColorSpace;

Maybe this is sacrilege, but I would be tempted to write this all in one line:

    auto colorSpace = screenForWidget(widget, [widget-&gt;platformWidget() window]).colorSpace.CGColorSpace;

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:158
&gt; +    RetainPtr&lt;CFDataRef&gt; iccData = adoptCF(CGColorSpaceCopyICCProfile(colorSpace));

auto is better, I think

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:159
&gt; +    RetainPtr&lt;ColorSyncProfileRef&gt; profile = adoptCF(ColorSyncProfileCreate(iccData.get(), NULL));

auto is better here too, I think.

&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:162
&gt; +    if (profile)
&gt; +        isWideGamut = ColorSyncProfileIsWideGamut(profile.get());
&gt; +    return isWideGamut;

No need for the local variable. We should write this:

    return profile &amp;&amp; ColorSyncProfileIsWideGamut(profile.get());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195426</commentid>
    <comment_count>13</comment_count>
      <attachid>279196</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-22 10:22:45 -0700</bug_when>
    <thetext>Comment on attachment 279196
Patch

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

&gt;&gt; Source/WebCore/platform/mac/PlatformScreenMac.mm:152
&gt;&gt; +    CGColorSpaceRef colorSpace = screen.colorSpace.CGColorSpace;
&gt; 
&gt; Maybe this is sacrilege, but I would be tempted to write this all in one line:
&gt; 
&gt;     auto colorSpace = screenForWidget(widget, [widget-&gt;platformWidget() window]).colorSpace.CGColorSpace;

Actually, we need to fix screenForWidget and remove its NSWindow argument. All callers find the window the same way, by calling [widget-&gt;platformWidget() window]. So that makes this even better:

    auto colorSpace = screenForWidget(widget).colorSpace.CGColorSpace;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195429</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-22 10:28:21 -0700</bug_when>
    <thetext>I’ll do these.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279190</attachid>
            <date>2016-05-17 18:06:21 -0700</date>
            <delta_ts>2016-05-17 18:08:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157824-20160518110716.patch</filename>
            <type>text/plain</type>
            <size>10801</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc0MmVhNzA4YmJkNTRm
YWJmNTU3YTE1MDAxNjI1YTE3NDNkOTQwZC4uMTM5NTlhOWE4NmUzNTkwZGRlNmEyZTQyM2JkNjc0
YWE5MDcxYTgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDE2LTA1LTE3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgbWVkaWEgcXVlcnkgc3Vw
cG9ydCBmb3Igd2lkZSBnYW11dCBkaXNwbGF5cyBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzgyNAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjYzMzMxMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHRoZSBNYWMgdmVyc2lvbiBvZiB0aGUgY29sb3ItZ2FtdXQgbWVkaWEg
cXVlcnkKKyAgICAgICAgYnkgZmlsbGluZyBvdXQgdGhlIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRD
b2xvciBmdW5jdGlvbi4KKworICAgICAgICBPbiBZb3NlbWl0ZSwgd2UgYWx3YXlzIHJldHVybiBm
YWxzZS4gT24gRWwgQ2FwaXRhbiwgd2UKKyAgICAgICAgY2FuIGNoZWNrIHRoZSBDb2xvclByb2Zp
bGUgdmlhIENvbG9yU3luYyB0byBzZWUgaWYgdGhlCisgICAgICAgIHNjcmVlbiBpcyB3aWRlIGdh
bXV0LgorCisgICAgICAgIFRoZXJlIGlzIGFscmVhZHkgYSB0ZXN0IGluIGZhc3QvbWVkaWEvbXEt
Y29sb3ItZ2FtdXQuaHRtbAorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29sb3JfZ2FtdXRNZWRpYUZlYXR1cmVFdmFsKTogUGFzcyB0
aGUgbWFpbkZyYW1lJ3MgdmlldworICAgICAgICB0byBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IsIHNvIHRoYXQgaXQgY2FuIGZldGNoIHRoZSBOU1NjcmVlbi4KKyAgICAgICAgKiBwbGF0Zm9y
bS9QbGF0Zm9ybVNjcmVlbi5oOiBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3Igbm93IHRha2Vz
CisgICAgICAgIGFuIG9wdGlvbmFsIFdpZGdldCBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuU3Vw
cG9ydHNFeHRlbmRlZENvbG9yKTogQWRkIGVtcHR5IHBhcmFtZXRlci4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW06CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5T
dXBwb3J0c0V4dGVuZGVkQ29sb3IpOiBHZXQgdGhlIE5TV2luZG93LCB0aGVuIHRoZQorICAgICAg
ICBOU1NjcmVlbiwgdGhlbiB0aGUgQ29sb3JTcGFjZSwgdGhlbiB0aGUgQ29sb3JTeW5jUHJvZmls
ZSwgYW5kCisgICAgICAgIGNoZWNrIGlmIGl0IGlzIGEgd2lkZSBnYW11dCBwcm9maWxlLgorICAg
ICAgICAqIHBsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaDogQWRkIHRoZSBTUEkgZGVj
bGFyYXRpb25zLgorCisyMDE2LTA1LTE3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4K
KwogICAgICAgICBSZW1vdmUgRVM2X0dFTkVSQVRPUlMgZmxhZwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODE1CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yNjMzMjg5ND4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAppbmRleCA2Y2YwNDJkN2FiMGEyYWQyYjc5ZDkyODFmNDQ3NzNmNTgzNjJlNWU5Li5mZGNlODlh
ZTMwYzI3NjE2ZjkxYzk1ODdmN2ZhMjFkYTVkYWM2NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGljIGJvb2wg
Y29sb3JfaW5kZXhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9M
ZW5ndGhDb252ZXIKICAgICByZXR1cm4gbnVtYmVyVmFsdWUodmFsdWUsIG51bWJlcikgJiYgY29t
cGFyZVZhbHVlKDAsIHN0YXRpY19jYXN0PGludD4obnVtYmVyKSwgb3ApOwogfQogCi1zdGF0aWMg
Ym9vbCBjb2xvcl9nYW11dE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUqLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitz
dGF0aWMgYm9vbCBjb2xvcl9nYW11dE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBj
b25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1
cmVQcmVmaXgpCiB7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0y
NTcsNyArMjU3LDcgQEAgc3RhdGljIGJvb2wgY29sb3JfZ2FtdXRNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXIKICAgICBjYXNlIENTU1ZhbHVl
UDM6CiAgICAgICAgIC8vIEZJWE1FOiBGb3IgdGhlIG1vbWVudCB3ZSdsbCBqdXN0IGFzc3VtZSBh
biAiZXh0ZW5kZWQKICAgICAgICAgLy8gY29sb3IiIGRpc3BsYXkgaXMgYXQgbGVhc3QgYXMgZ29v
ZCBhcyBQMy4KLSAgICAgICAgcmV0dXJuIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpOwor
ICAgICAgICByZXR1cm4gc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKGZyYW1lLT5wYWdlKCkt
Pm1haW5GcmFtZSgpLnZpZXcoKSk7CiAgICAgY2FzZSBDU1NWYWx1ZVJlYzIwMjA6CiAgICAgICAg
IC8vIEZJWE1FOiBBdCBzb21lIHBvaW50IHdlIHNob3VsZCBzdGFydCBkZXRlY3RpbmcgZGlzcGxh
eXMgdGhhdAogICAgICAgICAvLyBzdXBwb3J0IG1vcmUgY29sb3JzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKaW5kZXggODc3NGFlMzFjYmMzYWY4MDU5MmU4NzAyYzgz
Mzg1OGY5YThmZjU1Yy4uMGQ4MDczNmE1YmIyZTBkMzEzODJhMmI5NDVjNmU4NmQzMjZkM2M4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC02Myw3ICs2Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQq
KTsKICAgICBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0KiB3aWRn
ZXQgPSBudWxscHRyKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBOU1NjcmVlbiAqc2NyZWVu
Rm9yV2luZG93KE5TV2luZG93ICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXRmb3JtU2NyZWVuSU9TLm1tCmluZGV4IGY0YzY5NTNhNDM1MDA1YzBmMDdiZWUwMTA5MDE2
NDY4ODhkZjE4ZjIuLmM2ZGMxM2ZkMDJjMmE4ZDM3MTc3M2YzNDNhZmViYjYyMDc1NWIxNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5JT1MubW0K
QEAgLTY5LDcgKzY5LDcgQEAgYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCiAgICAgcmV0
dXJuIFVJQWNjZXNzaWJpbGl0eUlzSW52ZXJ0Q29sb3JzRW5hYmxlZCgpOwogfQogCi1ib29sIHNj
cmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRD
b2xvcihXaWRnZXQqKQogewogI2lmIFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gOTAzMDAKICAgICByZXR1cm4gTUdHZXRCb29sQW5zd2VyKGtNR1FI
YXNFeHRlbmRlZENvbG9yRGlzcGxheSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KaW5kZXggMDk1ZmJlOGJkNzQ0Y2U1MDk0NTE3MDNhNDIy
M2FmMmIzYWY0MmQxMi4uMmExM2VhZjQzMzcwYTkyZjRjNGZiZWRhYTYwODg0YmNjNmU5NGRhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5t
bQpAQCAtMjYsMTAgKzI2LDEzIEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlBsYXRm
b3JtU2NyZWVuLmgiCiAKKyNpbXBvcnQgIkNvcmVHcmFwaGljc1NQSS5oIgogI2ltcG9ydCAiRmxv
YXRSZWN0LmgiCiAjaW1wb3J0ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkhvc3RXaW5kb3cuaCIK
IAorI2ltcG9ydCA8Q29sb3JTeW5jL0NvbG9yU3luYy5oPgorCiBleHRlcm4gIkMiIHsKIGJvb2wg
Q0dEaXNwbGF5VXNlc0ludmVydGVkUG9sYXJpdHkodm9pZCk7CiBib29sIENHRGlzcGxheVVzZXNG
b3JjZVRvR3JheSh2b2lkKTsKQEAgLTEzNSw5ICsxMzgsMzMgQEAgTlNTY3JlZW4gKnNjcmVlbkZv
ckRpc3BsYXlJRChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgcmV0dXJuIG5pbDsK
IH0KIAotYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKQorYm9vbCBzY3JlZW5TdXBw
b3J0c0V4dGVuZGVkQ29sb3IoV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgcmV0dXJuIGZhbHNlOyAv
LyBGSVhNRTogVXBkYXRlIHRoaXMgdG8gZGV0ZWN0IGV4dGVuZGVkIGNvbG9yIHNjcmVlbnMuCisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTEwMAorICAgIFVOVVNFRF9Q
QVJBTSh3aWRnZXQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCisgICAgaWYgKCF3aWRn
ZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIE5TV2luZG93ICp3aW5kb3cgPSBbd2lk
Z2V0LT5wbGF0Zm9ybVdpZGdldCgpIHdpbmRvd107CisgICAgTlNTY3JlZW4gKnNjcmVlbiA9IHNj
cmVlbkZvcldpZGdldCh3aWRnZXQsIHdpbmRvdyk7CisgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9y
U3BhY2UgPSBzY3JlZW4uY29sb3JTcGFjZS5DR0NvbG9yU3BhY2U7CisKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAorICAgIHJldHVybiBDR0NvbG9yU3BhY2VJ
c1dpZGVHYW11dFJHQihjb2xvclNwYWNlKTsKKyNlbHNlCisgICAgYm9vbCBpc1dpZGVHYW11dCA9
IGZhbHNlOworICAgIENGRGF0YVJlZiBpY2NEYXRhID0gQ0dDb2xvclNwYWNlQ29weUlDQ1Byb2Zp
bGUoY29sb3JTcGFjZSk7CisgICAgQ29sb3JTeW5jUHJvZmlsZVJlZiBwcm9maWxlID0gQ29sb3JT
eW5jUHJvZmlsZUNyZWF0ZShpY2NEYXRhLCBOVUxMKTsKKyAgICBpZiAocHJvZmlsZSkgeworICAg
ICAgICBpc1dpZGVHYW11dCA9IENvbG9yU3luY1Byb2ZpbGVJc1dpZGVHYW11dChwcm9maWxlKTsK
KyAgICAgICAgQ0ZSZWxlYXNlKHByb2ZpbGUpOworICAgIH0KKyAgICBDRlJlbGVhc2UoaWNjRGF0
YSk7CisgICAgcmV0dXJuIGlzV2lkZUdhbXV0OworI2VuZGlmCiB9CiAKIEZsb2F0UmVjdCB0b1Vz
ZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3QsIE5TV2luZG93ICpkZXN0aW5hdGlvbikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCAz
OGNmNGViOGU1ZjljZDRjNTUwZTFmMDg4ZWNlNzE4NGU2OTU4Y2QyLi42MDk2YTdjYTJkMzc3OGNh
ZjBiNDZjZDBjY2QzNGZhZjVkZDAzZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRl
IDxDb3JlR3JhcGhpY3MvQ0dGb250Q2FjaGUuaD4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ29y
ZUdyYXBoaWNzUHJpdmF0ZS5oPgorI2luY2x1ZGUgPENvbG9yU3luYy9Db2xvclN5bmNQcml2Lmg+
CiAKICNlbHNlCiAKQEAgLTE5NSw2ICsxOTYsOCBAQCBDRkFycmF5UmVmIENHU0hXQ2FwdHVyZVdp
bmRvd0xpc3QoQ0dTQ29ubmVjdGlvbklEIGNpZCwgQ0dTV2luZG93SURMaXN0IHdpbmRvd0xpcwog
Q0dFcnJvciBDR1NTZXRDb25uZWN0aW9uUHJvcGVydHkoQ0dTQ29ubmVjdGlvbklELCBDR1NDb25u
ZWN0aW9uSUQgb3duZXJDaWQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlKTsKIENH
RXJyb3IgQ0dTQ29weUNvbm5lY3Rpb25Qcm9wZXJ0eShDR1NDb25uZWN0aW9uSUQsIENHU0Nvbm5l
Y3Rpb25JRCBvd25lckNpZCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgKnZhbHVlKTsKIENH
RXJyb3IgQ0dTR2V0U2NyZWVuUmVjdEZvcldpbmRvdyhDR1NDb25uZWN0aW9uSUQsIENHU1dpbmRv
d0lELCBDR1JlY3QgKik7CisKK2Jvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0KENvbG9y
U3luY1Byb2ZpbGVSZWYpOwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwY2Y2
MTIwNTZkYjVhMzNkZjAyMzg3MjBhMzkzM2VlODhkNDY3Y2UwLi44OGI3NTAyZTQ2Y2FhOGRkMzEw
NzgyYzFmMTgzYWQ5YmYxZjg0ZTQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDUtMTcg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtZWRpYSBxdWVy
eSBzdXBwb3J0IGZvciB3aWRlIGdhbXV0IGRpc3BsYXlzIG9uIE1hYworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODI0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8yNjMzMzEzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmUgdGhlIGNoZWNrIGZvciBzUkdCLCBzaW5jZSBpdCBpcyBjb25mdXNp
bmdseSBmYWxzZQorICAgICAgICBvbiBicm93c2VycyB0aGF0IGRvbid0IGltcGxlbWVudCB0aGlz
IHF1ZXJ5LCBhbmQgaXMgbGlrZWx5CisgICAgICAgIHRvIGJlIGRyb3BwZWQgZnJvbSB0aGUgc3Bl
Y2lmaWNhdGlvbi4KKworICAgICAgICBBbHNvLCBtYWtlIHRoZSB0ZXh0IHJlYWRhYmxlLgorCisg
ICAgICAgICogZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC1leHBlY3RlZC5odG1sOgorICAgICAg
ICAqIGZhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQuaHRtbDoKKwogMjAxNi0wNS0xNyAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSb2xsb3V0IHIyMDA0
MjYgc2luY2UgaXQgY2F1c2VzIFBMVCByZWdyZXNzaW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQtZXhwZWN0ZWQuaHRtbAppbmRleCAwMTQ3MTZmNmY4
OGYwN2UwYmE0NDA4NDEwMTY5YjBkOGNmZmVjYTExLi5iZTFkMDcwMjQ2NWE3NjU5OTM3YzdkNzZi
Y2JhY2E5MjMzZTUxYzMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWNv
bG9yLWdhbXV0LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1j
b2xvci1nYW11dC1leHBlY3RlZC5odG1sCkBAIC0yLDE1ICsyLDEzIEBACiA8aGVhZD4KIDx0aXRs
ZT5DU1M0IG1lZGlhIHF1ZXJ5IHRlc3Q6IGNvbG9yLWdhbXV0LjwvdGl0bGU+CiA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgotI2EgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotI2IgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOyB9Ci0jYyB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Cisj
YSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBjb2xvcjogd2hpdGU7IH0KKyNiIHsgYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47IGNvbG9yOiB3aGl0ZTsgfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxi
b2R5PgogICA8cCBpZD0iYSI+VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBncmVlbiBiYWNr
Z3JvdW5kLjwvcD4KLSAgPHAgaWQ9ImIiPlRoaXMgcGFyYWdyYXBoIHNob3VsZCBoYXZlIGEgYmx1
ZSBiYWNrZ3JvdW5kIG9uIGEgZGV2aWNlIHdpdGggYSBkaXNwbGF5IHRoYXQgc3VwcG9ydHMgc29t
ZXRoaW5nIGNsb3NlIHRvIHNSR0IsIHdoaWNoIGlzIG5lYXJseSBhbGwgZGlzcGxheXMuIE90aGVy
d2lzZSB0aGUgYmFja2dyb3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgotICA8cCBpZD0iYyI+VGhp
cyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBibHVlIGJhY2tncm91bmQgb24gYSBkZXZpY2Ugd2l0
aCBhIGRpc3BsYXkgdGhhdCBzdXBwb3J0cyBzb21ldGhpbmcgY2xvc2UgdG8gUDMuIE90aGVyd2lz
ZSB0aGUgYmFja2dyb3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgorICA8cCBpZD0iYiI+VGhpcyBw
YXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBibHVlIGJhY2tncm91bmQgb24gYSBkZXZpY2Ugd2l0aCBh
IGRpc3BsYXkgdGhhdCBzdXBwb3J0cyBzb21ldGhpbmcgY2xvc2UgdG8gUDMuIE90aGVyd2lzZSB0
aGUgYmFja2dyb3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgogICA8cD5Ob3RlIHRoYXQgdGhlIGV4
cGVjdGVkIHJlc3VsdHMgb2YgdGhpcyB0ZXN0IGFzc3VtZSBhIGRpc3BsYXkgdGhhdCBpcyBub3Qg
c2lnbmlmaWNhbnRseSB3aWRlciB0aGFuIHNSR0IuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC5odG1sCmluZGV4IDg1OTc0Mzg4Y2Q3
NDA1MDVkMjczMDlmMmI1ODA2ZjIzOWQ5YjRjMzcuLmU3YzIwNDJiM2E0NDYyZDBiODY4M2MzZDNm
YzhlZGQyNjQ1OTExNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtY29s
b3ItZ2FtdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWNvbG9yLWdhbXV0
Lmh0bWwKQEAgLTIsMjMgKzIsMTcgQEAKIDxoZWFkPgogPHRpdGxlPkNTUzQgbWVkaWEgcXVlcnkg
dGVzdDogY29sb3ItZ2FtdXQuPC90aXRsZT4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0jYSB7
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci0jYiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyB9Ci0jYyB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci0KLUBtZWRpYSAoY29sb3ItZ2Ft
dXQ6IHNyZ2IpIHsKLSNiIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgfQotfQorI2EgeyBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsgY29sb3I6IHdoaXRlOyB9CisjYiB7IGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyBjb2xvcjogd2hpdGU7IH0KIAogQG1lZGlhIChjb2xvci1nYW11dDogcDMpIHsK
LSNjIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorI2IgeyBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOyB9CiB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CiAgIDxwIGlkPSJhIj5UaGlzIHBh
cmFncmFwaCBzaG91bGQgaGF2ZSBhIGdyZWVuIGJhY2tncm91bmQuPC9wPgotICA8cCBpZD0iYiI+
VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBibHVlIGJhY2tncm91bmQgb24gYSBkZXZpY2Ug
d2l0aCBhIGRpc3BsYXkgdGhhdCBzdXBwb3J0cyBzb21ldGhpbmcgY2xvc2UgdG8gc1JHQiwgd2hp
Y2ggaXMgbmVhcmx5IGFsbCBkaXNwbGF5cy4gT3RoZXJ3aXNlIHRoZSBiYWNrZ3JvdW5kIHNob3Vs
ZCBiZSBncmVlbi48L3A+Ci0gIDxwIGlkPSJjIj5UaGlzIHBhcmFncmFwaCBzaG91bGQgaGF2ZSBh
IGJsdWUgYmFja2dyb3VuZCBvbiBhIGRldmljZSB3aXRoIGEgZGlzcGxheSB0aGF0IHN1cHBvcnRz
IHNvbWV0aGluZyBjbG9zZSB0byBQMy4gT3RoZXJ3aXNlIHRoZSBiYWNrZ3JvdW5kIHNob3VsZCBi
ZSBncmVlbi48L3A+CisgIDxwIGlkPSJiIj5UaGlzIHBhcmFncmFwaCBzaG91bGQgaGF2ZSBhIGJs
dWUgYmFja2dyb3VuZCBvbiBhIGRldmljZSB3aXRoIGEgZGlzcGxheSB0aGF0IHN1cHBvcnRzIHNv
bWV0aGluZyBjbG9zZSB0byBQMy4gT3RoZXJ3aXNlIHRoZSBiYWNrZ3JvdW5kIHNob3VsZCBiZSBn
cmVlbi48L3A+CiAgIDxwPk5vdGUgdGhhdCB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBvZiB0aGlzIHRl
c3QgYXNzdW1lIGEgZGlzcGxheSB0aGF0IGlzIG5vdCBzaWduaWZpY2FudGx5IHdpZGVyIHRoYW4g
c1JHQi48L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>
<flag name="review"
          id="303253"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279195</attachid>
            <date>2016-05-17 18:30:46 -0700</date>
            <delta_ts>2016-05-17 18:30:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157824-20160518113142.patch</filename>
            <type>text/plain</type>
            <size>10990</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIwZDI5ZTYzODE2MTVi
MGJkM2E1NGRmY2Q5ZTY3YTg4ZTRmZWY4Ny4uOGZmNGZlNjYwYzIyOTQ2MWM2NzlhYzU2ZGUwNzlm
NjlhM2QxNTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA1LTE3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbWVkaWEgcXVlcnkgc3Vw
cG9ydCBmb3Igd2lkZSBnYW11dCBkaXNwbGF5cyBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzgyNAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjYzMzMxMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIEltcGxlbWVudCB0aGUgTWFjIHZlcnNpb24gb2YgdGhlIGNvbG9yLWdhbXV0IG1lZGlhIHF1
ZXJ5CisgICAgICAgIGJ5IGZpbGxpbmcgb3V0IHRoZSBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IgZnVuY3Rpb24uCisKKyAgICAgICAgT24gWW9zZW1pdGUsIHdlIGFsd2F5cyByZXR1cm4gZmFs
c2UuIE9uIEVsIENhcGl0YW4sIHdlCisgICAgICAgIGNhbiBjaGVjayB0aGUgQ29sb3JQcm9maWxl
IHZpYSBDb2xvclN5bmMgdG8gc2VlIGlmIHRoZQorICAgICAgICBzY3JlZW4gaXMgd2lkZSBnYW11
dC4KKworICAgICAgICBUaGVyZSBpcyBhbHJlYWR5IGEgdGVzdCBpbiBmYXN0L21lZGlhL21xLWNv
bG9yLWdhbXV0Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbG9yX2dhbXV0TWVkaWFGZWF0dXJlRXZhbCk6IFBhc3MgdGhl
IG1haW5GcmFtZSdzIHZpZXcKKyAgICAgICAgdG8gc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9y
LCBzbyB0aGF0IGl0IGNhbiBmZXRjaCB0aGUgTlNTY3JlZW4uCisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaDogc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yIG5vdyB0YWtlcwor
ICAgICAgICBhbiBvcHRpb25hbCBXaWRnZXQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblN1cHBv
cnRzRXh0ZW5kZWRDb2xvcik6IEFkZCBlbXB0eSBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuU3Vw
cG9ydHNFeHRlbmRlZENvbG9yKTogR2V0IHRoZSBOU1dpbmRvdywgdGhlbiB0aGUKKyAgICAgICAg
TlNTY3JlZW4sIHRoZW4gdGhlIENvbG9yU3BhY2UsIHRoZW4gdGhlIENvbG9yU3luY1Byb2ZpbGUs
IGFuZAorICAgICAgICBjaGVjayBpZiBpdCBpcyBhIHdpZGUgZ2FtdXQgcHJvZmlsZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6IEFkZCB0aGUgU1BJIGRlY2xh
cmF0aW9ucy4KKwogMjAxNi0wNS0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSBhIHB1YmxpYyBmdW5jdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDZjZjA0MmQ3
YWIwYTJhZDJiNzlkOTI4MWY0NDc3M2Y1ODM2MmU1ZTkuLmZkY2U4OWFlMzBjMjc2MTZmOTFjOTU4
N2Y3ZmEyMWRhNWRhYzY2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAKQEAgLTI0Niw3ICsyNDYsNyBAQCBzdGF0aWMgYm9vbCBjb2xvcl9pbmRleE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcgogICAg
IHJldHVybiBudW1iZXJWYWx1ZSh2YWx1ZSwgbnVtYmVyKSAmJiBjb21wYXJlVmFsdWUoMCwgc3Rh
dGljX2Nhc3Q8aW50PihudW1iZXIpLCBvcCk7CiB9CiAKLXN0YXRpYyBib29sIGNvbG9yX2dhbXV0
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEmLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29sIGNvbG9y
X2dhbXV0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEmLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBz
dGF0aWMgYm9vbCBjb2xvcl9nYW11dE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBj
b25zdCBDU1NUb0xlbmd0aENvbnZlcgogICAgIGNhc2UgQ1NTVmFsdWVQMzoKICAgICAgICAgLy8g
RklYTUU6IEZvciB0aGUgbW9tZW50IHdlJ2xsIGp1c3QgYXNzdW1lIGFuICJleHRlbmRlZAogICAg
ICAgICAvLyBjb2xvciIgZGlzcGxheSBpcyBhdCBsZWFzdCBhcyBnb29kIGFzIFAzLgotICAgICAg
ICByZXR1cm4gc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCk7CisgICAgICAgIHJldHVybiBz
Y3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkudmll
dygpKTsKICAgICBjYXNlIENTU1ZhbHVlUmVjMjAyMDoKICAgICAgICAgLy8gRklYTUU6IEF0IHNv
bWUgcG9pbnQgd2Ugc2hvdWxkIHN0YXJ0IGRldGVjdGluZyBkaXNwbGF5cyB0aGF0CiAgICAgICAg
IC8vIHN1cHBvcnQgbW9yZSBjb2xvcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
Y3JlZW4uaAppbmRleCA4Nzc0YWUzMWNiYzNhZjgwNTkyZTg3MDJjODMzODU4ZjlhOGZmNTVjLi4w
ZDgwNzM2YTViYjJlMGQzMTM4MmEyYjk0NWM2ZTg2ZDMyNmQzYzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCopOwogICAgIEZsb2F0UmVj
dCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqIHdpZGdldCA9IG51bGxwdHIpOwog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2NyZWVuICpzY3JlZW5Gb3JXaW5kb3coTlNXaW5k
b3cgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1T
Y3JlZW5JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5J
T1MubW0KaW5kZXggZjRjNjk1M2E0MzUwMDVjMGYwN2JlZTAxMDkwMTY0Njg4OGRmMThmMi4uYzZk
YzEzZmQwMmMyYThkMzcxNzczZjM0M2FmZWJiNjIwNzU1YjE0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQpAQCAtNjksNyArNjksNyBA
QCBib29sIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzKCkKICAgICByZXR1cm4gVUlBY2Nlc3NpYmls
aXR5SXNJbnZlcnRDb2xvcnNFbmFibGVkKCk7CiB9CiAKLWJvb2wgc2NyZWVuU3VwcG9ydHNFeHRl
bmRlZENvbG9yKCkKK2Jvb2wgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKFdpZGdldCopCiB7
CiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSA5MDMwMAogICAgIHJldHVybiBNR0dldEJvb2xBbnN3ZXIoa01HUUhhc0V4dGVuZGVkQ29sb3JE
aXNwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bVNjcmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVl
bk1hYy5tbQppbmRleCAwOTVmYmU4YmQ3NDRjZTUwOTQ1MTcwM2E0MjIzYWYyYjNhZjQyZDEyLi4y
ZGQ1OWEyMWVkNTQxNTAwNjY0ODQ2YWNlMzhhM2VjM2I2NzVkZTdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0yNiwxMCArMjYs
MTMgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKIAor
I2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCiAjaW1wb3J0ICJGbG9hdFJlY3QuaCIKICNpbXBv
cnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSG9zdFdpbmRvdy5oIgogCisjaW1wb3J0IDxDb2xv
clN5bmMvQ29sb3JTeW5jLmg+CisKIGV4dGVybiAiQyIgewogYm9vbCBDR0Rpc3BsYXlVc2VzSW52
ZXJ0ZWRQb2xhcml0eSh2b2lkKTsKIGJvb2wgQ0dEaXNwbGF5VXNlc0ZvcmNlVG9HcmF5KHZvaWQp
OwpAQCAtMTM1LDkgKzEzOCwzMCBAQCBOU1NjcmVlbiAqc2NyZWVuRm9yRGlzcGxheUlEKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICAgICByZXR1cm4gbmlsOwogfQogCi1ib29sIHNjcmVl
blN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xv
cihXaWRnZXQqIHdpZGdldCkKIHsKLSAgICByZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBVcGRhdGUg
dGhpcyB0byBkZXRlY3QgZXh0ZW5kZWQgY29sb3Igc2NyZWVucy4KKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwCisgICAgVU5VU0VEX1BBUkFNKHdpZGdldCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisKKyAgICBpZiAoIXdpZGdldCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt3aWRnZXQtPnBsYXRmb3JtV2lk
Z2V0KCkgd2luZG93XTsKKyAgICBOU1NjcmVlbiAqc2NyZWVuID0gc2NyZWVuRm9yV2lkZ2V0KHdp
ZGdldCwgd2luZG93KTsKKyAgICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSA9IHNjcmVlbi5j
b2xvclNwYWNlLkNHQ29sb3JTcGFjZTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCisgICAgcmV0dXJuIENHQ29sb3JTcGFjZUlzV2lkZUdhbXV0UkdCKGNv
bG9yU3BhY2UpOworI2Vsc2UKKyAgICBib29sIGlzV2lkZUdhbXV0ID0gZmFsc2U7CisgICAgUmV0
YWluUHRyPENGRGF0YVJlZj4gaWNjRGF0YSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ29weUlDQ1By
b2ZpbGUoY29sb3JTcGFjZSkpOworICAgIFJldGFpblB0cjxDb2xvclN5bmNQcm9maWxlUmVmPiBw
cm9maWxlID0gYWRvcHRDRihDb2xvclN5bmNQcm9maWxlQ3JlYXRlKGljY0RhdGEuZ2V0KCksIE5V
TEwpKTsKKyAgICBpZiAocHJvZmlsZSkKKyAgICAgICAgaXNXaWRlR2FtdXQgPSBDb2xvclN5bmNQ
cm9maWxlSXNXaWRlR2FtdXQocHJvZmlsZS5nZXQoKSk7CisgICAgcmV0dXJuIGlzV2lkZUdhbXV0
OworI2VuZGlmCiB9CiAKIEZsb2F0UmVjdCB0b1VzZXJTcGFjZShjb25zdCBOU1JlY3QmIHJlY3Qs
IE5TV2luZG93ICpkZXN0aW5hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAppbmRleCAzOGNmNGViOGU1ZjljZDRjNTUwZTFmMDg4ZWNl
NzE4NGU2OTU4Y2QyLi5kYzYwODkwNmJiOWRhMDYzYmU1ZGU5ZTc4NmM2MmZmMWM5ZGViYjIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJ
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIENvcmVHcmFwaGljc1NQSV9oCiAjZGVmaW5lIENv
cmVHcmFwaGljc1NQSV9oCiAKKyNpbmNsdWRlIDxDb2xvclN5bmMvQ29sb3JTeW5jLmg+CiAjaW5j
bHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNpbmNsdWRlIDxDb3JlR3Jh
cGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAKQEAgLTM1LDYgKzM2LDcgQEAKIAogI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb2xvclN5bmMvQ29sb3JTeW5jUHJpdi5oPgog
I2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0ZvbnRDYWNoZS5oPgogI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+CiAKQEAgLTE5NSw2ICsxOTcsOCBAQCBDRkFycmF5
UmVmIENHU0hXQ2FwdHVyZVdpbmRvd0xpc3QoQ0dTQ29ubmVjdGlvbklEIGNpZCwgQ0dTV2luZG93
SURMaXN0IHdpbmRvd0xpcwogQ0dFcnJvciBDR1NTZXRDb25uZWN0aW9uUHJvcGVydHkoQ0dTQ29u
bmVjdGlvbklELCBDR1NDb25uZWN0aW9uSUQgb3duZXJDaWQsIENGU3RyaW5nUmVmIGtleSwgQ0ZU
eXBlUmVmIHZhbHVlKTsKIENHRXJyb3IgQ0dTQ29weUNvbm5lY3Rpb25Qcm9wZXJ0eShDR1NDb25u
ZWN0aW9uSUQsIENHU0Nvbm5lY3Rpb25JRCBvd25lckNpZCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5
cGVSZWYgKnZhbHVlKTsKIENHRXJyb3IgQ0dTR2V0U2NyZWVuUmVjdEZvcldpbmRvdyhDR1NDb25u
ZWN0aW9uSUQsIENHU1dpbmRvd0lELCBDR1JlY3QgKik7CisKK2Jvb2wgQ29sb3JTeW5jUHJvZmls
ZUlzV2lkZUdhbXV0KENvbG9yU3luY1Byb2ZpbGVSZWYpOwogI2VuZGlmCiAKIFdURl9FWFRFUk5f
Q19FTkQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBkYWQwMjkwNGY5YTE4OWQxOTg2N2UyMmI4ZGE3NWM3Nzc3NjQ2ODBiLi5h
MmQ0NmIzYzY2ZjdjMzE5N2U3N2I0NzRjYzA2ZjlmOWM3MDlhMTNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMTYtMDUtMTcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBtZWRpYSBxdWVyeSBzdXBwb3J0IGZvciB3aWRlIGdhbXV0IGRpc3BsYXlzIG9uIE1h
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODI0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjMzMzEzNz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUmVtb3ZlIHRoZSBjaGVjayBmb3Igc1JHQiwgc2lu
Y2UgaXQgaXMgY29uZnVzaW5nbHkgZmFsc2UKKyAgICAgICAgb24gYnJvd3NlcnMgdGhhdCBkb24n
dCBpbXBsZW1lbnQgdGhpcyBxdWVyeSwgYW5kIGlzIGxpa2VseQorICAgICAgICB0byBiZSBkcm9w
cGVkIGZyb20gdGhlIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgQWxzbywgbWFrZSB0aGUgdGV4
dCByZWFkYWJsZS4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQtZXhwZWN0
ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLWNvbG9yLWdhbXV0Lmh0bWw6CisKIDIw
MTYtMDUtMTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OKHIxOTI4NTUpOiBNYXRoLnJhbmRvbSgpIGFsd2F5cyBwcm9kdWNlcyB0aGUg
c2FtZSBmaXJzdCA3IGRlY2ltYWwgcG9pbnRzIHRoZSBmaXJzdCB0d28gaW52b2NhdGlvbnMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQtZXhwZWN0ZWQuaHRt
bAppbmRleCAwMTQ3MTZmNmY4OGYwN2UwYmE0NDA4NDEwMTY5YjBkOGNmZmVjYTExLi5iZTFkMDcw
MjQ2NWE3NjU5OTM3YzdkNzZiY2JhY2E5MjMzZTUxYzMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhL21xLWNvbG9yLWdhbXV0LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC1leHBlY3RlZC5odG1sCkBAIC0yLDE1ICsyLDEz
IEBACiA8aGVhZD4KIDx0aXRsZT5DU1M0IG1lZGlhIHF1ZXJ5IHRlc3Q6IGNvbG9yLWdhbXV0Ljwv
dGl0bGU+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotI2EgeyBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsgfQotI2IgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9Ci0jYyB7IGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOyB9CisjYSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBjb2xvcjogd2hp
dGU7IH0KKyNiIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IGNvbG9yOiB3aGl0ZTsgfQogPC9z
dHlsZT4KIDwvaGVhZD4KIDxib2R5PgogICA8cCBpZD0iYSI+VGhpcyBwYXJhZ3JhcGggc2hvdWxk
IGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLjwvcD4KLSAgPHAgaWQ9ImIiPlRoaXMgcGFyYWdyYXBo
IHNob3VsZCBoYXZlIGEgYmx1ZSBiYWNrZ3JvdW5kIG9uIGEgZGV2aWNlIHdpdGggYSBkaXNwbGF5
IHRoYXQgc3VwcG9ydHMgc29tZXRoaW5nIGNsb3NlIHRvIHNSR0IsIHdoaWNoIGlzIG5lYXJseSBh
bGwgZGlzcGxheXMuIE90aGVyd2lzZSB0aGUgYmFja2dyb3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9w
PgotICA8cCBpZD0iYyI+VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBibHVlIGJhY2tncm91
bmQgb24gYSBkZXZpY2Ugd2l0aCBhIGRpc3BsYXkgdGhhdCBzdXBwb3J0cyBzb21ldGhpbmcgY2xv
c2UgdG8gUDMuIE90aGVyd2lzZSB0aGUgYmFja2dyb3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgor
ICA8cCBpZD0iYiI+VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBibHVlIGJhY2tncm91bmQg
b24gYSBkZXZpY2Ugd2l0aCBhIGRpc3BsYXkgdGhhdCBzdXBwb3J0cyBzb21ldGhpbmcgY2xvc2Ug
dG8gUDMuIE90aGVyd2lzZSB0aGUgYmFja2dyb3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgogICA8
cD5Ob3RlIHRoYXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMgb2YgdGhpcyB0ZXN0IGFzc3VtZSBhIGRp
c3BsYXkgdGhhdCBpcyBub3Qgc2lnbmlmaWNhbnRseSB3aWRlciB0aGFuIHNSR0IuPC9wPgogPC9i
b2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1jb2xv
ci1nYW11dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC5odG1s
CmluZGV4IDg1OTc0Mzg4Y2Q3NDA1MDVkMjczMDlmMmI1ODA2ZjIzOWQ5YjRjMzcuLmU3YzIwNDJi
M2E0NDYyZDBiODY4M2MzZDNmYzhlZGQyNjQ1OTExNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhL21xLWNvbG9yLWdhbXV0Lmh0bWwKQEAgLTIsMjMgKzIsMTcgQEAKIDxoZWFkPgogPHRpdGxl
PkNTUzQgbWVkaWEgcXVlcnkgdGVzdDogY29sb3ItZ2FtdXQuPC90aXRsZT4KIDxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+Ci0jYSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci0jYiB7IGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOyB9Ci0jYyB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci0K
LUBtZWRpYSAoY29sb3ItZ2FtdXQ6IHNyZ2IpIHsKLSNiIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsgfQotfQorI2EgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgY29sb3I6IHdoaXRlOyB9Cisj
YiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBjb2xvcjogd2hpdGU7IH0KIAogQG1lZGlhIChj
b2xvci1nYW11dDogcDMpIHsKLSNjIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorI2IgeyBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CiB9CiA8L3N0eWxlPgogPC9oZWFkPgogPGJvZHk+CiAg
IDxwIGlkPSJhIj5UaGlzIHBhcmFncmFwaCBzaG91bGQgaGF2ZSBhIGdyZWVuIGJhY2tncm91bmQu
PC9wPgotICA8cCBpZD0iYiI+VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBibHVlIGJhY2tn
cm91bmQgb24gYSBkZXZpY2Ugd2l0aCBhIGRpc3BsYXkgdGhhdCBzdXBwb3J0cyBzb21ldGhpbmcg
Y2xvc2UgdG8gc1JHQiwgd2hpY2ggaXMgbmVhcmx5IGFsbCBkaXNwbGF5cy4gT3RoZXJ3aXNlIHRo
ZSBiYWNrZ3JvdW5kIHNob3VsZCBiZSBncmVlbi48L3A+Ci0gIDxwIGlkPSJjIj5UaGlzIHBhcmFn
cmFwaCBzaG91bGQgaGF2ZSBhIGJsdWUgYmFja2dyb3VuZCBvbiBhIGRldmljZSB3aXRoIGEgZGlz
cGxheSB0aGF0IHN1cHBvcnRzIHNvbWV0aGluZyBjbG9zZSB0byBQMy4gT3RoZXJ3aXNlIHRoZSBi
YWNrZ3JvdW5kIHNob3VsZCBiZSBncmVlbi48L3A+CisgIDxwIGlkPSJiIj5UaGlzIHBhcmFncmFw
aCBzaG91bGQgaGF2ZSBhIGJsdWUgYmFja2dyb3VuZCBvbiBhIGRldmljZSB3aXRoIGEgZGlzcGxh
eSB0aGF0IHN1cHBvcnRzIHNvbWV0aGluZyBjbG9zZSB0byBQMy4gT3RoZXJ3aXNlIHRoZSBiYWNr
Z3JvdW5kIHNob3VsZCBiZSBncmVlbi48L3A+CiAgIDxwPk5vdGUgdGhhdCB0aGUgZXhwZWN0ZWQg
cmVzdWx0cyBvZiB0aGlzIHRlc3QgYXNzdW1lIGEgZGlzcGxheSB0aGF0IGlzIG5vdCBzaWduaWZp
Y2FudGx5IHdpZGVyIHRoYW4gc1JHQi48L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279196</attachid>
            <date>2016-05-17 18:41:14 -0700</date>
            <delta_ts>2016-05-17 18:41:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157824-20160518114210.patch</filename>
            <type>text/plain</type>
            <size>10900</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIwZDI5ZTYzODE2MTVi
MGJkM2E1NGRmY2Q5ZTY3YTg4ZTRmZWY4Ny4uOGZmNGZlNjYwYzIyOTQ2MWM2NzlhYzU2ZGUwNzlm
NjlhM2QxNTQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA1LTE3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbWVkaWEgcXVlcnkgc3Vw
cG9ydCBmb3Igd2lkZSBnYW11dCBkaXNwbGF5cyBvbiBNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzgyNAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjYzMzMxMzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIEltcGxlbWVudCB0aGUgTWFjIHZlcnNpb24gb2YgdGhlIGNvbG9yLWdhbXV0IG1lZGlhIHF1
ZXJ5CisgICAgICAgIGJ5IGZpbGxpbmcgb3V0IHRoZSBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29s
b3IgZnVuY3Rpb24uCisKKyAgICAgICAgT24gWW9zZW1pdGUsIHdlIGFsd2F5cyByZXR1cm4gZmFs
c2UuIE9uIEVsIENhcGl0YW4sIHdlCisgICAgICAgIGNhbiBjaGVjayB0aGUgQ29sb3JQcm9maWxl
IHZpYSBDb2xvclN5bmMgdG8gc2VlIGlmIHRoZQorICAgICAgICBzY3JlZW4gaXMgd2lkZSBnYW11
dC4KKworICAgICAgICBUaGVyZSBpcyBhbHJlYWR5IGEgdGVzdCBpbiBmYXN0L21lZGlhL21xLWNv
bG9yLWdhbXV0Lmh0bWwKKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbG9yX2dhbXV0TWVkaWFGZWF0dXJlRXZhbCk6IFBhc3MgdGhl
IG1haW5GcmFtZSdzIHZpZXcKKyAgICAgICAgdG8gc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9y
LCBzbyB0aGF0IGl0IGNhbiBmZXRjaCB0aGUgTlNTY3JlZW4uCisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaDogc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yIG5vdyB0YWtlcwor
ICAgICAgICBhbiBvcHRpb25hbCBXaWRnZXQgcGFyYW1ldGVyLgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVlblN1cHBv
cnRzRXh0ZW5kZWRDb2xvcik6IEFkZCBlbXB0eSBwYXJhbWV0ZXIuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuU3Vw
cG9ydHNFeHRlbmRlZENvbG9yKTogR2V0IHRoZSBOU1dpbmRvdywgdGhlbiB0aGUKKyAgICAgICAg
TlNTY3JlZW4sIHRoZW4gdGhlIENvbG9yU3BhY2UsIHRoZW4gdGhlIENvbG9yU3luY1Byb2ZpbGUs
IGFuZAorICAgICAgICBjaGVjayBpZiBpdCBpcyBhIHdpZGUgZ2FtdXQgcHJvZmlsZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6IEFkZCB0aGUgU1BJIGRlY2xh
cmF0aW9ucy4KKwogMjAxNi0wNS0xNyAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSBhIHB1YmxpYyBmdW5jdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDZjZjA0MmQ3
YWIwYTJhZDJiNzlkOTI4MWY0NDc3M2Y1ODM2MmU1ZTkuLmZkY2U4OWFlMzBjMjc2MTZmOTFjOTU4
N2Y3ZmEyMWRhNWRhYzY2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1
YXRvci5jcHAKQEAgLTI0Niw3ICsyNDYsNyBAQCBzdGF0aWMgYm9vbCBjb2xvcl9pbmRleE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcgogICAg
IHJldHVybiBudW1iZXJWYWx1ZSh2YWx1ZSwgbnVtYmVyKSAmJiBjb21wYXJlVmFsdWUoMCwgc3Rh
dGljX2Nhc3Q8aW50PihudW1iZXIpLCBvcCk7CiB9CiAKLXN0YXRpYyBib29sIGNvbG9yX2dhbXV0
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEmLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29sIGNvbG9y
X2dhbXV0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEmLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBz
dGF0aWMgYm9vbCBjb2xvcl9nYW11dE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBj
b25zdCBDU1NUb0xlbmd0aENvbnZlcgogICAgIGNhc2UgQ1NTVmFsdWVQMzoKICAgICAgICAgLy8g
RklYTUU6IEZvciB0aGUgbW9tZW50IHdlJ2xsIGp1c3QgYXNzdW1lIGFuICJleHRlbmRlZAogICAg
ICAgICAvLyBjb2xvciIgZGlzcGxheSBpcyBhdCBsZWFzdCBhcyBnb29kIGFzIFAzLgotICAgICAg
ICByZXR1cm4gc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKCk7CisgICAgICAgIHJldHVybiBz
Y3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkudmll
dygpKTsKICAgICBjYXNlIENTU1ZhbHVlUmVjMjAyMDoKICAgICAgICAgLy8gRklYTUU6IEF0IHNv
bWUgcG9pbnQgd2Ugc2hvdWxkIHN0YXJ0IGRldGVjdGluZyBkaXNwbGF5cyB0aGF0CiAgICAgICAg
IC8vIHN1cHBvcnQgbW9yZSBjb2xvcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
Y3JlZW4uaAppbmRleCA4Nzc0YWUzMWNiYzNhZjgwNTkyZTg3MDJjODMzODU4ZjlhOGZmNTVjLi4w
ZDgwNzM2YTViYjJlMGQzMTM4MmEyYjk0NWM2ZTg2ZDMyNmQzYzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTYzLDcgKzYzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCopOwogICAgIEZsb2F0UmVj
dCBzY3JlZW5BdmFpbGFibGVSZWN0KFdpZGdldCopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVkQ29sb3IoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqIHdpZGdldCA9IG51bGxwdHIpOwog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TU2NyZWVuICpzY3JlZW5Gb3JXaW5kb3coTlNXaW5k
b3cgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1T
Y3JlZW5JT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1TY3JlZW5J
T1MubW0KaW5kZXggZjRjNjk1M2E0MzUwMDVjMGYwN2JlZTAxMDkwMTY0Njg4OGRmMThmMi4uYzZk
YzEzZmQwMmMyYThkMzcxNzczZjM0M2FmZWJiNjIwNzU1YjE0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtU2NyZWVuSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVNjcmVlbklPUy5tbQpAQCAtNjksNyArNjksNyBA
QCBib29sIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzKCkKICAgICByZXR1cm4gVUlBY2Nlc3NpYmls
aXR5SXNJbnZlcnRDb2xvcnNFbmFibGVkKCk7CiB9CiAKLWJvb2wgc2NyZWVuU3VwcG9ydHNFeHRl
bmRlZENvbG9yKCkKK2Jvb2wgc2NyZWVuU3VwcG9ydHNFeHRlbmRlZENvbG9yKFdpZGdldCopCiB7
CiAjaWYgUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSA5MDMwMAogICAgIHJldHVybiBNR0dldEJvb2xBbnN3ZXIoa01HUUhhc0V4dGVuZGVkQ29sb3JE
aXNwbGF5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bVNjcmVlbk1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVl
bk1hYy5tbQppbmRleCAwOTVmYmU4YmQ3NDRjZTUwOTQ1MTcwM2E0MjIzYWYyYjNhZjQyZDEyLi5m
ZTExZWRlMTI1M2Y1NDQzMmJkZGQyMjUwZjI1ZDNlYzhhNTAxOTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCkBAIC0yNiwxMCArMjYs
MTMgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKIAor
I2ltcG9ydCAiQ29yZUdyYXBoaWNzU1BJLmgiCiAjaW1wb3J0ICJGbG9hdFJlY3QuaCIKICNpbXBv
cnQgIkZyYW1lVmlldy5oIgogI2ltcG9ydCAiSG9zdFdpbmRvdy5oIgogCisjaW1wb3J0IDxDb2xv
clN5bmMvQ29sb3JTeW5jLmg+CisKIGV4dGVybiAiQyIgewogYm9vbCBDR0Rpc3BsYXlVc2VzSW52
ZXJ0ZWRQb2xhcml0eSh2b2lkKTsKIGJvb2wgQ0dEaXNwbGF5VXNlc0ZvcmNlVG9HcmF5KHZvaWQp
OwpAQCAtMTM1LDkgKzEzOCwzMCBAQCBOU1NjcmVlbiAqc2NyZWVuRm9yRGlzcGxheUlEKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKICAgICByZXR1cm4gbmlsOwogfQogCi1ib29sIHNjcmVl
blN1cHBvcnRzRXh0ZW5kZWRDb2xvcigpCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xv
cihXaWRnZXQqIHdpZGdldCkKIHsKLSAgICByZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBVcGRhdGUg
dGhpcyB0byBkZXRlY3QgZXh0ZW5kZWQgY29sb3Igc2NyZWVucy4KKyNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxMTAwCisgICAgVU5VU0VEX1BBUkFNKHdpZGdldCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICBpZiAoIXdpZGdldCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IFt3aWRnZXQtPnBsYXRmb3JtV2lkZ2V0
KCkgd2luZG93XTsKKyAgICBOU1NjcmVlbiAqc2NyZWVuID0gc2NyZWVuRm9yV2lkZ2V0KHdpZGdl
dCwgd2luZG93KTsKKyAgICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSA9IHNjcmVlbi5jb2xv
clNwYWNlLkNHQ29sb3JTcGFjZTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMjAwCisgICAgcmV0dXJuIENHQ29sb3JTcGFjZUlzV2lkZUdhbXV0UkdCKGNvbG9y
U3BhY2UpOworI2Vsc2UKKyAgICBib29sIGlzV2lkZUdhbXV0ID0gZmFsc2U7CisgICAgUmV0YWlu
UHRyPENGRGF0YVJlZj4gaWNjRGF0YSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ29weUlDQ1Byb2Zp
bGUoY29sb3JTcGFjZSkpOworICAgIFJldGFpblB0cjxDb2xvclN5bmNQcm9maWxlUmVmPiBwcm9m
aWxlID0gYWRvcHRDRihDb2xvclN5bmNQcm9maWxlQ3JlYXRlKGljY0RhdGEuZ2V0KCksIE5VTEwp
KTsKKyAgICBpZiAocHJvZmlsZSkKKyAgICAgICAgaXNXaWRlR2FtdXQgPSBDb2xvclN5bmNQcm9m
aWxlSXNXaWRlR2FtdXQocHJvZmlsZS5nZXQoKSk7CisgICAgcmV0dXJuIGlzV2lkZUdhbXV0Owor
I2VuZGlmCisjZW5kaWYKIH0KIAogRmxvYXRSZWN0IHRvVXNlclNwYWNlKGNvbnN0IE5TUmVjdCYg
cmVjdCwgTlNXaW5kb3cgKmRlc3RpbmF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4IDM4Y2Y0ZWI4ZTVmOWNkNGM1NTBlMWYw
ODhlY2U3MTg0ZTY5NThjZDIuLjc3NzViOTczYjM5YzIzMTg1MjE1YjRkODFkODNmZTU1MzM2NDFj
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNz
U1BJLmgKQEAgLTMzLDggKzMzLDEzIEBACiAjaW5jbHVkZSAiSU9TdXJmYWNlU1BJLmgiCiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDxDb2xvclN5bmMvQ29sb3JTeW5jLmg+
CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKKyNpbmNsdWRlIDxDb2xv
clN5bmMvQ29sb3JTeW5jUHJpdi5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9DR0ZvbnRDYWNo
ZS5oPgogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9Db3JlR3JhcGhpY3NQcml2YXRlLmg+CiAKQEAg
LTE5NSw2ICsyMDAsOCBAQCBDRkFycmF5UmVmIENHU0hXQ2FwdHVyZVdpbmRvd0xpc3QoQ0dTQ29u
bmVjdGlvbklEIGNpZCwgQ0dTV2luZG93SURMaXN0IHdpbmRvd0xpcwogQ0dFcnJvciBDR1NTZXRD
b25uZWN0aW9uUHJvcGVydHkoQ0dTQ29ubmVjdGlvbklELCBDR1NDb25uZWN0aW9uSUQgb3duZXJD
aWQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlKTsKIENHRXJyb3IgQ0dTQ29weUNv
bm5lY3Rpb25Qcm9wZXJ0eShDR1NDb25uZWN0aW9uSUQsIENHU0Nvbm5lY3Rpb25JRCBvd25lckNp
ZCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgKnZhbHVlKTsKIENHRXJyb3IgQ0dTR2V0U2Ny
ZWVuUmVjdEZvcldpbmRvdyhDR1NDb25uZWN0aW9uSUQsIENHU1dpbmRvd0lELCBDR1JlY3QgKik7
CisKK2Jvb2wgQ29sb3JTeW5jUHJvZmlsZUlzV2lkZUdhbXV0KENvbG9yU3luY1Byb2ZpbGVSZWYp
OwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19FTkQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkYWQwMjkwNGY5YTE4OWQxOTg2
N2UyMmI4ZGE3NWM3Nzc3NjQ2ODBiLi5hMmQ0NmIzYzY2ZjdjMzE5N2U3N2I0NzRjYzA2ZjlmOWM3
MDlhMTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTYtMDUtMTcgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBtZWRpYSBxdWVyeSBzdXBwb3J0IGZvciB3
aWRlIGdhbXV0IGRpc3BsYXlzIG9uIE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTU3ODI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjMzMzEz
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUmVtb3Zl
IHRoZSBjaGVjayBmb3Igc1JHQiwgc2luY2UgaXQgaXMgY29uZnVzaW5nbHkgZmFsc2UKKyAgICAg
ICAgb24gYnJvd3NlcnMgdGhhdCBkb24ndCBpbXBsZW1lbnQgdGhpcyBxdWVyeSwgYW5kIGlzIGxp
a2VseQorICAgICAgICB0byBiZSBkcm9wcGVkIGZyb20gdGhlIHNwZWNpZmljYXRpb24uCisKKyAg
ICAgICAgQWxzbywgbWFrZSB0aGUgdGV4dCByZWFkYWJsZS4KKworICAgICAgICAqIGZhc3QvbWVk
aWEvbXEtY29sb3ItZ2FtdXQtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhL21x
LWNvbG9yLWdhbXV0Lmh0bWw6CisKIDIwMTYtMDUtMTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29y
YXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxOTI4NTUpOiBNYXRoLnJhbmRv
bSgpIGFsd2F5cyBwcm9kdWNlcyB0aGUgc2FtZSBmaXJzdCA3IGRlY2ltYWwgcG9pbnRzIHRoZSBm
aXJzdCB0d28gaW52b2NhdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtY29sb3ItZ2FtdXQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEt
Y29sb3ItZ2FtdXQtZXhwZWN0ZWQuaHRtbAppbmRleCAwMTQ3MTZmNmY4OGYwN2UwYmE0NDA4NDEw
MTY5YjBkOGNmZmVjYTExLi5iZTFkMDcwMjQ2NWE3NjU5OTM3YzdkNzZiY2JhY2E5MjMzZTUxYzMy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWNvbG9yLWdhbXV0LWV4cGVj
dGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC1leHBl
Y3RlZC5odG1sCkBAIC0yLDE1ICsyLDEzIEBACiA8aGVhZD4KIDx0aXRsZT5DU1M0IG1lZGlhIHF1
ZXJ5IHRlc3Q6IGNvbG9yLWdhbXV0LjwvdGl0bGU+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgot
I2EgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotI2IgeyBiYWNrZ3JvdW5kLWNvbG9yOiBi
bHVlOyB9Ci0jYyB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisjYSB7IGJhY2tncm91bmQt
Y29sb3I6IGdyZWVuOyBjb2xvcjogd2hpdGU7IH0KKyNiIHsgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47IGNvbG9yOiB3aGl0ZTsgfQogPC9zdHlsZT4KIDwvaGVhZD4KIDxib2R5PgogICA8cCBpZD0i
YSI+VGhpcyBwYXJhZ3JhcGggc2hvdWxkIGhhdmUgYSBncmVlbiBiYWNrZ3JvdW5kLjwvcD4KLSAg
PHAgaWQ9ImIiPlRoaXMgcGFyYWdyYXBoIHNob3VsZCBoYXZlIGEgYmx1ZSBiYWNrZ3JvdW5kIG9u
IGEgZGV2aWNlIHdpdGggYSBkaXNwbGF5IHRoYXQgc3VwcG9ydHMgc29tZXRoaW5nIGNsb3NlIHRv
IHNSR0IsIHdoaWNoIGlzIG5lYXJseSBhbGwgZGlzcGxheXMuIE90aGVyd2lzZSB0aGUgYmFja2dy
b3VuZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgotICA8cCBpZD0iYyI+VGhpcyBwYXJhZ3JhcGggc2hv
dWxkIGhhdmUgYSBibHVlIGJhY2tncm91bmQgb24gYSBkZXZpY2Ugd2l0aCBhIGRpc3BsYXkgdGhh
dCBzdXBwb3J0cyBzb21ldGhpbmcgY2xvc2UgdG8gUDMuIE90aGVyd2lzZSB0aGUgYmFja2dyb3Vu
ZCBzaG91bGQgYmUgZ3JlZW4uPC9wPgorICA8cCBpZD0iYiI+VGhpcyBwYXJhZ3JhcGggc2hvdWxk
IGhhdmUgYSBibHVlIGJhY2tncm91bmQgb24gYSBkZXZpY2Ugd2l0aCBhIGRpc3BsYXkgdGhhdCBz
dXBwb3J0cyBzb21ldGhpbmcgY2xvc2UgdG8gUDMuIE90aGVyd2lzZSB0aGUgYmFja2dyb3VuZCBz
aG91bGQgYmUgZ3JlZW4uPC9wPgogICA8cD5Ob3RlIHRoYXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMg
b2YgdGhpcyB0ZXN0IGFzc3VtZSBhIGRpc3BsYXkgdGhhdCBpcyBub3Qgc2lnbmlmaWNhbnRseSB3
aWRlciB0aGFuIHNSR0IuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1jb2xvci1nYW11dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tcS1jb2xvci1nYW11dC5odG1sCmluZGV4IDg1OTc0Mzg4Y2Q3NDA1MDVkMjczMDlmMmI1
ODA2ZjIzOWQ5YjRjMzcuLmU3YzIwNDJiM2E0NDYyZDBiODY4M2MzZDNmYzhlZGQyNjQ1OTExNDkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtY29sb3ItZ2FtdXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLWNvbG9yLWdhbXV0Lmh0bWwKQEAgLTIsMjMg
KzIsMTcgQEAKIDxoZWFkPgogPHRpdGxlPkNTUzQgbWVkaWEgcXVlcnkgdGVzdDogY29sb3ItZ2Ft
dXQuPC90aXRsZT4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0jYSB7IGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyB9Ci0jYiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci0jYyB7IGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOyB9Ci0KLUBtZWRpYSAoY29sb3ItZ2FtdXQ6IHNyZ2IpIHsKLSNi
IHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgfQotfQorI2EgeyBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsgY29sb3I6IHdoaXRlOyB9CisjYiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyBjb2xv
cjogd2hpdGU7IH0KIAogQG1lZGlhIChjb2xvci1nYW11dDogcDMpIHsKLSNjIHsgYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsgfQorI2IgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CiB9CiA8L3N0
eWxlPgogPC9oZWFkPgogPGJvZHk+CiAgIDxwIGlkPSJhIj5UaGlzIHBhcmFncmFwaCBzaG91bGQg
aGF2ZSBhIGdyZWVuIGJhY2tncm91bmQuPC9wPgotICA8cCBpZD0iYiI+VGhpcyBwYXJhZ3JhcGgg
c2hvdWxkIGhhdmUgYSBibHVlIGJhY2tncm91bmQgb24gYSBkZXZpY2Ugd2l0aCBhIGRpc3BsYXkg
dGhhdCBzdXBwb3J0cyBzb21ldGhpbmcgY2xvc2UgdG8gc1JHQiwgd2hpY2ggaXMgbmVhcmx5IGFs
bCBkaXNwbGF5cy4gT3RoZXJ3aXNlIHRoZSBiYWNrZ3JvdW5kIHNob3VsZCBiZSBncmVlbi48L3A+
Ci0gIDxwIGlkPSJjIj5UaGlzIHBhcmFncmFwaCBzaG91bGQgaGF2ZSBhIGJsdWUgYmFja2dyb3Vu
ZCBvbiBhIGRldmljZSB3aXRoIGEgZGlzcGxheSB0aGF0IHN1cHBvcnRzIHNvbWV0aGluZyBjbG9z
ZSB0byBQMy4gT3RoZXJ3aXNlIHRoZSBiYWNrZ3JvdW5kIHNob3VsZCBiZSBncmVlbi48L3A+Cisg
IDxwIGlkPSJiIj5UaGlzIHBhcmFncmFwaCBzaG91bGQgaGF2ZSBhIGJsdWUgYmFja2dyb3VuZCBv
biBhIGRldmljZSB3aXRoIGEgZGlzcGxheSB0aGF0IHN1cHBvcnRzIHNvbWV0aGluZyBjbG9zZSB0
byBQMy4gT3RoZXJ3aXNlIHRoZSBiYWNrZ3JvdW5kIHNob3VsZCBiZSBncmVlbi48L3A+CiAgIDxw
Pk5vdGUgdGhhdCB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBvZiB0aGlzIHRlc3QgYXNzdW1lIGEgZGlz
cGxheSB0aGF0IGlzIG5vdCBzaWduaWZpY2FudGx5IHdpZGVyIHRoYW4gc1JHQi48L3A+CiA8L2Jv
ZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>