Linux wireless drivers development
 help / color / mirror / Atom feed
* Re: [PATCH] Fix rtl8187 multicast reception
From: Kalle Valo @ 2017-02-19  7:46 UTC (permalink / raw)
  To: Larry Finger; +Cc: Nils Holland, linux-wireless
In-Reply-To: <2eb1dd33-4d71-86b7-c579-412419e2a2e5@lwfinger.net>

Larry Finger <Larry.Finger@lwfinger.net> writes:

> On 02/18/2017 07:35 PM, Nils Holland wrote:
>> The rtl8187 doesn't seem to receive multicast data, which, among other
>> thinks, make it fail to receive RAs in IPv6 networks.
>>
>> The cause seems to be that the RTL818X_RX_CONF_MULTICAST flag doesn't
>> have any effect at all. Fix this issue by setting
>> RTL818X_RX_CONF_MONITOR instead, which puts the card into monitor mode,
>> and fixes the problem.
>>
>> Signed-off-by: Nils Holland <nholland@tisys.org>
>> ---
>> The problem and solution have been tested on an rtl8187b (0bda:8197), but
>> the fix changes behavior on other cards supported by the driver as well
>> (like non-b 8187's). Due to lack of hardware, I unfortunately cannot say
>> if the issue exists on these cards in the first place, or if the fix has
>> any unwanted consequences there.

BTW, this is good info to have in the actual commit log. No need put it
under "---" line.

>> If people consider it a bad idea to just always put the card into monitor
>> mode (for example, for performance reasons), I could imagine rewriting this
>> patch so that a module parameter controls this behavior instead.
>
> I would hate to make such a change in the behavior of the driver, and
> have it be applied without the user having any say. The fact that
> setting RTL818X_RX_CONF_MULTICAST does not have the desired effect may
> be due to a firmware error; however, there is no chance of making a
> change there as these devices have embedded/fixed fw.

Or it could be also a problem how we configure the firmware.

> I would prefer a module parameter that would allow this change to be
> implemented only if the user takes special action. I suspect that you
> will have no difficulty preparing such a change. If that is not true,
> I would be happy to help.

I understand why you prefer having a module parameter but the thing is
that being able to receive multicast frames is really basic
functionality. We should not hide it under a module parameter.

Isn't there any other option, for example does anyone have hw to test
this with other hw? (what exactly?) Or maybe we just take the risk and
take it as is and revert if problems arise?

-- 
Kalle Valo

^ permalink raw reply

* Re: brcmfmac: BCM4343A0 P2P mode problem
From: Stefan Holzmann @ 2017-02-19  8:03 UTC (permalink / raw)
  To: linux-wireless

Thank you for your support. Yes, correct SDIO 0xA9A6 is BCM43430 I was confused by the naming of some firmware files.

What firmware version/file shall be used for this chipset/driver combination?
Currently I'am using the firmware file "fw_bcm43438a0_p2p.bin" from here https://github.com/BPI-SINOVOIP/BPI_WiFi_Firmware/tree/master/ap6212.

I have set the driver parameter "use_p2p_group_interface=1" as you recommended, and now I see following error messages at the kernel log when I try to setup a P2P connection.

[   59.593565] brcmfmac: brcmf_sdio_hostmail: Unknown mailbox data content: 0x40012
[   62.163452] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
[   62.169542] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
[   62.175839] brcmfmac: brcmf_cfg80211_add_iface: add iface p2p-wlan0-0 type 8 failed: err=-110

^ permalink raw reply

* RE: [RFC 1/5] iwlwifi: fix drv cleanup on opmode registration failure
From: Grumbach, Emmanuel @ 2017-02-19  9:16 UTC (permalink / raw)
  To: Luis R. Rodriguez, Berg, Johannes, Coelho, Luciano, tj@kernel.org,
	arjan@linux.intel.com, ming.lei@canonical.com, zajec5@gmail.com
  Cc: jeyu@redhat.com, rusty@rustcorp.com.au, pmladek@suse.com,
	gregkh@linuxfoundation.org, linuxwifi,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <20170217020903.6370-2-mcgrof@kernel.org>

Hi Luis,

> 
> The firmware async callback handles the device's opmode start call, but
> optionally also allows opmode registration to take care of its opmode start. If
> the firmware callback handles it its error path in case of opmode start failure
> has a few pieces of code missing from the opmode registration. The opmode
> registration hanlder has no cleanup at all. Sync both error paths.
> 
> This should in theory fix a detangled drv from the drv list should either of the
> opmode modules loaded and handled registration for the drv.
> 
> The path of having the opmode registration deal with the drv opmode start is
> actually the more common path. The other path, from the async callback is
> rathe rare (1/8 or so times for me) -- it happens when the the opmode
> driver's init routine completed prior to the driver's async callback opmode
> start call.

I'd claim it should never happen unless you have several devices on the system using the same
opmode, or unless you do:
modprobe iwlwifi  #which will load iwl{d,m}vm
rmmod iwl{d,m}vm #and do _not_ remove iwlwifi
modprobe iwlwifi



> 
> Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
> ---

Luca is OOO,  but this looks fine to me.


>  drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> index be466a074c1d..e198d6f5fcea 100644
> --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> @@ -1611,8 +1611,13 @@ int iwl_opmode_register(const char *name, const
> struct iwl_op_mode_ops *ops)
>  			continue;
>  		op->ops = ops;
>  		/* TODO: need to handle exceptional case */
> -		list_for_each_entry(drv, &op->drv, list)
> +		list_for_each_entry(drv, &op->drv, list) {
>  			drv->op_mode = _iwl_op_mode_start(drv, op);
> +			if (!drv->op_mode) {
> +				complete(&drv-
> >request_firmware_complete);
> +				device_release_driver(drv->trans->dev);
> +			}
> +		}
> 
>  		mutex_unlock(&iwlwifi_opmode_table_mtx);
>  		return 0;
> --
> 2.11.0

^ permalink raw reply

* Re: [PATCH] Fix rtl8187 multicast reception
From: Nils Holland @ 2017-02-19  9:41 UTC (permalink / raw)
  To: Kalle Valo; +Cc: Larry Finger, linux-wireless
In-Reply-To: <87lgt28vxz.fsf@purkki.adurom.net>

On Sun, Feb 19, 2017 at 09:46:16AM +0200, Kalle Valo wrote:
> Larry Finger <Larry.Finger@lwfinger.net> writes:
> 
> > On 02/18/2017 07:35 PM, Nils Holland wrote:
> >> The rtl8187 doesn't seem to receive multicast data, which, among other
> >> thinks, make it fail to receive RAs in IPv6 networks.
> >>
> >> The cause seems to be that the RTL818X_RX_CONF_MULTICAST flag doesn't
> >> have any effect at all. Fix this issue by setting
> >> RTL818X_RX_CONF_MONITOR instead, which puts the card into monitor mode,
> >> and fixes the problem.
> >>
> >> Signed-off-by: Nils Holland <nholland@tisys.org>
> >> ---
> >> The problem and solution have been tested on an rtl8187b (0bda:8197), but
> >> the fix changes behavior on other cards supported by the driver as well
> >> (like non-b 8187's). Due to lack of hardware, I unfortunately cannot say
> >> if the issue exists on these cards in the first place, or if the fix has
> >> any unwanted consequences there.
> 
> BTW, this is good info to have in the actual commit log. No need put it
> under "---" line.

Thanks for the hint, I'll do that better the next time! :-)

> > I would prefer a module parameter that would allow this change to be
> > implemented only if the user takes special action. I suspect that you
> > will have no difficulty preparing such a change. If that is not true,
> > I would be happy to help.
> 
> I understand why you prefer having a module parameter but the thing is
> that being able to receive multicast frames is really basic
> functionality. We should not hide it under a module parameter.

Well, this is a tough question, I have to admit that I have a somewhat
weird feeling making a change that also applies to other hardware that
I cannot test on, so I don't know about any negative consequences that
might arise there, especially when the change isn't based on some
official information from some documentation, but rather a result of
trial & error. So I can fully understand Larry's concerns and do in
fact think that a module parameter could be a nice solution, so that
by default the behavior if the driver does not change. From an
end-user standpoint, it's probably always worse to see something break
which has always worked before than it is to have something not work
properly right from the start, but being able to easily find some
parameter to fix this. On the other hand, use of this particular USB
wifi card is probably not so common these days so relatively few
people would notice at all. Tough! I guess I'll submit a module
parameter based v2 of the patch later today, just as Larry suggested!

> Isn't there any other option, for example does anyone have hw to test
> this with other hw? (what exactly?) Or maybe we just take the risk and
> take it as is and revert if problems arise?

Of course, if someone has other hw, more testing would be nice! Any
situation where the card is supposed to receive multicast frames
should be suitable as a test case - in my case, just connecting to my
local network and expecting to see the card pick up RAs and acquire an
IPv6 address is the easiest test case. This works nicely on several
other machines with completely different wifi hardware as well as
wired machines, but fails without the fix on the rtl8187b. It would,
for example, be interesting to see if a non-b 8187 behaves the same or
if things work there out of the box. In that case, instead of doing a
module parameter, I could also change the fix so that it only does
something different on the b-variants of the card and doesn't change
behavior at all on non-b.

Greetings
Nils

^ permalink raw reply

* RE: [RFC 2/5] iwlwifi: fix request_module() use
From: Grumbach, Emmanuel @ 2017-02-19  9:47 UTC (permalink / raw)
  To: Luis R. Rodriguez, Berg, Johannes, Coelho, Luciano, tj@kernel.org,
	arjan@linux.intel.com, ming.lei@canonical.com, zajec5@gmail.com
  Cc: jeyu@redhat.com, rusty@rustcorp.com.au, pmladek@suse.com,
	gregkh@linuxfoundation.org, linuxwifi,
	linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <20170217020903.6370-3-mcgrof@kernel.org>

> 
> The return value of request_module() being 0 does not mean that the driver
> which was requested has loaded. To properly check that the driver was
> loaded each driver can use internal mechanisms to vet the driver is now
> present. The helper try_then_request_module() was added to help with
> this, allowing drivers to specify their own validation as the first argument.
> 
> On iwlwifi the use case is a bit more complicated given that the value we
> need to check for is protected with a mutex later used on the
> module_init() of the module we are asking for. If we were to lock and
> request_module() we'd deadlock. iwlwifi needs its own wrapper then so it
> can handle its special locking requirements.
> 
> Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>

I don't see the problem with the current code. We don't assume that everything has been
loaded immediately after request_module returns. We just free the intermediate firmware
structures that won't be using anymore. What happens here is that after request_module
returns, we patiently wait until it is loaded, and when that happens, iwl{d,m}vm's init function
will be called. That one is the one that continues the flow by calling:

	ret = iwl_opmode_register("iwlmvm", &iwl_mvm_ops);

(for the iwlmvm case).

Where am I wrong here?


> ---
>  drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 34 ++++++++++++++++++++---
> -----
>  1 file changed, 25 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> index e198d6f5fcea..6beb92d19ea7 100644
> --- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> +++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
> @@ -1231,6 +1231,29 @@ static void _iwl_op_mode_stop(struct iwl_drv
> *drv)
>  	}
>  }
> 
> +static void iwlwifi_try_load_op(struct iwlwifi_opmode_table *op,
> +				struct iwl_drv *drv)
> +{
> +	int ret = 0;
> +
> +	ret = request_module("%s", op->name);
> +	if (ret)
> +		goto out;
> +
> +	mutex_lock(&iwlwifi_opmode_table_mtx);
> +	if (!op->ops)
> +		ret = -ENOENT;
> +	mutex_unlock(&iwlwifi_opmode_table_mtx);
> +
> +out:
> +#ifdef CONFIG_IWLWIFI_OPMODE_MODULAR
> +	if (ret)
> +		IWL_ERR(drv,
> +			"failed to load module %s (error %d), is dynamic
> loading enabled?\n",
> +			op->name, ret);
> +#endif
> +}
> +
>  /**
>   * iwl_req_fw_callback - callback when firmware was loaded
>   *
> @@ -1471,15 +1494,8 @@ static void iwl_req_fw_callback(const struct
> firmware *ucode_raw, void *context)
>  	 * else from proceeding if the module fails to load
>  	 * or hangs loading.
>  	 */
> -	if (load_module) {
> -		err = request_module("%s", op->name);
> -#ifdef CONFIG_IWLWIFI_OPMODE_MODULAR
> -		if (err)
> -			IWL_ERR(drv,
> -				"failed to load module %s (error %d), is
> dynamic loading enabled?\n",
> -				op->name, err);
> -#endif
> -	}
> +	if (load_module)
> +		iwlwifi_try_load_op(op, drv);
>  	goto free;
> 
>   try_again:
> --
> 2.11.0

^ permalink raw reply

* [PATCH] NFC: st21nfca: Fix potential memory leak
From: Christophe JAILLET @ 2017-02-19  9:58 UTC (permalink / raw)
  To: lauro.venancio, aloisio.almeida, sameo, christophe.ricard
  Cc: linux-wireless, linux-kernel, kernel-janitors, Christophe JAILLET

If all bits of 'dev_mask' are already set, there is a memory leak because
'info' should be freed before returning.

