<?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>214094</bug_id>
          
          <creation_ts>2020-07-08 12:52:58 -0700</creation_ts>
          <short_desc>Aggressively prime GameController.framework gamepad provider</short_desc>
          <delta_ts>2020-07-08 18:21:16 -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>WebCore Misc.</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1669860</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-08 12:52:58 -0700</bug_when>
    <thetext>Aggressively prime GameController.framework gamepad provider

GC.framework does some work on app activation assuming it was hard linked.

Since we soft link it, it doesn&apos;t quite work right.

So let&apos;s give it a kickstart.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669922</commentid>
    <comment_count>1</comment_count>
      <attachid>403815</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-08 16:05:14 -0700</bug_when>
    <thetext>Created attachment 403815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669926</commentid>
    <comment_count>2</comment_count>
      <attachid>403815</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-08 16:30:44 -0700</bug_when>
    <thetext>Comment on attachment 403815
Patch

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

&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:107
&gt; +    static dispatch_once_t onceToken;
&gt; +    dispatch_once(&amp;onceToken, ^{
&gt; +        LOG(Gamepad, &quot;GameControllerGamepadProvider explicitly starting GameController framework monitoring&quot;);
&gt; +        [getGCControllerClass() __openXPC_and_CBApplicationDidBecomeActive__];
&gt; +    });

Is thread safety an issue here? Otherwise, we would probably just want to use a boolean, not a dispatch_once_t.

&gt; Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.cpp:72
&gt; +    LOG(Gamepad, &quot;WebGamepadProvider::gamepadConnected - Gamepad index %i attached (visibility: %i)\n&quot;, gamepadData.index(), (int)eventVisibility);

Since gamepadData.index() is an unsigned, this should be %u, not %i.

&gt; Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.cpp:95
&gt; +    LOG(Gamepad, &quot;WebGamepadProvider::gamepadDisconnected - Gamepad index %i detached (m_gamepads size %lu, m_rawGamepads size %lu\n&quot;, index, m_gamepads.size(), m_rawGamepads.size());

Since index is an unsigned, this should be %u, not %i.

Since a Vector size is a size_t, the others should be %zu, not %lu.

&gt; Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.cpp:103
&gt; +    LOG(Gamepad, &quot;WebGamepadProvider::gamepadActivity - %lu gamepad datas with %lu local web gamepads\n&quot;, gamepadDatas.size(), m_gamepads.size());

Since a Vector size is a size_t, these should be %zu, not %lu.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669971</commentid>
    <comment_count>3</comment_count>
      <attachid>403829</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-08 17:52:41 -0700</bug_when>
    <thetext>Created attachment 403829
PFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669972</commentid>
    <comment_count>4</comment_count>
      <attachid>403815</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-08 17:55:35 -0700</bug_when>
    <thetext>Comment on attachment 403815
Patch

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

&gt;&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:107
&gt;&gt; +    });
&gt; 
&gt; Is thread safety an issue here? Otherwise, we would probably just want to use a boolean, not a dispatch_once_t.

That is a super-internal-looking method. What is the actual way that this works normally? Just linking the framework probably isn&apos;t it; is it +initialize on some class or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669973</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-07-08 17:56:45 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #4)
&gt; Comment on attachment 403815 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403815&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:107
&gt; &gt;&gt; +    });
&gt; &gt; 
&gt; &gt; Is thread safety an issue here? Otherwise, we would probably just want to use a boolean, not a dispatch_once_t.
&gt; 
&gt; That is a super-internal-looking method. What is the actual way that this
&gt; works normally? Just linking the framework probably isn&apos;t it; is it
&gt; +initialize on some class or something?

No, it&apos;s just linking the framework. (Will ping you on slack)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669981</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-08 18:20:22 -0700</bug_when>
    <thetext>Committed r264143: &lt;https://trac.webkit.org/changeset/264143&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403829.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669982</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-08 18:21:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/65250548&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403815</attachid>
            <date>2020-07-08 16:05:14 -0700</date>
            <delta_ts>2020-07-08 16:30:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>8457</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNTFlM2ZiZjc2MC4uNTkzNmU0ZjhlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0wNy0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWdncmVzc2l2ZWx5IHByaW1lIEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBn
YW1lcGFkIHByb3ZpZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgR2FtZUNvbnRyb2xsZXIuZnJhbWV3b3JrIGdldHMgaXRzZWxmIGdvaW5nIGJ5IGxp
c3RlbmluZyBmb3IgYXBwbGljYXRpb24gYWN0aXZhdGlvbiwgCisgICAgICAgIGFzc3VtaW5nIHRo
YXQgaXQgaXMgaGFyZCBsaW5rZWQuCisgICAgICAgIAorICAgICAgICBTb2Z0IGxpbmtpbmcgYnJl
YWtzIHRoaXMuCisgICAgICAgIAorICAgICAgICBUaGVyZSdzIGFuIFNQSSB0byBtYW51YWxseSBr
aWNrc3RhcnQgaXQuCisgICAgICAgIAorICAgICAgICBBbHNvIGFkZCBzb21lIGxvZ2dpbmcgSSdk
IGFkZGVkIHdoaWxlIGV4cGxvcmluZyBpc3N1ZXMgYXJvdW5kIHRoaXMuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92
aWRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVy
Ojpjb250cm9sbGVyRGlkQ29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxl
ckdhbWVwYWRQcm92aWRlcjo6cHJld2FybUdhbWVDb250cm9sbGVyRGV2aWNlc0lmTmVjZXNzYXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpzdGFy
dE1vbml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9H
YW1lQ29udHJvbGxlclNQSS5oOgorCiAyMDIwLTA3LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVp
emFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFkZCBhYmlsaXR5IGZvciBBWCBvYmplY3Rz
IHRvIG91dHB1dCBodG1sIGluIGRlYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyLmgKaW5kZXggNWFiNTc1OTVhMDMuLmJkZGVkMTc3MGYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlci5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0lucHV0KCk7CiAKICAgICB2b2lk
IGdhbWVwYWRIYWRJbnB1dChHYW1lQ29udHJvbGxlckdhbWVwYWQmLCBib29sIGhhZEJ1dHRvblBy
ZXNzZXMpOworICAgIHZvaWQgcHJld2FybUdhbWVDb250cm9sbGVyRGV2aWNlc0lmTmVjZXNzYXJ5
KCk7CiAKIHByaXZhdGU6CiAgICAgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRy
b2xsZXJHYW1lcGFkUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFk
L2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tCmluZGV4IDQzMThiMGJhNzNk
Li4wOTlhMjM3NWRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBh
ZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVy
Lm1tCkBAIC01NSw2ICs1NSwxMSBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVy
Ojpjb250cm9sbGVyRGlkQ29ubmVjdChHQ0NvbnRyb2xsZXIgKmNvbnRyb2xsZQogewogICAgIExP
RyhHYW1lcGFkLCAiR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIgY29udHJvbGxlciAlcCBh
ZGRlZCIsIGNvbnRyb2xsZXIpOwogCisgICAgLy8gV2hlbiBpbml0aWFsbHkgc3RhcnRpbmcgdXAg
dGhlIEdhbWVDb250cm9sbGVyIGZyYW1ld29yayBtYWNoaW5lcnksCisgICAgLy8gd2UgbWlnaHQg
Z2V0IHRoZSBjb25uZWN0aW9uIG5vdGlmaWNhdGlvbiBmb3IgYW4gYWxyZWFkeS1jb25uZWN0ZWQg
Y29udHJvbGxlci4KKyAgICBpZiAobV9nYW1lcGFkTWFwLmNvbnRhaW5zKGNvbnRyb2xsZXIpKQor
ICAgICAgICByZXR1cm47CisKICAgICB1bnNpZ25lZCBpbmRleCA9IGluZGV4Rm9yTmV3bHlDb25u
ZWN0ZWREZXZpY2UoKTsKICAgICBhdXRvIGdhbWVwYWQgPSBtYWtlVW5pcXVlPEdhbWVDb250cm9s
bGVyR2FtZXBhZD4oY29udHJvbGxlciwgaW5kZXgpOwogCkBAIC05Myw2ICs5OCwxNSBAQCB2b2lk
IEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpjb250cm9sbGVyRGlkRGlzY29ubmVjdChH
Q0NvbnRyb2xsZXIgKmNvbnRybwogICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZERpc2Nv
bm5lY3RlZCgqcmVtb3ZlZEdhbWVwYWQpOwogfQogCit2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBh
ZFByb3ZpZGVyOjpwcmV3YXJtR2FtZUNvbnRyb2xsZXJEZXZpY2VzSWZOZWNlc3NhcnkoKQorewor
ICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOworICAgIGRpc3BhdGNoX29uY2Uo
Jm9uY2VUb2tlbiwgXnsKKyAgICAgICAgTE9HKEdhbWVwYWQsICJHYW1lQ29udHJvbGxlckdhbWVw
YWRQcm92aWRlciBleHBsaWNpdGx5IHN0YXJ0aW5nIEdhbWVDb250cm9sbGVyIGZyYW1ld29yayBt
b25pdG9yaW5nIik7CisgICAgICAgIFtnZXRHQ0NvbnRyb2xsZXJDbGFzcygpIF9fb3BlblhQQ19h
bmRfQ0JBcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZV9fXTsKKyAgICB9KTsKK30KKwogdm9pZCBH
YW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2Ft
ZXBhZFByb3ZpZGVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJUKCFtX2NsaWVudHMuY29u
dGFpbnMoJmNsaWVudCkpOwpAQCAtMTAxLDIwICsxMTUsMzAgQEAgdm9pZCBHYW1lQ29udHJvbGxl
ckdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFByb3ZpZGVy
Q2xpZW4KICAgICBpZiAobV9jb25uZWN0T2JzZXJ2ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAg
IHByZXdhcm1HYW1lQ29udHJvbGxlckRldmljZXNJZk5lY2Vzc2FyeSgpOworCiAgICAgaWYgKGNh
bkxvYWRfR2FtZUNvbnRyb2xsZXJfR0NDb250cm9sbGVyRGlkQ29ubmVjdE5vdGlmaWNhdGlvbigp
KSB7CiAgICAgICAgIG1fY29ubmVjdE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6Z2V0X0dhbWVDb250cm9sbGVyX0dDQ29u
dHJvbGxlckRpZENvbm5lY3ROb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsIHF1ZXVlOm5pbCB1c2lu
Z0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworICAgICAgICAgICAgTE9H
KEdhbWVwYWQsICJHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlciBub3RpZmllZCBvZiBuZXcg
R0NDb250cm9sbGVyICVwIiwgbm90aWZpY2F0aW9uLm9iamVjdCk7CiAgICAgICAgICAgICBHYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuY29udHJvbGxlckRpZENvbm5l
Y3Qobm90aWZpY2F0aW9uLm9iamVjdCwgQ29ubmVjdGlvblZpc2liaWxpdHk6OlZpc2libGUpOwog
ICAgICAgICB9XTsKICAgICB9CiAKICAgICBpZiAoY2FuTG9hZF9HYW1lQ29udHJvbGxlcl9HQ0Nv
bnRyb2xsZXJEaWREaXNjb25uZWN0Tm90aWZpY2F0aW9uKCkpIHsKICAgICAgICAgbV9kaXNjb25u
ZWN0T2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyRm9yTmFtZTpnZXRfR2FtZUNvbnRyb2xsZXJfR0NDb250cm9sbGVyRGlkRGlzY29ubmVj
dE5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWwgcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlm
aWNhdGlvbiAqbm90aWZpY2F0aW9uKSB7CisgICAgICAgICAgICBMT0coR2FtZXBhZCwgIkdhbWVD
b250cm9sbGVyR2FtZXBhZFByb3ZpZGVyIG5vdGlmaWVkIG9mIGRpc2Nvbm5lY3RlZCBHQ0NvbnRy
b2xsZXIgJXAiLCBub3RpZmljYXRpb24ub2JqZWN0KTsKICAgICAgICAgICAgIEdhbWVDb250cm9s
bGVyR2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jb250cm9sbGVyRGlkRGlzY29ubmVjdChu
b3RpZmljYXRpb24ub2JqZWN0KTsKICAgICAgICAgfV07CiAgICAgfQogCi0gICAgZm9yIChHQ0Nv
bnRyb2xsZXIgKmNvbnRyb2xsZXIgaW4gW2dldEdDQ29udHJvbGxlckNsYXNzKCkgY29udHJvbGxl
cnNdKQorICAgIGF1dG8gKmNvbnRyb2xsZXJzID0gW2dldEdDQ29udHJvbGxlckNsYXNzKCkgY29u
dHJvbGxlcnNdOworICAgIGlmICghY29udHJvbGxlcnMgfHwgIWNvbnRyb2xsZXJzLmNvdW50KQor
ICAgICAgICBMT0coR2FtZXBhZCwgIkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyIGhhcyBu
byBpbml0aWFsIEdDQ29udHJvbGxlcnMgYXR0YWNoZWQiKTsKKworICAgIGZvciAoR0NDb250cm9s
bGVyICpjb250cm9sbGVyIGluIGNvbnRyb2xsZXJzKSB7CisgICAgICAgIExPRyhHYW1lcGFkLCAi
R2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIgaGFzIGluaXRpYWwgR0NDb250cm9sbGVyICVw
IiwgY29udHJvbGxlcik7CiAgICAgICAgIGNvbnRyb2xsZXJEaWRDb25uZWN0KGNvbnRyb2xsZXIs
IENvbm5lY3Rpb25WaXNpYmlsaXR5OjpJbnZpc2libGUpOworICAgIH0KIH0KIAogdm9pZCBHYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFk
UHJvdmlkZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJTUEkuaAppbmRleCAwMThkMzgwNjM4
Yi4uMThmOGU3NWI3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVw
YWQvY29jb2EvR2FtZUNvbnRyb2xsZXJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyU1BJLmgKQEAgLTI1LDYgKzI1LDEwIEBACiAK
ICNpZiBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZPUk0oQ09DT0EpCiAKLS8vIEZJWE1FOiBSZWZh
Y3RvciBtb3JlIEdDIGZyYW1ld29yayBzdHVmZiBpbnRvIHRoaXMgaGVhZGVyCisjaW1wb3J0IDxH
YW1lQ29udHJvbGxlci9HQ0NvbnRyb2xsZXIuaD4KKworQGludGVyZmFjZSBHQ0NvbnRyb2xsZXIg
KCkKKysgKHZvaWQpX19vcGVuWFBDX2FuZF9DQkFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlX187
CitAZW5kCiAKICNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZPUk0oQ09DT0EpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDliMjA4MzUyYTc5Li5hZDQ4OTMwODBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMC0wNy0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWdncmVzc2l2ZWx5IHByaW1lIEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBnYW1lcGFk
IHByb3ZpZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE0MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0aXZpdHkpOgorCiAyMDIw
LTA3LTA2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQg
cmlkIG9mIGNvbmNlcHQgb2YgImluaXRpYWwgY29ubmVjdGVkIGdhbWVwYWRzIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5j
cHAKaW5kZXggY2ZjMGJkYzIzYWUuLjQzMzM1N2MxOTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTY5
LDcgKzY5LDcgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRpYWxHYW1lcGFkcyhj
b25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGEKIAogdm9pZCBXZWJHYW1lcGFkUHJv
dmlkZXI6OmdhbWVwYWRDb25uZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmIGdhbWVwYWREYXRhLCBF
dmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKLSAgICBMT0coR2Ft
ZXBhZCwgIldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZCAtIEluZGV4ICVpIGF0
dGFjaGVkICh2aXNpYmlsaXR5OiAlaSlcbiIsIGdhbWVwYWREYXRhLmluZGV4KCksIChpbnQpZXZl
bnRWaXNpYmlsaXR5KTsKKyAgICBMT0coR2FtZXBhZCwgIldlYkdhbWVwYWRQcm92aWRlcjo6Z2Ft
ZXBhZENvbm5lY3RlZCAtIEdhbWVwYWQgaW5kZXggJWkgYXR0YWNoZWQgKHZpc2liaWxpdHk6ICVp
KVxuIiwgZ2FtZXBhZERhdGEuaW5kZXgoKSwgKGludClldmVudFZpc2liaWxpdHkpOwogCiAgICAg
aWYgKG1fZ2FtZXBhZHMuc2l6ZSgpIDw9IGdhbWVwYWREYXRhLmluZGV4KCkpIHsKICAgICAgICAg
bV9nYW1lcGFkcy5yZXNpemUoZ2FtZXBhZERhdGEuaW5kZXgoKSArIDEpOwpAQCAtOTIsMTIgKzky
LDE2IEBAIHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2ln
bmVkIGluZGV4KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHYW1lcGFkPiBkaXNjb25uZWN0ZWRH
YW1lcGFkID0gV1RGTW92ZShtX2dhbWVwYWRzW2luZGV4XSk7CiAgICAgbV9yYXdHYW1lcGFkc1tp
bmRleF0gPSBudWxscHRyOwogCisgICAgTE9HKEdhbWVwYWQsICJXZWJHYW1lcGFkUHJvdmlkZXI6
OmdhbWVwYWREaXNjb25uZWN0ZWQgLSBHYW1lcGFkIGluZGV4ICVpIGRldGFjaGVkIChtX2dhbWVw
YWRzIHNpemUgJWx1LCBtX3Jhd0dhbWVwYWRzIHNpemUgJWx1XG4iLCBpbmRleCwgbV9nYW1lcGFk
cy5zaXplKCksIG1fcmF3R2FtZXBhZHMuc2l6ZSgpKTsKKwogICAgIGZvciAoYXV0byogY2xpZW50
IDogbV9jbGllbnRzKQogICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3Rl
ZCgqZGlzY29ubmVjdGVkR2FtZXBhZCk7CiB9CiAKIHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpn
YW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBF
dmVudE1ha2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKKyAgICBMT0coR2Ft
ZXBhZCwgIldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2aXR5IC0gJWx1IGdhbWVwYWQg
ZGF0YXMgd2l0aCAlbHUgbG9jYWwgd2ViIGdhbWVwYWRzXG4iLCBnYW1lcGFkRGF0YXMuc2l6ZSgp
LCBtX2dhbWVwYWRzLnNpemUoKSk7CisKICAgICBBU1NFUlQobV9nYW1lcGFkcy5zaXplKCkgPT0g
Z2FtZXBhZERhdGFzLnNpemUoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZ2Ft
ZXBhZHMuc2l6ZSgpOyArK2kpIHsK
</data>
<flag name="review"
          id="419215"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403829</attachid>
            <date>2020-07-08 17:52:41 -0700</date>
            <delta_ts>2020-07-08 18:20:23 -0700</delta_ts>
            <desc>PFL</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>8451</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNTFlM2ZiZjc2MC4uNmQ1MTAzMTgxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0wNy0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWdncmVzc2l2ZWx5IHByaW1lIEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBn
YW1lcGFkIHByb3ZpZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgR2FtZUNvbnRyb2xsZXIuZnJhbWV3b3JrIGdldHMgaXRzZWxmIGdvaW5nIGJ5IGxpc3Rl
bmluZyBmb3IgYXBwbGljYXRpb24gYWN0aXZhdGlvbiwgCisgICAgICAgIGFzc3VtaW5nIHRoYXQg
aXQgaXMgaGFyZCBsaW5rZWQuCisgICAgICAgIAorICAgICAgICBTb2Z0IGxpbmtpbmcgYnJlYWtz
IHRoaXMuCisgICAgICAgIAorICAgICAgICBUaGVyZSdzIGFuIFNQSSB0byBtYW51YWxseSBraWNr
c3RhcnQgaXQuCisgICAgICAgIAorICAgICAgICBBbHNvIGFkZCBzb21lIGxvZ2dpbmcgSSdkIGFk
ZGVkIHdoaWxlIGV4cGxvcmluZyBpc3N1ZXMgYXJvdW5kIHRoaXMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRl
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpj
b250cm9sbGVyRGlkQ29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lQ29udHJvbGxlckdh
bWVwYWRQcm92aWRlcjo6cHJld2FybUdhbWVDb250cm9sbGVyRGV2aWNlc0lmTmVjZXNzYXJ5KToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpzdGFydE1v
bml0b3JpbmdHYW1lcGFkcyk6CisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1l
Q29udHJvbGxlclNQSS5oOgorCiAyMDIwLTA3LTA2ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFj
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEFkZCBhYmlsaXR5IGZvciBBWCBvYmplY3RzIHRv
IG91dHB1dCBodG1sIGluIGRlYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3Zp
ZGVyLmgKaW5kZXggNWFiNTc1OTVhMDMuLmJkZGVkMTc3MGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29u
dHJvbGxlckdhbWVwYWRQcm92aWRlci5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0TW9uaXRvcmluZ0lucHV0KCk7CiAKICAgICB2b2lkIGdh
bWVwYWRIYWRJbnB1dChHYW1lQ29udHJvbGxlckdhbWVwYWQmLCBib29sIGhhZEJ1dHRvblByZXNz
ZXMpOworICAgIHZvaWQgcHJld2FybUdhbWVDb250cm9sbGVyRGV2aWNlc0lmTmVjZXNzYXJ5KCk7
CiAKIHByaXZhdGU6CiAgICAgR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xs
ZXJHYW1lcGFkUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2Nv
Y29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tCmluZGV4IDQzMThiMGJhNzNkLi5i
YjQxMmY5MTg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9j
b2NvYS9HYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1t
CkBAIC01NSw2ICs1NSwxMSBAQCB2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpj
b250cm9sbGVyRGlkQ29ubmVjdChHQ0NvbnRyb2xsZXIgKmNvbnRyb2xsZQogewogICAgIExPRyhH
YW1lcGFkLCAiR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIgY29udHJvbGxlciAlcCBhZGRl
ZCIsIGNvbnRyb2xsZXIpOwogCisgICAgLy8gV2hlbiBpbml0aWFsbHkgc3RhcnRpbmcgdXAgdGhl
IEdhbWVDb250cm9sbGVyIGZyYW1ld29yayBtYWNoaW5lcnksCisgICAgLy8gd2UgbWlnaHQgZ2V0
IHRoZSBjb25uZWN0aW9uIG5vdGlmaWNhdGlvbiBmb3IgYW4gYWxyZWFkeS1jb25uZWN0ZWQgY29u
dHJvbGxlci4KKyAgICBpZiAobV9nYW1lcGFkTWFwLmNvbnRhaW5zKGNvbnRyb2xsZXIpKQorICAg
ICAgICByZXR1cm47CisKICAgICB1bnNpZ25lZCBpbmRleCA9IGluZGV4Rm9yTmV3bHlDb25uZWN0
ZWREZXZpY2UoKTsKICAgICBhdXRvIGdhbWVwYWQgPSBtYWtlVW5pcXVlPEdhbWVDb250cm9sbGVy
R2FtZXBhZD4oY29udHJvbGxlciwgaW5kZXgpOwogCkBAIC05Myw2ICs5OCwxNyBAQCB2b2lkIEdh
bWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjpjb250cm9sbGVyRGlkRGlzY29ubmVjdChHQ0Nv
bnRyb2xsZXIgKmNvbnRybwogICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5l
Y3RlZCgqcmVtb3ZlZEdhbWVwYWQpOwogfQogCit2b2lkIEdhbWVDb250cm9sbGVyR2FtZXBhZFBy
b3ZpZGVyOjpwcmV3YXJtR2FtZUNvbnRyb2xsZXJEZXZpY2VzSWZOZWNlc3NhcnkoKQoreworICAg
IHN0YXRpYyBib29sIHByZXdhcm1lZDsKKyAgICBpZiAocHJld2FybWVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBMT0coR2FtZXBhZCwgIkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyIGV4
cGxpY2l0bHkgc3RhcnRpbmcgR2FtZUNvbnRyb2xsZXIgZnJhbWV3b3JrIG1vbml0b3JpbmciKTsK
KyAgICBbZ2V0R0NDb250cm9sbGVyQ2xhc3MoKSBfX29wZW5YUENfYW5kX0NCQXBwbGljYXRpb25E
aWRCZWNvbWVBY3RpdmVfX107CisgICAgcHJld2FybWVkID0gdHJ1ZTsKK30KKwogdm9pZCBHYW1l
Q29udHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBh
ZFByb3ZpZGVyQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgQVNTRVJUKCFtX2NsaWVudHMuY29udGFp
bnMoJmNsaWVudCkpOwpAQCAtMTAxLDIwICsxMTcsMzAgQEAgdm9pZCBHYW1lQ29udHJvbGxlckdh
bWVwYWRQcm92aWRlcjo6c3RhcnRNb25pdG9yaW5nR2FtZXBhZHMoR2FtZXBhZFByb3ZpZGVyQ2xp
ZW4KICAgICBpZiAobV9jb25uZWN0T2JzZXJ2ZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBy
ZXdhcm1HYW1lQ29udHJvbGxlckRldmljZXNJZk5lY2Vzc2FyeSgpOworCiAgICAgaWYgKGNhbkxv
YWRfR2FtZUNvbnRyb2xsZXJfR0NDb250cm9sbGVyRGlkQ29ubmVjdE5vdGlmaWNhdGlvbigpKSB7
CiAgICAgICAgIG1fY29ubmVjdE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6Z2V0X0dhbWVDb250cm9sbGVyX0dDQ29udHJv
bGxlckRpZENvbm5lY3ROb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsIHF1ZXVlOm5pbCB1c2luZ0Js
b2NrOl4oTlNOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikgeworICAgICAgICAgICAgTE9HKEdh
bWVwYWQsICJHYW1lQ29udHJvbGxlckdhbWVwYWRQcm92aWRlciBub3RpZmllZCBvZiBuZXcgR0ND
b250cm9sbGVyICVwIiwgbm90aWZpY2F0aW9uLm9iamVjdCk7CiAgICAgICAgICAgICBHYW1lQ29u
dHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c2luZ2xldG9uKCkuY29udHJvbGxlckRpZENvbm5lY3Qo
bm90aWZpY2F0aW9uLm9iamVjdCwgQ29ubmVjdGlvblZpc2liaWxpdHk6OlZpc2libGUpOwogICAg
ICAgICB9XTsKICAgICB9CiAKICAgICBpZiAoY2FuTG9hZF9HYW1lQ29udHJvbGxlcl9HQ0NvbnRy
b2xsZXJEaWREaXNjb25uZWN0Tm90aWZpY2F0aW9uKCkpIHsKICAgICAgICAgbV9kaXNjb25uZWN0
T2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2Vy
dmVyRm9yTmFtZTpnZXRfR2FtZUNvbnRyb2xsZXJfR0NDb250cm9sbGVyRGlkRGlzY29ubmVjdE5v
dGlmaWNhdGlvbigpIG9iamVjdDpuaWwgcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNh
dGlvbiAqbm90aWZpY2F0aW9uKSB7CisgICAgICAgICAgICBMT0coR2FtZXBhZCwgIkdhbWVDb250
cm9sbGVyR2FtZXBhZFByb3ZpZGVyIG5vdGlmaWVkIG9mIGRpc2Nvbm5lY3RlZCBHQ0NvbnRyb2xs
ZXIgJXAiLCBub3RpZmljYXRpb24ub2JqZWN0KTsKICAgICAgICAgICAgIEdhbWVDb250cm9sbGVy
R2FtZXBhZFByb3ZpZGVyOjpzaW5nbGV0b24oKS5jb250cm9sbGVyRGlkRGlzY29ubmVjdChub3Rp
ZmljYXRpb24ub2JqZWN0KTsKICAgICAgICAgfV07CiAgICAgfQogCi0gICAgZm9yIChHQ0NvbnRy
b2xsZXIgKmNvbnRyb2xsZXIgaW4gW2dldEdDQ29udHJvbGxlckNsYXNzKCkgY29udHJvbGxlcnNd
KQorICAgIGF1dG8gKmNvbnRyb2xsZXJzID0gW2dldEdDQ29udHJvbGxlckNsYXNzKCkgY29udHJv
bGxlcnNdOworICAgIGlmICghY29udHJvbGxlcnMgfHwgIWNvbnRyb2xsZXJzLmNvdW50KQorICAg
ICAgICBMT0coR2FtZXBhZCwgIkdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyIGhhcyBubyBp
bml0aWFsIEdDQ29udHJvbGxlcnMgYXR0YWNoZWQiKTsKKworICAgIGZvciAoR0NDb250cm9sbGVy
ICpjb250cm9sbGVyIGluIGNvbnRyb2xsZXJzKSB7CisgICAgICAgIExPRyhHYW1lcGFkLCAiR2Ft
ZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIgaGFzIGluaXRpYWwgR0NDb250cm9sbGVyICVwIiwg
Y29udHJvbGxlcik7CiAgICAgICAgIGNvbnRyb2xsZXJEaWRDb25uZWN0KGNvbnRyb2xsZXIsIENv
bm5lY3Rpb25WaXNpYmlsaXR5OjpJbnZpc2libGUpOworICAgIH0KIH0KIAogdm9pZCBHYW1lQ29u
dHJvbGxlckdhbWVwYWRQcm92aWRlcjo6c3RvcE1vbml0b3JpbmdHYW1lcGFkcyhHYW1lcGFkUHJv
dmlkZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJTUEkuaAppbmRleCAwMThkMzgwNjM4Yi4u
MThmOGU3NWI3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQv
Y29jb2EvR2FtZUNvbnRyb2xsZXJTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
YW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyU1BJLmgKQEAgLTI1LDYgKzI1LDEwIEBACiAKICNp
ZiBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZPUk0oQ09DT0EpCiAKLS8vIEZJWE1FOiBSZWZhY3Rv
ciBtb3JlIEdDIGZyYW1ld29yayBzdHVmZiBpbnRvIHRoaXMgaGVhZGVyCisjaW1wb3J0IDxHYW1l
Q29udHJvbGxlci9HQ0NvbnRyb2xsZXIuaD4KKworQGludGVyZmFjZSBHQ0NvbnRyb2xsZXIgKCkK
KysgKHZvaWQpX19vcGVuWFBDX2FuZF9DQkFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlX187CitA
ZW5kCiAKICNlbmRpZiAvLyBFTkFCTEUoR0FNRVBBRCkgJiYgUExBVEZPUk0oQ09DT0EpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDliMjA4MzUyYTc5Li43ZGQ0ZmM4OWU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMC0wNy0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWdncmVzc2l2ZWx5IHByaW1lIEdhbWVDb250cm9sbGVyLmZyYW1ld29yayBnYW1lcGFkIHBy
b3ZpZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE0MDk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQ29ubmVjdGVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkQWN0aXZpdHkpOgorCiAyMDIwLTA3LTA2
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9m
IGNvbmNlcHQgb2YgImluaXRpYWwgY29ubmVjdGVkIGdhbWVwYWRzIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dhbWVwYWQvV2ViR2FtZXBhZFByb3ZpZGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKaW5k
ZXggY2ZjMGJkYzIzYWUuLjFhZTUxNTcyNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR2FtZXBhZC9XZWJHYW1lcGFkUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HYW1lcGFkL1dlYkdhbWVwYWRQcm92aWRlci5jcHAKQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6OnNldEluaXRpYWxHYW1lcGFkcyhjb25zdCBW
ZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGEKIAogdm9pZCBXZWJHYW1lcGFkUHJvdmlkZXI6
OmdhbWVwYWRDb25uZWN0ZWQoY29uc3QgR2FtZXBhZERhdGEmIGdhbWVwYWREYXRhLCBFdmVudE1h
a2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKLSAgICBMT0coR2FtZXBhZCwg
IldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENvbm5lY3RlZCAtIEluZGV4ICVpIGF0dGFjaGVk
ICh2aXNpYmlsaXR5OiAlaSlcbiIsIGdhbWVwYWREYXRhLmluZGV4KCksIChpbnQpZXZlbnRWaXNp
YmlsaXR5KTsKKyAgICBMT0coR2FtZXBhZCwgIldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZENv
bm5lY3RlZCAtIEdhbWVwYWQgaW5kZXggJXUgYXR0YWNoZWQgKHZpc2liaWxpdHk6ICVpKVxuIiwg
Z2FtZXBhZERhdGEuaW5kZXgoKSwgKGludClldmVudFZpc2liaWxpdHkpOwogCiAgICAgaWYgKG1f
Z2FtZXBhZHMuc2l6ZSgpIDw9IGdhbWVwYWREYXRhLmluZGV4KCkpIHsKICAgICAgICAgbV9nYW1l
cGFkcy5yZXNpemUoZ2FtZXBhZERhdGEuaW5kZXgoKSArIDEpOwpAQCAtOTIsMTIgKzkyLDE2IEBA
IHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFkRGlzY29ubmVjdGVkKHVuc2lnbmVkIGlu
ZGV4KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHYW1lcGFkPiBkaXNjb25uZWN0ZWRHYW1lcGFk
ID0gV1RGTW92ZShtX2dhbWVwYWRzW2luZGV4XSk7CiAgICAgbV9yYXdHYW1lcGFkc1tpbmRleF0g
PSBudWxscHRyOwogCisgICAgTE9HKEdhbWVwYWQsICJXZWJHYW1lcGFkUHJvdmlkZXI6OmdhbWVw
YWREaXNjb25uZWN0ZWQgLSBHYW1lcGFkIGluZGV4ICV1IGRldGFjaGVkIChtX2dhbWVwYWRzIHNp
emUgJXp1LCBtX3Jhd0dhbWVwYWRzIHNpemUgJXp1XG4iLCBpbmRleCwgbV9nYW1lcGFkcy5zaXpl
KCksIG1fcmF3R2FtZXBhZHMuc2l6ZSgpKTsKKwogICAgIGZvciAoYXV0byogY2xpZW50IDogbV9j
bGllbnRzKQogICAgICAgICBjbGllbnQtPnBsYXRmb3JtR2FtZXBhZERpc2Nvbm5lY3RlZCgqZGlz
Y29ubmVjdGVkR2FtZXBhZCk7CiB9CiAKIHZvaWQgV2ViR2FtZXBhZFByb3ZpZGVyOjpnYW1lcGFk
QWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFzLCBFdmVudE1h
a2VzR2FtZXBhZHNWaXNpYmxlIGV2ZW50VmlzaWJpbGl0eSkKIHsKKyAgICBMT0coR2FtZXBhZCwg
IldlYkdhbWVwYWRQcm92aWRlcjo6Z2FtZXBhZEFjdGl2aXR5IC0gJXp1IGdhbWVwYWQgZGF0YXMg
d2l0aCAlenUgbG9jYWwgd2ViIGdhbWVwYWRzXG4iLCBnYW1lcGFkRGF0YXMuc2l6ZSgpLCBtX2dh
bWVwYWRzLnNpemUoKSk7CisKICAgICBBU1NFUlQobV9nYW1lcGFkcy5zaXplKCkgPT0gZ2FtZXBh
ZERhdGFzLnNpemUoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZ2FtZXBhZHMu
c2l6ZSgpOyArK2kpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>