In D14729 we implemented zeroing the cached password in memory when a the owner widget is destructed.
This causes an issue when the password is initially cached by a parent widget (`AvaDelegationWidget`) and then passed to a child widget (`AuxiliaryKeysDialog`), because python passes a reference to the password. So when the child widget is destructed, the password is zeroed in memory also for the parent widget, which then causes an error when the parent widget tries to use it to decrypt the wallet.
```
File "/home/pierre/dev/bitcoin-abc/electrum/electrumabc/bitcoin.py", line 296, in aes_decrypt_with_iv
return strip_PKCS7_padding(data)
File "/home/pierre/dev/bitcoin-abc/electrum/electrumabc/bitcoin.py", line 267, in strip_PKCS7_padding
raise InvalidPadding("invalid padding byte (large)")
electrumabc.bitcoin.InvalidPadding: invalid padding byte (large)
```
We need to pass a copy of the password to the child widget. Each widget will then be responsible for zeroing its own piece of memory.