While fixing it, 'return -ENOMEM' directly if the first kzalloc fails.
This makes the code more readable.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/nfc/st21nfca/core.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/nfc/st21nfca/core.c b/drivers/nfc/st21nfca/core.c
index dacb9166081b..50be3b788f1c 100644
--- a/drivers/nfc/st21nfca/core.c
+++ b/drivers/nfc/st21nfca/core.c
@@ -959,10 +959,8 @@ int st21nfca_hci_probe(void *phy_id, struct nfc_phy_ops *phy_ops,
 	unsigned long quirks = 0;
 
 	info = kzalloc(sizeof(struct st21nfca_hci_info), GFP_KERNEL);
-	if (!info) {
-		r = -ENOMEM;
-		goto err_alloc_hdev;
-	}
+	if (!info)
+		return -ENOMEM;
 
 	info->phy_ops = phy_ops;
 	info->phy_id = phy_id;
@@ -978,8 +976,10 @@ int st21nfca_hci_probe(void *phy_id, struct nfc_phy_ops *phy_ops,
 	 * persistent info to discriminate 2 identical chips
 	 */
 	dev_num = find_first_zero_bit(dev_mask, ST21NFCA_NUM_DEVICES);
-	if (dev_num >= ST21NFCA_NUM_DEVICES)
-		return -ENODEV;
+	if (dev_num >= ST21NFCA_NUM_DEVICES) {
+		r = -ENODEV;
+		goto err_alloc_hdev;
+	}
 
 	set_bit(dev_num, dev_mask);
 
-- 
2.9.3

^ permalink raw reply related

* Re: [PATCH] wireless-regdb: Update rules for Australia (AU) and add 60GHz rules
From: Sebastian Gottschall @ 2017-02-19 12:16 UTC (permalink / raw)
  To: Ryan Mounce, seth.forshee; +Cc: wireless-regdb, linux-wireless
In-Reply-To: <CAN+fvRYkbeV8yXuA+J1HVtZemB+j-07wvHkbouEpgzL-7SE6-Q@mail.gmail.com>

Am 19.02.2017 um 01:01 schrieb Ryan Mounce:
> Hi Sebastian,
>
> There is no explicit channel width restriction in the document,
> however the only band in which the current regdb rules permit 160MHz
> operation (5490-5710MHz) would result in an overlap with the
> restricted weather radar band 5600-5650MHz.
thats the case for all countries, so this couldnt be a argument. dfs 
should handle this
>
> While remaining in compliance with both 802.11 and Australian law,
> contiguous 160MHz operation in 5GHz is only permitted between
> 5170-5330MHz which spans two bands with slightly different
> requirements, hence AUTO-BW.
>
> Regards,
> Ryan Mounce
>
> ryan@mounce.com.au
>
> On 19 February 2017 at 07:15, Sebastian Gottschall
> <s.gottschall@dd-wrt.com> wrote:
>> maybe i'm blind. but you reduced the channel width from 160 to 80 mhz. but i
>> can't find any restriction in the document in a quick review
>>
>> Sebastian
>>
>>
>> Am 18.02.2017 um 07:35 schrieb Ryan Mounce:
>>> Sourced from the latest legislation at
>>> https://www.legislation.gov.au/Details/F2016C0043
>>>
>>> The current rules exceed legal limits between 5250-5330MHz, and permit
>>> illegal operation in 5600-5650MHz (reserved for weather radar).
>>>
>>> Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
>>> ---
>>>    db.txt | 15 ++++++++++-----
>>>    1 file changed, 10 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/db.txt b/db.txt
>>> index 05108e0..b951e0c 100644
>>> --- a/db.txt
>>> +++ b/db.txt
>>> @@ -85,12 +85,17 @@ country AT: DFS-ETSI
>>>          # 60 GHz band channels 1-4, ref: Etsi En 302 567
>>>          (57000 - 66000 @ 2160), (40)
>>>    +# Source:
>>> +# https://www.legislation.gov.au/Details/F2016C00432
>>> +# Both DFS-ETSI and DFS-FCC are acceptable per AS/NZS 4268 Appendix B
>>>    country AU: DFS-ETSI
>>> -       (2402 - 2482 @ 40), (20)
>>> -       (5170 - 5250 @ 80), (17), AUTO-BW
>>> -       (5250 - 5330 @ 80), (24), DFS, AUTO-BW
>>> -       (5490 - 5710 @ 160), (24), DFS
>>> -       (5735 - 5835 @ 80), (30)
>>> +       (2402 - 2482 @ 40), (36)
>>> +       (5170 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW
>>> +       (5250 - 5330 @ 80), (23), NO-OUTDOOR, AUTO-BW, DFS
>>> +       (5490 - 5590 @ 80), (30), DFS
>>> +       (5650 - 5730 @ 80), (30), DFS
>>> +       (5735 - 5835 @ 80), (36)
>>> +       (57000 - 66000 @ 2160), (43), NO-OUTDOOR
>>>      country AW: DFS-ETSI
>>>          (2402 - 2482 @ 40), (20)
>>
>>
>> --
>> Mit freundlichen Grüssen / Regards
>>
>> Sebastian Gottschall / CTO
>>
>> NewMedia-NET GmbH - DD-WRT
>> Firmensitz:  Berliner Ring 101, 64625 Bensheim
>> Registergericht: Amtsgericht Darmstadt, HRB 25473
>> Geschäftsführer: Peter Steinhäuser, Christian Scheele
>> http://www.dd-wrt.com
>> email: s.gottschall@dd-wrt.com
>> Tel.: +496251-582650 / Fax: +496251-5826565
>>


-- 
Mit freundlichen Grüssen / Regards

Sebastian Gottschall / CTO

NewMedia-NET GmbH - DD-WRT
Firmensitz:  Berliner Ring 101, 64625 Bensheim
Registergericht: Amtsgericht Darmstadt, HRB 25473
Geschäftsführer: Peter Steinhäuser, Christian Scheele
http://www.dd-wrt.com
email: s.gottschall@dd-wrt.com
Tel.: +496251-582650 / Fax: +496251-5826565

^ permalink raw reply

* Re: [PATCH] wireless-regdb: Update rules for Australia (AU) and add 60GHz rules
From: Ryan Mounce @ 2017-02-19 12:36 UTC (permalink / raw)
  To: Sebastian Gottschall; +Cc: Seth Forshee, wireless-regdb, linux-wireless
In-Reply-To: <b21a95a8-2a84-7bba-24b2-6d2ab3d255c1@dd-wrt.com>

Australian regulations differ from most of Europe, the USA and even
New Zealand (which shares AS/NZS 4268) in that any unlicensed
operation between 5600-5650MHz is prohibited outright, rather than
being allowed after an extended DFS channel availability check.

The situation appears to be similar in Canada, the regdb has
previously been amended to reflect this.

https://git.kernel.org/cgit/linux/kernel/git/sforshee/wireless-regdb.git/co=
mmit/db.txt?id=3Dce7697d3def48f87427b3a3c285b46241af3b79d

On 19 February 2017 at 22:46, Sebastian Gottschall
<s.gottschall@dd-wrt.com> wrote:
> Am 19.02.2017 um 01:01 schrieb Ryan Mounce:
>>
>> Hi Sebastian,
>>
>> There is no explicit channel width restriction in the document,
>> however the only band in which the current regdb rules permit 160MHz
>> operation (5490-5710MHz) would result in an overlap with the
>> restricted weather radar band 5600-5650MHz.
>
> thats the case for all countries, so this couldnt be a argument. dfs shou=
ld
> handle this
>
>>
>> While remaining in compliance with both 802.11 and Australian law,
>> contiguous 160MHz operation in 5GHz is only permitted between
>> 5170-5330MHz which spans two bands with slightly different
>> requirements, hence AUTO-BW.
>>
>> Regards,
>> Ryan Mounce
>>
>> ryan@mounce.com.au
>>
>> On 19 February 2017 at 07:15, Sebastian Gottschall
>> <s.gottschall@dd-wrt.com> wrote:
>>>
>>> maybe i'm blind. but you reduced the channel width from 160 to 80 mhz.
>>> but i
>>> can't find any restriction in the document in a quick review
>>>
>>> Sebastian
>>>
>>>
>>> Am 18.02.2017 um 07:35 schrieb Ryan Mounce:
>>>>
>>>> Sourced from the latest legislation at
>>>> https://www.legislation.gov.au/Details/F2016C0043
>>>>
>>>> The current rules exceed legal limits between 5250-5330MHz, and permit
>>>> illegal operation in 5600-5650MHz (reserved for weather radar).
>>>>
>>>> Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
>>>> ---
>>>>    db.txt | 15 ++++++++++-----
>>>>    1 file changed, 10 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/db.txt b/db.txt
>>>> index 05108e0..b951e0c 100644
>>>> --- a/db.txt
>>>> +++ b/db.txt
>>>> @@ -85,12 +85,17 @@ country AT: DFS-ETSI
>>>>          # 60 GHz band channels 1-4, ref: Etsi En 302 567
>>>>          (57000 - 66000 @ 2160), (40)
>>>>    +# Source:
>>>> +# https://www.legislation.gov.au/Details/F2016C00432
>>>> +# Both DFS-ETSI and DFS-FCC are acceptable per AS/NZS 4268 Appendix B
>>>>    country AU: DFS-ETSI
>>>> -       (2402 - 2482 @ 40), (20)
>>>> -       (5170 - 5250 @ 80), (17), AUTO-BW
>>>> -       (5250 - 5330 @ 80), (24), DFS, AUTO-BW
>>>> -       (5490 - 5710 @ 160), (24), DFS
>>>> -       (5735 - 5835 @ 80), (30)
>>>> +       (2402 - 2482 @ 40), (36)
>>>> +       (5170 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW
>>>> +       (5250 - 5330 @ 80), (23), NO-OUTDOOR, AUTO-BW, DFS
>>>> +       (5490 - 5590 @ 80), (30), DFS
>>>> +       (5650 - 5730 @ 80), (30), DFS
>>>> +       (5735 - 5835 @ 80), (36)
>>>> +       (57000 - 66000 @ 2160), (43), NO-OUTDOOR
>>>>      country AW: DFS-ETSI
>>>>          (2402 - 2482 @ 40), (20)
>>>
>>>
>>>
>>> --
>>> Mit freundlichen Gr=C3=BCssen / Regards
>>>
>>> Sebastian Gottschall / CTO
>>>
>>> NewMedia-NET GmbH - DD-WRT
>>> Firmensitz:  Berliner Ring 101, 64625 Bensheim
>>> Registergericht: Amtsgericht Darmstadt, HRB 25473
>>> Gesch=C3=A4ftsf=C3=BChrer: Peter Steinh=C3=A4user, Christian Scheele
>>> http://www.dd-wrt.com
>>> email: s.gottschall@dd-wrt.com
>>> Tel.: +496251-582650 / Fax: +496251-5826565
>>>
>
>
> --
> Mit freundlichen Gr=C3=BCssen / Regards
>
> Sebastian Gottschall / CTO
>
> NewMedia-NET GmbH - DD-WRT
> Firmensitz:  Berliner Ring 101, 64625 Bensheim
> Registergericht: Amtsgericht Darmstadt, HRB 25473
> Gesch=C3=A4ftsf=C3=BChrer: Peter Steinh=C3=A4user, Christian Scheele
> http://www.dd-wrt.com
> email: s.gottschall@dd-wrt.com
> Tel.: +496251-582650 / Fax: +496251-5826565
>

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Erik Stromdahl @ 2017-02-19 13:19 UTC (permalink / raw)
  To: Valo, Kalle
  Cc: linux-wireless@vger.kernel.org,
	ath10k@lists.infradead.org <ath10k@lists.infradead.org>;
In-Reply-To: <877f4ngii5.fsf@kamboji.qca.qualcomm.com>

Hej,

I just noticed that Ryan Hsu submitted two patches containing similar
functionality to what I have in my tree on github. They have not been
integrated in the ath master yet, but they have been added to master-pending.

Below are the commits I am talking about

bc1054a15be3c962c83aa22476a3e9c1266da792 ath10k: improve the firmware download time for QCA9377
db5af2a25bd8c1410ec4456d1d4f4e6ded2649ca ath10k: improve the firmware download time for QCA6174

Since some of my patches overlap with these I think it would be best if
I add these to my tree and rewrite my patches.

If they haven't made it into master before I submit my updated patch series
I will include them in my set.

Is this OK?

If they will be added to master soon there is no issue since I will of course
rebase to the latest ath-YYYYMMDDHHmm before I submit anything.

/Erik

On 2017-02-19 00:57, Valo, Kalle wrote:
> Erik Stromdahl <erik.stromdahl@gmail.com> writes:
>
>> I was actually about to email you about this.
>>
>> I have made a few more updates to the sdio code so I think it would be
>> best if I could submit a new series of patches based on this code (v4).
>>
>> Then you can tweak it (v5).
>>
>> It is only minor updates to the HIF layer (added QCA9377 support) and
>> a setup of some pll registers.
>
> Ok, that sounds good. I'll wait for v4.
>
>> btw, should I still mark them as RFC or should it be PATCH this time?
>>
>> If I go for PATCH, should the version be v4 or should I start from v1?
>
> v4 would be fine. Thanks.
>

^ permalink raw reply

* Re: [PATCH] Fix rtl8187 multicast reception
From: Kalle Valo @ 2017-02-19 13:29 UTC (permalink / raw)
  To: Nils Holland; +Cc: Larry Finger, linux-wireless
In-Reply-To: <20170219094138.GA3228@tisys.org>

Nils Holland <nholland@tisys.org> writes:

> On Sun, Feb 19, 2017 at 09:46:16AM +0200, Kalle Valo wrote:
>> Larry Finger <Larry.Finger@lwfinger.net> writes:
>> 
>> > On 02/18/2017 07:35 PM, Nils Holland wrote:
>> >
>> > I would prefer a module parameter that would allow this change to be
>> > implemented only if the user takes special action. I suspect that you
>> > will have no difficulty preparing such a change. If that is not true,
>> > I would be happy to help.
>> 
>> I understand why you prefer having a module parameter but the thing is
>> that being able to receive multicast frames is really basic
>> functionality. We should not hide it under a module parameter.
>
> Well, this is a tough question, I have to admit that I have a somewhat
> weird feeling making a change that also applies to other hardware that
> I cannot test on, so I don't know about any negative consequences that
> might arise there, especially when the change isn't based on some
> official information from some documentation, but rather a result of
> trial & error. So I can fully understand Larry's concerns and do in
> fact think that a module parameter could be a nice solution, so that
> by default the behavior if the driver does not change.

There are lots of hardware variations that cannot be tested when a patch
is commited. If we followed the same methdology with all patches we
would have thousands of module parameters in kernel in no time :)

> From an end-user standpoint, it's probably always worse to see
> something break which has always worked before than it is to have
> something not work properly right from the start, but being able to
> easily find some parameter to fix this.

Sure. But if there's a report about this patch breaking something, it's
easy to revert it.

> On the other hand, use of this particular USB wifi card is probably
> not so common these days so relatively few people would notice at all.
> Tough! I guess I'll submit a module parameter based v2 of the patch
> later today, just as Larry suggested!

Also remember to add a prefix to the title:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#subject

>> Isn't there any other option, for example does anyone have hw to test
>> this with other hw? (what exactly?) Or maybe we just take the risk and
>> take it as is and revert if problems arise?
>
> Of course, if someone has other hw, more testing would be nice! Any
> situation where the card is supposed to receive multicast frames
> should be suitable as a test case - in my case, just connecting to my
> local network and expecting to see the card pick up RAs and acquire an
> IPv6 address is the easiest test case. This works nicely on several
> other machines with completely different wifi hardware as well as
> wired machines, but fails without the fix on the rtl8187b. It would,
> for example, be interesting to see if a non-b 8187 behaves the same or
> if things work there out of the box.

I'm not familiar with the driver so when you say "non-b 8187" what do
you mean exactly? What kind of hardware are we talking about? How many
different hardware versions are there that this patch affects? Is the
firmware/hardware really so different that the chances are high that
this breaks something?

> In that case, instead of doing a module parameter, I could also change
> the fix so that it only does something different on the b-variants of
> the card and doesn't change behavior at all on non-b.

Now that's much better option than adding a module parameter.

-- 
Kalle Valo

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Valo, Kalle @ 2017-02-19 13:59 UTC (permalink / raw)
  To: Erik Stromdahl; +Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
In-Reply-To: <877f4ngii5.fsf@kamboji.qca.qualcomm.com>

Kalle Valo <kvalo@qca.qualcomm.com> writes:

> Erik Stromdahl <erik.stromdahl@gmail.com> writes:
>
>> I was actually about to email you about this.
>>
>> I have made a few more updates to the sdio code so I think it would be
>> best if I could submit a new series of patches based on this code (v4).
>>
>> Then you can tweak it (v5).
>>
>> It is only minor updates to the HIF layer (added QCA9377 support) and
>> a setup of some pll registers.
>
> Ok, that sounds good. I'll wait for v4.

Forgot to mention can you run ath10k-check before submitting them, it
shows few problems:

https://wireless.wiki.kernel.org/en/users/drivers/ath10k/codingstyle#checki=
ng_code

But if you wonder what this is about it's checkpatch warning about camel
case (doesn't like the lower case x character):

drivers/net/wireless/ath/ath10k/sdio.h:68: <ATH10K_SDIO_DRIVE_DTSx_TYPE_C>

I guess I have a bug in the script when it parses checkpatch output.

--=20
Kalle Valo=

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Erik Stromdahl @ 2017-02-19 13:52 UTC (permalink / raw)
  To: Valo, Kalle; +Cc: ryanhsu, ath10k, linux-wireless
In-Reply-To: <7b204d34-b791-ea78-cf4e-90e8fe1b79fb@gmail.com>

Hej,

I just noticed that Ryan Hsu submitted two patches containing similar
functionality to what I have in my tree on github. They have not been
integrated in the ath master yet, but they have been added to master-pending.

Below are the commits I am talking about

bc1054a15be3c962c83aa22476a3e9c1266da792 ath10k: improve the firmware download time for QCA9377
db5af2a25bd8c1410ec4456d1d4f4e6ded2649ca ath10k: improve the firmware download time for QCA6174

Since some of my patches overlap with these I think it would be best if
I add these to my tree and rewrite my patches.

If they haven't made it into master before I submit my updated patch series
I will include them in my set.

Is this OK?

If they will be added to master soon there is no issue since I will of course
rebase to the latest ath-YYYYMMDDHHmm before I submit anything.

/Erik

On 2017-02-19 00:57, Valo, Kalle wrote:
> Erik Stromdahl <erik.stromdahl@gmail.com> writes:
>
>> I was actually about to email you about this.
>>
>> I have made a few more updates to the sdio code so I think it would be
>> best if I could submit a new series of patches based on this code (v4).
>>
>> Then you can tweak it (v5).
>>
>> It is only minor updates to the HIF layer (added QCA9377 support) and
>> a setup of some pll registers.
>
> Ok, that sounds good. I'll wait for v4.
>
>> btw, should I still mark them as RFC or should it be PATCH this time?
>>
>> If I go for PATCH, should the version be v4 or should I start from v1?
>
> v4 would be fine. Thanks.
>

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Valo, Kalle @ 2017-02-19 14:05 UTC (permalink / raw)
  To: Erik Stromdahl
  Cc: Hsu, Ryan, ath10k@lists.infradead.org,
	linux-wireless@vger.kernel.org
In-Reply-To: <5a3ad65a-8cc0-ab1a-dc95-a5fd31035bd7@gmail.com>

Erik Stromdahl <erik.stromdahl@gmail.com> writes:

> I just noticed that Ryan Hsu submitted two patches containing similar
> functionality to what I have in my tree on github. They have not been
> integrated in the ath master yet, but they have been added to master-pend=
ing.
>
> Below are the commits I am talking about
>
> bc1054a15be3c962c83aa22476a3e9c1266da792 ath10k: improve the firmware
> download time for QCA9377
> db5af2a25bd8c1410ec4456d1d4f4e6ded2649ca ath10k: improve the firmware
> download time for QCA6174
>
> Since some of my patches overlap with these I think it would be best if
> I add these to my tree and rewrite my patches.
>
> If they haven't made it into master before I submit my updated patch seri=
es
> I will include them in my set.
>
> Is this OK?
>
> If they will be added to master soon there is no issue since I will of co=
urse
> rebase to the latest ath-YYYYMMDDHHmm before I submit anything.

That's ok, just mention this in the cover letter.

Even better is that if you can use master-pending from ath.git as the
baseline (compared to the master branch normally recommended), Ryan's
patches are there now. That way you don't need to apply anything extra
to your tree. But I'm hoping to apply Ryan's patches soon anyway.

--=20
Kalle Valo=

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Erik Stromdahl @ 2017-02-19 16:21 UTC (permalink / raw)
  To: Valo, Kalle; +Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
In-Reply-To: <8737fagu28.fsf@kamboji.qca.qualcomm.com>

Ok, I'll do another round of checkpatch before I submit anything.
I couldn't find the script you mentioned though (ath10k-check).
Is it some kind of checkpatch wrapper?

Anyway, I have a few warnings related to 'line over 80 chars' that
is really hard to get rid of (without breaking indentation etc.) so
I won't do anything about those for now.

Then there are some other warnings about the BIT macro being preferred
over (1 << x). I have used (1 << x) in some files despite the checkpatch
warning in order to keep the patches consistent with the existing code.
I think the best approach is to have a separate round of cleanup-patches
replacing all (1 << x) with BIT(x).

--
Erik

On 2017-02-19 14:59, Valo, Kalle wrote:
> Kalle Valo <kvalo@qca.qualcomm.com> writes:
>
>> Erik Stromdahl <erik.stromdahl@gmail.com> writes:
>>
>>> I was actually about to email you about this.
>>>
>>> I have made a few more updates to the sdio code so I think it would be
>>> best if I could submit a new series of patches based on this code (v4).
>>>
>>> Then you can tweak it (v5).
>>>
>>> It is only minor updates to the HIF layer (added QCA9377 support) and
>>> a setup of some pll registers.
>>
>> Ok, that sounds good. I'll wait for v4.
>
> Forgot to mention can you run ath10k-check before submitting them, it
> shows few problems:
>
> https://wireless.wiki.kernel.org/en/users/drivers/ath10k/codingstyle#checking_code
>
> But if you wonder what this is about it's checkpatch warning about camel
> case (doesn't like the lower case x character):
>
> drivers/net/wireless/ath/ath10k/sdio.h:68: <ATH10K_SDIO_DRIVE_DTSx_TYPE_C>
>
> I guess I have a bug in the script when it parses checkpatch output.
>

^ permalink raw reply

* Re: [PATCH] Fix rtl8187 multicast reception
From: Nils Holland @ 2017-02-19 16:25 UTC (permalink / raw)
  To: Kalle Valo; +Cc: Larry Finger, linux-wireless
In-Reply-To: <87y3x22tsn.fsf@codeaurora.org>

On Sun, Feb 19, 2017 at 03:29:12PM +0200, Kalle Valo wrote:
> Nils Holland <nholland@tisys.org> writes:
> 
> > On Sun, Feb 19, 2017 at 09:46:16AM +0200, Kalle Valo wrote:
> >> Larry Finger <Larry.Finger@lwfinger.net> writes:
> >> 
> >> > On 02/18/2017 07:35 PM, Nils Holland wrote:
> >> >
> >> > I would prefer a module parameter that would allow this change to be
> >> > implemented only if the user takes special action. I suspect that you
> >> > will have no difficulty preparing such a change. If that is not true,
> >> > I would be happy to help.
> >> 
> >> I understand why you prefer having a module parameter but the thing is
> >> that being able to receive multicast frames is really basic
> >> functionality. We should not hide it under a module parameter.
> >
> > Well, this is a tough question, I have to admit that I have a somewhat
> > weird feeling making a change that also applies to other hardware that
> > I cannot test on, so I don't know about any negative consequences that
> > might arise there, especially when the change isn't based on some
> > official information from some documentation, but rather a result of
> > trial & error. So I can fully understand Larry's concerns and do in
> > fact think that a module parameter could be a nice solution, so that
> > by default the behavior if the driver does not change.
> 
> There are lots of hardware variations that cannot be tested when a patch
> is commited. If we followed the same methdology with all patches we
> would have thousands of module parameters in kernel in no time :)

Right, that's certainly true as well, and would be a problem, so too
much should be avoided.

> > On the other hand, use of this particular USB wifi card is probably
> > not so common these days so relatively few people would notice at all.
> > Tough! I guess I'll submit a module parameter based v2 of the patch
> > later today, just as Larry suggested!
> 
> Also remember to add a prefix to the title:
> 
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#subject

Another helpful hint! Thanks, will keep that in mind for the next
submission! :-)

> >> Isn't there any other option, for example does anyone have hw to test
> >> this with other hw? (what exactly?) Or maybe we just take the risk and
> >> take it as is and revert if problems arise?
> >
> > Of course, if someone has other hw, more testing would be nice! Any
> > situation where the card is supposed to receive multicast frames
> > should be suitable as a test case - in my case, just connecting to my
> > local network and expecting to see the card pick up RAs and acquire an
> > IPv6 address is the easiest test case. This works nicely on several
> > other machines with completely different wifi hardware as well as
> > wired machines, but fails without the fix on the rtl8187b. It would,
> > for example, be interesting to see if a non-b 8187 behaves the same or
> > if things work there out of the box.
> 
> I'm not familiar with the driver so when you say "non-b 8187" what do
> you mean exactly? What kind of hardware are we talking about? How many
> different hardware versions are there that this patch affects? Is the
> firmware/hardware really so different that the chances are high that
> this breaks something?

The driver in question seems to apply to, all in all, 21 different usb
ids, so 21 different USB wifi cards. The existing code classifies
these into two different categories: rtl8187 and rtl8187b, which seem
to be different versions / revisions of a realtek usb wifi chip.
Depending on this classification - if a card is a rtl8187 or rtl8187b
- the existing code does things a bit different in several cases, for
example during initialization of the card (however, not during the
routine that sets the filters and where I've made my changes).

The card I have here and on which I noticed the problem and verified
the fix is one that the driver classifies as rtl8187b. All such
classified cards should use the same chip and thus likely behave the
same regarding the problem and fix. But as far as those cards
classified as rtl8187 are concerned, I don't have an idea how they
behave in practice. All I know is that my current patch would change
behavior on them as well.

If this sounds good to Larry, too, I might in fact - instead of using
a module parameter - change the patch in such a way that it only
changes behavior on cards classified as rtl8187b, which should behave
like mine and thus benefit from the change, and leave the code
affecting rtl8187 cards, which I honestly cannot say anything about,
alone. Probably sounds like a safer thing to do.

Greetings
Nils

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Erik Stromdahl @ 2017-02-19 16:30 UTC (permalink / raw)
  To: Valo, Kalle
  Cc: Hsu, Ryan, ath10k@lists.infradead.org,
	linux-wireless@vger.kernel.org
In-Reply-To: <87y3x2ff7y.fsf@kamboji.qca.qualcomm.com>



On 2017-02-19 15:05, Valo, Kalle wrote:
> Erik Stromdahl <erik.stromdahl@gmail.com> writes:
>
>> I just noticed that Ryan Hsu submitted two patches containing similar
>> functionality to what I have in my tree on github. They have not been
>> integrated in the ath master yet, but they have been added to master-pending.
>>
>> Below are the commits I am talking about
>>
>> bc1054a15be3c962c83aa22476a3e9c1266da792 ath10k: improve the firmware
>> download time for QCA9377
>> db5af2a25bd8c1410ec4456d1d4f4e6ded2649ca ath10k: improve the firmware
>> download time for QCA6174
>>
>> Since some of my patches overlap with these I think it would be best if
>> I add these to my tree and rewrite my patches.
>>
>> If they haven't made it into master before I submit my updated patch series
>> I will include them in my set.
>>
>> Is this OK?
>>
>> If they will be added to master soon there is no issue since I will of course
>> rebase to the latest ath-YYYYMMDDHHmm before I submit anything.
>
> That's ok, just mention this in the cover letter.
>
> Even better is that if you can use master-pending from ath.git as the
> baseline (compared to the master branch normally recommended), Ryan's
> patches are there now. That way you don't need to apply anything extra
> to your tree. But I'm hoping to apply Ryan's patches soon anyway.
>

Ok, I'll make it so.

^ permalink raw reply

* Re: [RFC v3 0/8] ath10k sdio support
From: Valo, Kalle @ 2017-02-19 16:33 UTC (permalink / raw)
  To: Erik Stromdahl; +Cc: linux-wireless@vger.kernel.org, ath10k@lists.infradead.org
In-Reply-To: <e8e1a379-129a-a8c3-9e1f-fb4c70fd0ab6@gmail.com>

Erik Stromdahl <erik.stromdahl@gmail.com> writes:

> Ok, I'll do another round of checkpatch before I submit anything.
> I couldn't find the script you mentioned though (ath10k-check).

Did you check the link I gave you:

https://wireless.wiki.kernel.org/en/users/drivers/ath10k/codingstyle#checki=
ng_code

> Is it some kind of checkpatch wrapper?

It runs various tests (gcc, sparse, checkpatch), sets some checkpatch
settings (like line length) and filters out warnings we don't care
about.

> Anyway, I have a few warnings related to 'line over 80 chars' that
> is really hard to get rid of (without breaking indentation etc.) so
> I won't do anything about those for now.
>
> Then there are some other warnings about the BIT macro being preferred
> over (1 << x). I have used (1 << x) in some files despite the checkpatch
> warning in order to keep the patches consistent with the existing code.
> I think the best approach is to have a separate round of cleanup-patches
> replacing all (1 << x) with BIT(x).

These are all disabled by ath10k-check. I think it's easiest that you
forget ath10k-check for now and let me fix those in the next round.

--=20
Kalle Valo=

^ permalink raw reply

* [PATCH] wcn36xx: Fix error handling
From: Christophe JAILLET @ 2017-02-19 17:47 UTC (permalink / raw)
  To: k.eugene.e, kvalo
  Cc: wcn36xx, linux-wireless, netdev, linux-kernel, kernel-janitors,
	Christophe JAILLET

Reorder 'out_free_dxe_pool' and 'out_free_dxe_ctl' error handling labels
in order to match the way resources have been allocated.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/net/wireless/ath/wcn36xx/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index cee4f655bf36..6436235bc265 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -337,10 +337,10 @@ static int wcn36xx_start(struct ieee80211_hw *hw)
 	wcn36xx_smd_stop(wcn);
 out_free_smd_buf:
 	kfree(wcn->hal_buf);
-out_free_dxe_pool:
-	wcn36xx_dxe_free_mem_pools(wcn);
 out_free_dxe_ctl:
 	wcn36xx_dxe_free_ctl_blks(wcn);
+out_free_dxe_pool:
+	wcn36xx_dxe_free_mem_pools(wcn);
 out_smd_close:
 	wcn36xx_smd_close(wcn);
 out_err:
-- 
2.9.3

^ permalink raw reply related

* Re: [PATCH] Fix rtl8187 multicast reception
From: Larry Finger @ 2017-02-19 18:11 UTC (permalink / raw)
  To: Kalle Valo, Nils Holland; +Cc: linux-wireless
In-Reply-To: <87y3x22tsn.fsf@codeaurora.org>

On 02/19/2017 07:29 AM, Kalle Valo wrote:
> Nils Holland <nholland@tisys.org> writes:
>
>> On Sun, Feb 19, 2017 at 09:46:16AM +0200, Kalle Valo wrote:
>>> Larry Finger <Larry.Finger@lwfinger.net> writes:
>>>
>>>> On 02/18/2017 07:35 PM, Nils Holland wrote:
>>>>
>>>> I would prefer a module parameter that would allow this change to be
>>>> implemented only if the user takes special action. I suspect that you
>>>> will have no difficulty preparing such a change. If that is not true,
>>>> I would be happy to help.
>>>
>>> I understand why you prefer having a module parameter but the thing is
>>> that being able to receive multicast frames is really basic
>>> functionality. We should not hide it under a module parameter.
>>
>> Well, this is a tough question, I have to admit that I have a somewhat
>> weird feeling making a change that also applies to other hardware that
>> I cannot test on, so I don't know about any negative consequences that
>> might arise there, especially when the change isn't based on some
>> official information from some documentation, but rather a result of
>> trial & error. So I can fully understand Larry's concerns and do in
>> fact think that a module parameter could be a nice solution, so that
>> by default the behavior if the driver does not change.
>
> There are lots of hardware variations that cannot be tested when a patch
> is commited. If we followed the same methdology with all patches we
> would have thousands of module parameters in kernel in no time :)
>
>> From an end-user standpoint, it's probably always worse to see
>> something break which has always worked before than it is to have
>> something not work properly right from the start, but being able to
>> easily find some parameter to fix this.
>
> Sure. But if there's a report about this patch breaking something, it's
> easy to revert it.
>
>> On the other hand, use of this particular USB wifi card is probably
>> not so common these days so relatively few people would notice at all.
>> Tough! I guess I'll submit a module parameter based v2 of the patch
>> later today, just as Larry suggested!
>
> Also remember to add a prefix to the title:
>
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#subject
>
>>> Isn't there any other option, for example does anyone have hw to test
>>> this with other hw? (what exactly?) Or maybe we just take the risk and
>>> take it as is and revert if problems arise?
>>
>> Of course, if someone has other hw, more testing would be nice! Any
>> situation where the card is supposed to receive multicast frames
>> should be suitable as a test case - in my case, just connecting to my
>> local network and expecting to see the card pick up RAs and acquire an
>> IPv6 address is the easiest test case. This works nicely on several
>> other machines with completely different wifi hardware as well as
>> wired machines, but fails without the fix on the rtl8187b. It would,
>> for example, be interesting to see if a non-b 8187 behaves the same or
>> if things work there out of the box.
>
> I'm not familiar with the driver so when you say "non-b 8187" what do
> you mean exactly? What kind of hardware are we talking about? How many
> different hardware versions are there that this patch affects? Is the
> firmware/hardware really so different that the chances are high that
> this breaks something?
>
>> In that case, instead of doing a module parameter, I could also change
>> the fix so that it only does something different on the b-variants of
>> the card and doesn't change behavior at all on non-b.
>
> Now that's much better option than adding a module parameter.

There are three variants of the chip, the RTL8187, RTL8187L, and RTL8187B. 
Programming for the first two are the same. The RTL8187B has a number of newer 
features such as priority queues and a more complete set of parameters in the 
descriptors.

OK, for the moment I agree to this patch with a respin of the commit message. I 
will test with my 8187L device. If those fail, I will request that it be limited 
to the 8187B.

If we later get complaints, then we can decide to revert the patch, or add a 
module parameter to selectively disable it.

Larry

^ permalink raw reply

* Re: [PATCH] Fix rtl8187 multicast reception
From: Nils Holland @ 2017-02-19 18:53 UTC (permalink / raw)
  To: Larry Finger; +Cc: Kalle Valo, linux-wireless
In-Reply-To: <65e6d653-b1e8-e9f7-ce18-210ae1b3ee63@lwfinger.net>

On Sun, Feb 19, 2017 at 12:11:50PM -0600, Larry Finger wrote:
> On 02/19/2017 07:29 AM, Kalle Valo wrote:
> > Nils Holland <nholland@tisys.org> writes:
> >
> >> On Sun, Feb 19, 2017 at 09:46:16AM +0200, Kalle Valo wrote:
> >>> Larry Finger <Larry.Finger@lwfinger.net> writes:
> >>>
> >>>> On 02/18/2017 07:35 PM, Nils Holland wrote:
> >>>>
> >>>> I would prefer a module parameter that would allow this change to be
> >>>> implemented only if the user takes special action. I suspect that you
> >>>> will have no difficulty preparing such a change. If that is not true,
> >>>> I would be happy to help.
> >>>
> >>> I understand why you prefer having a module parameter but the thing is
> >>> that being able to receive multicast frames is really basic
> >>> functionality. We should not hide it under a module parameter.
> >>
> >> Well, this is a tough question, I have to admit that I have a somewhat
> >> weird feeling making a change that also applies to other hardware that
> >> I cannot test on, so I don't know about any negative consequences that
> >> might arise there, especially when the change isn't based on some
> >> official information from some documentation, but rather a result of
> >> trial & error. So I can fully understand Larry's concerns and do in
> >> fact think that a module parameter could be a nice solution, so that
> >> by default the behavior if the driver does not change.
> >
> > There are lots of hardware variations that cannot be tested when a patch
> > is commited. If we followed the same methdology with all patches we
> > would have thousands of module parameters in kernel in no time :)
> >
> >> From an end-user standpoint, it's probably always worse to see
> >> something break which has always worked before than it is to have
> >> something not work properly right from the start, but being able to
> >> easily find some parameter to fix this.
> >
> > Sure. But if there's a report about this patch breaking something, it's
> > easy to revert it.
> >
> >> On the other hand, use of this particular USB wifi card is probably
> >> not so common these days so relatively few people would notice at all.
> >> Tough! I guess I'll submit a module parameter based v2 of the patch
> >> later today, just as Larry suggested!
> >
> > Also remember to add a prefix to the title:
> >
> > https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#subject
> >
> >>> Isn't there any other option, for example does anyone have hw to test
> >>> this with other hw? (what exactly?) Or maybe we just take the risk and
> >>> take it as is and revert if problems arise?
> >>
> >> Of course, if someone has other hw, more testing would be nice! Any
> >> situation where the card is supposed to receive multicast frames
> >> should be suitable as a test case - in my case, just connecting to my
> >> local network and expecting to see the card pick up RAs and acquire an
> >> IPv6 address is the easiest test case. This works nicely on several
> >> other machines with completely different wifi hardware as well as
> >> wired machines, but fails without the fix on the rtl8187b. It would,
> >> for example, be interesting to see if a non-b 8187 behaves the same or
> >> if things work there out of the box.
> >
> > I'm not familiar with the driver so when you say "non-b 8187" what do
> > you mean exactly? What kind of hardware are we talking about? How many
> > different hardware versions are there that this patch affects? Is the
> > firmware/hardware really so different that the chances are high that
> > this breaks something?
> >
> >> In that case, instead of doing a module parameter, I could also change
> >> the fix so that it only does something different on the b-variants of
> >> the card and doesn't change behavior at all on non-b.
> >
> > Now that's much better option than adding a module parameter.
> 
> There are three variants of the chip, the RTL8187, RTL8187L, and RTL8187B. 
> Programming for the first two are the same. The RTL8187B has a number of newer 
> features such as priority queues and a more complete set of parameters in the 
> descriptors.
> 
> OK, for the moment I agree to this patch with a respin of the commit message. I 
> will test with my 8187L device. If those fail, I will request that it be limited 
> to the 8187B.

Sounds good, so I guess I'll wait for your report regarding behavior
on your 8187l. Then, I'll either re-submit the patch as a v2 with a
reworked commit message and proper tag in the title, or, if the fix
as-is causes problems on the 8187l, re-submit the patch with limiting
the scope of its change to the 8187b only. Sounds good? :-)

Greetings
Nils

^ permalink raw reply

* Re: brcmfmac: BCM4343A0 P2P mode problem
From: Stefan Holzmann @ 2017-02-19 19:00 UTC (permalink / raw)
  To: linux-wireless@vger.kernel.org

Hello,

I think my problem was just a firmware version issue. When I use the firmware file "fw_bcm4343.bin" from here https://android.googlesource.com/platform/hardware/broadcom/wlan I'am able establish a P2P connection.
Is this the latest/recommended firmware version for the chipset?

Firmware version = wl0: Jul  1 2016 18:02:40 version 7.10.1 (A0 Station/P2P feature) FWID 01-bae8afee


>Thank you for your support. Yes, correct SDIO 0xA9A6 is BCM43430 I was confused by 
>the naming of some firmware files.

>What firmware version/file shall be used for this chipset/driver combination?
>Currently I'am using the firmware file "fw_bcm43438a0_p2p.bin" from here 
>https://github.com/BPI-SINOVOIP/BPI_WiFi_Firmware/tree/master/ap6212.

>I have set the driver parameter "use_p2p_group_interface=1" as you recommended, and 
>now I see following error messages at the kernel log when I try to setup a P2P 
>connection.
>
>[   59.593565] brcmfmac: brcmf_sdio_hostmail: Unknown mailbox data content: 0x40012
>[   62.163452] brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
>[   62.169542] brcmfmac: brcmf_sdio_checkdied: firmware trap in dongle
>[   62.175839] brcmfmac: brcmf_cfg80211_add_iface: add iface p2p-wlan0-0 type 8 
>failed: err=-110

^ permalink raw reply

* Re: brcmfmac: BCM4343A0 P2P mode problem
From: Arend Van Spriel @ 2017-02-19 19:37 UTC (permalink / raw)
  To: Stefan Holzmann, linux-wireless@vger.kernel.org
In-Reply-To: <zarafa.58a9eb4f.3258.65a3ba3c60add992@homeserver.home>

On 19-2-2017 20:00, Stefan Holzmann wrote:
> Hello,
> 
> I think my problem was just a firmware version issue. When I use the firmware file "fw_bcm4343.bin" from here https://android.googlesource.com/platform/hardware/broadcom/wlan I'am able establish a P2P connection.
> Is this the latest/recommended firmware version for the chipset?
> 
> Firmware version = wl0: Jul  1 2016 18:02:40 version 7.10.1 (A0 Station/P2P feature) FWID 01-bae8afee

I would suggest looking in linux-firmware repo on kernel.org for
upstream firmware instead of using AOSP firmware. However, I am not
entirely sure whether we have the firmware in place for your chipset.

Could you insert the driver module with parameter debug=0x1416 and send
me dmesg output.

Regards,
Arend

^ permalink raw reply

* RE: brcmfmac: BCM4343A0 P2P mode problem
From: Stefan Holzmann @ 2017-02-19 19:59 UTC (permalink / raw)
  To: Arend Van Spriel; +Cc: linux-wireless@vger.kernel.org

SGVsbG8gQXJlbmQsDQoNCkkgdHJpZWQgYWxyZWFkeSB0aGUgZmlybXdhcmUgZmlsZSBmcm9t
IHRoZSBsaW51eC1maXJtd2FyZSByZXBvLCBidXQgdGhpcyBmaXJtd2FyZSBkb2Vzbid0IHdv
cmsuIEkgZ2V0IFNESU8gY29tbXVuaWNhdGlvbiB0aW1lb3V0cyBhZnRlciB0aGUgZmlybXdh
cmUgZmlsZSBpcyBsb2FkZWQuDQoNCkhlcmUgdGhlIHJlcXVlc3RlZCBLZXJuZWwgTG9nOg0K
WyAgICAxLjUwMzQyM10gYnJjbWZtYWM6IGJyY21mX3NkaW9fcHJvYmUgRW50ZXINClsgICAg
MS41MDQzMTFdIGJyY21mbWFjOiBGMSBzaWduYXR1cmUgcmVhZCBAMHgxODAwMDAwMD0weDE1
NDBhOWE2DQpbICAgIDEuNTA0NTc0XSBicmNtZm1hYzogYnJjbWZfY2hpcF9yZWNvZ25pdGlv
biBmb3VuZCBBWEkgY2hpcDogQkNNNDM0MzAsIHJldj0wDQpbICAgIDEuNTA2Nzk4XSBicmNt
Zm1hYzogYnJjbWZfY2hpcF9jb3Jlc19jaGVjayAgWzEgXSBjb3JlIDB4ODAwOjQ5IGJhc2Ug
MHgxODAwMDAwMCB3cmFwIDB4MTgxMDAwMDANClsgICAgMS41MDY4MDldIGJyY21mbWFjOiBi
cmNtZl9jaGlwX2NvcmVzX2NoZWNrICBbMiBdIGNvcmUgMHg4MTI6MzkgYmFzZSAweDE4MDAx
MDAwIHdyYXAgMHgxODEwMTAwMA0KWyAgICAxLjUwNjgxNl0gYnJjbWZtYWM6IGJyY21mX2No
aXBfY29yZXNfY2hlY2sgIFszIF0gY29yZSAweDgyOToyMSBiYXNlIDB4MTgwMDIwMDAgd3Jh
cCAweDE4MTAyMDAwDQpbICAgIDEuNTA2ODIyXSBicmNtZm1hYzogYnJjbWZfY2hpcF9jb3Jl
c19jaGVjayAgWzQgXSBjb3JlIDB4ODJhOjkgIGJhc2UgMHgxODAwMzAwMCB3cmFwIDB4MTgx
MDMwMDANClsgICAgMS41MDY4MjhdIGJyY21mbWFjOiBicmNtZl9jaGlwX2NvcmVzX2NoZWNr
ICBbNSBdIGNvcmUgMHg4MGU6MjIgYmFzZSAweDE4MDA0MDAwIHdyYXAgMHgxODEwNDAwMA0K
WyAgICAxLjUwNjgzM10gYnJjbWZtYWM6IGJyY21mX2NoaXBfY29yZXNfY2hlY2sgIFs2IF0g
Y29yZSAweDEzNTowICBiYXNlIDB4MDAwMDAwMDAgd3JhcCAweDE4MTA1MDAwDQpbICAgIDEu
NTA2ODM5XSBicmNtZm1hYzogYnJjbWZfY2hpcF9jb3Jlc19jaGVjayAgWzcgXSBjb3JlIDB4
MjQwOjAgIGJhc2UgMHgwMDAwMDAwMCB3cmFwIDB4MTgxMDYwMDANClsgICAgMS41MDY4NDNd
IGJyY21mbWFjOiBicmNtZl9jaGlwX3NldF9wYXNzaXZlIEVudGVyDQpbICAgIDEuNTA3ODMy
XSBicmNtZm1hYzogYnJjbWZfY2hpcF9nZXRfcmFtaW5mbyBSQU06IGJhc2U9MHgwIHNpemU9
NTI0Mjg4ICgweDgwMDAwKSBzcj02NTUzNiAoMHgxMDAwMCkNClsgICAgMS41MDc5NTRdIGJy
Y21mbWFjOiBicmNtZl9jaGlwX3NldHVwIGNjcmV2PTQ5LCBwbXVyZXY9MjQsIHBtdWNhcHM9
MHgzOWQyNWYxOA0KWyAgICAxLjUwNzk2MV0gYnJjbWZtYWM6IGJyY21mX2dldF9tb2R1bGVf
cGFyYW0gRW50ZXIsIGJ1cz0wLCBjaGlwPTQzNDMwLCByZXY9MA0KWyAgICAxLjUwODAyMl0g
YnJjbWZtYWM6IGJyY21mX3NkaW9kX3NndGFibGVfYWxsb2MgbmVudHM9MzUNClsgICAgMS41
MDgwMzJdIGJyY21mbWFjOiBicmNtZl9zZGlvX2tzb19pbml0IEVudGVyDQpbICAgIDEuNTA4
MDYxXSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcml2ZXN0cmVuZ3RoaW5pdCBObyBTRElPIGRy
aXZlciBzdHJlbmd0aCBpbml0IG5lZWRlZCBmb3IgY2hpcCA0MzQzMCByZXYgMCBwbXVyZXYg
MjQNClsgICAgMS41MDgzMzddIGJyY21mbWFjOiBicmNtZl9hdHRhY2ggRW50ZXINClsgICAg
MS41MDgzODVdIGJyY21mbWFjOiBicmNtZl9md2VoX3JlZ2lzdGVyIGV2ZW50IGhhbmRsZXIg
cmVnaXN0ZXJlZCBmb3IgUFNNX1dBVENIRE9HDQpbICAgIDEuNTA4Mzg5XSBicmNtZm1hYzog
YnJjbWZfcHJvdG9fYXR0YWNoIEVudGVyDQpbICAgIDEuNTA4NDA4XSBicmNtZm1hYzogYnJj
bWZfc2Rpb2Rfc2d0YWJsZV9hbGxvYyBuZW50cz0zNQ0KWyAgICAxLjUwODQ5MV0gYnJjbWZt
YWM6IGJyY21mX3NkaW9fcHJvYmUgY29tcGxldGVkISENClsgICAgMS41MDg1MDNdIGJyY21m
bWFjOiBicmNtZl9md19nZXRfZmlybXdhcmVzX3BjaWUgZW50ZXI6IGRldj1tbWMxOjAwMDE6
MQ0KWyAgICAxLjUwOTYxMF0gYnJjbWZtYWM6IGJyY21mX2Z3X3JlcXVlc3RfY29kZV9kb25l
IGVudGVyOiBkZXY9bW1jMTowMDAxOjENClsgICAgMS41MDk3NDhdIGJyY21mbWFjOiBicmNt
Zl9md19yZXF1ZXN0X252cmFtX2RvbmUgZW50ZXI6IGRldj1tbWMxOjAwMDE6MQ0KWyAgICAx
LjUwOTgxNF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZmlybXdhcmVfY2FsbGJhY2sgRW50ZXI6
IGRldj1tbWMxOjAwMDE6MQ0KWyAgICAxLjUwOTkzM10gYnJjbWZtYWM6IGJyY21mX3NkaW9f
ZG93bmxvYWRfY29kZV9maWxlIEVudGVyDQpbICAgIDEuNTMwMDQ3XSBicmNtZm1hYzogYnJj
bWZfc2Rpb192ZXJpZnltZW1vcnkgQ29tcGFyZSBSQU0gZGwgJiB1bCBhdCAweDAwMDAwMDAw
OyBzaXplPTM0MjkwNA0KWyAgICAxLjU2NDU0NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZG93
bmxvYWRfbnZyYW0gRW50ZXINClsgICAgMS41NjQ3MDddIGJyY21mbWFjOiBicmNtZl9zZGlv
X3ZlcmlmeW1lbW9yeSBDb21wYXJlIFJBTSBkbCAmIHVsIGF0IDB4MDAwN2ZkZDg7IHNpemU9
NTUyDQpbICAgIDEuNTY0ODU2XSBicmNtZm1hYzogYnJjbWZfY2hpcF9zZXRfYWN0aXZlIEVu
dGVyDQpbICAgIDEuNjIzMTY0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19maXJtd2FyZV9jYWxs
YmFjayBlbmFibGUgRjI6IGVycj0wDQpbICAgIDEuNjIzMjI2XSBicmNtZm1hYzogYnJjbWZf
Y2hpcF9zcl9jYXBhYmxlIEVudGVyDQpbICAgIDEuNjIzMjY5XSBicmNtZm1hYzogYnJjbWZf
c2Rpb2RfY2hhbmdlX3N0YXRlIDAgLT4gMQ0KWyAgICAxLjYyMzI3Nl0gYnJjbWZtYWM6IGJy
Y21mX2J1c19jaGFuZ2Vfc3RhdGUgMCAtPiAxDQpbICAgIDEuNjIzMzE4XSBicmNtZm1hYzog
YnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42MjMzNjldIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2RwYyBFbnRlcg0KWyAgICAxLjYyMzQxN10gYnJjbWZtYWM6IGJyY21mX2J1c19zdGFy
dCANClsgICAgMS42MjM0MjVdIGJyY21mbWFjOiBicmNtZl9hZGRfaWYgRW50ZXIsIGJzc2Nm
Z2lkeD0wLCBpZmlkeD0wDQpbICAgIDEuNjIzNDI5XSBicmNtZm1hYzogYnJjbWZfYWRkX2lm
IGFsbG9jYXRlIG5ldGRldiBpbnRlcmZhY2UNClsgICAgMS42MjM0NjVdIGJyY21mbWFjOiBi
cmNtZl9hZGRfaWYgID09PT0gcGlkOjI3LCBpZjp3bGFuJWQgKDAwOjAwOjAwOjAwOjAwOjAw
KSBjcmVhdGVkID09PQ0KWyAgICAxLjYyMzUwOV0gYnJjbWZtYWM6IGJyY21mX2J1c19jaGFu
Z2Vfc3RhdGUgMSAtPiAxDQpbICAgIDEuNjIzNTIxXSBicmNtZm1hYzogYnJjbWZfc2Rpb19i
dXNfdHhjdGwgRW50ZXINClsgICAgMS42MjM1NzFdIGJyY21mbWFjOiBicmNtZl9zZGlvX2lz
ciBFbnRlcg0KWyAgICAxLjYyMzY0OF0gYnJjbWZtYWM6IGJyY21mX2NoaXBfc3JfY2FwYWJs
ZSBFbnRlcg0KWyAgICAxLjYyMzc3N10gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZHNoYXJl
ZCBzZHBjbV9zaGFyZWQgYWRkcmVzcyAweDAwMDM2MTRDDQpbICAgIDEuNjIzODc2XSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19kcGMgRG9uZ2xlIHJlcG9ydHMgQ0hJUEFDVElWRQ0KWyAgICAx
LjYyMzg4MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0KWyAgICAx
LjYyMzk0NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAg
IDEuNjIzOTkzXSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42MjQw
MDJdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjYyNDEy
M10gYnJjbWZtYWM6IGJyY21mX2NoaXBfc3JfY2FwYWJsZSBFbnRlcg0KWyAgICAxLjYyNDIz
NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZHNoYXJlZCBzZHBjbV9zaGFyZWQgYWRkcmVz
cyAweDAwMDM2MTRDDQpbICAgIDEuNjI0NDI2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3Ig
RW50ZXINClsgICAgMS42MjQ0NDhdIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0K
WyAgICAxLjYyNDUxNl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0K
WyAgICAxLjYyNDU0NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVy
DQpbICAgIDEuNjI0NjA4XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1l
ZCBvbiByeGN0bCBmcmFtZSwgZ290IDM2IGV4cGVjdGVkIDM2DQpbICAgIDEuNjI0NjE1XSBi
cmNtZm1hYzogYnJjbWZfZmlsX2lvdmFyX2RhdGFfZ2V0IGlmaWR4PTAsIG5hbWU9Y3VyX2V0
aGVyYWRkciwgbGVuPTYNClsgICAgMS42MjQ2MThdIGJyY211dGlsOiBkYXRhDQpbICAgIDEu
NjI0NjMwXSAwMDAwMDAwMDogOTQgYTEgYTIgYTMgOWIgOTYgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC4uLi4uLg0KWyAgICAxLjYyNDYzNl0gYnJjbWZtYWM6IGJyY21mX3Nk
aW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjI0NjUxXSBicmNtZm1hYzogYnJjbWZfc2Rp
b19kcGMgRW50ZXINClsgICAgMS42MjQ2NThdIGJyY21mbWFjOiBicmNtZl9zZGlvX3R4X2N0
cmxmcmFtZSBFbnRlcg0KWyAgICAxLjYyNDY5OV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVz
X3J4Y3RsIEVudGVyDQpbICAgIDEuNjI0ODcyXSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3Ig
RW50ZXINClsgICAgMS42MjQ5MDldIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0K
WyAgICAxLjYyNDk2MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0K
WyAgICAxLjYyNDk5OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVy
DQpbICAgIDEuNjI1MDU5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1l
ZCBvbiByeGN0bCBmcmFtZSwgZ290IDg0IGV4cGVjdGVkIDg0DQpbICAgIDEuNjI1MDY3XSBi
cmNtZm1hYzogYnJjbWZfZmlsX2NtZF9kYXRhX2dldCBpZmlkeD0wLCBjbWQ9OTgsIGxlbj02
OA0KWyAgICAxLjYyNTA2OV0gYnJjbXV0aWw6IGRhdGENClsgICAgMS42MjUwNzVdIDAwMDAw
MDAwOiBlNCAxNCAwMCAwMCBlMiA0MyAwMCAwMCAwMCBiMCAzMCBlMCAwMCAwMCAwMCAwMCAg
Li4uLi5DLi4uLjAuLi4uLg0KWyAgICAxLjYyNTA3OV0gMDAwMDAwMTA6IDI3IDAwIDAwIDAw
IDI2IDA3IDAwIDAwIGU0IDE0IDAwIDAwIDAxIDExIDAwIDAwICAnLi4uJi4uLi4uLi4uLi4u
DQpbICAgIDEuNjI1MDgzXSAwMDAwMDAyMDogMDEgMGEgMDcgMDAgMDAgMDAgMDAgMDAgMDAg
MDAgMDAgMDAgYTYgYTkgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NClsgICAgMS42MjUwODdd
IDAwMDAwMDMwOiAwYyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwNCAwMCAw
MCAwMCAgLi4uLi4uLi4uLi4uLi4uLg0KWyAgICAxLjYyNTA5NF0gYnJjbWZtYWM6IGJyY21m
X3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjI1MTA4XSBicmNtZm1hYzogYnJjbWZf
c2Rpb19kcGMgRW50ZXINClsgICAgMS42MjUxMTVdIGJyY21mbWFjOiBicmNtZl9zZGlvX3R4
X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjYyNTE2OV0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
YnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjI1NjA0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19p
c3IgRW50ZXINClsgICAgMS42MjU2MzRdIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRl
cg0KWyAgICAxLjYyNTY4NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRl
cg0KWyAgICAxLjYyNTcxMF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZF9jb250cm9sIEVu
dGVyDQpbICAgIDEuNjI1Nzg4XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgcmVz
dW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDI3NiBleHBlY3RlZCAyNzYNClsgICAgMS42MjU3
OTRdIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9nZXQgaWZpZHg9MCwgbmFtZT12
ZXIsIGxlbj0yNTYNClsgICAgMS42MjU3OTddIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjI1
ODA0XSAwMDAwMDAwMDogNzcgNmMgMzAgM2EgMjAgNGEgNzUgNmMgMjAgMjAgMzEgMjAgMzIg
MzAgMzEgMzYgIHdsMDogSnVsICAxIDIwMTYNClsgICAgMS42MjU4MDhdIDAwMDAwMDEwOiAy
MCAzMSAzOCAzYSAzMCAzMiAzYSAzNCAzMCAyMCA3NiA2NSA3MiA3MyA2OSA2ZiAgIDE4OjAy
OjQwIHZlcnNpbw0KWyAgICAxLjYyNTgxMl0gMDAwMDAwMjA6IDZlIDIwIDM3IDJlIDMxIDMw
IDJlIDMxIDIwIDI4IDQxIDMwIDIwIDUzIDc0IDYxICBuIDcuMTAuMSAoQTAgU3RhDQpbICAg
IDEuNjI1ODE2XSAwMDAwMDAzMDogNzQgNjkgNmYgNmUgMmYgNTAgMzIgNTAgMjAgNjYgNjUg
NjEgNzQgNzUgNzIgNjUgIHRpb24vUDJQIGZlYXR1cmUNClsgICAgMS42MjU4MjJdIGJyY21m
bWFjOiBicmNtZl9jX3ByZWluaXRfZGNtZHM6IEZpcm13YXJlIHZlcnNpb24gPSB3bDA6IEp1
bCAgMSAyMDE2IDE4OjAyOjQwIHZlcnNpb24gNy4xMC4xIChBMCBTdGF0aW9uL1AyUCBmZWF0
dXJlKSBGV0lEIDAxLWJhZThhZmVlDQpbICAgIDEuNjM5MDAyXSBicmNtZm1hYzogYnJjbWZf
ZmlsX2lvdmFyX2RhdGFfc2V0IGlmaWR4PTAsIG5hbWU9bXBjLCBsZW49NA0KWyAgICAxLjYz
OTAwNl0gYnJjbXV0aWw6IGRhdGENClsgICAgMS42MzkwMTJdIDAwMDAwMDAwOiAwMSAwMCAw
MCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLg0KWyAgICAx
LjYzOTAxOF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEu
NjM5MDY5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42MzkwOTBd
IGJyY21mbWFjOiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjYzOTE3
OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjM5NTYy
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42Mzk1ODldIGJyY21m
bWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjYzOTY0OF0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjYzOTY4MF0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjM5NzM3XSBicmNtZm1hYzog
YnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDI0IGV4
cGVjdGVkIDI0DQpbICAgIDEuNjM5NzQ0XSBicmNtZm1hYzogYnJjbWZfZmlsX2lvdmFyX2Rh
dGFfc2V0IGlmaWR4PTAsIG5hbWU9am9pbl9wcmVmLCBsZW49OA0KWyAgICAxLjYzOTc0N10g
YnJjbXV0aWw6IGRhdGENClsgICAgMS42Mzk3NTNdIDAwMDAwMDAwOiAwNCAwMiAwOCAwMSAw
MSAwMiAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLi4uLi4NClsgICAgMS42
Mzk3NThdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjYz
OTc4MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjM5Nzg3XSBi
cmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42Mzk4NTZd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY0MDI1NV0g
YnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjQwMjgyXSBicmNtZm1h
YzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NDAzNTddIGJyY21mbWFjOiBicmNt
Zl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NDAzODVdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY0MDQyMl0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBl
Y3RlZCAzNA0KWyAgICAxLjY0MDQzMF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3Rs
IEVudGVyDQpbICAgIDEuNjQwNDYwXSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXIN
ClsgICAgMS42NDA0NjddIGJyY21mbWFjOiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRl
cg0KWyAgICAxLjY0MDUwOF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVy
DQpbICAgIDEuNjQwNzY1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAg
MS42NDA3OTVdIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY0MDg0
OV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY0MDg4
NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjQw
OTIwXSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBm
cmFtZSwgZ290IDQ1IGV4cGVjdGVkIDQ1DQpbICAgIDEuNjQwOTI2XSBicmNtZm1hYzogYnJj
bWZfZmlsX2lvdmFyX2RhdGFfZ2V0IGlmaWR4PTAsIG5hbWU9ZXZlbnRfbXNncywgbGVuPTE4
DQpbICAgIDEuNjQwOTI4XSBicmNtdXRpbDogZGF0YQ0KWyAgICAxLjY0MDkzNF0gMDAwMDAw
MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDQwIDAwIDAwIDA0IDAwIDAwIDAwIDAwIDAwIDgwICAu
Li4uLi5ALi4uLi4uLi4uDQpbICAgIDEuNjQwOTM4XSAwMDAwMDAxMDogMDAgMDAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uDQpbICAgIDEuNjQwOTQz
XSBicmNtZm1hYzogYnJjbWZfZmlsX2lvdmFyX2RhdGFfc2V0IGlmaWR4PTAsIG5hbWU9ZXZl
bnRfbXNncywgbGVuPTE4DQpbICAgIDEuNjQwOTQ1XSBicmNtdXRpbDogZGF0YQ0KWyAgICAx
LjY0MDk0OV0gMDAwMDAwMDA6IDAwIDAwIDAwIDAwIDAwIDAwIDQwIDAwIDAwIDA0IDAwIDAw
IDAwIDAwIDAwIDgwICAuLi4uLi5ALi4uLi4uLi4uDQpbICAgIDEuNjQwOTUzXSAwMDAwMDAx
MDogMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4u
DQpbICAgIDEuNjQwOTU3XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwgRW50ZXIN
ClsgICAgMS42NDEwMjVdIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAx
LjY0MTAzMl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAg
IDEuNjQxMDg5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXINClsgICAg
MS42NDE0MzFdIGJyY21mbWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAxLjY0MTQ1
MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQxNDk1XSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjQxNTMwXSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42NDE1NjhdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZyYW1lLCBn
b3QgNDUgZXhwZWN0ZWQgNDUNClsgICAgMS42NDE1NzVdIGJyY21mbWFjOiBicmNtZl9maWxf
Y21kX2ludF9zZXQgaWZpZHg9MCwgY21kPTE4NSwgdmFsdWU9NDANClsgICAgMS42NDE1Nzhd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY0MTU5OV0g
YnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQxNjA2XSBicmNtZm1h
YzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NDE2NTJdIGJyY21m
bWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY0MTgxM10gYnJjbWZt
YWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjQxODM5XSBicmNtZm1hYzogYnJj
bWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NDE4ODZdIGJyY21mbWFjOiBicmNtZl9zZGlv
X3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NDE5MTJdIGJyY21mbWFjOiBicmNtZl9zZGlv
X3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY0MTk1Nl0gYnJjbWZtYWM6IGJyY21mX3Nk
aW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAyMCBleHBlY3RlZCAy
MA0KWyAgICAxLjY0MTk2Ml0gYnJjbWZtYWM6IGJyY21mX2ZpbF9jbWRfaW50X3NldCBpZmlk
eD0wLCBjbWQ9MTg3LCB2YWx1ZT00MA0KWyAgICAxLjY0MTk2NV0gYnJjbWZtYWM6IGJyY21m
X3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjQxOTc3XSBicmNtZm1hYzogYnJjbWZf
c2Rpb19kcGMgRW50ZXINClsgICAgMS42NDE5ODRdIGJyY21mbWFjOiBicmNtZl9zZGlvX3R4
X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY0MjAyMl0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
YnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjQyMTkzXSBicmNtZm1hYzogYnJjbWZfc2Rpb19p
c3IgRW50ZXINClsgICAgMS42NDIyMDldIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRl
cg0KWyAgICAxLjY0MjI1Nl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRl
cg0KWyAgICAxLjY0MjI4MV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZF9jb250cm9sIEVu
dGVyDQpbICAgIDEuNjQyMzE1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgcmVz
dW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDIwIGV4cGVjdGVkIDIwDQpbICAgIDEuNjQyMzIx
XSBicmNtZm1hYzogYnJjbWZfZmlsX2lvdmFyX2RhdGFfc2V0IGlmaWR4PTAsIG5hbWU9dHhi
ZiwgbGVuPTQNClsgICAgMS42NDIzMjNdIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjQyMzMw
XSAwMDAwMDAwMDogMDEgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLi4NClsgICAgMS42NDIzMzRdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190
eGN0bCBFbnRlcg0KWyAgICAxLjY0MjM0OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVu
dGVyDQpbICAgIDEuNjQyMzU0XSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUg
RW50ZXINClsgICAgMS42NDI0MDNdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBF
bnRlcg0KWyAgICAxLjY0MjkyNF0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpb
ICAgIDEuNjQyOTY5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42
NDMwMTddIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42
NDMwNDVdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAx
LjY0MzA5NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhj
dGwgZnJhbWUsIGdvdCAyNSBleHBlY3RlZCAyNQ0KWyAgICAxLjY0MzEwMV0gYnJjbWZtYWM6
IGJyY21mX2ZpbF9jbWRfZGF0YSBGYWlsZWQ6IEJDTUVfVU5TVVBQT1JURUQgKC0yMykNClsg
ICAgMS42NDMxMDldIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9zZXQgaWZpZHg9
MCwgbmFtZT1idXM6dHhnbG9tYWxpZ24sIGxlbj00DQpbICAgIDEuNjQzMTExXSBicmNtdXRp
bDogZGF0YQ0KWyAgICAxLjY0MzExN10gMDAwMDAwMDA6IDA0IDAwIDAwIDAwICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uDQpbICAgIDEuNjQzMTIxXSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwgRW50ZXINClsgICAgMS42NDMxMzddIGJyY21m
bWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY0MzE0NF0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAgIDEuNjQzMTk0XSBicmNtZm1hYzog
YnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXINClsgICAgMS42NDMzMzddIGJyY21mbWFjOiBi
cmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAxLjY0MzM2OF0gYnJjbWZtYWM6IGJyY21mX3Nk
aW9fZHBjIEVudGVyDQpbICAgIDEuNjQzNDQ1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFk
ZnJhbWVzIEVudGVyDQpbICAgIDEuNjQzNTQ0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFk
X2NvbnRyb2wgRW50ZXINClsgICAgMS42NDM1ODldIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1
c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZyYW1lLCBnb3QgMzYgZXhwZWN0ZWQgMzYNClsg
ICAgMS42NDM1OTVdIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9zZXQgaWZpZHg9
MCwgbmFtZT1idXM6cnhnbG9tLCBsZW49NA0KWyAgICAxLjY0MzU5N10gYnJjbXV0aWw6IGRh
dGENClsgICAgMS42NDM2MDJdIDAwMDAwMDAwOiAwMSAwMCAwMCAwMCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLi4uLg0KWyAgICAxLjY0MzYwNl0gYnJjbWZtYWM6
IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjQzNzI1XSBicmNtZm1hYzog
YnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NDM3NTldIGJyY21mbWFj
OiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY0Mzc2N10gYnJjbWZtYWM6IGJyY21m
X3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjQzOTQxXSBicmNtZm1hYzogYnJjbWZf
c2Rpb19pc3IgRW50ZXINClsgICAgMS42NDM5NjNdIGJyY21mbWFjOiBicmNtZl9zZGlvX2Rw
YyBFbnRlcg0KWyAgICAxLjY0NDAxNV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZGZyYW1l
cyBFbnRlcg0KWyAgICAxLjY0NDA0Ml0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVhZF9jb250
cm9sIEVudGVyDQpbICAgIDEuNjQ0MDc5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhj
dGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDMxIGV4cGVjdGVkIDMxDQpbICAgIDEu
NjQ0MTE1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwgRW50ZXINClsgICAgMS42
NDQxNTFdIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY0NDE1OV0g
YnJjbWZtYWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAgIDEuNjQ0MjE0
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXINClsgICAgMS42NDQ2NzRd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAxLjY0NDcwMV0gYnJjbWZt
YWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ0NzU0XSBicmNtZm1hYzogYnJj
bWZfc2Rpb19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjQ0NzgwXSBicmNtZm1hYzogYnJj
bWZfc2Rpb19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42NDQ4NDZdIGJyY21mbWFjOiBi
cmNtZl9zZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZyYW1lLCBnb3QgMjc2IGV4
cGVjdGVkIDI3Ng0KWyAgICAxLjY0NDg1Ml0gYnJjbWZtYWM6IGJyY21mX2ZpbF9pb3Zhcl9k
YXRhX2dldCBpZmlkeD0wLCBuYW1lPWNhcCwgbGVuPTI1Ng0KWyAgICAxLjY0NDg1NV0gYnJj
bXV0aWw6IGRhdGENClsgICAgMS42NDQ4NjFdIDAwMDAwMDAwOiA2MSA3MCAyMCA3MyA3NCA2
MSAyMCA3NyA2ZCA2NSAyMCAzOCAzMCAzMiAyZSAzMSAgYXAgc3RhIHdtZSA4MDIuMQ0KWyAg
ICAxLjY0NDg2Nl0gMDAwMDAwMTA6IDMxIDY0IDIwIDM4IDMwIDMyIDJlIDMxIDMxIDY4IDIw
IDcyIDZkIDIwIDYzIDYzICAxZCA4MDIuMTFoIHJtIGNjDQpbICAgIDEuNjQ0ODcwXSAwMDAw
MDAyMDogNzggMjAgNjMgNjEgNjMgMjAgNjEgNmQgNzAgNjQgNzUgMjAgNjEgNmQgNzAgNjQg
IHggY2FjIGFtcGR1IGFtcGQNClsgICAgMS42NDQ4NzRdIDAwMDAwMDMwOiA3NSA1ZiA3NCA3
OCAyMCA2MSA2ZCA3MCA2NCA3NSA1ZiA3MiA3OCAyMCA2MSA2ZCAgdV90eCBhbXBkdV9yeCBh
bQ0KWyAgICAxLjY0NDg4MF0gYnJjbWZtYWM6IGJyY21mX2ZlYXRfZmlybXdhcmVfY2FwYWJp
bGl0aWVzIFsgYXAgc3RhIHdtZSA4MDIuMTFkIDgwMi4xMWggcm0gY2N4IGNhYyBhbXBkdSBh
bXBkdV90eCBhbXBkdV9yeCBhbXNkdXJ4IHJhZGlvX3B3cnNhdmUgcDJwIHByb3B0eHN0YXR1
cyBtY2hhbiBwMnBvIGFucXBvIGRmcnRzIHR4cHdyY2FjaGUgc3RiYy10eCBzdGJjLXJ4LTFz
cyBlcG5vIHBmbnggd25tIGJzc3RyYW5zIG1mcCBuZG9lIF0NClsgICAgMS42NDQ4ODldIGJy
Y21mbWFjOiBicmNtZl9mZWF0X2Zpcm13YXJlX2NhcGFiaWxpdGllcyBlbmFibGluZyBmZWF0
dXJlOiBNQ0hBTg0KWyAgICAxLjY0NDg5M10gYnJjbWZtYWM6IGJyY21mX2ZlYXRfZmlybXdh
cmVfY2FwYWJpbGl0aWVzIGVuYWJsaW5nIGZlYXR1cmU6IFAyUA0KWyAgICAxLjY0NDg5OF0g
YnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjQ0OTEzXSBi
cmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NDQ5MjBdIGJyY21mbWFj
OiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY0NDk1N10gYnJjbWZt
YWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjQ1MzA5XSBicmNtZm1h
YzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42NDUzNDRdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY0NTM5M10gYnJjbWZtYWM6IGJyY21mX3NkaW9f
cmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY0NTQxOV0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
cmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjQ1NDUzXSBicmNtZm1hYzogYnJjbWZfc2Rp
b19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDI0IGV4cGVjdGVkIDI0
DQpbICAgIDEuNjQ1NDU5XSBicmNtZm1hYzogYnJjbWZfZmlsX2lvdmFyX2RhdGFfZ2V0IGlm
aWR4PTAsIG5hbWU9cGZuLCBsZW49NA0KWyAgICAxLjY0NTQ2MV0gYnJjbXV0aWw6IGRhdGEN
ClsgICAgMS42NDU0NjddIDAwMDAwMDAwOiAwMCAwMCAwMCAwMCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLi4uLg0KWyAgICAxLjY0NTQ3MF0gYnJjbWZtYWM6IGJy
Y21mX2ZlYXRfaW92YXJfaW50X2dldCBlbmFibGluZyBmZWF0dXJlOiBQTk8NClsgICAgMS42
NDU0NzZdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY0
NTQ5MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ1NDk3XSBi
cmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NDU1NTdd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY0NjEwNF0g
YnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjQ2MTMxXSBicmNtZm1h
YzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NDYyMDFdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NDYyMjldIGJyY21mbWFjOiBicmNt
Zl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY0NjI2Ml0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzMCBleHBl
Y3RlZCAzMA0KWyAgICAxLjY0NjI2OF0gYnJjbWZtYWM6IGJyY21mX2ZpbF9jbWRfZGF0YSBG
YWlsZWQ6IEJDTUVfVU5TVVBQT1JURUQgKC0yMykNClsgICAgMS42NDYyNzJdIGJyY21mbWFj
OiBicmNtZl9maWxfaW92YXJfZGF0YV9nZXQgaWZpZHg9MCwgbmFtZT1yc2RiX21vZGUsIGxl
bj00DQpbICAgIDEuNjQ2Mjc1XSBicmNtdXRpbDogZGF0YQ0KWyAgICAxLjY0NjI4MF0gMDAw
MDAwMDA6IDAwIDAwIDAwIDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAuLi4uDQpbICAgIDEuNjQ2Mjg1XSBicmNtZm1hYzogYnJjbWZfZmVhdF9pb3Zhcl9pbnRf
Z2V0IFJTREIgZmVhdHVyZSBjaGVjayBmYWlsZWQ6IC0yMw0KWyAgICAxLjY0NjI4OV0gYnJj
bWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjQ2MzA1XSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NDYzMTJdIGJyY21mbWFjOiBi
cmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY0NjM0OV0gYnJjbWZtYWM6
IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjQ2OTMwXSBicmNtZm1hYzog
YnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42NDY5NzFdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY0NzAyM10gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVh
ZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY0NzA2MV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fcmVh
ZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjQ3MDk2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19i
dXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDMyIGV4cGVjdGVkIDMyDQpb
ICAgIDEuNjQ3MTAxXSBicmNtZm1hYzogYnJjbWZfZmlsX2NtZF9kYXRhIEZhaWxlZDogQkNN
RV9VTlNVUFBPUlRFRCAoLTIzKQ0KWyAgICAxLjY0NzEwNV0gYnJjbWZtYWM6IGJyY21mX2Zp
bF9pb3Zhcl9kYXRhX2dldCBpZmlkeD0wLCBuYW1lPXRkbHNfZW5hYmxlLCBsZW49NA0KWyAg
ICAxLjY0NzEwN10gYnJjbXV0aWw6IGRhdGENClsgICAgMS42NDcxMTNdIDAwMDAwMDAwOiAw
MCAwMCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLg0K
WyAgICAxLjY0NzExN10gYnJjbWZtYWM6IGJyY21mX2ZlYXRfaW92YXJfaW50X2dldCBURExT
IGZlYXR1cmUgY2hlY2sgZmFpbGVkOiAtMjMNClsgICAgMS42NDcxMjFdIGJyY21mbWFjOiBi
cmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY0NzEzOV0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ3MTQ3XSBicmNtZm1hYzogYnJjbWZfc2Rp
b190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NDcxODNdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY0NzcyMV0gYnJjbWZtYWM6IGJyY21mX3Nk
aW9faXNyIEVudGVyDQpbICAgIDEuNjQ3NzQwXSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMg
RW50ZXINClsgICAgMS42NDc3ODldIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMg
RW50ZXINClsgICAgMS42NDc4MTRdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJv
bCBFbnRlcg0KWyAgICAxLjY0Nzg0OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3Rs
IHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAyNCBleHBlY3RlZCAyNA0KWyAgICAxLjY0
Nzg1M10gYnJjbWZtYWM6IGJyY21mX2ZpbF9jbWRfZGF0YSBGYWlsZWQ6IEJDTUVfVU5TVVBQ
T1JURUQgKC0yMykNClsgICAgMS42NDc4NTddIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJf
ZGF0YV9nZXQgaWZpZHg9MCwgbmFtZT1tZnAsIGxlbj00DQpbICAgIDEuNjQ3ODYwXSBicmNt
dXRpbDogZGF0YQ0KWyAgICAxLjY0Nzg2NF0gMDAwMDAwMDA6IDAwIDAwIDAwIDAwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uDQpbICAgIDEuNjQ3ODY4XSBi
cmNtZm1hYzogYnJjbWZfZmVhdF9pb3Zhcl9pbnRfZ2V0IE1GUCBmZWF0dXJlIGNoZWNrIGZh
aWxlZDogLTIzDQpbICAgIDEuNjQ3ODcyXSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhj
dGwgRW50ZXINClsgICAgMS42NDc4ODddIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRl
cg0KWyAgICAxLjY0Nzg5NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVu
dGVyDQpbICAgIDEuNjQ3OTM2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50
ZXINClsgICAgMS42NDgzMjddIGJyY21mbWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAg
ICAxLjY0ODM2M10gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ4
NDIyXSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjQ4
NDY0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42
NDg1MDBdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3Rs
IGZyYW1lLCBnb3QgMzYgZXhwZWN0ZWQgMzYNClsgICAgMS42NDg1MDVdIGJyY21mbWFjOiBi
cmNtZl9maWxfY21kX2RhdGEgRmFpbGVkOiBCQ01FX1ZFUlNJT04gKC0zNykNClsgICAgMS42
NDg1MTBdIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9nZXQgaWZpZHg9MCwgbmFt
ZT1wZm5fbWFjYWRkciwgbGVuPTgNClsgICAgMS42NDg1MTJdIGJyY211dGlsOiBkYXRhDQpb
ICAgIDEuNjQ4NTE3XSAwMDAwMDAwMDogMDEgNDAgZDIgZGUgYzAgNDQgNzQgZGYgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5ALi4uRHQuDQpbICAgIDEuNjQ4NTY0XSBicmNtZm1hYzog
YnJjbWZfZndzX2luaXQgRldTIHF1ZXVlaW5nIHdpbGwgYmUgYXZvaWRlZA0KWyAgICAxLjY0
ODU3M10gYnJjbWZtYWM6IGJyY21mX2Z3c19tYWNkZXNjX2luaXQgZW50ZXI6IGRlc2MgZGVk
NDUwMzAgZWE9OTQ6YTE6YTI6YTM6OWI6OTYsIGlmaWR4PTANClsgICAgMS42NDg1ODBdIGJy
Y21mbWFjOiBicmNtZl9md3NfYWRkX2ludGVyZmFjZSBhZGRlZCBNQUNJRjowDQpbICAgIDEu
NjQ4NjE3XSBicmNtZm1hYzogYnJjbWZfYWxsb2NfdmlmIGFsbG9jYXRpbmcgdmlydHVhbCBp
bnRlcmZhY2UgKHNpemU9MzY2OCkNClsgICAgMS42NDg2NzldIGJyY21mbWFjOiBicmNtZl9m
d2VoX3JlZ2lzdGVyIGV2ZW50IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgTElOSw0KWyAgICAx
LjY0ODY4M10gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfcmVnaXN0ZXIgZXZlbnQgaGFuZGxlciBy
ZWdpc3RlcmVkIGZvciBERUFVVEhfSU5EDQpbICAgIDEuNjQ4Njg2XSBicmNtZm1hYzogYnJj
bWZfZndlaF9yZWdpc3RlciBldmVudCBoYW5kbGVyIHJlZ2lzdGVyZWQgZm9yIERFQVVUSA0K
WyAgICAxLjY0ODY5MF0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfcmVnaXN0ZXIgZXZlbnQgaGFu
ZGxlciByZWdpc3RlcmVkIGZvciBESVNBU1NPQ19JTkQNClsgICAgMS42NDg2OTRdIGJyY21m
bWFjOiBicmNtZl9md2VoX3JlZ2lzdGVyIGV2ZW50IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3Ig
QVNTT0NfSU5EDQpbICAgIDEuNjQ4Njk3XSBicmNtZm1hYzogYnJjbWZfZndlaF9yZWdpc3Rl
ciBldmVudCBoYW5kbGVyIHJlZ2lzdGVyZWQgZm9yIFJFQVNTT0NfSU5EDQpbICAgIDEuNjQ4
NzAxXSBicmNtZm1hYzogYnJjbWZfZndlaF9yZWdpc3RlciBldmVudCBoYW5kbGVyIHJlZ2lz
dGVyZWQgZm9yIFJPQU0NClsgICAgMS42NDg3MDRdIGJyY21mbWFjOiBicmNtZl9md2VoX3Jl
Z2lzdGVyIGV2ZW50IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgTUlDX0VSUk9SDQpbICAgIDEu
NjQ4NzA4XSBicmNtZm1hYzogYnJjbWZfZndlaF9yZWdpc3RlciBldmVudCBoYW5kbGVyIHJl
Z2lzdGVyZWQgZm9yIFNFVF9TU0lEDQpbICAgIDEuNjQ4NzE0XSBicmNtZm1hYzogYnJjbWZf
ZndlaF9yZWdpc3RlciBldmVudCBoYW5kbGVyIHJlZ2lzdGVyZWQgZm9yIFBGTl9ORVRfRk9V
TkQNClsgICAgMS42NDg3MThdIGJyY21mbWFjOiBicmNtZl9md2VoX3JlZ2lzdGVyIGV2ZW50
IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgSUYNClsgICAgMS42NDg3MjNdIGJyY21mbWFjOiBi
cmNtZl9md2VoX3JlZ2lzdGVyIGV2ZW50IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgUDJQX1BS
T0JFUkVRX01TRw0KWyAgICAxLjY0ODcyN10gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfcmVnaXN0
ZXIgZXZlbnQgaGFuZGxlciByZWdpc3RlcmVkIGZvciBQMlBfRElTQ19MSVNURU5fQ09NUExF
VEUNClsgICAgMS42NDg3MzFdIGJyY21mbWFjOiBicmNtZl9md2VoX3JlZ2lzdGVyIGV2ZW50
IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgQUNUSU9OX0ZSQU1FX1JYDQpbICAgIDEuNjQ4NzM1
XSBicmNtZm1hYzogYnJjbWZfZndlaF9yZWdpc3RlciBldmVudCBoYW5kbGVyIHJlZ2lzdGVy
ZWQgZm9yIEFDVElPTl9GUkFNRV9DT01QTEVURQ0KWyAgICAxLjY0ODczOV0gYnJjbWZtYWM6
IGJyY21mX2Z3ZWhfcmVnaXN0ZXIgZXZlbnQgaGFuZGxlciByZWdpc3RlcmVkIGZvciBBQ1RJ
T05fRlJBTUVfT0ZGX0NIQU5fQ09NUExFVEUNClsgICAgMS42NDg3NDJdIGJyY21mbWFjOiBi
cmNtZl9md2VoX3JlZ2lzdGVyIGV2ZW50IGhhbmRsZXIgcmVnaXN0ZXJlZCBmb3IgRVNDQU5f
UkVTVUxUDQpbICAgIDEuNjQ4NzQ5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwg
RW50ZXINClsgICAgMS42NDg4MTJdIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0K
WyAgICAxLjY0ODgyMV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVy
DQpbICAgIDEuNjQ4ODc0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXIN
ClsgICAgMS42NDkwNTddIGJyY21mbWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAx
LjY0OTA3N10gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ5MTI2
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjQ5MTU1
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42NDkx
OTddIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZy
YW1lLCBnb3QgMjAgZXhwZWN0ZWQgMjANClsgICAgMS42NDkyMDNdIGJyY21mbWFjOiBicmNt
Zl9maWxfY21kX2ludF9nZXQgaWZpZHg9MCwgY21kPTEsIHZhbHVlPTINClsgICAgMS42NDky
MTNdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY0OTIz
OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ5MjQ1XSBicmNt
Zm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NDkyODJdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY0OTQ2OV0gYnJj
bWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjQ5NDk2XSBicmNtZm1hYzog
YnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NDk1NDRdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NDk1NzFdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY0OTYwNl0gYnJjbWZtYWM6IGJyY21m
X3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAyOCBleHBlY3Rl
ZCAyOA0KWyAgICAxLjY0OTYxMl0gYnJjbWZtYWM6IGJyY21mX2ZpbF9jbWRfZGF0YV9nZXQg
aWZpZHg9MCwgY21kPTE0MCwgbGVuPTEyDQpbICAgIDEuNjQ5NjE0XSBicmNtdXRpbDogZGF0
YQ0KWyAgICAxLjY0OTYyMV0gMDAwMDAwMDA6IDAxIDAwIDAwIDAwIDAyIDAwIDAwIDAwIDcw
IGM3IDZkIGMwICAgICAgICAgICAgICAuLi4uLi4uLnAubS4NClsgICAgMS42NDk2MzNdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY0OTY1NV0gYnJj
bWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjQ5NjYzXSBicmNtZm1hYzog
YnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NDk3MDZdIGJyY21mbWFj
OiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1MDIzMl0gYnJjbWZtYWM6
IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjUwMjYwXSBicmNtZm1hYzogYnJjbWZf
c2Rpb19kcGMgRW50ZXINClsgICAgMS42NTAzMzBdIGJyY21mbWFjOiBicmNtZl9zZGlvX3Jl
YWRmcmFtZXMgRW50ZXINClsgICAgMS42NTAzNThdIGJyY21mbWFjOiBicmNtZl9zZGlvX3Jl
YWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY1MDQwM10gYnJjbWZtYWM6IGJyY21mX3NkaW9f
YnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAyOCBleHBlY3RlZCAyOA0K
WyAgICAxLjY1MDQwOF0gYnJjbWZtYWM6IGJyY21mX2ZpbF9jbWRfZGF0YSBGYWlsZWQ6IEJD
TUVfVU5TVVBQT1JURUQgKC0yMykNClsgICAgMS42NTA0MTRdIGJyY21mbWFjOiBicmNtZl9m
aWxfaW92YXJfZGF0YV9nZXQgaWZpZHg9MCwgbmFtZT12aHRtb2RlLCBsZW49NA0KWyAgICAx
LjY1MDQxNl0gYnJjbXV0aWw6IGRhdGENClsgICAgMS42NTA0MjJdIDAwMDAwMDAwOiAwMCAw
MCAwMCAwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uLg0KWyAg
ICAxLjY1MDQyN10gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAg
IDEuNjUwNDUzXSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NTA0
NjFdIGJyY21mbWFjOiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY1
MDUyOF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjUw
OTMyXSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42NTA5NTBdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY1MTAwMF0gYnJjbWZtYWM6
IGJyY21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY1MTAyN10gYnJjbWZtYWM6
IGJyY21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjUxMDYzXSBicmNtZm1h
YzogYnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDI2
IGV4cGVjdGVkIDI2DQpbICAgIDEuNjUxMDY4XSBicmNtZm1hYzogYnJjbWZfZmlsX2lvdmFy
X2RhdGFfZ2V0IGlmaWR4PTAsIG5hbWU9bm1vZGUsIGxlbj00DQpbICAgIDEuNjUxMDcwXSBi
cmNtdXRpbDogZGF0YQ0KWyAgICAxLjY1MTA3Nl0gMDAwMDAwMDA6IDAxIDAwIDAwIDAwICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uDQpbICAgIDEuNjUxMDgw
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwgRW50ZXINClsgICAgMS42NTExMDNd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY1MTExMF0gYnJjbWZt
YWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAgIDEuNjUxMTYzXSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXINClsgICAgMS42NTE1NzBdIGJyY21m
bWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAxLjY1MTU4N10gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjUxNjM2XSBicmNtZm1hYzogYnJjbWZfc2Rp
b19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjUxNjYyXSBicmNtZm1hYzogYnJjbWZfc2Rp
b19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42NTE2OTZdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZyYW1lLCBnb3QgMjcgZXhwZWN0ZWQg
MjcNClsgICAgMS42NTE3MDFdIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9nZXQg
aWZpZHg9MCwgbmFtZT1id19jYXAsIGxlbj00DQpbICAgIDEuNjUxNzAzXSBicmNtdXRpbDog
ZGF0YQ0KWyAgICAxLjY1MTcwOF0gMDAwMDAwMDA6IDAxIDAwIDAwIDAwICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uDQpbICAgIDEuNjUxNzExXSBicmNtZm1h
YzogYnJjbWZfc2Rpb19idXNfdHhjdGwgRW50ZXINClsgICAgMS42NTE3MjddIGJyY21mbWFj
OiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY1MTczNF0gYnJjbWZtYWM6IGJyY21m
X3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAgIDEuNjUxNzY5XSBicmNtZm1hYzogYnJj
bWZfc2Rpb19idXNfcnhjdGwgRW50ZXINClsgICAgMS42NTIyMDRdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2lzciBFbnRlcg0KWyAgICAxLjY1MjIzOV0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
ZHBjIEVudGVyDQpbICAgIDEuNjUyMjk2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkZnJh
bWVzIEVudGVyDQpbICAgIDEuNjUyMzI0XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkX2Nv
bnRyb2wgRW50ZXINClsgICAgMS42NTIzNTRdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19y
eGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZyYW1lLCBnb3QgMjcgZXhwZWN0ZWQgMjcNClsgICAg
MS42NTIzNTldIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9nZXQgaWZpZHg9MCwg
bmFtZT1id19jYXAsIGxlbj00DQpbICAgIDEuNjUyMzYxXSBicmNtdXRpbDogZGF0YQ0KWyAg
ICAxLjY1MjM2Nl0gMDAwMDAwMDA6IDAwIDAwIDAwIDAwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAuLi4uDQpbICAgIDEuNjUyMzcxXSBicmNtZm1hYzogYnJjbWZf
c2V0dXBfd2lwaHliYW5kcyBubW9kZT0xLCB2aHRtb2RlPTAsIGJ3X2NhcD0oMSwgMCkNClsg
ICAgMS42NTIzNzVdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAg
ICAxLjY1MjM4OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjUy
Mzk0XSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42
NTI0MjldIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1
MjcxMV0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjUyNzQyXSBi
cmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NTI3ODhdIGJyY21mbWFj
OiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NTI4MTVdIGJyY21mbWFj
OiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY1Mjg0OV0gYnJjbWZt
YWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAy
OCBleHBlY3RlZCAyOA0KWyAgICAxLjY1Mjg1NF0gYnJjbWZtYWM6IGJyY21mX2ZpbF9pb3Zh
cl9kYXRhX2dldCBpZmlkeD0wLCBuYW1lPXJ4Y2hhaW4sIGxlbj00DQpbICAgIDEuNjUyODU3
XSBicmNtdXRpbDogZGF0YQ0KWyAgICAxLjY1Mjg2MV0gMDAwMDAwMDA6IDAxIDAwIDAwIDAw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4uDQpbICAgIDEuNjUy
ODY1XSBicmNtZm1hYzogYnJjbWZfc2V0dXBfd2lwaHliYW5kcyBuY2hhaW49MQ0KWyAgICAx
LjY1Mjg3N10gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEu
NjUyODk1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NTI5MDJd
IGJyY21mbWFjOiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY1MzA0
MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjUzNTIw
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42NTM1NTldIGJyY21m
bWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY1MzYxN10gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY1MzY2Ml0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjUzODE2XSBicmNtZm1hYzog
YnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDE1NjIg
ZXhwZWN0ZWQgMTU2Mg0KWyAgICAxLjY1MzgyNV0gYnJjbWZtYWM6IGJyY21mX2ZpbF9pb3Zh
cl9kYXRhX2dldCBpZmlkeD0wLCBuYW1lPWNoYW5zcGVjcywgbGVuPTE1MzYNClsgICAgMS42
NTM4MjldIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjUzODM1XSAwMDAwMDAwMDogMGIgMDAg
MDAgMDAgMDEgMTAgMDAgMDAgMDIgMTAgMDAgMDAgMDMgMTAgMDAgMDAgIC4uLi4uLi4uLi4u
Li4uLi4NClsgICAgMS42NTM4MzldIDAwMDAwMDEwOiAwNCAxMCAwMCAwMCAwNSAxMCAwMCAw
MCAwNiAxMCAwMCAwMCAwNyAxMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLg0KWyAgICAxLjY1
Mzg0M10gMDAwMDAwMjA6IDA4IDEwIDAwIDAwIDA5IDEwIDAwIDAwIDBhIDEwIDAwIDAwIDBi
IDEwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uDQpbICAgIDEuNjUzODQ3XSAwMDAwMDAzMDog
MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4u
Li4uLi4uLi4uLi4NClsgICAgMS42NTM4NjBdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190
eGN0bCBFbnRlcg0KWyAgICAxLjY1Mzg5Nl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVu
dGVyDQpbICAgIDEuNjUzOTA0XSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUg
RW50ZXINClsgICAgMS42NTM5NDZdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBF
bnRlcg0KWyAgICAxLjY1NDQ5NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpb
ICAgIDEuNjU0NTI3XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42
NTQ1OTBdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42
NTQ2MzNdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAx
LjY1NDY2OF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhj
dGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY1NDY3Nl0gYnJjbWZtYWM6
IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9
cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42NTQ2NzldIGJyY211dGlsOiBkYXRhDQpb
ICAgIDEuNjU0NjgzXSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NTQ2ODldIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY1NDcwN10gYnJjbWZtYWM6IGJyY21m
X3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjU0NzE0XSBicmNtZm1hYzogYnJjbWZfc2Rpb190
eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NTQ3NTJdIGJyY21mbWFjOiBicmNtZl9zZGlv
X2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1NTI4NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
aXNyIEVudGVyDQpbICAgIDEuNjU1MzE2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50
ZXINClsgICAgMS42NTUzNzBdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50
ZXINClsgICAgMS42NTU0MDRdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBF
bnRlcg0KWyAgICAxLjY1NTQ0Ml0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJl
c3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY1NTQ0
OF0gYnJjbWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2Zn
aWR4PTAsIG5hbWU9cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42NTU0NTBdIGJyY211
dGlsOiBkYXRhDQpbICAgIDEuNjU1NDU1XSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NTU0NjBdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY1NTQ3Ml0gYnJj
bWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjU1NDc5XSBicmNtZm1hYzog
YnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NTU1MThdIGJyY21mbWFj
OiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1NjA0OF0gYnJjbWZtYWM6
IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjU2MDY5XSBicmNtZm1hYzogYnJjbWZf
c2Rpb19kcGMgRW50ZXINClsgICAgMS42NTYxNDBdIGJyY21mbWFjOiBicmNtZl9zZGlvX3Jl
YWRmcmFtZXMgRW50ZXINClsgICAgMS42NTYxNzBdIGJyY21mbWFjOiBicmNtZl9zZGlvX3Jl
YWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY1NjIxNl0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
YnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0K
WyAgICAxLjY1NjIyM10gYnJjbWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZp
ZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42
NTYyMjVdIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjU2MjI5XSAwMDAwMDAwMDogMDMgMDAg
MDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAg
MS42NTYyMzVdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAx
LjY1NjI1Ml0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjU2MjU5
XSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NTYz
MTZdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1Njg0
NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjU2ODczXSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NTY5MjZdIGJyY21mbWFjOiBi
cmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NTY5NTJdIGJyY21mbWFjOiBi
cmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY1Njk5MF0gYnJjbWZtYWM6
IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBl
eHBlY3RlZCAzNA0KWyAgICAxLjY1Njk5N10gYnJjbWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdf
ZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9cGVyX2NoYW5faW5mbywgbGVu
PTQNClsgICAgMS42NTY5OTldIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjU3MDA0XSAwMDAw
MDAwMDogMDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC4uLi4NClsgICAgMS42NTcwMDldIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBF
bnRlcg0KWyAgICAxLjY1NzAyMl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpb
ICAgIDEuNjU3MDMwXSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXIN
ClsgICAgMS42NTcwNjldIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0K
WyAgICAxLjY1NzYwNV0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEu
NjU3NjIzXSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NTc2ODNd
IGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NTc3MjVd
IGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY1Nzc3
NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJh
bWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY1Nzc4MV0gYnJjbWZtYWM6IGJyY21m
X2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9cGVyX2No
YW5faW5mbywgbGVuPTQNClsgICAgMS42NTc3ODRdIGJyY211dGlsOiBkYXRhDQpbICAgIDEu
NjU3Nzg5XSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NTc3OTRdIGJyY21mbWFjOiBicmNtZl9zZGlv
X2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY1NzgyMl0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
ZHBjIEVudGVyDQpbICAgIDEuNjU3ODMwXSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJs
ZnJhbWUgRW50ZXINClsgICAgMS42NTc4OTVdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19y
eGN0bCBFbnRlcg0KWyAgICAxLjY1ODQwMF0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVu
dGVyDQpbICAgIDEuNjU4NDI2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsg
ICAgMS42NTg0NzddIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsg
ICAgMS42NTg1MDVdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0K
WyAgICAxLjY1ODU0NV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQg
b24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY1ODU1MV0gYnJj
bWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAs
IG5hbWU9cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42NTg1NTRdIGJyY211dGlsOiBk
YXRhDQpbICAgIDEuNjU4NTU4XSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NTg1NjNdIGJyY21mbWFj
OiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY1ODU3N10gYnJjbWZtYWM6
IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjU4NTgzXSBicmNtZm1hYzogYnJjbWZf
c2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NTg2MjJdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1OTE2M10gYnJjbWZtYWM6IGJyY21m
X3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjU5MTkxXSBicmNtZm1hYzogYnJjbWZfc2Rpb19k
cGMgRW50ZXINClsgICAgMS42NTkyMzldIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFt
ZXMgRW50ZXINClsgICAgMS42NTkyNjddIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29u
dHJvbCBFbnRlcg0KWyAgICAxLjY1OTMwMV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4
Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAx
LjY1OTMwN10gYnJjbWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwg
YnNzY2ZnaWR4PTAsIG5hbWU9cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42NTkzMTBd
IGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjU5MzE1XSAwMDAwMDAwMDogMDMgMDAgMDAgMDAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NTkz
MjBdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY1OTM0
Ml0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjU5MzQ5XSBicmNt
Zm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NTk0MTNdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY1OTkyNl0gYnJj
bWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjU5OTU1XSBicmNtZm1hYzog
YnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NjAwMDZdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NjAwMzVdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY2MDA3Ml0gYnJjbWZtYWM6IGJyY21m
X3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBlY3Rl
ZCAzNA0KWyAgICAxLjY2MDA3OF0gYnJjbWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9n
ZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9cGVyX2NoYW5faW5mbywgbGVuPTQNClsg
ICAgMS42NjAwODBdIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjYwMDg1XSAwMDAwMDAwMDog
MDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4N
ClsgICAgMS42NjAwOTBdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0K
WyAgICAxLjY2MDEwM10gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEu
NjYwMTEwXSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAg
MS42NjAxNjddIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAx
LjY2MDY4Nl0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjYwNzA5
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NjA3ODBdIGJyY21m
bWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42NjA4MDhdIGJyY21m
bWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY2MDg0Nl0gYnJj
bWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdv
dCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY2MDg1Ml0gYnJjbWZtYWM6IGJyY21mX2ZpbF9i
c3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9cGVyX2NoYW5faW5m
bywgbGVuPTQNClsgICAgMS42NjA4NTRdIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjYwODU4
XSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLi4NClsgICAgMS42NjA4NjVdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c190
eGN0bCBFbnRlcg0KWyAgICAxLjY2MDg4Ml0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVu
dGVyDQpbICAgIDEuNjYwODg4XSBicmNtZm1hYzogYnJjbWZfc2Rpb190eF9jdHJsZnJhbWUg
RW50ZXINClsgICAgMS42NjA5MjldIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCBF
bnRlcg0KWyAgICAxLjY2MTQ0OV0gYnJjbWZtYWM6IGJyY21mX3NkaW9faXNyIEVudGVyDQpb
ICAgIDEuNjYxNDg1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42
NjE1MzVdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50ZXINClsgICAgMS42
NjE1NjBdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBFbnRlcg0KWyAgICAx
LjY2MTU5OV0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhj
dGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY2MTYwNl0gYnJjbWZtYWM6
IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2ZnaWR4PTAsIG5hbWU9
cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42NjE2MDldIGJyY211dGlsOiBkYXRhDQpb
ICAgIDEuNjYxNjE0XSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NjE2MTldIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY2MTYzN10gYnJjbWZtYWM6IGJyY21m
X3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjYxNjQ0XSBicmNtZm1hYzogYnJjbWZfc2Rpb190
eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NjE3MzZdIGJyY21mbWFjOiBicmNtZl9zZGlv
X2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY2MjIxMV0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
aXNyIEVudGVyDQpbICAgIDEuNjYyMjI5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50
ZXINClsgICAgMS42NjIyNzVdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRmcmFtZXMgRW50
ZXINClsgICAgMS42NjIzMDFdIGJyY21mbWFjOiBicmNtZl9zZGlvX3JlYWRfY29udHJvbCBF
bnRlcg0KWyAgICAxLjY2MjMzN10gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIHJl
c3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCAzNCBleHBlY3RlZCAzNA0KWyAgICAxLjY2MjM0
M10gYnJjbWZtYWM6IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9nZXQgaWZpZHg9MCwgYnNzY2Zn
aWR4PTAsIG5hbWU9cGVyX2NoYW5faW5mbywgbGVuPTQNClsgICAgMS42NjIzNDZdIGJyY211
dGlsOiBkYXRhDQpbICAgIDEuNjYyMzUwXSAwMDAwMDAwMDogMDMgMDAgMDAgMDAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NjIzNTddIGJy
Y21mbWFjOiBicmNtZl9jZmc4MDIxMV9hdHRhY2ggUmVnaXN0ZXJpbmcgY3VzdG9tIHJlZ3Vs
YXRvcnkNClsgICAgMS42NjI1NjZdIGJyY21mbWFjOiBicmNtZl9jZmc4MDIxMV9yZWdfbm90
aWZpZXI6IG5vdCBhIElTTzMxNjYgY29kZSAoMHgzMCAweDMwKQ0KWyAgICAxLjY3MDQ4MF0g
YnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEuNjcwNTc3XSBi
cmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NzA2MDJdIGJyY21mbWFj
OiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY3MDc4Ml0gYnJjbWZt
YWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjcxMTI5XSBicmNtZm1h
YzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42NzExNzVdIGJyY21mbWFjOiBicmNt
Zl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY3MTI5NF0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
cmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY3MTM1MV0gYnJjbWZtYWM6IGJyY21mX3NkaW9f
cmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjcxNDI1XSBicmNtZm1hYzogYnJjbWZfc2Rp
b19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDI3IGV4cGVjdGVkIDI3
DQpbICAgIDEuNjcxNDM2XSBicmNtZm1hYzogYnJjbWZfZmlsX2lvdmFyX2RhdGFfZ2V0IGlm
aWR4PTAsIG5hbWU9YndfY2FwLCBsZW49NA0KWyAgICAxLjY3MTQ0MF0gYnJjbXV0aWw6IGRh
dGENClsgICAgMS42NzE0NTBdIDAwMDAwMDAwOiAwMCAwMCAwMCAwMCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLi4uLg0KWyAgICAxLjY3MTQ1Nl0gYnJjbWZtYWM6
IGJyY21mX2ZpbF9pb3Zhcl9kYXRhX3NldCBpZmlkeD0wLCBuYW1lPWJ3X2NhcCwgbGVuPTgN
ClsgICAgMS42NzE0NTldIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjcxNDcxXSAwMDAwMDAw
MDogMDIgMDAgMDAgMDAgMDMgMDAgMDAgMDAgICAgICAgICAgICAgICAgICAgICAgICAgIC4u
Li4uLi4uDQpbICAgIDEuNjcxNDc5XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwg
RW50ZXINClsgICAgMS42NzE0OTldIGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0K
WyAgICAxLjY3MTUwOF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVy
DQpbICAgIDEuNjcxNTg2XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXIN
ClsgICAgMS42NzE5NzhdIGJyY21mbWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAx
LjY3MjAyNl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjcyMTA0
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjcyMTQ4
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42NzIy
MDFdIGJyY21mbWFjOiBicmNtZl9zZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZy
YW1lLCBnb3QgMzEgZXhwZWN0ZWQgMzENClsgICAgMS42NzIyMDhdIGJyY21mbWFjOiBicmNt
Zl9maWxfY21kX2RhdGEgRmFpbGVkOiBCQ01FX1JBTkdFICgtMjkpDQpbICAgIDEuNjcyMjE1
XSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IFNF
VF9TU0lEDQpbICAgIDEuNjcyMjE5XSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9l
dmVudHMgZW5hYmxlIGV2ZW50IERFQVVUSA0KWyAgICAxLjY3MjIyMl0gYnJjbWZtYWM6IGJy
Y21mX2Z3ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBERUFVVEhfSU5EDQpbICAg
IDEuNjcyMjI2XSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxl
IGV2ZW50IEFTU09DX0lORA0KWyAgICAxLjY3MjIyOV0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhf
YWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBSRUFTU09DX0lORA0KWyAgICAxLjY3MjIz
M10gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBE
SVNBU1NPQ19JTkQNClsgICAgMS42NzIyMzZdIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2
YXRlX2V2ZW50cyBlbmFibGUgZXZlbnQgTElOSw0KWyAgICAxLjY3MjIzOV0gYnJjbWZtYWM6
IGJyY21mX2Z3ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBNSUNfRVJST1INClsg
ICAgMS42NzIyNDVdIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50cyBlbmFi
bGUgZXZlbnQgUk9BTQ0KWyAgICAxLjY3MjI1MV0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfYWN0
aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBQRk5fTkVUX0ZPVU5EDQpbICAgIDEuNjcyMjU1
XSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IFBT
TV9XQVRDSERPRw0KWyAgICAxLjY3MjI1OV0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfYWN0aXZh
dGVfZXZlbnRzIGVuYWJsZSBldmVudCBJRg0KWyAgICAxLjY3MjI2M10gYnJjbWZtYWM6IGJy
Y21mX2Z3ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBQMlBfRElTQ19MSVNURU5f
Q09NUExFVEUNClsgICAgMS42NzIyNjddIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRl
X2V2ZW50cyBlbmFibGUgZXZlbnQgQUNUSU9OX0ZSQU1FX0NPTVBMRVRFDQpbICAgIDEuNjcy
MjcxXSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50
IEVTQ0FOX1JFU1VMVA0KWyAgICAxLjY3MjI3NV0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfYWN0
aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBBQ1RJT05fRlJBTUVfT0ZGX0NIQU5fQ09NUExF
VEUNClsgICAgMS42NzIyNzldIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50
cyBlbmFibGUgZXZlbnQgUDJQX1BST0JFUkVRX01TRw0KWyAgICAxLjY3MjI4M10gYnJjbWZt
YWM6IGJyY21mX2Z3ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBBQ1RJT05fRlJB
TUVfUlgNClsgICAgMS42NzIyODddIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2
ZW50cyBlbmFibGUgZXZlbnQgSUYNClsgICAgMS42NzIzMDFdIGJyY21mbWFjOiBicmNtZl9m
aWxfaW92YXJfZGF0YV9zZXQgaWZpZHg9MCwgbmFtZT1ldmVudF9tc2dzLCBsZW49MTgNClsg
ICAgMS42NzIzMDhdIGJyY211dGlsOiBkYXRhDQpbICAgIDEuNjcyMzE5XSAwMDAwMDAwMDog
NjEgMTUgMGIgMDAgMDIgMDIgYzAgMTAgNjAgMDkgMDAgMDAgMDAgMDAgMDAgMDAgIGEuLi4u
Li4uYC4uLi4uLi4NClsgICAgMS42NzIzMjddIDAwMDAwMDEwOiAwMCAwMCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4NClsgICAgMS42NzIzMzhdIGJy
Y21mbWFjOiBicmNtZl9zZGlvX2J1c190eGN0bCBFbnRlcg0KWyAgICAxLjY3MjM2NF0gYnJj
bWZtYWM6IGJyY21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjcyMzc0XSBicmNtZm1hYzog
YnJjbWZfc2Rpb190eF9jdHJsZnJhbWUgRW50ZXINClsgICAgMS42NzI0MjZdIGJyY21mbWFj
OiBicmNtZl9zZGlvX2J1c19yeGN0bCBFbnRlcg0KWyAgICAxLjY3Mjc3NF0gYnJjbWZtYWM6
IGJyY21mX3NkaW9faXNyIEVudGVyDQpbICAgIDEuNjcyODA2XSBicmNtZm1hYzogYnJjbWZf
c2Rpb19kcGMgRW50ZXINClsgICAgMS42NzI4NzJdIGJyY21mbWFjOiBicmNtZl9zZGlvX3Jl
YWRmcmFtZXMgRW50ZXINClsgICAgMS42NzI5MDVdIGJyY21mbWFjOiBicmNtZl9zZGlvX3Jl
YWRfY29udHJvbCBFbnRlcg0KWyAgICAxLjY3Mjk1N10gYnJjbWZtYWM6IGJyY21mX3NkaW9f
YnVzX3J4Y3RsIHJlc3VtZWQgb24gcnhjdGwgZnJhbWUsIGdvdCA0NSBleHBlY3RlZCA0NQ0K
WyAgICAxLjY3Mjk2Nl0gYnJjbWZtYWM6IGJyY21mX2J0Y29leF9hdHRhY2ggZW50ZXINClsg
ICAgMS42NzI5NzJdIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50cyBlbmFi
bGUgZXZlbnQgU0VUX1NTSUQNClsgICAgMS42NzI5NzVdIGJyY21mbWFjOiBicmNtZl9md2Vo
X2FjdGl2YXRlX2V2ZW50cyBlbmFibGUgZXZlbnQgREVBVVRIDQpbICAgIDEuNjcyOTc4XSBi
cmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IERFQVVU
SF9JTkQNClsgICAgMS42NzI5ODJdIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2
ZW50cyBlbmFibGUgZXZlbnQgQVNTT0NfSU5EDQpbICAgIDEuNjcyOTg1XSBicmNtZm1hYzog
YnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IFJFQVNTT0NfSU5EDQpb
ICAgIDEuNjcyOTg4XSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5h
YmxlIGV2ZW50IERJU0FTU09DX0lORA0KWyAgICAxLjY3Mjk5MV0gYnJjbWZtYWM6IGJyY21m
X2Z3ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBMSU5LDQpbICAgIDEuNjcyOTk1
XSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IE1J
Q19FUlJPUg0KWyAgICAxLjY3Mjk5OF0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfYWN0aXZhdGVf
ZXZlbnRzIGVuYWJsZSBldmVudCBST0FNDQpbICAgIDEuNjczMDAyXSBicmNtZm1hYzogYnJj
bWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IFBGTl9ORVRfRk9VTkQNClsg
ICAgMS42NzMwMDVdIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50cyBlbmFi
bGUgZXZlbnQgUFNNX1dBVENIRE9HDQpbICAgIDEuNjczMDA5XSBicmNtZm1hYzogYnJjbWZf
ZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IElGDQpbICAgIDEuNjczMDEzXSBi
cmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IFAyUF9E
SVNDX0xJU1RFTl9DT01QTEVURQ0KWyAgICAxLjY3MzAxNl0gYnJjbWZtYWM6IGJyY21mX2Z3
ZWhfYWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBBQ1RJT05fRlJBTUVfQ09NUExFVEUN
ClsgICAgMS42NzMwMjBdIGJyY21mbWFjOiBicmNtZl9md2VoX2FjdGl2YXRlX2V2ZW50cyBl
bmFibGUgZXZlbnQgRVNDQU5fUkVTVUxUDQpbICAgIDEuNjczMDI0XSBicmNtZm1hYzogYnJj
bWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50IEFDVElPTl9GUkFNRV9PRkZf
Q0hBTl9DT01QTEVURQ0KWyAgICAxLjY3MzAyN10gYnJjbWZtYWM6IGJyY21mX2Z3ZWhfYWN0
aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBQMlBfUFJPQkVSRVFfTVNHDQpbICAgIDEuNjcz
MDMxXSBicmNtZm1hYzogYnJjbWZfZndlaF9hY3RpdmF0ZV9ldmVudHMgZW5hYmxlIGV2ZW50
IEFDVElPTl9GUkFNRV9SWA0KWyAgICAxLjY3MzAzNV0gYnJjbWZtYWM6IGJyY21mX2Z3ZWhf
YWN0aXZhdGVfZXZlbnRzIGVuYWJsZSBldmVudCBJRg0KWyAgICAxLjY3MzA0MV0gYnJjbWZt
YWM6IGJyY21mX2ZpbF9pb3Zhcl9kYXRhX3NldCBpZmlkeD0wLCBuYW1lPWV2ZW50X21zZ3Ms
IGxlbj0xOA0KWyAgICAxLjY3MzA0NF0gYnJjbXV0aWw6IGRhdGENClsgICAgMS42NzMwNjBd
IDAwMDAwMDAwOiA2MSAxNSAwYiAwMCAwMiAwMiBjMCAxMCA2MCAwOSAwMCAwMCAwMCAwMCAw
MCAwMCAgYS4uLi4uLi5gLi4uLi4uLg0KWyAgICAxLjY3MzA3MF0gMDAwMDAwMTA6IDAwIDAw
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLg0KWyAgICAx
LjY3MzA4MF0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3R4Y3RsIEVudGVyDQpbICAgIDEu
NjczMTE1XSBicmNtZm1hYzogYnJjbWZfc2Rpb19kcGMgRW50ZXINClsgICAgMS42NzMxMjRd
IGJyY21mbWFjOiBicmNtZl9zZGlvX3R4X2N0cmxmcmFtZSBFbnRlcg0KWyAgICAxLjY3MzIw
Nl0gYnJjbWZtYWM6IGJyY21mX3NkaW9fYnVzX3J4Y3RsIEVudGVyDQpbICAgIDEuNjczNTQw
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19pc3IgRW50ZXINClsgICAgMS42NzM1OTBdIGJyY21m
bWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY3MzY1OF0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fcmVhZGZyYW1lcyBFbnRlcg0KWyAgICAxLjY3MzY4OV0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fcmVhZF9jb250cm9sIEVudGVyDQpbICAgIDEuNjczNzYxXSBicmNtZm1hYzog
YnJjbWZfc2Rpb19idXNfcnhjdGwgcmVzdW1lZCBvbiByeGN0bCBmcmFtZSwgZ290IDQ1IGV4
cGVjdGVkIDQ1DQpbICAgIDEuNjczNzc2XSBicmNtZm1hYzogYnJjbWZfbmV0X2F0dGFjaCBF
bnRlciwgYnNzY2ZnaWR4PTAgbWFjPTk0OmExOmEyOmEzOjliOjk2DQpbICAgIDEuNjc0NDgy
XSBicmNtZm1hYzogYnJjbWZfc2Rpb19idXNfdHhjdGwgRW50ZXINClsgICAgMS42NzQ1MjBd
IGJyY21mbWFjOiBicmNtZl9zZGlvX2RwYyBFbnRlcg0KWyAgICAxLjY3NDU0MF0gYnJjbWZt
YWM6IGJyY21mX3NkaW9fdHhfY3RybGZyYW1lIEVudGVyDQpbICAgIDEuNjc0NjY2XSBicmNt
Zm1hYzogYnJjbWZfc2Rpb19idXNfcnhjdGwgRW50ZXINClsgICAgMS42NzUwNDBdIGJyY21m
bWFjOiBicmNtZl9zZGlvX2lzciBFbnRlcg0KWyAgICAxLjY3NTExMl0gYnJjbWZtYWM6IGJy
Y21mX3NkaW9fZHBjIEVudGVyDQpbICAgIDEuNjc1MjI2XSBicmNtZm1hYzogYnJjbWZfc2Rp
b19yZWFkZnJhbWVzIEVudGVyDQpbICAgIDEuNjc1Mjc5XSBicmNtZm1hYzogYnJjbWZfc2Rp
b19yZWFkX2NvbnRyb2wgRW50ZXINClsgICAgMS42NzUzNzZdIGJyY21mbWFjOiBicmNtZl9z
ZGlvX2J1c19yeGN0bCByZXN1bWVkIG9uIHJ4Y3RsIGZyYW1lLCBnb3QgMjkgZXhwZWN0ZWQg
MjkNClsgICAgMS42NzUzODldIGJyY21mbWFjOiBicmNtZl9maWxfaW92YXJfZGF0YV9nZXQg
aWZpZHg9MCwgbmFtZT1jaGFuc3BlYywgbGVuPTQNClsgICAgMS42NzUzOTRdIGJyY211dGls
OiBkYXRhDQpbICAgIDEuNjc1NDA2XSAwMDAwMDAwMDogMDEgMTAgMDAgMDAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLi4NClsgICAgMS42NzU0MjVdIGJyY21m
bWFjOiBicmNtZl9jZmc4MDIxMV9nZXRfdHhfcG93ZXIgRW50ZXINClsgICAgMS42NzU0MzBd
IGJyY21mbWFjOiBjaGVja192aWZfdXAgZGV2aWNlIGlzIG5vdCByZWFkeSA6IHN0YXR1cyAo
MCkNClsgICAgMS42NzU2NDVdIGJyY21mbWFjOiBicmNtZl9uZXRkZXZfZ2V0X3N0YXRzIEVu
dGVyLCBic3NjZmdpZHg9MA0KWyAgICAxLjY3NTY3MV0gYnJjbWZtYWM6IGJyY21mX25ldF9h
dHRhY2ggd2xhbjA6IEJyb2FkY29tIERvbmdsZSBIb3N0IERyaXZlcg0KWyAgICAxLjczNzA0
MF0gYnJjbWZtYWM6IGJyY21mX25ldGRldl9nZXRfc3RhdHMgRW50ZXIsIGJzc2NmZ2lkeD0w
DQoNCi0tLS0tT3JpZ2luYWwgbWVzc2FnZS0tLS0tDQpGcm9tOglBcmVuZCBWYW4gU3ByaWVs
IDxhcmVuZC52YW5zcHJpZWxAYnJvYWRjb20uY29tPg0KU2VudDoJU3VuIDE5LTAyLTIwMTcg
MjA6MzgNClN1YmplY3Q6CVJlOiBicmNtZm1hYzogQkNNNDM0M0EwIFAyUCBtb2RlIHByb2Js
ZW0NClRvOglTdGVmYW4gSG9sem1hbm4gPHN0ZWZhbi5ob2x6bWFubkBnbXgubmV0PjsgbGlu
dXgtd2lyZWxlc3NAdmdlci5rZXJuZWwub3JnOyANCj4gT24gMTktMi0yMDE3IDIwOjAwLCBT
dGVmYW4gSG9sem1hbm4gd3JvdGU6DQo+ID4gSGVsbG8sDQo+ID4gDQo+ID4gSSB0aGluayBt
eSBwcm9ibGVtIHdhcyBqdXN0IGEgZmlybXdhcmUgdmVyc2lvbiBpc3N1ZS4gV2hlbiBJIHVz
ZSB0aGUgZmlybXdhcmUgDQo+IGZpbGUgImZ3X2JjbTQzNDMuYmluIiBmcm9tIGhlcmUgDQo+
IGh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL2hhcmR3YXJlL2Jy
b2FkY29tL3dsYW4gSSdhbSBhYmxlIA0KPiBlc3RhYmxpc2ggYSBQMlAgY29ubmVjdGlvbi4N
Cj4gPiBJcyB0aGlzIHRoZSBsYXRlc3QvcmVjb21tZW5kZWQgZmlybXdhcmUgdmVyc2lvbiBm
b3IgdGhlIGNoaXBzZXQ/DQo+ID4gDQo+ID4gRmlybXdhcmUgdmVyc2lvbiA9IHdsMDogSnVs
ICAxIDIwMTYgMTg6MDI6NDAgdmVyc2lvbiA3LjEwLjEgKEEwIFN0YXRpb24vUDJQIA0KPiBm
ZWF0dXJlKSBGV0lEIDAxLWJhZThhZmVlDQo+IA0KPiBJIHdvdWxkIHN1Z2dlc3QgbG9va2lu
ZyBpbiBsaW51eC1maXJtd2FyZSByZXBvIG9uIGtlcm5lbC5vcmcgZm9yDQo+IHVwc3RyZWFt
IGZpcm13YXJlIGluc3RlYWQgb2YgdXNpbmcgQU9TUCBmaXJtd2FyZS4gSG93ZXZlciwgSSBh
bSBub3QNCj4gZW50aXJlbHkgc3VyZSB3aGV0aGVyIHdlIGhhdmUgdGhlIGZpcm13YXJlIGlu
IHBsYWNlIGZvciB5b3VyIGNoaXBzZXQuDQo+IA0KPiBDb3VsZCB5b3UgaW5zZXJ0IHRoZSBk
cml2ZXIgbW9kdWxlIHdpdGggcGFyYW1ldGVyIGRlYnVnPTB4MTQxNiBhbmQgc2VuZA0KPiBt
ZSBkbWVzZyBvdXRwdXQuDQo+IA0KPiBSZWdhcmRzLA0KPiBBcmVuZA0KPg==

^ permalink raw reply

* Re: [PATCH] Fix rtl8187 multicast reception
From: Larry Finger @ 2017-02-19 21:23 UTC (permalink / raw)
  To: Nils Holland; +Cc: Kalle Valo, linux-wireless
In-Reply-To: <20170219185332.GA7643@tisys.org>

On 02/19/2017 12:53 PM, Nils Holland wrote:
> On Sun, Feb 19, 2017 at 12:11:50PM -0600, Larry Finger wrote:
>> On 02/19/2017 07:29 AM, Kalle Valo wrote:
>>> Nils Holland <nholland@tisys.org> writes:
>>>
>>>> On Sun, Feb 19, 2017 at 09:46:16AM +0200, Kalle Valo wrote:
>>>>> Larry Finger <Larry.Finger@lwfinger.net> writes:
>>>>>
>>>>>> On 02/18/2017 07:35 PM, Nils Holland wrote:
>>>>>>
>>>>>> I would prefer a module parameter that would allow this change to be
>>>>>> implemented only if the user takes special action. I suspect that you
>>>>>> will have no difficulty preparing such a change. If that is not true,
>>>>>> I would be happy to help.
>>>>>
>>>>> I understand why you prefer having a module parameter but the thing is
>>>>> that being able to receive multicast frames is really basic
>>>>> functionality. We should not hide it under a module parameter.
>>>>
>>>> Well, this is a tough question, I have to admit that I have a somewhat
>>>> weird feeling making a change that also applies to other hardware that
>>>> I cannot test on, so I don't know about any negative consequences that
>>>> might arise there, especially when the change isn't based on some
>>>> official information from some documentation, but rather a result of
>>>> trial & error. So I can fully understand Larry's concerns and do in
>>>> fact think that a module parameter could be a nice solution, so that
>>>> by default the behavior if the driver does not change.
>>>
>>> There are lots of hardware variations that cannot be tested when a patch
>>> is commited. If we followed the same methdology with all patches we
>>> would have thousands of module parameters in kernel in no time :)
>>>
>>>> From an end-user standpoint, it's probably always worse to see
>>>> something break which has always worked before than it is to have
>>>> something not work properly right from the start, but being able to
>>>> easily find some parameter to fix this.
>>>
>>> Sure. But if there's a report about this patch breaking something, it's
>>> easy to revert it.
>>>
>>>> On the other hand, use of this particular USB wifi card is probably
>>>> not so common these days so relatively few people would notice at all.
>>>> Tough! I guess I'll submit a module parameter based v2 of the patch
>>>> later today, just as Larry suggested!
>>>
>>> Also remember to add a prefix to the title:
>>>
>>> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#subject
>>>
>>>>> Isn't there any other option, for example does anyone have hw to test
>>>>> this with other hw? (what exactly?) Or maybe we just take the risk and
>>>>> take it as is and revert if problems arise?
>>>>
>>>> Of course, if someone has other hw, more testing would be nice! Any
>>>> situation where the card is supposed to receive multicast frames
>>>> should be suitable as a test case - in my case, just connecting to my
>>>> local network and expecting to see the card pick up RAs and acquire an
>>>> IPv6 address is the easiest test case. This works nicely on several
>>>> other machines with completely different wifi hardware as well as
>>>> wired machines, but fails without the fix on the rtl8187b. It would,
>>>> for example, be interesting to see if a non-b 8187 behaves the same or
>>>> if things work there out of the box.
>>>
>>> I'm not familiar with the driver so when you say "non-b 8187" what do
>>> you mean exactly? What kind of hardware are we talking about? How many
>>> different hardware versions are there that this patch affects? Is the
>>> firmware/hardware really so different that the chances are high that
>>> this breaks something?
>>>
>>>> In that case, instead of doing a module parameter, I could also change
>>>> the fix so that it only does something different on the b-variants of
>>>> the card and doesn't change behavior at all on non-b.
>>>
>>> Now that's much better option than adding a module parameter.
>>
>> There are three variants of the chip, the RTL8187, RTL8187L, and RTL8187B.
>> Programming for the first two are the same. The RTL8187B has a number of newer
>> features such as priority queues and a more complete set of parameters in the
>> descriptors.
>>
>> OK, for the moment I agree to this patch with a respin of the commit message. I
>> will test with my 8187L device. If those fail, I will request that it be limited
>> to the 8187B.
>
> Sounds good, so I guess I'll wait for your report regarding behavior
> on your 8187l. Then, I'll either re-submit the patch as a v2 with a
> reworked commit message and proper tag in the title, or, if the fix
> as-is causes problems on the 8187l, re-submit the patch with limiting
> the scope of its change to the 8187b only. Sounds good? :-)

