diff options
author | Liam <byteslice@airmail.cc> | 2023-03-12 04:10:38 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2023-03-12 16:33:01 +0100 |
commit | 600f325d87e42f856da58c42a5280f098ebb6e8c (patch) | |
tree | 75c4fe48af55186a4e420e94a1d7e1bfd92e4ec0 /src/core | |
parent | general: use codespell to identify spelling mistakes (diff) | |
download | yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.tar yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.tar.gz yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.tar.bz2 yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.tar.lz yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.tar.xz yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.tar.zst yuzu-600f325d87e42f856da58c42a5280f098ebb6e8c.zip |
Diffstat (limited to 'src/core')
30 files changed, 44 insertions, 44 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 4a1372d15..bd2082fd6 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp @@ -358,7 +358,7 @@ struct System::Impl { void ShutdownMainProcess() { SetShuttingDown(true); - // Log last frame performance stats if game was loded + // Log last frame performance stats if game was loaded if (perf_stats) { const auto perf_results = GetAndResetPerfStats(); constexpr auto performance = Common::Telemetry::FieldType::Performance; diff --git a/src/core/core.h b/src/core/core.h index 91e78672e..5843696d4 100644 --- a/src/core/core.h +++ b/src/core/core.h @@ -146,7 +146,7 @@ public: /** * Initializes the system - * This function will initialize core functionaility used for system emulation + * This function will initialize core functionality used for system emulation */ void Initialize(); diff --git a/src/core/core_timing.h b/src/core/core_timing.h index 4b89c0c39..e7c4a949f 100644 --- a/src/core/core_timing.h +++ b/src/core/core_timing.h @@ -150,7 +150,7 @@ private: // The queue is a min-heap using std::make_heap/push_heap/pop_heap. // We don't use std::priority_queue because we need to be able to serialize, unserialize and // erase arbitrary events (RemoveEvent()) regardless of the queue order. These aren't - // accomodated by the standard adaptor class. + // accommodated by the standard adaptor class. std::vector<Event> event_queue; u64 event_fifo_id = 0; diff --git a/src/core/crypto/ctr_encryption_layer.h b/src/core/crypto/ctr_encryption_layer.h index 77f08d776..d85ad8f78 100644 --- a/src/core/crypto/ctr_encryption_layer.h +++ b/src/core/crypto/ctr_encryption_layer.h @@ -11,7 +11,7 @@ namespace Core::Crypto { -// Sits on top of a VirtualFile and provides CTR-mode AES decription. +// Sits on top of a VirtualFile and provides CTR-mode AES description. class CTREncryptionLayer : public EncryptionLayer { public: using IVData = std::array<u8, 16>; diff --git a/src/core/crypto/key_manager.h b/src/core/crypto/key_manager.h index dbf9ebfe4..673cec463 100644 --- a/src/core/crypto/key_manager.h +++ b/src/core/crypto/key_manager.h @@ -249,7 +249,7 @@ public: static bool KeyFileExists(bool title); - // Call before using the sd seed to attempt to derive it if it dosen't exist. Needs system + // Call before using the sd seed to attempt to derive it if it doesn't exist. Needs system // save 8*43 and the private file to exist. void DeriveSDSeedLazy(); diff --git a/src/core/crypto/xts_encryption_layer.h b/src/core/crypto/xts_encryption_layer.h index 735e660cb..68b5643b1 100644 --- a/src/core/crypto/xts_encryption_layer.h +++ b/src/core/crypto/xts_encryption_layer.h @@ -9,7 +9,7 @@ namespace Core::Crypto { -// Sits on top of a VirtualFile and provides XTS-mode AES decription. +// Sits on top of a VirtualFile and provides XTS-mode AES description. class XTSEncryptionLayer : public EncryptionLayer { public: XTSEncryptionLayer(FileSys::VirtualFile base, Key256 key); diff --git a/src/core/file_sys/content_archive.h b/src/core/file_sys/content_archive.h index 7fdc45ea7..20f524f80 100644 --- a/src/core/file_sys/content_archive.h +++ b/src/core/file_sys/content_archive.h @@ -93,7 +93,7 @@ inline bool IsDirectoryLogoPartition(const VirtualDir& pfs) { pfs->GetFile("StartupMovie.gif") != nullptr; } -// An implementation of VfsDirectory that represents a Nintendo Content Archive (NCA) conatiner. +// An implementation of VfsDirectory that represents a Nintendo Content Archive (NCA) container. // After construction, use GetStatus to determine if the file is valid and ready to be used. class NCA : public ReadOnlyVfsDirectory { public: diff --git a/src/core/file_sys/registered_cache.h b/src/core/file_sys/registered_cache.h index 587f8cae8..bd7f53eaf 100644 --- a/src/core/file_sys/registered_cache.h +++ b/src/core/file_sys/registered_cache.h @@ -162,7 +162,7 @@ public: InstallResult InstallEntry(const NSP& nsp, bool overwrite_if_exists = false, const VfsCopyFunction& copy = &VfsRawCopy); - // Due to the fact that we must use Meta-type NCAs to determine the existance of files, this + // Due to the fact that we must use Meta-type NCAs to determine the existence of files, this // poses quite a challenge. Instead of creating a new meta NCA for this file, yuzu will create a // dir inside the NAND called 'yuzu_meta' and store the raw CNMT there. // TODO(DarkLordZach): Author real meta-type NCAs and install those. diff --git a/src/core/file_sys/vfs.h b/src/core/file_sys/vfs.h index 8fc1738a4..a93e21f67 100644 --- a/src/core/file_sys/vfs.h +++ b/src/core/file_sys/vfs.h @@ -45,7 +45,7 @@ public: // Return whether or not the user has write permission on this filesystem. virtual bool IsWritable() const; - // Determine if the entry at path is non-existant, a file, or a directory. + // Determine if the entry at path is non-existent, a file, or a directory. virtual VfsEntryType GetEntryType(std::string_view path) const; // Opens the file with path relative to root. If it doesn't exist, returns nullptr. @@ -58,7 +58,7 @@ public: // Moves the file from old_path to new_path, returning the moved file on success and nullptr on // failure. virtual VirtualFile MoveFile(std::string_view old_path, std::string_view new_path); - // Deletes the file with path relative to root, returing true on success. + // Deletes the file with path relative to root, returning true on success. virtual bool DeleteFile(std::string_view path); // Opens the directory with path relative to root. If it doesn't exist, returns nullptr. @@ -71,7 +71,7 @@ public: // Moves the directory from old_path to new_path, returning the moved directory on success and // nullptr on failure. virtual VirtualDir MoveDirectory(std::string_view old_path, std::string_view new_path); - // Deletes the directory with path relative to root, returing true on success. + // Deletes the directory with path relative to root, returning true on success. virtual bool DeleteDirectory(std::string_view path); protected: @@ -144,7 +144,7 @@ public: return Read(reinterpret_cast<u8*>(data), sizeof(T), offset); } - // Writes exactly one byte to offset in file and retuns whether or not the byte was written + // Writes exactly one byte to offset in file and returns whether or not the byte was written // successfully. virtual bool WriteByte(u8 data, std::size_t offset = 0); // Writes a vector of bytes to offset in file and returns the number of bytes successfully @@ -191,13 +191,13 @@ public: VfsDirectory() = default; virtual ~VfsDirectory(); - // Retrives the file located at path as if the current directory was root. Returns nullptr if + // Retrieves the file located at path as if the current directory was root. Returns nullptr if // not found. virtual VirtualFile GetFileRelative(std::string_view path) const; // Calls GetFileRelative(path) on the root of the current directory. virtual VirtualFile GetFileAbsolute(std::string_view path) const; - // Retrives the directory located at path as if the current directory was root. Returns nullptr + // Retrieves the directory located at path as if the current directory was root. Returns nullptr // if not found. virtual VirtualDir GetDirectoryRelative(std::string_view path) const; // Calls GetDirectoryRelative(path) on the root of the current directory. @@ -205,7 +205,7 @@ public: // Returns a vector containing all of the files in this directory. virtual std::vector<VirtualFile> GetFiles() const = 0; - // Returns the file with filename matching name. Returns nullptr if directory dosen't have a + // Returns the file with filename matching name. Returns nullptr if directory doesn't have a // file with name. virtual VirtualFile GetFile(std::string_view name) const; @@ -214,7 +214,7 @@ public: // Returns a vector containing all of the subdirectories in this directory. virtual std::vector<VirtualDir> GetSubdirectories() const = 0; - // Returns the directory with name matching name. Returns nullptr if directory dosen't have a + // Returns the directory with name matching name. Returns nullptr if directory doesn't have a // directory with name. virtual VirtualDir GetSubdirectory(std::string_view name) const; diff --git a/src/core/file_sys/vfs_real.h b/src/core/file_sys/vfs_real.h index acde1ac89..b92c84316 100644 --- a/src/core/file_sys/vfs_real.h +++ b/src/core/file_sys/vfs_real.h @@ -38,7 +38,7 @@ private: boost::container::flat_map<std::string, std::weak_ptr<Common::FS::IOFile>> cache; }; -// An implmentation of VfsFile that represents a file on the user's computer. +// An implementation of VfsFile that represents a file on the user's computer. class RealVfsFile : public VfsFile { friend class RealVfsDirectory; friend class RealVfsFilesystem; diff --git a/src/core/frontend/emu_window.h b/src/core/frontend/emu_window.h index cf85ba29e..1093800f6 100644 --- a/src/core/frontend/emu_window.h +++ b/src/core/frontend/emu_window.h @@ -205,7 +205,7 @@ protected: } /** - * Converts a screen postion into the equivalent touchscreen position. + * Converts a screen position into the equivalent touchscreen position. */ std::pair<f32, f32> MapToTouchScreen(u32 framebuffer_x, u32 framebuffer_y) const; diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h index a9da465a2..429655355 100644 --- a/src/core/hid/emulated_controller.h +++ b/src/core/hid/emulated_controller.h @@ -132,7 +132,7 @@ struct ControllerStatus { RingAnalogValue ring_analog_value{}; NfcValues nfc_values{}; - // Data for HID serices + // Data for HID services HomeButtonState home_button_state{}; CaptureButtonState capture_button_state{}; NpadButtonState npad_button_state{}; @@ -357,7 +357,7 @@ public: /** * Sends a small vibration to the output device - * @return true if SetVibration was successfull + * @return true if SetVibration was successful */ bool IsVibrationEnabled(std::size_t device_index); @@ -373,7 +373,7 @@ public: /** * Sets the desired camera format to be polled from a controller * @param camera_format size of each frame - * @return true if SetCameraFormat was successfull + * @return true if SetCameraFormat was successful */ bool SetCameraFormat(Core::IrSensor::ImageTransferProcessorFormat camera_format); diff --git a/src/core/hid/emulated_devices.h b/src/core/hid/emulated_devices.h index caf2ca659..5eab693e4 100644 --- a/src/core/hid/emulated_devices.h +++ b/src/core/hid/emulated_devices.h @@ -53,7 +53,7 @@ struct DeviceStatus { MouseWheelValues mouse_wheel_values{}; MouseStickValue mouse_stick_value{}; - // Data for HID serices + // Data for HID services KeyboardKey keyboard_state{}; KeyboardModifier keyboard_moddifier_state{}; MouseButton mouse_button_state{}; @@ -75,7 +75,7 @@ struct InterfaceUpdateCallback { class EmulatedDevices { public: /** - * Contains all input data related to external devices that aren't necesarily a controller + * Contains all input data related to external devices that aren't necessarily a controller * This includes devices such as the keyboard or mouse */ explicit EmulatedDevices(); diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp index 3f7b8c090..7cee39a53 100644 --- a/src/core/hid/input_converter.cpp +++ b/src/core/hid/input_converter.cpp @@ -328,7 +328,7 @@ void SanitizeAnalog(Common::Input::AnalogStatus& analog, bool clamp_value) { // Apply center offset raw_value -= properties.offset; - // Set initial values to be formated + // Set initial values to be formatted value = raw_value; // Calculate vector size @@ -398,7 +398,7 @@ void SanitizeStick(Common::Input::AnalogStatus& analog_x, Common::Input::AnalogS raw_x = properties_x.inverted ? -raw_x : raw_x; raw_y = properties_y.inverted ? -raw_y : raw_y; - // Set initial values to be formated + // Set initial values to be formatted x = raw_x; y = raw_y; diff --git a/src/core/hid/motion_input.h b/src/core/hid/motion_input.h index e2c1bbf95..9f3fc1cf7 100644 --- a/src/core/hid/motion_input.h +++ b/src/core/hid/motion_input.h @@ -84,7 +84,7 @@ private: // Gyroscope vector measurement in radians/s. Common::Vec3f gyro; - // Vector to be substracted from gyro measurements + // Vector to be subtracted from gyro measurements Common::Vec3f gyro_bias; // Minimum gyro amplitude to detect if the device is moving diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp index d44f6e921..74a04aa66 100644 --- a/src/core/hle/kernel/k_process.cpp +++ b/src/core/hle/kernel/k_process.cpp @@ -363,7 +363,7 @@ Result KProcess::LoadFromMetadata(const FileSys::ProgramMetadata& metadata, std: code_size + system_resource_size); R_RETURN(ResultLimitReached); } - // Initialize proces address space + // Initialize process address space if (const Result result{page_table.InitializeForProcess( metadata.GetAddressSpaceType(), false, false, false, KMemoryManager::Pool::Application, 0x8000000, code_size, &kernel.GetAppSystemResource(), resource_limit)}; diff --git a/src/core/hle/kernel/k_process.h b/src/core/hle/kernel/k_process.h index 549809000..bd9b9f876 100644 --- a/src/core/hle/kernel/k_process.h +++ b/src/core/hle/kernel/k_process.h @@ -235,7 +235,7 @@ public: total_process_running_time_ticks += ticks; } - /// Gets the process schedule count, used for thread yelding + /// Gets the process schedule count, used for thread yielding s64 GetScheduledCount() const { return schedule_count; } diff --git a/src/core/hle/kernel/svc/svc_event.cpp b/src/core/hle/kernel/svc/svc_event.cpp index a948493e8..8692b00f2 100644 --- a/src/core/hle/kernel/svc/svc_event.cpp +++ b/src/core/hle/kernel/svc/svc_event.cpp @@ -85,7 +85,7 @@ Result CreateEvent(Core::System& system, Handle* out_write, Handle* out_read) { // Add the event to the handle table. R_TRY(handle_table.Add(out_write, event)); - // Ensure that we maintaing a clean handle state on exit. + // Ensure that we maintain a clean handle state on exit. auto handle_guard = SCOPE_GUARD({ handle_table.Remove(*out_write); }); // Add the readable event to the handle table. diff --git a/src/core/hle/kernel/svc/svc_session.cpp b/src/core/hle/kernel/svc/svc_session.cpp index 00fd1605e..6dd242dcf 100644 --- a/src/core/hle/kernel/svc/svc_session.cpp +++ b/src/core/hle/kernel/svc/svc_session.cpp @@ -81,7 +81,7 @@ Result CreateSession(Core::System& system, Handle* out_server, Handle* out_clien const auto result = handle_table.Add(out_client, &session->GetClientSession()); if (!R_SUCCEEDED(result)) { - // Ensure that we maintaing a clean handle state on exit. + // Ensure that we maintain a clean handle state on exit. handle_table.Remove(*out_server); } diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp index 120282aa4..6c29cb613 100644 --- a/src/core/hle/service/acc/acc.cpp +++ b/src/core/hle/service/acc/acc.cpp @@ -789,7 +789,7 @@ Result Module::Interface::InitializeApplicationInfoBase() { } LOG_WARNING(Service_ACC, "ApplicationInfo init required"); - // TODO(ogniK): Actual initalization here + // TODO(ogniK): Actual initialization here return ResultSuccess; } diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp index 97f7c6688..63fd5bfd6 100644 --- a/src/core/hle/service/acc/profile_manager.cpp +++ b/src/core/hle/service/acc/profile_manager.cpp @@ -287,7 +287,7 @@ void ProfileManager::StoreOpenedUsers() { }); } -/// Return the users profile base and the unknown arbitary data. +/// Return the users profile base and the unknown arbitrary data. bool ProfileManager::GetProfileBaseAndData(std::optional<std::size_t> index, ProfileBase& profile, UserData& data) const { if (GetProfileBase(index, profile)) { @@ -297,13 +297,13 @@ bool ProfileManager::GetProfileBaseAndData(std::optional<std::size_t> index, Pro return false; } -/// Return the users profile base and the unknown arbitary data. +/// Return the users profile base and the unknown arbitrary data. bool ProfileManager::GetProfileBaseAndData(UUID uuid, ProfileBase& profile, UserData& data) const { const auto idx = GetUserIndex(uuid); return GetProfileBaseAndData(idx, profile, data); } -/// Return the users profile base and the unknown arbitary data. +/// Return the users profile base and the unknown arbitrary data. bool ProfileManager::GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile, UserData& data) const { return GetProfileBaseAndData(user.user_uuid, profile, data); diff --git a/src/core/hle/service/hid/controllers/gesture.cpp b/src/core/hle/service/hid/controllers/gesture.cpp index de0090cc5..03432f7cb 100644 --- a/src/core/hle/service/hid/controllers/gesture.cpp +++ b/src/core/hle/service/hid/controllers/gesture.cpp @@ -55,7 +55,7 @@ void Controller_Gesture::OnUpdate(const Core::Timing::CoreTiming& core_timing) { static_cast<f32>(shared_memory->gesture_lifo.timestamp - last_update_timestamp) / (1000 * 1000 * 1000); - // Only update if necesary + // Only update if necessary if (!ShouldUpdateGesture(gesture, time_difference)) { return; } diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index 56c7275df..4529ad643 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -690,7 +690,7 @@ void Hid::ResetSixAxisSensorFusionParameters(HLERequestContext& ctx) { const auto parameters{rp.PopRaw<Parameters>()}; - // Since these parameters are unknow just use what HW outputs + // Since these parameters are unknown just use what HW outputs const Core::HID::SixAxisSensorFusionParameters fusion_parameters{ .parameter1 = 0.03f, .parameter2 = 0.4f, diff --git a/src/core/hle/service/hid/irsensor/image_transfer_processor.cpp b/src/core/hle/service/hid/irsensor/image_transfer_processor.cpp index bc896a1e3..a268750cd 100644 --- a/src/core/hle/service/hid/irsensor/image_transfer_processor.cpp +++ b/src/core/hle/service/hid/irsensor/image_transfer_processor.cpp @@ -51,7 +51,7 @@ void ImageTransferProcessor::OnControllerUpdate(Core::HID::ControllerTriggerType const auto camera_data = npad_device->GetCamera(); - // This indicates how much ambient light is precent + // This indicates how much ambient light is present processor_state.ambient_noise_level = Core::IrSensor::CameraAmbientNoiseLevel::Low; processor_state.sampling_number = camera_data.sample; diff --git a/src/core/hle/service/nfp/amiibo_crypto.cpp b/src/core/hle/service/nfp/amiibo_crypto.cpp index ddf04b1d7..ad73edbda 100644 --- a/src/core/hle/service/nfp/amiibo_crypto.cpp +++ b/src/core/hle/service/nfp/amiibo_crypto.cpp @@ -137,7 +137,7 @@ EncryptedNTAG215File EncodedDataToNfcData(const NTAG215File& encoded_data) { } u32 GetTagPassword(const TagUuid& uuid) { - // Verifiy that the generated password is correct + // Verify that the generated password is correct u32 password = 0xAA ^ (uuid.uid[1] ^ uuid.uid[3]); password &= (0x55 ^ (uuid.uid[2] ^ uuid.uid[4])) << 8; password &= (0xAA ^ (uuid.uid[3] ^ uuid.uid[5])) << 16; diff --git a/src/core/hle/service/nfp/amiibo_crypto.h b/src/core/hle/service/nfp/amiibo_crypto.h index 1fa61174e..c9fd67a39 100644 --- a/src/core/hle/service/nfp/amiibo_crypto.h +++ b/src/core/hle/service/nfp/amiibo_crypto.h @@ -94,7 +94,7 @@ bool LoadKeys(InternalKey& locked_secret, InternalKey& unfixed_info); /// Returns true if key_retail.bin exist bool IsKeyAvailable(); -/// Decodes encripted amiibo data returns true if output is valid +/// Decodes encrypted amiibo data returns true if output is valid bool DecodeAmiibo(const EncryptedNTAG215File& encrypted_tag_data, NTAG215File& tag_data); /// Encodes plain amiibo data returns true if output is valid diff --git a/src/core/hle/service/ns/iplatform_service_manager.cpp b/src/core/hle/service/ns/iplatform_service_manager.cpp index cd2705881..6c2f5e70b 100644 --- a/src/core/hle/service/ns/iplatform_service_manager.cpp +++ b/src/core/hle/service/ns/iplatform_service_manager.cpp @@ -119,7 +119,7 @@ struct IPlatformServiceManager::Impl { break; } - // Derive key withing inverse xor + // Derive key within inverse xor const u32 KEY = GetU32Swapped(input.data() + cur_offset) ^ EXPECTED_MAGIC; const u32 SIZE = GetU32Swapped(input.data() + cur_offset + 4) ^ KEY; shared_font_regions.push_back(FontRegion{cur_offset + 8, SIZE}); diff --git a/src/core/hle/service/nvdrv/devices/nvdevice.h b/src/core/hle/service/nvdrv/devices/nvdevice.h index c562e04d2..ab1f30f9e 100644 --- a/src/core/hle/service/nvdrv/devices/nvdevice.h +++ b/src/core/hle/service/nvdrv/devices/nvdevice.h @@ -59,7 +59,7 @@ public: std::vector<u8>& output, std::vector<u8>& inline_output) = 0; /** - * Called once a device is openned + * Called once a device is opened * @param fd The device fd */ virtual void OnOpen(DeviceFD fd) = 0; diff --git a/src/core/hle/service/nvdrv/devices/nvmap.cpp b/src/core/hle/service/nvdrv/devices/nvmap.cpp index 277afe0b4..07417f045 100644 --- a/src/core/hle/service/nvdrv/devices/nvmap.cpp +++ b/src/core/hle/service/nvdrv/devices/nvmap.cpp @@ -264,7 +264,7 @@ NvResult nvmap::IocFree(std::span<const u8> input, std::vector<u8>& output) { params.flags.raw = 0; params.flags.map_uncached.Assign(freeInfo->was_uncached); } else { - // This is possible when there's internel dups or other duplicates. + // This is possible when there's internal dups or other duplicates. } std::memcpy(output.data(), ¶ms, sizeof(params)); diff --git a/src/core/internal_network/network.cpp b/src/core/internal_network/network.cpp index f85c73ca6..bf97b0ebc 100644 --- a/src/core/internal_network/network.cpp +++ b/src/core/internal_network/network.cpp @@ -572,7 +572,7 @@ std::pair<s32, Errno> Socket::SendTo(u32 flags, std::span<const u8> message, ASSERT(flags == 0); const sockaddr* to = nullptr; - const int tolen = addr ? sizeof(sockaddr) : 0; + const int to_len = addr ? sizeof(sockaddr) : 0; sockaddr host_addr_in; if (addr) { @@ -581,7 +581,7 @@ std::pair<s32, Errno> Socket::SendTo(u32 flags, std::span<const u8> message, } const auto result = sendto(fd, reinterpret_cast<const char*>(message.data()), - static_cast<int>(message.size()), 0, to, tolen); + static_cast<int>(message.size()), 0, to, to_len); if (result != SOCKET_ERROR) { return {static_cast<s32>(result), Errno::SUCCESS}; } |