<?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>232734</bug_id>
          
          <creation_ts>2021-11-04 16:26:34 -0700</creation_ts>
          <short_desc>(GPUDeviceLostReason or undefined) in an IDL cannot be compiled</short_desc>
          <delta_ts>2023-04-24 12:42:58 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=255778</see_also>
          <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>
          
          <blocked>232558</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Dan Glastonbury">djg</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>cdumez</cc>
    
    <cc>djg</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812005</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-11-04 16:26:34 -0700</bug_when>
    <thetext>(GPUDeviceLostReason or undefined) is in WebGPU.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814263</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-11 15:27:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/85318712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846505</commentid>
    <comment_count>2</comment_count>
      <attachid>453360</attachid>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-02-27 16:36:20 -0800</bug_when>
    <thetext>Created attachment 453360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846506</commentid>
    <comment_count>3</comment_count>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-02-27 16:39:12 -0800</bug_when>
    <thetext>I implemented this as the spec specifies, although `GPUDeviceLostReason?` maybe be more idiomatic IDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846518</commentid>
    <comment_count>4</comment_count>
      <attachid>453360</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-27 17:49:28 -0800</bug_when>
    <thetext>Comment on attachment 453360
Patch

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

This should include new tests in Source/WebCore/bindings/scripts/tests/ (or at least extend one of the existing tests).

&gt; Source/WebCore/bindings/IDLTypes.h:89
&gt; +struct IDLUnionUndefined : IDLType&lt;std::monostate&gt; {
&gt; +};

It would be nice if could find a way to just have a single type representing undefined. I expect that the other one uses IDLType&lt;void&gt; as its base, which is why you aren&apos;t using it, but I&apos;d like to understand what would have to change if updated IDLUndefined to this. Probably would need a specialization of toJS and CallbackResult. We already special case undefined for operations in the code generator.

Another option would be to extend IDLUndefined and add a new type alias override for union member like we already have for things like ParameterType, SequenceStorageType, etc.

If we go with this, please move the trailing } to the previous line to match IDLNull.

&gt; Source/WebCore/bindings/js/JSDOMConvertUnion.h:417
&gt; +template&lt;&gt; struct JSConverter&lt;IDLUnionUndefined&gt; {

This should go in its own JSDOMConvertUnionUndefined.h

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:6911
&gt; +    my $numberOfUndefinedMembers =
&gt; +        GetNumberOfUndefinedMemberTypes($idlUnionType);

This should be on one line.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:6912
&gt; +    assert(&quot;Union types must only hav 0 or 1 undefined types.&quot;) if $numberOfUndefinedMembers &gt; 1;

Typo. &quot;hav&quot; -&gt; &quot;have&quot;

That said, I am not sure checking for multiple undefined types is necessary. In general we expect all the types to be unique (or rather distinguishable https://webidl.spec.whatwg.org/#dfn-distinguishable), and we do the nullable check because you can have disperate types that are nullable (e.g. long? and object?) which we want to avoid.

I don&apos;t remember if we currently check for mutual distinguishability, but that would be the place where this would happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846519</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-27 17:54:28 -0800</bug_when>
    <thetext>Not making this union specific would have the additional benefit that it should work for operation arguments as well (which I would be don&apos;t work today), e.g. float `foo(undefined arg1, boolean arg2)`, which we would probably want the c++ to model as `float foo(std::monostate arg1, bool arg2)`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846521</commentid>
    <comment_count>6</comment_count>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-02-27 17:58:14 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Comment on attachment 453360 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=453360&amp;action=review
&gt; 
&gt; This should include new tests in Source/WebCore/bindings/scripts/tests/ (or
&gt; at least extend one of the existing tests).

Thanks. I&apos;ll add some tests.

&gt; &gt; Source/WebCore/bindings/IDLTypes.h:89
&gt; &gt; +struct IDLUnionUndefined : IDLType&lt;std::monostate&gt; {
&gt; &gt; +};
&gt; 
&gt; It would be nice if could find a way to just have a single type representing
&gt; undefined. I expect that the other one uses IDLType&lt;void&gt; as its base, which
&gt; is why you aren&apos;t using it, but I&apos;d like to understand what would have to
&gt; change if updated IDLUndefined to this. Probably would need a specialization
&gt; of toJS and CallbackResult. We already special case undefined for operations
&gt; in the code generator.

The problem is that `void` is to a valid type for `std::variant`, you need to use `std::monostate`, and it must be the first type if you want a default constructible variant with an &quot;uninitialised state&quot;.

&gt; Another option would be to extend IDLUndefined and add a new type alias
&gt; override for union member like we already have for things like
&gt; ParameterType, SequenceStorageType, etc.

I did consider that. If your happy that I add another type alias, such as `UnionStorageType`, I&apos;ll make that change.

&gt; If we go with this, please move the trailing } to the previous line to match
&gt; IDLNull.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMConvertUnion.h:417
&gt; &gt; +template&lt;&gt; struct JSConverter&lt;IDLUnionUndefined&gt; {
&gt; 
&gt; This should go in its own JSDOMConvertUnionUndefined.h

&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:6912
&gt; &gt; +    assert(&quot;Union types must only hav 0 or 1 undefined types.&quot;) if $numberOfUndefinedMembers &gt; 1;
&gt; 
&gt; Typo. &quot;hav&quot; -&gt; &quot;have&quot;

Oops.

&gt; That said, I am not sure checking for multiple undefined types is necessary.
&gt; In general we expect all the types to be unique (or rather distinguishable
&gt; https://webidl.spec.whatwg.org/#dfn-distinguishable), and we do the nullable
&gt; check because you can have disperate types that are nullable (e.g. long? and
&gt; object?) which we want to avoid.

I added the check for undefined to move it to the front of the list. I cribbed the check of 0-or-1 from the Nullable check but I can remove that part.

&gt; I don&apos;t remember if we currently check for mutual distinguishability, but
&gt; that would be the place where this would happen.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846527</commentid>
    <comment_count>7</comment_count>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2022-02-27 19:13:31 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Not making this union specific would have the additional benefit that it
&gt; should work for operation arguments as well (which I would be don&apos;t work
&gt; today), e.g. float `foo(undefined arg1, boolean arg2)`, which we would
&gt; probably want the c++ to model as `float foo(std::monostate arg1, bool
&gt; arg2)`.

Is that allowed by the spec? https://webidl.spec.whatwg.org/#idl-undefined

```
undefined must not be used as the type of an argument in any circumstance (in an operation, callback function, constructor operation, etc), or as the type of a dictionary member, whether directly or in a union. Instead, use an optional argument or a non-required dictionary member.
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846642</commentid>
    <comment_count>8</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-28 08:23:54 -0800</bug_when>
    <thetext>(In reply to Dan Glastonbury from comment #7)
&gt; (In reply to Sam Weinig from comment #5)
&gt; &gt; Not making this union specific would have the additional benefit that it
&gt; &gt; should work for operation arguments as well (which I would be don&apos;t work
&gt; &gt; today), e.g. float `foo(undefined arg1, boolean arg2)`, which we would
&gt; &gt; probably want the c++ to model as `float foo(std::monostate arg1, bool
&gt; &gt; arg2)`.
&gt; 
&gt; Is that allowed by the spec? https://webidl.spec.whatwg.org/#idl-undefined
&gt; 
&gt; ```
&gt; undefined must not be used as the type of an argument in any circumstance
&gt; (in an operation, callback function, constructor operation, etc), or as the
&gt; type of a dictionary member, whether directly or in a union. Instead, use an
&gt; optional argument or a non-required dictionary member.
&gt; ```

Ah, fair point. I did a quick scan of the grammar but missed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847656</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2022-03-02 16:03:08 -0800</bug_when>
    <thetext>*** Bug 236723 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1896007</commentid>
    <comment_count>10</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-03 04:07:24 -0700</bug_when>
    <thetext>Chromium / Blink -

https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/webgpu/gpu_device_lost_info.idl?q=GPUDeviceLostReason%20IDL

and Gecko - https://searchfox.org/mozilla-central/source/testing/web-platform/tests/interfaces/webgpu.idl

Webkit - https://github.com/WebKit/WebKit/blob/004c145fcf53a9781a9d225eaf65d0c6443a6994/Source/WebCore/Modules/WebGPU/GPUDeviceLostReason.idl

______

Just want to add updated IDL files links to all browsers. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1950501</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-21 16:00:22 -0700</bug_when>
    <thetext>Looks like Ryosuke would need this for https://bugs.webkit.org/show_bug.cgi?id=255778 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1950676</commentid>
    <comment_count>12</comment_count>
    <who name="Dan Glastonbury">djg</who>
    <bug_when>2023-04-23 17:46:00 -0700</bug_when>
    <thetext>I believe it was decided that `GPUDeviceLostReason or undefined` is not idiomatic IDL and should be `GPUDeviceLostReason?`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1950839</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2023-04-24 12:42:58 -0700</bug_when>
    <thetext>(In reply to Dan Glastonbury from comment #12)
&gt; I believe it was decided that `GPUDeviceLostReason or undefined` is not
&gt; idiomatic IDL and should be `GPUDeviceLostReason?`

I&apos;m proposing the same for customElements.getName (https://bugs.webkit.org/show_bug.cgi?id=255778).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453360</attachid>
            <date>2022-02-27 16:36:20 -0800</date>
            <delta_ts>2022-03-02 16:21:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232734-20220228103619.patch</filename>
            <type>text/plain</type>
            <size>6947</size>
            <attacher name="Dan Glastonbury">djg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmNWEyYjFhNDAzNjU5
ODJiYjVjYmE5ODQ2MzI5ZDIxYWM2ODhlMi4uZjY1Yzc3MzNhYjM2NzExMTMzNDA2YWY2MjUzYTc0
NmRjZmI2MGU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTAyLTI1ICBEYW4g
R2xhc3RvbmJ1cnkgIDxkamdAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBJREwgc3VwcG9ydCBm
b3IgdW5pb25zIGNvbnRhaW5lZCB1bmRlZmluZWQgYW5kIHVzZSBpdCB0bworICAgICAgICBpbXBs
ZW1lbnRlZCBHUFVEZXZpY2VMb3N0SW5mby5yZWFzb24gZm9yIFdlYkdQVS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjczNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BV
RGV2aWNlTG9zdEluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R1BVRGV2aWNlTG9zdEluZm86
OnJlYXNvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdElu
Zm8uaDoKKyAgICAgICAgUmV0dXJuIHN0ZDo6dmFyaWFudDxzdGQ6Om1vbm9zdGF0ZSwgR1BVRGV2
aWNlTG9zdFJlYXNvbj4gdG8gbWF0Y2gKKyAgICAgICAgY2hhbmdlIGluIElETC4KKyAgICAgICAg
KiBNb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5pZGw6CisgICAgICAgIENoYW5nZSB0
eXBlIG9mIHJlYXNvbiB0byAoR1BVRGV2aWNlTG9zdFJlYXNvbiBvciB1bmRlZmluZWQpIHRvCisg
ICAgICAgIG1hdGNoIFdlYkdQVSBzcGVjLgorICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTQ29udmVydGVyPElETFVuaW9uVW5kZWZpbmVkPjo6Y29udmVydCk6CisgICAgICAg
IEludHJvZHVjZSBJRExVbmlvblVuZGVmaW5lZCB0eXBlLCB3aGljaCBpcyBkaXN0aW5jdCBmcm9t
CisgICAgICAgIElETFVuZGVmaW5lZCB0byByZXByZXNlbnQgYW4gdW5kZWZpbmVkIHRoYXQgaXMg
Y29tcGF0aWJsZSB3aXRoCisgICAgICAgIElETFVuaW9uLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2V0TnVtYmVyT2ZVbmRlZmluZWRN
ZW1iZXJUeXBlcyk6CisgICAgICAgIChHZXRJRExVbmlvbk1lbWJlclR5cGVzKToKKyAgICAgICAg
QWRkIHN1cHBvcnQgb2YgdW5pb25zIGNvbnRhaW5pbmcgYG9yIHVuZGVmaW5lZGAuCisKIDIwMjIt
MDItMjQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW1JlZmFj
dG9yXSBBZG9wdCBMb2dnZXJIZWxwZXIgaW4gTG9nZ2luZyBFTUUgY2xhc3NlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8uY3BwCmluZGV4
IDI4YjYwZTBmNWMyOTBkYzUyZjc2ODU3NzM4ZDBjNDExNzNkZjk2NTQuLjFkZmJhNjBjM2JlMjg2
ZDJjMzJkNWYwZTA0YjNjMGFlMjAzY2NjZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgYXV0
byBHUFVEZXZpY2VMb3N0SW5mbzo6cmVhc29uKCkgY29uc3QgLT4gUmVhc29uCiB7CiAgICAgYXV0
byByZXN1bHQgPSBtX2JhY2tpbmctPnJlYXNvbigpOwogICAgIGlmICghcmVzdWx0KQotICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm4gUmVhc29uKCk7CiAgICAgc3dp
dGNoICgqcmVzdWx0KSB7CiAgICAgY2FzZSBQQUw6OldlYkdQVTo6RGV2aWNlTG9zdFJlYXNvbjo6
RGVzdHJveWVkOgogICAgICAgICByZXR1cm4gR1BVRGV2aWNlTG9zdFJlYXNvbjo6RGVzdHJveWVk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9z
dEluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZv
LmgKaW5kZXggOTUxN2QxOWE2NzM2ZGY3ZWIyYjJjOTZmYjllYWJjMjc1ZWY4YzQ1ZS4uODRmOGRk
ZTdiZmNmYTlkOTkxZjc3MmZmMDk0YjFiY2FiMDQxZWQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5oCkBAIC0yNiw4ICsyNiw4IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkdQVURldmljZUxvc3RSZWFzb24uaCIKLSNpbmNs
dWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDxwYWwvZ3JhcGhpY3MvV2ViR1BVL1dlYkdQVURldmlj
ZUxvc3RJbmZvLmg+CisjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHUFVEZXZp
Y2VMb3N0SW5mbyA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVURldmljZUxvc3RJbmZvPiB7CiBwdWJs
aWM6Ci0gICAgdXNpbmcgUmVhc29uID0gc3RkOjpvcHRpb25hbDxHUFVEZXZpY2VMb3N0UmVhc29u
PjsKKyAgICB1c2luZyBSZWFzb24gPSBzdGQ6OnZhcmlhbnQ8c3RkOjptb25vc3RhdGUsIEdQVURl
dmljZUxvc3RSZWFzb24+OwogCiAgICAgc3RhdGljIFJlZjxHUFVEZXZpY2VMb3N0SW5mbz4gY3Jl
YXRlKFJlZjxQQUw6OldlYkdQVTo6RGV2aWNlTG9zdEluZm8+JiYgYmFja2luZykKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5m
by5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL1dlYkdQVS9HUFVEZXZpY2VMb3N0SW5mby5p
ZGwKaW5kZXggMmJlZDIwMTc3NTk4NjFiOTA3NmI5ZTU1ZmQ3Y2QzYWVkNDNkYzMwMC4uNjc1ZTVi
MzE3ODk3ZmMxYWFmZjUyNWU4MjFkODA1MzJmZGYwZGRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9XZWJHUFUvR1BVRGV2aWNlTG9zdEluZm8uaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvV2ViR1BVL0dQVURldmljZUxvc3RJbmZvLmlkbApAQCAtMzEsNiArMzEs
NiBAQAogICAgIFNlY3VyZUNvbnRleHQKIF0KIGludGVyZmFjZSBHUFVEZXZpY2VMb3N0SW5mbyB7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIEdQVURldmljZUxvc3RSZWFzb24/IHJlYXNvbjsgLy8g
RklYTUU6IFRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgKEdQVURldmljZUxvc3RSZWFzb24gb3IgdW5k
ZWZpbmVkKQorICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAoR1BVRGV2aWNlTG9zdFJlYXNvbiBvciB1
bmRlZmluZWQpIHJlYXNvbjsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3Nh
Z2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKaW5kZXggYjM3ZWUxZmVmMjViYTM1
ZmU4YjZmODhiN2VkMTFiMWIzYmI0MGFiOS4uNWNiM2YyOGMzY2Q5MzJiMTI5Y2VkM2RiNDVjMDMz
Yzk4ZDFlNWUxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCkBAIC04Myw2ICs4Mywx
MSBAQCBzdHJ1Y3QgSURMVW5zdXBwb3J0ZWRUeXBlIDogSURMVHlwZTx2b2lkPiB7IH07CiAvLyBJ
RExOdWxsIGlzIGEgc3BlY2lhbCB0eXBlIGZvciB1c2UgYXMgYSBzdWJ0eXBlIGluIGFuIElETFVu
aW9uIHRoYXQgaXMgbnVsbGFibGUuCiBzdHJ1Y3QgSURMTnVsbCA6IElETFR5cGU8c3RkOjpudWxs
cHRyX3Q+IHsgfTsKIAorLy8gSURMVW5pb25VbmRlZmluZWQgaXMgYSBzcGVjaWFsIHR5cGUgZm9y
IHVzZSBhcyBhIHN1YnR5cGUgaW4gYW4gSURMVW5pb24gdGhhdAorLy8gaGFzIGFuIHVuZGVmaW5l
ZCBtZW1iZXIuCitzdHJ1Y3QgSURMVW5pb25VbmRlZmluZWQgOiBJRExUeXBlPHN0ZDo6bW9ub3N0
YXRlPiB7Cit9OworCiBzdHJ1Y3QgSURMQW55IDogSURMVHlwZTxKU0M6OlN0cm9uZzxKU0M6OlVu
a25vd24+PiB7CiAgICAgdXNpbmcgU2VxdWVuY2VTdG9yYWdlVHlwZSA9IEpTQzo6SlNWYWx1ZTsK
ICAgICB1c2luZyBQYXJhbWV0ZXJUeXBlID0gSlNDOjpKU1ZhbHVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0VW5pb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFVuaW9uLmgKaW5kZXggNjgzODQzOWVlZTQ4NWUz
ZTM0ZTQwNWNhNzI1OTg4ZDYzZjE2MGQ3ZS4uZjkwYTVhMDMxM2QxN2NkZjQ5YjMwMDQ0NmFkZTEy
ZDAxMWRhNTBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01D
b252ZXJ0VW5pb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnRVbmlvbi5oCkBAIC00MTQsNCArNDE0LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRl
cjxJRExBbGxvd1NoYXJlZEFkYXB0b3I8SURMVW5pb248SURMQXJyYXlCdWZmZXJWaWV3LCBJCiAg
ICAgfQogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgSlNDb252ZXJ0ZXI8SURMVW5pb25VbmRlZmlu
ZWQ+IHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNTdGF0ZSA9IGZhbHNlOworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0dsb2JhbE9iamVjdCA9IGZhbHNlOworCisgICAg
c3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0KHN0ZDo6bW9ub3N0YXRlKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIEpTQzo6anNVbmRlZmluZWQoKTsKKyAgICB9Cit9OworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IDM0MzY1ZmIzNTE2ODdlN2VlYmNlZmI4NWNjM2QyMWU5N2MxZDk0
NDcuLmRlMDJkNDlkYThkM2RmYjY0ZjM0ZDUzMTFjYThiMmNmNmQ1ZDkyN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02
ODg2LDYgKzY4ODYsMjAgQEAgc3ViIEdldE51bWJlck9mTnVsbGFibGVNZW1iZXJUeXBlcwogICAg
IHJldHVybiAkY291bnQ7CiB9CiAKK3N1YiBHZXROdW1iZXJPZlVuZGVmaW5lZE1lbWJlclR5cGVz
Cit7CisgICAgbXkgKCRpZGxVbmlvblR5cGUpID0gQF87CisKKyAgICBteSAkY291bnQgPSAwOwor
CisgICAgZm9yZWFjaCBteSAkbWVtYmVyVHlwZSAoQHskaWRsVW5pb25UeXBlLT5zdWJ0eXBlc30p
IHsKKyAgICAgICAgJGNvdW50KysgaWYgJG1lbWJlclR5cGUtPm5hbWUgZXEgInVuZGVmaW5lZCI7
CisgICAgICAgICRjb3VudCArPSBHZXROdW1iZXJPZlVuZGVmaW5lZE1lbWJlclR5cGVzKCRtZW1i
ZXJUeXBlKSBpZiAkbWVtYmVyVHlwZS0+aXNVbmlvbjsKKyAgICB9CisKKyAgICByZXR1cm4gJGNv
dW50OworfQorCiBzdWIgR2V0SURMVW5pb25NZW1iZXJUeXBlcwogewogICAgIG15ICgkaW50ZXJm
YWNlLCAkaWRsVW5pb25UeXBlKSA9IEBfOwpAQCAtNjg5MywxMSArNjkwNywxOCBAQCBzdWIgR2V0
SURMVW5pb25NZW1iZXJUeXBlcwogICAgIG15ICRudW1iZXJPZk51bGxhYmxlTWVtYmVycyA9IEdl
dE51bWJlck9mTnVsbGFibGVNZW1iZXJUeXBlcygkaWRsVW5pb25UeXBlKTsKICAgICBhc3NlcnQo
IlVuaW9uIHR5cGVzIG11c3Qgb25seSBoYXZlIDAgb3IgMSBudWxsYWJsZSB0eXBlcy4iKSBpZiAk
bnVtYmVyT2ZOdWxsYWJsZU1lbWJlcnMgPiAxOwogCisgICAgbXkgJG51bWJlck9mVW5kZWZpbmVk
TWVtYmVycyA9CisgICAgICAgIEdldE51bWJlck9mVW5kZWZpbmVkTWVtYmVyVHlwZXMoJGlkbFVu
aW9uVHlwZSk7CisgICAgYXNzZXJ0KCJVbmlvbiB0eXBlcyBtdXN0IG9ubHkgaGF2IDAgb3IgMSB1
bmRlZmluZWQgdHlwZXMuIikgaWYgJG51bWJlck9mVW5kZWZpbmVkTWVtYmVycyA+IDE7CisKICAg
ICBteSBAaWRsVW5pb25NZW1iZXJUeXBlcyA9ICgpOwogCisgICAgcHVzaChAaWRsVW5pb25NZW1i
ZXJUeXBlcywgIklETFVuaW9uVW5kZWZpbmVkIikgaWYgJG51bWJlck9mVW5kZWZpbmVkTWVtYmVy
cyA9PSAxOwogICAgIHB1c2goQGlkbFVuaW9uTWVtYmVyVHlwZXMsICJJRExOdWxsIikgaWYgJG51
bWJlck9mTnVsbGFibGVNZW1iZXJzID09IDE7CiAKICAgICBmb3JlYWNoIG15ICRtZW1iZXJUeXBl
IChHZXRGbGF0dGVuZWRNZW1iZXJUeXBlcygkaWRsVW5pb25UeXBlKSkgeworICAgICAgICAjIFNr
aXAgdW5kZWZpbmVkIHNpbmNlIGl0J3MgYWxyZWFkeSBiZWVuIHJlcGxhY2VkIGJ5IElETFVuaW9u
VW5kZWZpbmVkCisgICAgICAgIG5leHQgaWYgJG1lbWJlclR5cGUtPm5hbWUgZXEgInVuZGVmaW5l
ZCI7CiAgICAgICAgIHB1c2goQGlkbFVuaW9uTWVtYmVyVHlwZXMsIEdldElETFR5cGVFeGNsdWRp
bmdOdWxsYWJpbGl0eSgkaW50ZXJmYWNlLCAkbWVtYmVyVHlwZSkpOwogICAgIH0KIAo=
</data>
<flag name="review"
          id="480707"
          type_id="1"
          status="-"
          setter="sam"
    />
    <flag name="commit-queue"
          id="480722"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>