The 8187L is working as expected. The only downside of your patch is that the 
NIC is put into monitor mode silently, which is probably a security hole. As 
Kalle is opposed to a module parameter, then I guess that is an acceptable risk. 
Go ahead with V2 with the revised tag and commit message.

Larry

^ permalink raw reply

* [PATCH v2] rtl8187: Enable monitor mode to fix multicast reception
From: Nils Holland @ 2017-02-19 23:59 UTC (permalink / raw)
  To: linux-wireless; +Cc: Larry Finger, Kalle Valo

The rtl8187 cards don't seem to receive multicast frames, which,
among other things, makes them fail to receive RAs in IPv6 networks.
The cause seems to be that the RTL818X_RX_CONF_MULTICAST flag doesn't
have the desired effect.

Fix the issue by setting RTL818X_RX_CONF_MONITOR instead, which puts the
card into monitor mode and resolves the problem so that multicast frames
are sucessfully passed to the kernel.

The existence of the problem and the effectiveness of the solution has
originally been confirmed on an 8187B based card with the USB id of
0bda:8197. Subsequent testing by Larry Finger on an 8187L based card,
which follows the second (8187, i.e. "non-b") code path in the driver,
has confirmed that the fix does not cause any noticeable regresssions
there either.

Signed-off-by: Nils Holland <nholland@tisys.org>
---
 drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
