/packages/modules/Bluetooth/system/gd/rust/linux/stack/src/ |
D | bluetooth_media.rs | 225 fn on_bluetooth_audio_device_removed(&mut self, addr: RawAddress); in on_bluetooth_audio_device_removed() 239 fn on_hfp_volume_changed(&mut self, volume: u8, addr: RawAddress); in on_hfp_volume_changed() 244 fn on_hfp_audio_disconnected(&mut self, addr: RawAddress); in on_hfp_audio_disconnected() 274 addr: RawAddress, in on_lea_group_node_status() 296 fn on_lea_vc_connected(&mut self, addr: RawAddress, group_id: i32); in on_lea_vc_connected() 347 fn on_telephony_event(&mut self, addr: RawAddress, event: u8, state: u8); in on_telephony_event() 563 fn is_profile_connected(&self, addr: &RawAddress, profile: &Profile) -> bool { in is_profile_connected() 564 self.is_any_profile_connected(addr, &[profile.clone()]) in is_profile_connected() 567 fn is_any_profile_connected(&self, addr: &RawAddress, profiles: &[Profile]) -> bool { in is_any_profile_connected() 568 if let Some(connected_profiles) = self.connected_profiles.get(addr) { in is_any_profile_connected() [all …]
|
/packages/modules/Connectivity/framework/src/android/net/util/ |
D | DnsUtils.java | 118 public SortableAddress(@NonNull InetAddress addr, @Nullable InetAddress srcAddr) { in SortableAddress() argument 119 address = addr; in SortableAddress() 121 label = findLabel(addr); in SortableAddress() 122 scope = findScope(addr); in SortableAddress() 123 precedence = findPrecedence(addr); in SortableAddress() 126 if (isIpv6Address(addr) && isIpv6Address(srcAddr)) { in SortableAddress() 127 prefixMatchLen = compareIpv6PrefixMatchLen(srcAddr, addr); in SortableAddress() 143 for (InetAddress addr : answers) { in rfc6724Sort() 144 sortableAnswerList.add(new SortableAddress(addr, findSrcAddress(network, addr))); in rfc6724Sort() 158 @NonNull InetAddress addr) { in findSrcAddress() argument [all …]
|
/packages/modules/Connectivity/framework/src/android/net/ |
D | MacAddress.java | 49 private static final byte[] ETHER_ADDR_BROADCAST = addr(0xff, 0xff, 0xff, 0xff, 0xff, 0xff); 101 private MacAddress(long addr) { in MacAddress() argument 102 mAddr = (VALID_LONG_MASK & addr); in MacAddress() 198 public static boolean isMacAddress(byte[] addr) { in isMacAddress() argument 199 return MacAddressUtils.isMacAddress(addr); in isMacAddress() 213 public static int macAddressType(byte[] addr) { in macAddressType() argument 214 if (!isMacAddress(addr)) { in macAddressType() 217 return MacAddress.fromBytes(addr).getAddressType(); in macAddressType() 231 public static @NonNull byte[] byteAddrFromStringAddr(String addr) { in byteAddrFromStringAddr() argument 232 Objects.requireNonNull(addr); in byteAddrFromStringAddr() [all …]
|
/packages/modules/Bluetooth/android/app/jni/ |
D | com_android_bluetooth_hfp.cpp | 63 jbyteArray addr = sCallbackEnv->NewByteArray(sizeof(RawAddress)); in marshall_bda() local 64 if (!addr) { in marshall_bda() 68 sCallbackEnv->SetByteArrayRegion(addr, 0, sizeof(RawAddress), in marshall_bda() 70 return addr; in marshall_bda() 89 ScopedLocalRef<jbyteArray> addr(sCallbackEnv.get(), marshall_bda(bd_addr)); in ConnectionStateCallback() local 90 if (!addr.get()) return; in ConnectionStateCallback() 93 (jint)state, addr.get()); in ConnectionStateCallback() 104 ScopedLocalRef<jbyteArray> addr(sCallbackEnv.get(), marshall_bda(bd_addr)); in AudioStateCallback() local 105 if (!addr.get()) return; in AudioStateCallback() 108 (jint)state, addr.get()); in AudioStateCallback() [all …]
|
D | com_android_bluetooth_hfpclient.cpp | 61 jbyteArray addr = sCallbackEnv->NewByteArray(sizeof(RawAddress)); in marshall_bda() local 62 if (!addr) { in marshall_bda() 66 sCallbackEnv->SetByteArrayRegion(addr, 0, sizeof(RawAddress), in marshall_bda() 68 return addr; in marshall_bda() 79 ScopedLocalRef<jbyteArray> addr(sCallbackEnv.get(), marshall_bda(bd_addr)); in connection_state_cb() local 80 if (!addr.get()) return; in connection_state_cb() 85 addr.get()); in connection_state_cb() 94 ScopedLocalRef<jbyteArray> addr(sCallbackEnv.get(), marshall_bda(bd_addr)); in audio_state_cb() local 95 if (!addr.get()) return; in audio_state_cb() 98 (jint)state, addr.get()); in audio_state_cb() [all …]
|
D | com_android_bluetooth_vc.cpp | 58 ScopedLocalRef<jbyteArray> addr( in OnConnectionState() local 60 if (!addr.get()) { in OnConnectionState() 65 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in OnConnectionState() 68 (jint)state, addr.get()); in OnConnectionState() 79 ScopedLocalRef<jbyteArray> addr( in OnVolumeStateChanged() local 81 if (!addr.get()) { in OnVolumeStateChanged() 86 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in OnVolumeStateChanged() 89 (jint)volume, (jboolean)mute, addr.get(), (jboolean)isAutonomous); in OnVolumeStateChanged() 113 ScopedLocalRef<jbyteArray> addr( in OnDeviceAvailable() local 115 if (!addr.get()) { in OnDeviceAvailable() [all …]
|
D | com_android_bluetooth_avrcp_controller.cpp | 76 ScopedLocalRef<jbyteArray> addr( in btavrcp_connection_state_callback() local 78 if (!addr.get()) { in btavrcp_connection_state_callback() 83 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in btavrcp_connection_state_callback() 87 addr.get()); in btavrcp_connection_state_callback() 112 ScopedLocalRef<jbyteArray> addr( in btavrcp_playerapplicationsetting_callback() local 114 if (!addr.get()) { in btavrcp_playerapplicationsetting_callback() 118 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in btavrcp_playerapplicationsetting_callback() 150 addr.get(), playerattribs.get(), (jint)arraylen); in btavrcp_playerapplicationsetting_callback() 164 ScopedLocalRef<jbyteArray> addr( in btavrcp_playerapplicationsetting_changed_callback() local 166 if (!addr.get()) { in btavrcp_playerapplicationsetting_changed_callback() [all …]
|
D | com_android_bluetooth_hid_host.cpp | 42 jbyteArray addr = sCallbackEnv->NewByteArray(sizeof(RawAddress)); in marshall_bda() local 43 if (!addr) { in marshall_bda() 47 sCallbackEnv->SetByteArrayRegion(addr, 0, sizeof(RawAddress), in marshall_bda() 49 return addr; in marshall_bda() 63 ScopedLocalRef<jbyteArray> addr(sCallbackEnv.get(), marshall_bda(bd_addr)); in connection_state_callback() local 64 if (!addr.get()) { in connection_state_callback() 70 addr.get(), (jint)addr_type, (jint)transport, in connection_state_callback() 91 ScopedLocalRef<jbyteArray> addr(sCallbackEnv.get(), marshall_bda(bd_addr)); in get_protocol_mode_callback() local 92 if (!addr.get()) { in get_protocol_mode_callback() 98 addr.get(), (jint)addr_type, (jint)transport, in get_protocol_mode_callback() [all …]
|
D | com_android_bluetooth_hap_client.cpp | 81 ScopedLocalRef<jbyteArray> addr( in OnConnectionState() local 83 if (!addr.get()) { in OnConnectionState() 88 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in OnConnectionState() 91 (jint)state, addr.get()); in OnConnectionState() 99 ScopedLocalRef<jbyteArray> addr( in OnDeviceAvailable() local 101 if (!addr.get()) { in OnDeviceAvailable() 105 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in OnDeviceAvailable() 109 addr.get(), (jint)features); in OnDeviceAvailable() 117 ScopedLocalRef<jbyteArray> addr( in OnFeaturesUpdate() local 119 if (!addr.get()) { in OnFeaturesUpdate() [all …]
|
D | com_android_bluetooth_a2dp_sink.cpp | 46 ScopedLocalRef<jbyteArray> addr( in a2dp_sink_connection_state_callback() local 48 if (!addr.get()) { in a2dp_sink_connection_state_callback() 53 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in a2dp_sink_connection_state_callback() 56 addr.get(), (jint)state); in a2dp_sink_connection_state_callback() 68 ScopedLocalRef<jbyteArray> addr( in a2dp_sink_audio_state_callback() local 70 if (!addr.get()) { in a2dp_sink_audio_state_callback() 75 sCallbackEnv->SetByteArrayRegion(addr.get(), 0, sizeof(RawAddress), in a2dp_sink_audio_state_callback() 78 addr.get(), (jint)state); in a2dp_sink_audio_state_callback() 91 ScopedLocalRef<jbyteArray> addr( in a2dp_sink_audio_config_callback() local 93 if (!addr.get()) { in a2dp_sink_audio_config_callback() [all …]
|
/packages/modules/Bluetooth/floss/pandora/floss/ |
D | gatt_client.py | 38 def on_client_connection_state(self, status, client_id, connected, addr): argument 49 def on_phy_update(self, addr, tx_phy, rx_phy, status): argument 60 def on_phy_read(self, addr, tx_phy, rx_phy, status): argument 71 def on_search_complete(self, addr, services, status): argument 81 def on_characteristic_read(self, addr, status, handle, value): argument 92 def on_characteristic_write(self, addr, status, handle): argument 102 def on_execute_write(self, addr, status): argument 111 def on_descriptor_read(self, addr, status, handle, value): argument 122 def on_descriptor_write(self, addr, status, handle): argument 132 def on_notify(self, addr, handle, value): argument [all …]
|
/packages/modules/Bluetooth/system/gd/rust/topshim/hfp/ |
D | hfp_shim.cc | 37 static void connection_state_cb(bluetooth::headset::bthf_connection_state_t state, RawAddress* addr… in connection_state_cb() argument 38 rusty::hfp_connection_state_callback(state, *addr); in connection_state_cb() 41 static void audio_state_cb(bluetooth::headset::bthf_audio_state_t state, RawAddress* addr) { in audio_state_cb() argument 42 rusty::hfp_audio_state_callback(state, *addr); in audio_state_cb() 45 static void volume_update_cb(uint8_t volume, RawAddress* addr) { in volume_update_cb() argument 46 rusty::hfp_volume_update_callback(volume, *addr); in volume_update_cb() 49 static void mic_volume_update_cb(uint8_t volume, RawAddress* addr) { in mic_volume_update_cb() argument 50 rusty::hfp_mic_volume_update_callback(volume, *addr); in mic_volume_update_cb() 53 static void vendor_specific_at_command_cb(char* at_string, RawAddress* addr) { in vendor_specific_at_command_cb() argument 54 rusty::hfp_vendor_specific_at_command_callback(::rust::String{at_string}, *addr); in vendor_specific_at_command_cb() [all …]
|
D | hfp_shim.h | 39 uint32_t connect(RawAddress addr); 40 int connect_audio(RawAddress addr, bool sco_offload, int disabled_codecs); 41 int set_active_device(RawAddress addr); 42 int set_volume(int8_t volume, RawAddress addr); 43 uint32_t set_mic_volume(int8_t volume, RawAddress addr); 44 uint32_t disconnect(RawAddress addr); 45 int disconnect_audio(RawAddress addr); 46 uint32_t device_status_notification(TelephonyDeviceStatus status, RawAddress addr); 48 TelephonyDeviceStatus device_status, PhoneState phone_state, RawAddress addr); 49 uint32_t current_calls_query_response(const ::rust::Vec<CallInfo>& call_list, RawAddress addr); [all …]
|
/packages/modules/Bluetooth/system/device/include/ |
D | device_iot_config.h | 60 #define DEVICE_IOT_CONFIG_ADDR(method, addr, ...) \ argument 61 device_iot_config_##method((addr).ToString(), ##__VA_ARGS__) 63 #define DEVICE_IOT_CONFIG_ADDR_GET_INT(addr, ...) \ argument 64 DEVICE_IOT_CONFIG_ADDR(get_int, addr, ##__VA_ARGS__) 66 #define DEVICE_IOT_CONFIG_ADDR_SET_INT(addr, ...) \ argument 67 DEVICE_IOT_CONFIG_ADDR(set_int, addr, ##__VA_ARGS__) 69 #define DEVICE_IOT_CONFIG_ADDR_INT_ADD_ONE(addr, ...) \ argument 70 DEVICE_IOT_CONFIG_ADDR(int_add_one, addr, ##__VA_ARGS__) 72 #define DEVICE_IOT_CONFIG_ADDR_GET_HEX(addr, ...) \ argument 73 DEVICE_IOT_CONFIG_ADDR(get_hex, addr, ##__VA_ARGS__) [all …]
|
/packages/modules/Bluetooth/system/gd/rust/topshim/src/profiles/ |
D | vc.rs | 34 fn connect(self: Pin<&mut VolumeControlIntf>, addr: RawAddress); in connect() 35 fn disconnect(self: Pin<&mut VolumeControlIntf>, addr: RawAddress); in disconnect() 36 fn remove_device(self: Pin<&mut VolumeControlIntf>, addr: RawAddress); in remove_device() 38 fn mute(self: Pin<&mut VolumeControlIntf>, addr: RawAddress); in mute() 39 fn unmute(self: Pin<&mut VolumeControlIntf>, addr: RawAddress); in unmute() 42 addr: RawAddress, in get_ext_audio_out_volume_offset() 47 addr: RawAddress, in set_ext_audio_out_volume_offset() 53 addr: RawAddress, in get_ext_audio_out_location() 58 addr: RawAddress, in set_ext_audio_out_location() 64 addr: RawAddress, in get_ext_audio_out_description() [all …]
|
D | hfp.rs | 211 addr: RawAddress, in device_status_notification() 217 addr: RawAddress, in indicator_query_response() 222 addr: RawAddress, in current_calls_query_response() 228 addr: RawAddress, in phone_state_change() 230 fn simple_at_response(self: Pin<&mut HfpIntf>, ok: bool, addr: RawAddress) -> u32; in simple_at_response() 236 fn hfp_connection_state_callback(state: u32, addr: RawAddress); in hfp_connection_state_callback() 237 fn hfp_audio_state_callback(state: u32, addr: RawAddress); in hfp_audio_state_callback() 238 fn hfp_volume_update_callback(volume: u8, addr: RawAddress); in hfp_volume_update_callback() 239 fn hfp_mic_volume_update_callback(volume: u8, addr: RawAddress); in hfp_mic_volume_update_callback() 240 fn hfp_vendor_specific_at_command_callback(at_string: String, addr: RawAddress); in hfp_vendor_specific_at_command_callback() [all …]
|
/packages/modules/Bluetooth/system/bta/groups/ |
D | groups.cc | 47 void Add(const RawAddress& addr) { devices_.insert(addr); } in Add() argument 48 void Remove(const RawAddress& addr) { devices_.erase(addr); } in Remove() argument 49 bool Contains(const RawAddress& addr) const { in Contains() 50 return (devices_.count(addr) != 0); in Contains() 54 for (auto const& addr : devices_) { in ForEachDevice() local 55 cb(addr); in ForEachDevice() 85 int GetGroupId(const RawAddress& addr, Uuid uuid) const override { in GetGroupId() argument 87 if ((g.Contains(addr)) && (uuid == g.GetUuid())) return id; in GetGroupId() 92 void add_to_group(const RawAddress& addr, DeviceGroup* group) { in add_to_group() argument 93 group->Add(addr); in add_to_group() [all …]
|
/packages/modules/Connectivity/staticlibs/framework/com/android/net/module/util/ |
D | MacAddressUtils.java | 80 long addr; in createRandomUnicastAddress() local 83 addr = r.nextLong() & VALID_LONG_MASK; in createRandomUnicastAddress() 85 addr = (longAddrFromByteAddr(base.toByteArray()) & OUI_MASK) in createRandomUnicastAddress() 88 addr |= LOCALLY_ASSIGNED_MASK; in createRandomUnicastAddress() 89 addr &= ~MULTICAST_MASK; in createRandomUnicastAddress() 90 MacAddress mac = MacAddress.fromBytes(byteAddrFromLongAddr(addr)); in createRandomUnicastAddress() 100 public static long longAddrFromByteAddr(byte[] addr) { in longAddrFromByteAddr() argument 101 Objects.requireNonNull(addr); in longAddrFromByteAddr() 102 if (!isMacAddress(addr)) { in longAddrFromByteAddr() 104 Arrays.toString(addr) + " was not a valid MAC address"); in longAddrFromByteAddr() [all …]
|
/packages/modules/Bluetooth/system/test/mock/ |
D | mock_device_interop.h | 47 std::function<void(const uint16_t feature, const RawAddress* addr, 51 void operator()(const uint16_t feature, const RawAddress* addr, in operator() 53 body(feature, addr, length); in operator() 62 std::function<void(const uint16_t feature, const RawAddress* addr, 66 void operator()(const uint16_t feature, const RawAddress* addr, in operator() 68 body(feature, addr, length); in operator() 77 std::function<void(const interop_feature_t feature, const RawAddress* addr, 82 void operator()(const interop_feature_t feature, const RawAddress* addr, in operator() 84 body(feature, addr, lmp_ver, lmp_sub_ver); in operator() 94 std::function<void(const interop_feature_t feature, const RawAddress* addr, [all …]
|
/packages/modules/Bluetooth/tools/rootcanal/model/controller/ |
D | acl_connection_handler.cc | 71 bool AclConnectionHandler::CreatePendingConnection(Address addr, in CreatePendingConnection() argument 74 if (classic_connection_pending_ || GetAclConnectionHandle(addr).has_value()) { in CreatePendingConnection() 78 pending_connection_address_ = addr; in CreatePendingConnection() 84 bool AclConnectionHandler::HasPendingConnection(Address addr) const { in HasPendingConnection() 85 return classic_connection_pending_ && pending_connection_address_ == addr; in HasPendingConnection() 92 bool AclConnectionHandler::CancelPendingConnection(Address addr) { in CancelPendingConnection() argument 93 if (!classic_connection_pending_ || pending_connection_address_ != addr) { in CancelPendingConnection() 129 bool AclConnectionHandler::HasPendingLeConnection(AddressWithType addr) const { in HasPendingLeConnection() 130 return le_connection_pending_ && pending_le_connection_address_ == addr; in HasPendingLeConnection() 133 bool AclConnectionHandler::CancelPendingLeConnection(AddressWithType addr) { in CancelPendingLeConnection() argument [all …]
|
/packages/modules/Connectivity/service/native/libs/libclat/ |
D | clatutils_test.cpp | 52 bool only2Free(in_addr_t addr) { in only2Free() argument 53 return (ntohl(addr) & 0xff) == 2; in only2Free() 55 bool over6Free(in_addr_t addr) { in over6Free() argument 56 return (ntohl(addr) & 0xff) >= 6; in over6Free() 58 bool only10Free(in_addr_t addr) { in only10Free() argument 59 return (ntohl(addr) & 0xff) == 10; in only10Free() 70 struct in_addr addr; in TEST_F() local 72 inet_pton(AF_INET, kIPv4LocalAddr, &addr); in TEST_F() 75 EXPECT_EQ(INADDR_NONE, selectIpv4Address(addr, 29, neverFree)); in TEST_F() 76 EXPECT_EQ(INADDR_NONE, selectIpv4Address(addr, 16, neverFree)); in TEST_F() [all …]
|
/packages/modules/Bluetooth/system/gd/rust/topshim/csis/ |
D | csis_shim.cc | 76 static void connection_state_cb(const RawAddress& addr, csis::ConnectionState state) { in connection_state_cb() argument 77 csis_connection_state_callback(addr, to_rust_btcsis_connection_state(state)); in connection_state_cb() 81 const RawAddress& addr, int group_id, int group_size, int rank, const bluetooth::Uuid& uuid) { in device_available_cb() argument 82 csis_device_available_callback(addr, group_id, group_size, rank, uuid); in device_available_cb() 85 static void set_member_available_cb(const RawAddress& addr, int group_id) { in set_member_available_cb() argument 86 csis_set_member_available_callback(addr, group_id); in set_member_available_cb() 103 void OnConnectionState(const RawAddress& addr, csis::ConnectionState state) override { in OnConnectionState() argument 104 log::info("addr={}, state={}", ADDRESS_TO_LOGGABLE_CSTR(addr), static_cast<uint8_t>(state)); in OnConnectionState() 105 topshim::rust::internal::connection_state_cb(addr, state); in OnConnectionState() 109 const RawAddress& addr, in OnDeviceAvailable() argument [all …]
|
/packages/modules/NetworkStack/src/android/net/dhcp/ |
D | DhcpLeaseRepository.java | 172 final Inet4Address addr = it.next().getKey(); in cleanMap() local 173 if (!isValidAddress(addr) || mReservedAddrs.contains(addr)) { in cleanMap() 248 @Nullable Inet4Address addr) { in isIpAddrOutsidePrefix() argument 249 return addr != null && !addr.equals(IPV4_ADDR_ANY) && !prefix.contains(addr); in isIpAddrOutsidePrefix() 331 @NonNull Inet4Address addr, @Nullable String hostname, long currentTime) in checkClientAndMakeLease() argument 334 final DhcpLease currentLease = mCommittedLeases.getOrDefault(addr, null); in checkClientAndMakeLease() 341 if (isValidAddress(addr) && !mReservedAddrs.contains(addr)) { in checkClientAndMakeLease() 342 lease = new DhcpLease(clientId, hwAddr, addr, mPrefixLength, expTime, hostname); in checkClientAndMakeLease() 371 @NonNull Inet4Address addr) { in releaseLease() argument 372 final DhcpLease currentLease = mCommittedLeases.getOrDefault(addr, null); in releaseLease() [all …]
|
/packages/modules/Bluetooth/system/gd/hal/ |
D | snoop_logger_socket_thread_test.cc | 104 struct sockaddr_in addr; in TEST_F() local 105 addr.sin_family = AF_INET; in TEST_F() 106 addr.sin_addr.s_addr = htonl(SnoopLoggerSocket::DEFAULT_LOCALHOST_); in TEST_F() 107 addr.sin_port = htons(SnoopLoggerSocket::DEFAULT_LISTEN_PORT_); in TEST_F() 110 RUN_NO_INTR(ret = connect(socket_fd, (struct sockaddr*)&addr, sizeof(addr))); in TEST_F() 131 struct sockaddr_in addr; in TEST_F() local 132 addr.sin_family = AF_INET; in TEST_F() 133 addr.sin_addr.s_addr = htonl(SnoopLoggerSocket::DEFAULT_LOCALHOST_); in TEST_F() 134 addr.sin_port = htons(SnoopLoggerSocket::DEFAULT_LISTEN_PORT_); in TEST_F() 137 RUN_NO_INTR(ret = connect(socket_fd, (struct sockaddr*)&addr, sizeof(addr))); in TEST_F() [all …]
|
/packages/modules/Bluetooth/system/gd/rust/linux/service/src/ |
D | iface_bluetooth_gatt.rs | 48 addr: RawAddress, in on_client_connection_state() 56 addr: RawAddress, in on_phy_update() 65 fn on_phy_read(&mut self, addr: RawAddress, tx_phy: LePhy, rx_phy: LePhy, status: GattStatus) { in on_phy_read() 72 addr: RawAddress, in on_search_complete() 82 addr: RawAddress, in on_characteristic_read() 91 fn on_characteristic_write(&mut self, addr: RawAddress, status: GattStatus, handle: i32) { in on_characteristic_write() 96 fn on_execute_write(&mut self, addr: RawAddress, status: GattStatus) { in on_execute_write() 103 addr: RawAddress, in on_descriptor_read() 112 fn on_descriptor_write(&mut self, addr: RawAddress, status: GattStatus, handle: i32) { in on_descriptor_write() 117 fn on_notify(&mut self, addr: RawAddress, handle: i32, value: Vec<u8>) { in on_notify() [all …]
|