index 231f84db9ab0..56a8686cd367 100644
--- a/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
+++ b/drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c
@@ -946,8 +946,7 @@ static int rtl8187_start(struct ieee80211_hw *dev)
 		      (7 << 13 /* RX FIFO threshold NONE */) |
 		      (7 << 10 /* MAX RX DMA */) |
 		      RTL818X_RX_CONF_RX_AUTORESETPHY |
-		      RTL818X_RX_CONF_ONLYERLPKT |
-		      RTL818X_RX_CONF_MULTICAST;
+		      RTL818X_RX_CONF_ONLYERLPKT;
 		priv->rx_conf = reg;
 		rtl818x_iowrite32(priv, &priv->map->RX_CONF, reg);
 
@@ -1319,12 +1318,11 @@ static void rtl8187_configure_filter(struct ieee80211_hw *dev,
 		priv->rx_conf ^= RTL818X_RX_CONF_FCS;
 	if (changed_flags & FIF_CONTROL)
 		priv->rx_conf ^= RTL818X_RX_CONF_CTRL;
-	if (changed_flags & FIF_OTHER_BSS)
-		priv->rx_conf ^= RTL818X_RX_CONF_MONITOR;
-	if (*total_flags & FIF_ALLMULTI || multicast > 0)
-		priv->rx_conf |= RTL818X_RX_CONF_MULTICAST;
+	if (*total_flags & FIF_OTHER_BSS ||
+	    *total_flags & FIF_ALLMULTI || multicast > 0)
+		priv->rx_conf |= RTL818X_RX_CONF_MONITOR;
 	else
-		priv->rx_conf &= ~RTL818X_RX_CONF_MULTICAST;
+		priv->rx_conf &= ~RTL818X_RX_CONF_MONITOR;
 
 	*total_flags = 0;
 
@@ -1332,10 +1330,10 @@ static void rtl8187_configure_filter(struct ieee80211_hw *dev,
 		*total_flags |= FIF_FCSFAIL;
 	if (priv->rx_conf & RTL818X_RX_CONF_CTRL)
 		*total_flags |= FIF_CONTROL;
-	if (priv->rx_conf & RTL818X_RX_CONF_MONITOR)
+	if (priv->rx_conf & RTL818X_RX_CONF_MONITOR) {
 		*total_flags |= FIF_OTHER_BSS;
-	if (priv->rx_conf & RTL818X_RX_CONF_MULTICAST)
 		*total_flags |= FIF_ALLMULTI;
+	}
 
 	rtl818x_iowrite32_async(priv, &priv->map->RX_CONF, priv->rx_conf);
 }
-- 
2.11.1

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox