From b92e60c3dec896a4f44659013b02fc018486aa13 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:54:41 +0000 Subject: [PATCH 01/23] Harden Switch input, media recovery, persistence and launcher layout --- .github/workflows/host-tests.yml | 33 ++- app/src/WebSocketClient.cpp | 29 +- app/src/WebSocketClient.hpp | 1 + app/src/gfn/shared.cpp | 33 ++- app/src/stream/OpenGL/GLVideoRenderer.cpp | 20 +- app/src/stream/audio/AudioPipeline.cpp | 2 +- app/src/stream/audio/AudioRtpUtils.hpp | 22 +- app/src/stream/deko3d/DKVideoRenderer.cpp | 5 +- app/src/stream/deko3d/DKVideoRenderer.hpp | 1 + app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp | 22 +- app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp | 2 +- app/src/top_bar_frame.cpp | 10 +- app/src/webrtc/input.cpp | 58 +++- app/src/webrtc_session.hpp | 3 + extern/libpeer/src/peer_connection.c | 49 +++- scripts/test-host.sh | 4 + scripts/test-streaming-host.sh | 16 +- tests/audio_pipeline_test.cpp | 36 +++ tests/audio_rtp_utils_test.cpp | 20 +- tests/auth_saved_session_refresh_test.cpp | 14 + tests/deko_renderer_color_range_test.cpp | 10 + tests/ffmpeg_decode_integration_test.cpp | 76 ++++++ tests/ffmpeg_packet_ownership_test.cpp | 89 ++++++ tests/ffmpeg_video_decoder_test.cpp | 18 +- tests/gfn_atomic_write_test.cpp | 56 ++++ tests/gfn_device_identity_test.cpp | 130 +++++++++ tests/gfn_trace_redaction_test.cpp | 31 +++ tests/gl_renderer_reconfiguration_test.cpp | 119 ++++++++ tests/peer_dtls_loop_test.c | 177 +++++++++++- tests/run_ffmpeg_decode_integration_test.sh | 20 ++ tests/run_gl_renderer_reconfiguration_test.sh | 21 ++ tests/ui_layout/CMakeLists.txt | 21 ++ tests/ui_layout/README.md | 44 +++ tests/ui_layout/run.sh | 20 ++ tests/ui_layout/ui_layout.cpp | 179 +++++++++++++ tests/ui_layout/ui_layout_stubs.cpp | 44 +++ tests/webrtc_input_handshake_test.cpp | 253 ++++++++++++++++++ tests/websocket_client_test.cpp | 51 +++- 38 files changed, 1661 insertions(+), 78 deletions(-) create mode 100644 tests/ffmpeg_decode_integration_test.cpp create mode 100644 tests/ffmpeg_packet_ownership_test.cpp create mode 100644 tests/gfn_atomic_write_test.cpp create mode 100644 tests/gfn_device_identity_test.cpp create mode 100644 tests/gfn_trace_redaction_test.cpp create mode 100644 tests/gl_renderer_reconfiguration_test.cpp create mode 100755 tests/run_ffmpeg_decode_integration_test.sh create mode 100755 tests/run_gl_renderer_reconfiguration_test.sh create mode 100644 tests/ui_layout/CMakeLists.txt create mode 100644 tests/ui_layout/README.md create mode 100644 tests/ui_layout/run.sh create mode 100644 tests/ui_layout/ui_layout.cpp create mode 100644 tests/ui_layout/ui_layout_stubs.cpp create mode 100644 tests/webrtc_input_handshake_test.cpp diff --git a/.github/workflows/host-tests.yml b/.github/workflows/host-tests.yml index 4a983045..7be0e25f 100644 --- a/.github/workflows/host-tests.yml +++ b/.github/workflows/host-tests.yml @@ -24,7 +24,38 @@ jobs: sudo apt-get update -qq sudo apt-get install -y --no-install-recommends \ g++ libjansson-dev libcurl4-openssl-dev libsrtp2-dev libusrsctp-dev \ - libavcodec-dev libavutil-dev libmbedtls-dev python3 openssl cmake pkg-config + libavcodec-dev libavutil-dev libmbedtls-dev libegl-dev libgl1-mesa-dri ffmpeg \ + python3 openssl cmake pkg-config - name: Run host regression tests run: bash scripts/test-host.sh + + ui-layout: + name: Native UI layout + runs-on: ubuntu-24.04 + steps: + - name: Check out source + uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 + + - name: Install native UI test dependencies + run: | + sudo apt-get update -qq + sudo apt-get install -y --no-install-recommends \ + g++ cmake ninja-build libsdl2-dev libgl1-mesa-dev libcurl4-openssl-dev xvfb xauth + + - name: Build native UI layout test + run: | + cmake -S tests/ui_layout -B build/ui-layout -G Ninja -DCMAKE_BUILD_TYPE=Debug + cmake --build build/ui-layout -j4 + + - name: Check native UI layout + run: bash tests/ui_layout/run.sh build/ui-layout/ui_layout build/ui-evidence + + - name: Upload native UI evidence + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 + with: + name: native-ui-evidence + path: build/ui-evidence + if-no-files-found: ignore + retention-days: 7 diff --git a/app/src/WebSocketClient.cpp b/app/src/WebSocketClient.cpp index e16d27e9..3a76d9e0 100644 --- a/app/src/WebSocketClient.cpp +++ b/app/src/WebSocketClient.cpp @@ -168,8 +168,8 @@ bool WebSocketClient::connect() { size_t rcvd = 0; std::string response; - int retries = 50; // 5 seconds max - while (retries > 0) { + const auto receive_deadline = std::chrono::steady_clock::now() + std::chrono::seconds(5); + while (std::chrono::steady_clock::now() < receive_deadline) { res = curl_easy_recv(curl_, buf, sizeof(buf) - 1, &rcvd); if (res == CURLE_OK && rcvd > 0) { response.append(buf, rcvd); @@ -196,7 +196,6 @@ bool WebSocketClient::connect() { } } else if (res == CURLE_AGAIN) { std::this_thread::sleep_for(std::chrono::milliseconds(100)); - retries--; } else { last_error_ = "Recv error: " + std::string(curl_easy_strerror(res)); brls::Logger::error("WebSocket recv error: {}", curl_easy_strerror(res)); @@ -224,6 +223,7 @@ void WebSocketClient::close_transport() { connected_ = false; closing_ = false; tx_queue_.reset(); + pending_receive_error_.clear(); rx_buffer_.clear(); fragmented_message_.clear(); fragmented_opcode_ = 0; @@ -436,6 +436,19 @@ void WebSocketClient::poll() { break; } + if (!connected_) { + if (closing_) + drain_outgoing(); + return; + } + if (!pending_receive_error_.empty()) { + if (frames_processed >= kMaximumFramesPerPoll) + return; + last_error_ = pending_receive_error_; + close_transport(); + return; + } + if (!drain_outgoing() || !connected_ || frames_processed >= kMaximumFramesPerPoll) return; @@ -454,12 +467,12 @@ void WebSocketClient::poll() { read_this_poll += rcvd; } else { if (res == CURLE_OK && rcvd == 0) { - if (read_this_poll > 0) - break; - last_error_ = "Remote endpoint closed the signaling connection"; - close_transport(); + pending_receive_error_ = "Remote endpoint closed the signaling connection"; } else if (res != CURLE_AGAIN) { - last_error_ = "Receive error: " + std::string(curl_easy_strerror(res)); + pending_receive_error_ = "Receive error: " + std::string(curl_easy_strerror(res)); + } + if (!pending_receive_error_.empty() && read_this_poll == 0) { + last_error_ = pending_receive_error_; close_transport(); } break; diff --git a/app/src/WebSocketClient.hpp b/app/src/WebSocketClient.hpp index 742d6cc0..c73e69d2 100644 --- a/app/src/WebSocketClient.hpp +++ b/app/src/WebSocketClient.hpp @@ -32,6 +32,7 @@ class WebSocketClient { bool connected_ = false; bool closing_ = false; std::string last_error_; + std::string pending_receive_error_; std::vector rx_buffer_; std::string fragmented_message_; uint8_t fragmented_opcode_ = 0; diff --git a/app/src/gfn/shared.cpp b/app/src/gfn/shared.cpp index 189f032d..200d9a03 100644 --- a/app/src/gfn/shared.cpp +++ b/app/src/gfn/shared.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -23,6 +24,7 @@ namespace opennow::gfn::detail namespace { constexpr const char* kDefaultProviderId = "PDiAhv2kJTFeQ7WOPqiQ2tRZ7lGhR2X11dXvM4TZSxg"; +void WriteTextFile(const std::string& path, const std::string& content); } std::string Trim(const std::string& value) @@ -63,7 +65,8 @@ JsonPtr LoadJson(const std::string& body) if (!root) { throw std::runtime_error( - "JSON parse failed at line " + std::to_string(error.line) + ": " + error.text); + "JSON parse failed at line " + std::to_string(error.line) + + ", column " + std::to_string(error.column)); } return root; @@ -176,11 +179,27 @@ std::string GenerateUuid() std::string GenerateDeviceId() { + static std::mutex mutex; + std::lock_guard lock(mutex); const std::string path = GetAppHome() + "/device_id.txt"; std::string stored = Trim(ReadTextFile(path)); if (device_identity::IsUsableStoredDeviceId(stored)) return stored; + stored = Trim(ReadTextFile(path + ".bak")); + if (device_identity::IsUsableStoredDeviceId(stored)) + { + const std::string temporary = path + ".tmp"; + WriteTextFile(temporary, stored); + std::remove(path.c_str()); + if (std::rename(temporary.c_str(), path.c_str()) != 0) + { + std::remove(temporary.c_str()); + throw std::runtime_error("Unable to restore " + path); + } + return stored; + } + stored = GenerateUuid(); WriteTextFileAtomically(path, stored); return stored; @@ -238,6 +257,12 @@ void WriteTextFile(const std::string& path, const std::string& content) throw std::runtime_error("Unable to write " + path); stream.write(content.data(), static_cast(content.size())); + stream.close(); + if (!stream) + { + std::remove(path.c_str()); + throw std::runtime_error("Unable to complete write to " + path); + } } } // namespace @@ -351,13 +376,13 @@ std::string JsonForTrace(const std::string& body) json_error_t error {}; JsonPtr root(json_loads(body.c_str(), 0, &error), &json_decref); - if (!root) - return body; + if (!root || !json_is_object(root.get())) + return ""; RedactJsonInPlace(root.get()); char* dump = json_dumps(root.get(), JSON_INDENT(2)); if (!dump) - return body; + return ""; std::unique_ptr output(dump, &std::free); return output.get(); diff --git a/app/src/stream/OpenGL/GLVideoRenderer.cpp b/app/src/stream/OpenGL/GLVideoRenderer.cpp index 435a3536..694736b9 100644 --- a/app/src/stream/OpenGL/GLVideoRenderer.cpp +++ b/app/src/stream/OpenGL/GLVideoRenderer.cpp @@ -235,8 +235,8 @@ static const int yuv420Planes[][5] = { }; static const int p010Planes[][5] = { - {2, 1, 2, GL_R16, GL_RED}, // Y - {4, 2, 4, GL_RG16, GL_RG}, // UV + {2, 1, 1, GL_R16, GL_RED}, // Y + {4, 2, 2, GL_RG16, GL_RG}, // UV {0, 0, 0, 0, 0}, // NOT EXISTS }; @@ -278,7 +278,7 @@ static const float* gl_color_matrix(enum AVColorSpace color_space, case AVCOL_SPC_BT2020_CL: return color_full ? bt2020Full : bt2020Lim; default: - return bt601Lim; + return color_full ? bt601Full : bt601Lim; } } @@ -475,6 +475,7 @@ void GLVideoRenderer::bindTexture(int id) { textureHeight[id] = m_frame_height / currentPlanes[id][2]; glTexImage2D(GL_TEXTURE_2D, 0, currentPlanes[id][3], textureWidth[id], textureHeight[id], 0, currentPlanes[id][4], currentFormat, nullptr); + m_uploaded_generation = 0; glUniform1i(m_texture_uniform[id], id); } @@ -545,12 +546,6 @@ void GLVideoRenderer::checkAndUpdateScale(int width, int height, bindTexture(i); } - bool colorFull = frame->color_range == AVCOL_RANGE_JPEG; - - glUniform3fv(m_offset_location, 1, gl_color_offset(colorFull)); - glUniformMatrix3fv(m_yuvmat_location, 1, GL_FALSE, - gl_color_matrix(frame->colorspace, colorFull)); - float frameAspect = ((float)m_frame_height / (float)m_frame_width); float screenAspect = ((float)m_screen_height / (float)m_screen_width); @@ -616,6 +611,10 @@ void GLVideoRenderer::drawLatest(NVGcontext* vg, int width, int height, glUseProgram(m_shader_program); checkAndUpdateScale(width, height, frame); + const bool color_full = isFrameFullRange(frame); + glUniform3fv(m_offset_location, 1, gl_color_offset(color_full)); + glUniformMatrix3fv(m_yuvmat_location, 1, GL_FALSE, + gl_color_matrix(frame->colorspace, color_full)); glClearColor(0, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); @@ -732,7 +731,8 @@ int GLVideoRenderer::getFrameColorspace(const AVFrame* frame) { bool GLVideoRenderer::isFrameFullRange(const AVFrame* frame) { if (!frame) return false; - return frame->color_range == AVCOL_RANGE_JPEG; + return frame->color_range == AVCOL_RANGE_JPEG || + (frame->color_range == AVCOL_RANGE_UNSPECIFIED && frame->format == AV_PIX_FMT_YUVJ420P); } #endif // USE_GL_RENDERER diff --git a/app/src/stream/audio/AudioPipeline.cpp b/app/src/stream/audio/AudioPipeline.cpp index 83e57da2..6b6198c0 100644 --- a/app/src/stream/audio/AudioPipeline.cpp +++ b/app/src/stream/audio/AudioPipeline.cpp @@ -560,7 +560,7 @@ struct AudioPipeline::Impl { item.payload_type == 63; }); if (next != packets.end()) { - const auto redundant = opennow::audio::ParseFirstRedundant( + const auto redundant = opennow::audio::ParseLatestRedundant( next->payload.data(), next->payload.size()); if (redundant.data && redundant.size > 0) { packet.payload.assign(redundant.data, redundant.data + redundant.size); diff --git a/app/src/stream/audio/AudioRtpUtils.hpp b/app/src/stream/audio/AudioRtpUtils.hpp index 8d2cdebf..4d61d3fa 100644 --- a/app/src/stream/audio/AudioRtpUtils.hpp +++ b/app/src/stream/audio/AudioRtpUtils.hpp @@ -17,20 +17,30 @@ struct RedundantPayload { uint16_t timestamp_offset = 0; }; -inline RedundantPayload ParseFirstRedundant(const uint8_t* data, size_t size) { +inline RedundantPayload ParseLatestRedundant(const uint8_t* data, size_t size) { if (!data || size < 5 || (data[0] & 0x80) == 0) return {}; - const uint16_t timestamp_offset = uint16_t((uint16_t(data[1]) << 6) | (data[2] >> 2)); - const size_t first_length = size_t(((data[2] & 0x03) << 8) | data[3]); size_t header = 0; + size_t redundant_bytes = 0; + size_t length = 0; + uint16_t timestamp_offset = 0; while (header < size && (data[header] & 0x80) != 0) { - if (header + 4 > size) + if (header + 4 > size || (data[header] & 0x7f) != 111) return {}; + length = size_t(((data[header + 2] & 0x03) << 8) | data[header + 3]); + redundant_bytes += length; + if (length == 0 || redundant_bytes > size) + return {}; + timestamp_offset = + uint16_t((uint16_t(data[header + 1]) << 6) | (data[header + 2] >> 2)); header += 4; } - if (header >= size || ++header + first_length > size || first_length == 0) + if (header >= size || (data[header] & 0x7f) != 111) + return {}; + ++header; + if (redundant_bytes >= size - header) return {}; - return {data + header, first_length, timestamp_offset}; + return {data + header + redundant_bytes - length, length, timestamp_offset}; } inline ParsedPayload ParseRedPrimary(const uint8_t* data, size_t size, uint8_t payload_type) { diff --git a/app/src/stream/deko3d/DKVideoRenderer.cpp b/app/src/stream/deko3d/DKVideoRenderer.cpp index e1f34ba9..829e9d22 100644 --- a/app/src/stream/deko3d/DKVideoRenderer.cpp +++ b/app/src/stream/deko3d/DKVideoRenderer.cpp @@ -218,7 +218,8 @@ bool DKVideoRenderer::Configuration::initialize( Transformation transform {}; full_range_ = frame_full_range(frame); - set_color_transform(transform, frame->colorspace, full_range_); + color_space_ = frame->colorspace; + set_color_transform(transform, color_space_, full_range_); const float frame_aspect = static_cast(frame_height_) / frame_width_; const float screen_aspect = static_cast(screen_height_) / screen_width_; @@ -339,7 +340,7 @@ bool DKVideoRenderer::Configuration::matches( return screen_width_ == width && screen_height_ == height && frame_width_ == frame->width && frame_height_ == frame->height && hardware_frames_ == (frame->format == AV_PIX_FMT_NVTEGRA) && - full_range_ == frame_full_range(frame); + full_range_ == frame_full_range(frame) && color_space_ == frame->colorspace; } void DKVideoRenderer::Configuration::bindDescriptors( diff --git a/app/src/stream/deko3d/DKVideoRenderer.hpp b/app/src/stream/deko3d/DKVideoRenderer.hpp index 8bd738be..bd9c792f 100644 --- a/app/src/stream/deko3d/DKVideoRenderer.hpp +++ b/app/src/stream/deko3d/DKVideoRenderer.hpp @@ -65,6 +65,7 @@ class DKVideoRenderer : public IVideoRenderer { dk::ImageLayout chroma_layout_; bool hardware_frames_ = false; bool full_range_ = false; + AVColorSpace color_space_ = AVCOL_SPC_UNSPECIFIED; struct BufferDeleter { void operator()(AVBufferRef* buffer) const { av_buffer_unref(&buffer); } diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp index 4c67157b..05f5f5c3 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp @@ -5,6 +5,7 @@ #include "../../video_quality_policy.hpp" #include "../DecodeQueuePolicy.hpp" #include +#include #include #include extern "C" { @@ -285,6 +286,14 @@ int FFmpegVideoDecoder::submit_decode_unit(uint8_t* indata, int inlen, int64_t p m_frames_in++; + av_packet_unref(m_packet); + const int packet_result = av_new_packet(m_packet, inlen); + if (packet_result < 0) + return packet_result; + std::memcpy(m_packet->data, indata, static_cast(inlen)); + m_packet->pts = pts; + m_packet->dts = pts; + int decoded_frames = 0; bool corrupt_frame_dropped = false; auto drain_frames = [&]() { @@ -310,12 +319,12 @@ int FFmpegVideoDecoder::submit_decode_unit(uint8_t* indata, int inlen, int64_t p return decode_error; }; - int decode_result = decode(reinterpret_cast(indata), inlen, pts); + int decode_result = decode(); if (decode_result == AVERROR(EAGAIN)) { const int drain_result = drain_frames(); if (drain_result < 0) return drain_result; - decode_result = decode(reinterpret_cast(indata), inlen, pts); + decode_result = decode(); } if (decode_result < 0) @@ -340,12 +349,7 @@ int FFmpegVideoDecoder::capabilities() const { return 0; } -int FFmpegVideoDecoder::decode(char* indata, int inlen, int64_t pts) { - m_packet->data = (uint8_t*)indata; - m_packet->size = inlen; - m_packet->pts = pts; - m_packet->dts = pts; - +int FFmpegVideoDecoder::decode() { #if !defined(PLATFORM_SWITCH) int policy; sched_param params{}; @@ -356,7 +360,7 @@ int FFmpegVideoDecoder::decode(char* indata, int inlen, int64_t pts) { // m_decoder_context->skip_frame = AVDISCARD_ALL; - int err = avcodec_send_packet(m_decoder_context, m_packet); + const int err = avcodec_send_packet(m_decoder_context, m_packet); if (err == AVERROR(EAGAIN)) { brls::Logger::debug("FFmpeg: decoder wants frame drain before accepting more data"); return err; diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp index 2e9f966c..acec4c19 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp @@ -17,7 +17,7 @@ class FFmpegVideoDecoder : public IFFmpegVideoDecoder { bool uses_hardware_frames() const override { return m_uses_hardware_frames; } private: - int decode(char* indata, int inlen, int64_t pts); + int decode(); AVFrame* get_frame(bool native_frame, int& decode_error); AVPacket* m_packet = nullptr; diff --git a/app/src/top_bar_frame.cpp b/app/src/top_bar_frame.cpp index 01739a34..5af8737b 100644 --- a/app/src/top_bar_frame.cpp +++ b/app/src/top_bar_frame.cpp @@ -151,7 +151,7 @@ TopBarFrame::TopBarFrame() addView(header_container_); auto* brand = new brls::Box(brls::Axis::ROW); - brand->setWidth(420); + brand->setWidth(220); brand->setShrink(0.0f); brand->setAlignItems(brls::AlignItems::CENTER); brand->setJustifyContent(brls::JustifyContent::FLEX_START); @@ -173,12 +173,13 @@ TopBarFrame::TopBarFrame() tabs_container_ = new brls::Box(brls::Axis::ROW); tabs_container_->setGrow(1.0f); + tabs_container_->setShrink(0.0f); tabs_container_->setAlignItems(brls::AlignItems::CENTER); tabs_container_->setJustifyContent(brls::JustifyContent::CENTER); header_container_->addView(tabs_container_); auto* status_container = new brls::Box(brls::Axis::ROW); - status_container->setWidth(420); + status_container->setWidth(500); status_container->setHeight(54); status_container->setShrink(0.0f); status_container->setAlignItems(brls::AlignItems::CENTER); @@ -206,7 +207,7 @@ TopBarFrame::TopBarFrame() account_container_ = new brls::Box(brls::Axis::ROW); account_container_->setHeight(54); - account_container_->setShrink(0.0f); + account_container_->setShrink(1.0f); account_container_->setMarginLeft(3); account_container_->setAlignItems(brls::AlignItems::CENTER); account_container_->setJustifyContent(brls::JustifyContent::FLEX_END); @@ -223,7 +224,7 @@ TopBarFrame::TopBarFrame() account_container_->addView(avatar_image_); auto* account_labels = new brls::Box(brls::Axis::COLUMN); - account_labels->setShrink(0.0f); + account_labels->setShrink(1.0f); account_labels->setJustifyContent(brls::JustifyContent::CENTER); account_name_label_ = new brls::Label(); account_name_label_->setText("Guest"); @@ -326,6 +327,7 @@ void TopBarFrame::addTab(const std::string& label, TabViewCreator creator) auto* text = new brls::Label(); text->setText(Tr(label)); + text->setSingleLine(true); text->setFontSize(18); text->setTextColor(nvgRGB(128, 133, 143)); diff --git a/app/src/webrtc/input.cpp b/app/src/webrtc/input.cpp index aa85f087..2fb7e3ca 100644 --- a/app/src/webrtc/input.cpp +++ b/app/src/webrtc/input.cpp @@ -16,6 +16,8 @@ using namespace opennow::webrtc::internal; namespace { +constexpr size_t kMaxInputHandshakeBytes = 64; + void PutU16Le(std::vector& out, uint16_t value) { out.push_back(static_cast(value & 0xff)); @@ -395,7 +397,8 @@ void WebRtcSession::on_datachannel_message(const char* msg, size_t len, uint16_t " bytes=" + std::to_string(len) + " hex=" + HexPreview(reinterpret_cast(msg), len, 24)); - if (msg && len >= 2 && (label.empty() || label == "input_channel_v1" || sid == 0)) { + if (!input_handshake_acknowledged_ && msg && len >= 2 && len <= kMaxInputHandshakeBytes && + sid == 0 && (label.empty() || label == "input_channel_v1")) { const auto* bytes = reinterpret_cast(msg); const uint16_t first_word = static_cast(bytes[0] | (bytes[1] << 8)); int version = 2; @@ -410,18 +413,35 @@ void WebRtcSession::on_datachannel_message(const char* msg, size_t len, uint16_t } if (handshake) { - input_ready_ = true; + input_ready_ = false; input_protocol_version_ = std::max(2, version); - AppendStreamLog("DATA input_handshake_complete version=" + - std::to_string(input_protocol_version_) + - " firstWord=" + std::to_string(first_word)); - AppendInputLog("HANDSHAKE complete protocol=" + std::to_string(input_protocol_version_) + - " firstWord=" + std::to_string(first_word)); - maybe_send_input_heartbeat(); + pending_input_handshake_.assign(bytes, bytes + len); + if (acknowledge_input_handshake()) + maybe_send_input_heartbeat(); } } } +bool WebRtcSession::acknowledge_input_handshake() { + if (pending_input_handshake_.empty()) + return false; + + const int sent = send_datachannel_binary( + 0, "input_handshake", pending_input_handshake_.data(), pending_input_handshake_.size()); + if (sent < 0) { + input_activation_due_ = std::chrono::steady_clock::now() + std::chrono::milliseconds(250); + return false; + } + + pending_input_handshake_.clear(); + input_handshake_acknowledged_ = true; + input_ready_ = true; + input_activation_due_ = {}; + AppendStreamLog("DATA input_handshake_complete version=" + std::to_string(input_protocol_version_)); + AppendInputLog("HANDSHAKE complete protocol=" + std::to_string(input_protocol_version_)); + return true; +} + void WebRtcSession::on_datachannel_open() { std::lock_guard lock(peer_mutex_); datachannel_opened_ = true; @@ -535,7 +555,7 @@ void WebRtcSession::maybe_send_keepalive() { void WebRtcSession::maybe_open_datachannel() { - if (!pc_ || datachannel_open_requested_) + if (!pc_ || !datachannel_opened_ || datachannel_open_requested_) return; const auto now = std::chrono::steady_clock::now(); @@ -585,6 +605,7 @@ void WebRtcSession::maybe_open_datachannel() { } void WebRtcSession::reset_input_channel_for_retry(const char* reason) { + const int previous_attempts = datachannel_open_attempts_; datachannel_opened_ = false; datachannel_open_requested_ = false; reliable_input_channel_requested_ = false; @@ -595,9 +616,13 @@ void WebRtcSession::reset_input_channel_for_retry(const char* reason) { last_datachannel_open_attempt_ = {}; last_input_heartbeat_sent_ = {}; consecutive_input_send_failures_ = 0; + datachannel_open_attempts_ = 0; + input_protocol_version_ = 2; + pending_input_handshake_.clear(); + input_handshake_acknowledged_ = false; AppendInputLog(std::string("RECOVERY input_channel_reset reason=") + (reason ? reason : "unknown") + - " attempts=" + std::to_string(datachannel_open_attempts_)); + " attempts=" + std::to_string(previous_attempts)); } void WebRtcSession::note_input_send_result(int sent, const char* label) { @@ -630,10 +655,17 @@ void WebRtcSession::maybe_activate_input() { std::chrono::steady_clock::now() < input_activation_due_) return; + if (!pending_input_handshake_.empty()) { + acknowledge_input_handshake(); + return; + } + input_ready_ = true; - input_protocol_version_ = 2; - AppendStreamLog("DATA input_ready fallback=v2 controller=xbox sidReliable=0 sidFast=2"); - AppendInputLog("HANDSHAKE fallback protocol=2 inputReady=1 controller=xbox sid=0"); + const std::string mode = input_handshake_acknowledged_ ? "reactivate" : "fallback"; + AppendStreamLog("DATA input_ready mode=" + mode + " protocol=" + std::to_string(input_protocol_version_) + + " controller=xbox sidReliable=0"); + AppendInputLog("HANDSHAKE " + mode + " protocol=" + std::to_string(input_protocol_version_) + + " inputReady=1 controller=xbox sid=0"); } void WebRtcSession::send_datachannel_text(const std::string& label, const std::string& payload) { diff --git a/app/src/webrtc_session.hpp b/app/src/webrtc_session.hpp index 7377def1..82202258 100644 --- a/app/src/webrtc_session.hpp +++ b/app/src/webrtc_session.hpp @@ -213,6 +213,8 @@ class WebRtcSession { bool startup_control_sent_ = false; int datachannel_open_attempts_ = 0; int input_protocol_version_ = 2; + std::vector pending_input_handshake_; + bool input_handshake_acknowledged_ = false; int partial_reliable_threshold_ms_ = 16; int input_heartbeat_tx_count_ = 0; int gamepad_tx_count_ = 0; @@ -283,6 +285,7 @@ class WebRtcSession { int send_datachannel_binary(uint16_t sid, const std::string& label, const uint8_t* payload, size_t size); void maybe_send_input_heartbeat(); void maybe_activate_input(); + bool acknowledge_input_handshake(); void maybe_request_startup_keyframe_retry(); void maybe_recover_decode_stall(); void maybe_recover_rtp_damage(); diff --git a/extern/libpeer/src/peer_connection.c b/extern/libpeer/src/peer_connection.c index 4d2d25dd..5a391813 100644 --- a/extern/libpeer/src/peer_connection.c +++ b/extern/libpeer/src/peer_connection.c @@ -37,6 +37,9 @@ struct PeerConnection { void (*oniceconnectionstatechange)(PeerConnectionState state, void* user_data); void (*on_connected)(void* userdata); void (*on_receiver_packet_loss)(float fraction_loss, uint32_t total_loss, void* user_data); + void (*ondatachannelmessage)(char* msg, size_t len, void* userdata, uint16_t sid); + void (*ondatachannelopen)(void* userdata); + void (*ondatachannelclose)(void* userdata); uint8_t temp_buf[CONFIG_MTU]; uint8_t agent_buf[CONFIG_MTU]; @@ -141,6 +144,30 @@ static int peer_connection_video_packet_buffered(const RtpDecoder* decoder, return decoder->reorder_used[slot] && decoder->reorder_sequences[slot] == sequence; } +static void peer_connection_datachannel_message(char* msg, size_t len, + void* userdata, uint16_t sid) { + PeerConnection* pc = userdata; + if (pc->ondatachannelmessage) + pc->ondatachannelmessage(msg, len, pc->config.user_data, sid); +} + +static void peer_connection_datachannel_open(void* userdata) { + PeerConnection* pc = userdata; + if (pc->ondatachannelopen) + pc->ondatachannelopen(pc->config.user_data); +} + +static void peer_connection_datachannel_close(void* userdata) { + PeerConnection* pc = userdata; + if (pc->ondatachannelclose) + pc->ondatachannelclose(pc->config.user_data); + if (pc->config.datachannel && + (pc->state == PEER_CONNECTION_CONNECTED || pc->state == PEER_CONNECTION_COMPLETED)) { + peer_connection_diag_log("sctp_association_closed"); + STATE_CHANGED(pc, PEER_CONNECTION_FAILED); + } +} + static uint32_t peer_connection_nack_packet_count(uint16_t bitmask) { uint32_t count = 1; while (bitmask != 0) { @@ -445,6 +472,7 @@ PeerConnection* peer_connection_create(PeerConfiguration* config) { agent_create(&pc->agent); memset(&pc->sctp, 0, sizeof(pc->sctp)); + peer_connection_ondatachannel(pc, NULL, NULL, NULL); if (pc->config.audio_codec) { rtp_encoder_init(&pc->artp_encoder, pc->config.audio_codec, @@ -664,13 +692,16 @@ int peer_connection_loop(PeerConnection* pc) { #endif peer_connection_diag_log("sctp_create_start"); pc->sctp_create_attempted = 1; + pc->sctp.userdata = pc; int sctp_ret = sctp_create_association(&pc->sctp, &pc->dtls_srtp); peer_connection_diag_log("sctp_create_done ret=%d", sctp_ret); - if (sctp_ret == 0) { - pc->sctp.userdata = pc->config.user_data; - } else { + if (sctp_ret != 0) { LOGE("SCTP create socket failed"); + STATE_CHANGED(pc, PEER_CONNECTION_FAILED); + break; } + if (pc->state != PEER_CONNECTION_CONNECTED) + break; } peer_connection_log_candidate_pairs(pc, "transport_completed"); @@ -697,6 +728,8 @@ int peer_connection_loop(PeerConnection* pc) { break; case PEER_CONNECTION_COMPLETED: sctp_tick(&pc->sctp); + if (pc->state != PEER_CONNECTION_COMPLETED) + break; if (pc->dtls_pending || mbedtls_ssl_check_pending(&pc->dtls_srtp.ssl)) { packet_processed = peer_connection_read_dtls(pc) > 0; if (packet_processed || pc->dtls_pending || pc->state != PEER_CONNECTION_COMPLETED) @@ -1100,9 +1133,13 @@ void peer_connection_ondatachannel(PeerConnection* pc, void (*onopen)(void* userdata), void (*onclose)(void* userdata)) { if (pc) { - sctp_onopen(&pc->sctp, onopen); - sctp_onclose(&pc->sctp, onclose); - sctp_onmessage(&pc->sctp, onmessage); + pc->ondatachannelmessage = onmessage; + pc->ondatachannelopen = onopen; + pc->ondatachannelclose = onclose; + pc->sctp.userdata = pc; + sctp_onopen(&pc->sctp, peer_connection_datachannel_open); + sctp_onclose(&pc->sctp, peer_connection_datachannel_close); + sctp_onmessage(&pc->sctp, peer_connection_datachannel_message); } } diff --git a/scripts/test-host.sh b/scripts/test-host.sh index 74b10add..94a30ce9 100644 --- a/scripts/test-host.sh +++ b/scripts/test-host.sh @@ -41,6 +41,10 @@ run_cpp auth_client_token_refresh -ffunction-sections -fdata-sections -Wl,--gc-s run_cpp auth_saved_session_refresh -ffunction-sections -fdata-sections -Wl,--gc-sections \ app/src/gfn/authentication.cpp app/src/gfn/persistence.cpp app/src/gfn/shared.cpp \ -ljansson -lmbedcrypto +for name in gfn_atomic_write gfn_device_identity gfn_trace_redaction; do + run_cpp "$name" -ffunction-sections -fdata-sections -Wl,--gc-sections \ + app/src/gfn/shared.cpp -ljansson +done run_cpp catalog_response -ffunction-sections -fdata-sections -Wl,--gc-sections \ app/src/gfn/shared.cpp -ljansson run_cpp cover_image_cache -Itests/cover_cache_stubs app/src/cover_image_cache.cpp diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index 7cec64b7..8dbd6fd8 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -56,6 +56,10 @@ run_cpp websocket_client -DFMT_HEADER_ONLY -isystem extern/ffmpeg/include \ app/src/WebSocketClient.cpp app/src/signaling_client.cpp app/src/http_client.cpp "${crypto[@]}" run_cpp websocket_handshake -Iextern/libpeer/third_party/mbedtls/include -Wl,--gc-sections "${crypto[@]}" run_cpp signaling_diagnostics -ljansson +run_cpp webrtc_input_handshake -Iextern/libpeer/src \ + -Iextern/libpeer/third_party/mbedtls/include \ + -Iextern/borealis/library/include/borealis/extern/nanovg "${sections[@]}" \ + app/src/webrtc/input.cpp -ljansson run_cpp av_frame_queue -Itests/stream_stubs app/src/stream/ffmpeg/AVFrameHolder.cpp -lavcodec -lavutil run_cpp gpu_frame_queue -lavutil python3 tests/run_deko_renderer_reconfiguration_test.py @@ -63,7 +67,7 @@ printf 'PASS deko_renderer_reconfiguration\n' python3 tests/run_deko_renderer_reconfiguration_test.py deko_renderer_color_range_test.cpp printf 'PASS deko_renderer_color_range\n' run_cpp audio_pipeline -Itests/stream_stubs -Iextern/libpeer/src app/src/stream/audio/AudioPipeline.cpp -for scenario in timeline ssrc; do +for scenario in timeline ssrc red; do "$out/audio_pipeline" "$scenario" printf 'PASS audio_pipeline/%s\n' "$scenario" done @@ -71,10 +75,18 @@ done app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp app/src/stream/ffmpeg/AVFrameHolder.cpp \ -Wl,--wrap=av_frame_alloc,--wrap=av_frame_free,--wrap=av_packet_alloc,--wrap=avcodec_send_packet,--wrap=avcodec_receive_frame \ -lavcodec -lavutil -o "$out/ffmpeg_video_decoder" -for scenario in allocation{0..6} packet array receive receive-again send-again again eof; do +for scenario in allocation{0..6} packet array receive receive-again send-again again eof padding; do "$out/ffmpeg_video_decoder" "$scenario" printf 'PASS ffmpeg_video_decoder/%s\n' "$scenario" done +run_cpp ffmpeg_packet_ownership -Itests/stream_stubs \ + app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp app/src/stream/ffmpeg/AVFrameHolder.cpp \ + -Wl,--wrap=av_new_packet,--wrap=avcodec_send_packet,--wrap=avcodec_receive_frame \ + -lavcodec -lavutil +bash tests/run_ffmpeg_decode_integration_test.sh +printf 'PASS ffmpeg_decode_integration\n' +bash tests/run_gl_renderer_reconfiguration_test.sh +printf 'PASS gl_renderer_reconfiguration\n' run_cpp nvst_sdp app/src/webrtc/nvst_sdp.cpp run_cpp cloud_session_protocol "${sections[@]}" app/src/gfn/cloud_session_protocol.cpp app/src/gfn/shared.cpp -ljansson run_cpp stream_bitrate_pipeline "${sections[@]}" app/src/stream_settings.cpp app/src/localization.cpp \ diff --git a/tests/audio_pipeline_test.cpp b/tests/audio_pipeline_test.cpp index f37d04c7..9af7e362 100644 --- a/tests/audio_pipeline_test.cpp +++ b/tests/audio_pipeline_test.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -229,11 +230,46 @@ static void check_ssrc_timeline() pipeline.stop(); } +static void check_red_recovery() +{ + AudioPipeline pipeline; + pipeline.configure(1000, 30); + assert(pipeline.start()); + submit_epoch(pipeline, 1); + await([] { return starts == 1; }); + uint8_t payload[] = { + 0x80 | 111, 15, 0, 2, + 0x80 | 111, 7, 128, 2, + 111, 0xf0, 2, 0xf0, 3, 0xf0, 4 + }; + PeerAudioPacket packet {}; + packet.data = payload; + packet.size = sizeof(payload); + packet.timestamp = 480 * 4; + packet.ssrc = 1; + packet.sequence = 4; + packet.payload_type = 63; + pipeline.submit(packet); + await([] { return decoded_sequences.size() == 5; }); + { + std::lock_guard lock(mutex); + std::printf("RED recovered sequence markers:"); + for (const int sequence : decoded_sequences) + std::printf(" %d", sequence); + std::printf("\n"); + std::fflush(stdout); + assert(decoded_sequences == std::vector({0, 1, 2, 3, 4})); + } + pipeline.stop(); +} + int main(int argc, char** argv) { if (argc > 1) { if (std::string(argv[1]) == "timeline") check_output_timeline(); + else if (std::string(argv[1]) == "red") + check_red_recovery(); else { assert(std::string(argv[1]) == "ssrc"); check_ssrc_timeline(); diff --git a/tests/audio_rtp_utils_test.cpp b/tests/audio_rtp_utils_test.cpp index 48933be7..9e20a75c 100644 --- a/tests/audio_rtp_utils_test.cpp +++ b/tests/audio_rtp_utils_test.cpp @@ -23,10 +23,28 @@ int main() { auto primary = ParseRedPrimary(red, sizeof(red), 63); assert(primary.red && primary.size == 3); assert(primary.data[0] == 0x11 && primary.data[2] == 0x33); - auto redundant = ParseFirstRedundant(red, sizeof(red)); + auto redundant = ParseLatestRedundant(red, sizeof(red)); assert(redundant.size == 2 && redundant.timestamp_offset == 0); assert(redundant.data[0] == 0xaa && redundant.data[1] == 0xbb); + const uint8_t multiple[] = { + 0x80 | 111, 15, 0, 2, 0x80 | 111, 7, 128, 2, + 111, 0xaa, 0xbb, 0xcc, 0xdd, 0x11 + }; + redundant = ParseLatestRedundant(multiple, sizeof(multiple)); + assert(redundant.size == 2 && redundant.timestamp_offset == 480); + assert(redundant.data[0] == 0xcc && redundant.data[1] == 0xdd); + for (size_t size = 0; size < sizeof(multiple); ++size) + assert(!ParseLatestRedundant(multiple, size).data); + uint8_t wrong_codec[sizeof(multiple)]; + for (size_t i = 0; i < sizeof(multiple); ++i) + wrong_codec[i] = multiple[i]; + wrong_codec[4] = 0x80 | 110; + assert(!ParseLatestRedundant(wrong_codec, sizeof(wrong_codec)).data); + const uint8_t short_frame[] = {0x80 | 111, 3, 192, 1, 111, 0xaa, 0xbb}; + redundant = ParseLatestRedundant(short_frame, sizeof(short_frame)); + assert(redundant.size == 1 && redundant.timestamp_offset == 240 && redundant.data[0] == 0xaa); + const uint8_t malformed[] = {0x80 | 111, 0x00}; assert(ParseRedPrimary(malformed, sizeof(malformed), 63).data == nullptr); diff --git a/tests/auth_saved_session_refresh_test.cpp b/tests/auth_saved_session_refresh_test.cpp index 736bd773..bc50c71b 100644 --- a/tests/auth_saved_session_refresh_test.cpp +++ b/tests/auth_saved_session_refresh_test.cpp @@ -75,6 +75,20 @@ int main() opennow::AuthSession active; assert(client.LoadSavedSession(active)); assert(active.user.user_id == second.user.user_id); + const std::string device_path = opennow::gfn::detail::GetAppHome() + "/device_id.txt"; + const std::string device_id = opennow::gfn::detail::GenerateDeviceId(); + opennow::gfn::detail::WriteTextFileAtomically(device_path, device_id); + std::filesystem::remove(device_path); + assert(client.LoadSavedSession(active)); + assert(active.user.user_id == second.user.user_id); + assert(opennow::gfn::detail::GenerateDeviceId() == device_id); + opennow::gfn::detail::WriteTextFileAtomically(device_path, " "); + assert(client.LoadSavedSession(active)); + assert(active.user.user_id == second.user.user_id); + std::filesystem::remove(device_path); + assert(client.LoadSavedSession(active)); + assert(active.user.user_id == second.user.user_id); + assert(opennow::gfn::detail::GenerateDeviceId() == device_id); const auto saved = client.LoadSavedSessions(); assert(saved.size() == 2); assert(saved.front().tokens.access_token == "synthetic-renewed"); diff --git a/tests/deko_renderer_color_range_test.cpp b/tests/deko_renderer_color_range_test.cpp index 39af44c7..b1298d5a 100644 --- a/tests/deko_renderer_color_range_test.cpp +++ b/tests/deko_renderer_color_range_test.cpp @@ -30,6 +30,16 @@ int main() assert(renderer.isFrameFullRange(frame)); assert(deko_test::last_transform[12] == 0.0f); + for (const auto colorspace : {AVCOL_SPC_SMPTE170M, AVCOL_SPC_BT709, + AVCOL_SPC_BT2020_NCL, AVCOL_SPC_BT709}) { + frame->colorspace = colorspace; + deko_test::completed = deko_test::submitted; + renderer.drawLatest(nullptr, 1280, 720, frame, 0, 1); + const float expected = colorspace == AVCOL_SPC_BT709 ? 1.5748f : + colorspace == AVCOL_SPC_BT2020_NCL ? 1.4746f : 1.4020f; + assert(deko_test::last_transform[8] == expected); + } + AVFrame hardware {}; hardware.format = AV_PIX_FMT_NVTEGRA; hardware.color_range = AVCOL_RANGE_JPEG; diff --git a/tests/ffmpeg_decode_integration_test.cpp b/tests/ffmpeg_decode_integration_test.cpp new file mode 100644 index 00000000..02f9b889 --- /dev/null +++ b/tests/ffmpeg_decode_integration_test.cpp @@ -0,0 +1,76 @@ +#include "stream/ffmpeg/FFmpegVideoDecoder.hpp" +#include "stream_settings.hpp" + +#include +#include +#include +#include +#include +#include + +namespace opennow { +StreamSettings LoadStreamSettings() { return {}; } +} + +static void decode_stream(FFmpegVideoDecoder& decoder, const char* path, + int width, int height) +{ + std::ifstream input(path, std::ios::binary); + assert(input); + std::vector bytes(std::istreambuf_iterator(input), {}); + const size_t size = bytes.size(); + assert(size > 0); + bytes.resize(size + AV_INPUT_BUFFER_PADDING_SIZE); + AVCodecParserContext* parser = av_parser_init(AV_CODEC_ID_H264); + AVCodecContext* context = avcodec_alloc_context3(nullptr); + assert(parser && context); + size_t offset = 0; + int frames = 0; + int access_units = 0; + while (offset < size) { + uint8_t* packet = nullptr; + int packet_size = 0; + const int consumed = av_parser_parse2(parser, context, &packet, &packet_size, + bytes.data() + offset, static_cast(size - offset), + AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0); + assert(consumed >= 0 && (consumed > 0 || packet_size > 0)); + offset += consumed; + if (packet_size == 0) + continue; + std::vector unpadded(packet, packet + packet_size); + const int decoded = decoder.submit_decode_unit( + unpadded.data(), packet_size, 90000 + access_units++ * 1500); + assert(decoded >= 0); + std::fill(unpadded.begin(), unpadded.end(), 0xff); + frames += decoded; + if (decoded > 0) { + bool observed = false; + AVFrameHolder::instance().get([&](AVFrame* frame, uint64_t generation, bool reused) { + assert(!reused && generation > 0); + assert(frame->width == width && frame->height == height); + assert(frame->format == AV_PIX_FMT_YUV420P && frame->buf[0]); + assert(frame->data[0][0] >= 120 && frame->data[0][0] <= 130); + observed = true; + }); + assert(observed); + } + } + assert(access_units >= 15 && frames >= 10); + av_parser_close(parser); + avcodec_free_context(&context); + std::printf("Real FFmpeg decode %dx%d: %d access units, %d frames PASS\n", + width, height, access_units, frames); +} + +int main(int argc, char** argv) +{ + assert(argc == 3); + FFmpegVideoDecoder decoder; + assert(decoder.setup(VIDEO_FORMAT_H264, 64, 32, 60, nullptr, + VIDEO_DECODER_FORCE_SOFTWARE) == 0); + assert(!decoder.uses_hardware_frames()); + decode_stream(decoder, argv[1], 64, 32); + decoder.reset_stream(); + decode_stream(decoder, argv[2], 32, 64); + decoder.cleanup(); +} diff --git a/tests/ffmpeg_packet_ownership_test.cpp b/tests/ffmpeg_packet_ownership_test.cpp new file mode 100644 index 00000000..0167bc1e --- /dev/null +++ b/tests/ffmpeg_packet_ownership_test.cpp @@ -0,0 +1,89 @@ +#include "stream/ffmpeg/FFmpegVideoDecoder.hpp" +#include "stream_settings.hpp" + +#include +#include + +namespace { +bool fail_allocation = false; +bool send_again = false; +int sends = 0; +const uint8_t* rejected_data = nullptr; +const AVBuffer* rejected_buffer = nullptr; +uint8_t rejected_byte = 0; +AVPacket* retained = nullptr; +} + +namespace opennow { +StreamSettings LoadStreamSettings() { return {}; } +} + +extern "C" { +int __real_av_new_packet(AVPacket* packet, int size); + +int __wrap_av_new_packet(AVPacket* packet, int size) +{ + return fail_allocation ? AVERROR(ENOMEM) : __real_av_new_packet(packet, size); +} + +int __wrap_avcodec_send_packet(AVCodecContext*, const AVPacket* packet) +{ + ++sends; + assert(packet->buf && packet->size == 1); + for (int i = 0; i < AV_INPUT_BUFFER_PADDING_SIZE; ++i) + assert(packet->data[packet->size + i] == 0); + if (send_again) { + send_again = false; + rejected_data = packet->data; + rejected_buffer = packet->buf->buffer; + rejected_byte = packet->data[0]; + return AVERROR(EAGAIN); + } + if (rejected_data) { + assert(packet->data == rejected_data && packet->buf->buffer == rejected_buffer); + assert(packet->data[0] == rejected_byte); + rejected_data = nullptr; + } + if (!retained) { + retained = av_packet_alloc(); + assert(retained && av_packet_ref(retained, packet) == 0); + assert(retained->data == packet->data); + } + return 0; +} + +int __wrap_avcodec_receive_frame(AVCodecContext*, AVFrame*) +{ + return AVERROR(EAGAIN); +} +} + +int main() +{ + FFmpegVideoDecoder decoder; + assert(decoder.setup(VIDEO_FORMAT_H264, 16, 16, 60, nullptr, + VIDEO_DECODER_FORCE_SOFTWARE) == 0); + uint8_t input[] = {0x55}; + fail_allocation = true; + assert(decoder.submit_decode_unit(input, sizeof(input), 90000) == AVERROR(ENOMEM)); + assert(sends == 0 && !retained); + fail_allocation = false; + send_again = true; + assert(decoder.submit_decode_unit(input, sizeof(input), 90000) == 0); + assert(sends == 2 && !rejected_data); + assert(retained && retained->pts == 90000 && retained->dts == 90000); + input[0] = 0x66; + assert(retained->data[0] == 0x55); + assert(decoder.submit_decode_unit(input, sizeof(input), 91500) == 0); + assert(sends == 3 && retained->data[0] == 0x55); + fail_allocation = true; + assert(decoder.submit_decode_unit(input, sizeof(input), 93000) == AVERROR(ENOMEM)); + assert(sends == 3 && retained->data[0] == 0x55); + fail_allocation = false; + assert(decoder.submit_decode_unit(input, sizeof(input), 94500) == 0); + assert(sends == 4 && retained->data[0] == 0x55); + decoder.cleanup(); + assert(retained->data[0] == 0x55); + av_packet_free(&retained); + std::puts("FFmpeg packet padding, retry, allocation failure and lifetime: PASS"); +} diff --git a/tests/ffmpeg_video_decoder_test.cpp b/tests/ffmpeg_video_decoder_test.cpp index 0b9a9a89..2e12feab 100644 --- a/tests/ffmpeg_video_decoder_test.cpp +++ b/tests/ffmpeg_video_decoder_test.cpp @@ -13,6 +13,7 @@ int frame_allocation_failure = -1; bool packet_allocation_failure = false; bool array_allocation_failure = false; bool send_again = false; +bool check_packet_padding = false; int receive_error = AVERROR(EAGAIN); std::set allocated_frames; } @@ -85,8 +86,13 @@ AVPacket* __wrap_av_packet_alloc() return packet_allocation_failure ? nullptr : __real_av_packet_alloc(); } -int __wrap_avcodec_send_packet(AVCodecContext*, const AVPacket*) +int __wrap_avcodec_send_packet(AVCodecContext*, const AVPacket* packet) { + if (check_packet_padding) { + assert(packet->size == 1 && packet->data[0] == 0x55); + for (int i = 0; i < AV_INPUT_BUFFER_PADDING_SIZE; ++i) + assert(packet->data[packet->size + i] == 0); + } if (send_again) { send_again = false; return AVERROR(EAGAIN); @@ -113,7 +119,9 @@ int main(int argc, char** argv) else if (scenario == "receive" || scenario == "receive-again") receive_error = AVERROR_INVALIDDATA; else - assert(scenario == "again" || scenario == "eof" || scenario == "send-again"); + assert(scenario == "again" || scenario == "eof" || scenario == "send-again" || + scenario == "padding"); + check_packet_padding = scenario == "padding"; send_again = scenario == "receive-again" || scenario == "send-again"; if (scenario == "eof") receive_error = AVERROR_EOF; @@ -126,8 +134,14 @@ int main(int argc, char** argv) } else { assert(result == 0); uint8_t packet[1 + AV_INPUT_BUFFER_PADDING_SIZE] {}; + if (check_packet_padding) + packet[0] = 0x55; const int decoded = decoder.submit_decode_unit(packet, 1, 90000); assert(decoded == (scenario.starts_with("receive") ? AVERROR_INVALIDDATA : 0)); + if (check_packet_padding) { + uint8_t unpadded[] = {0x55}; + assert(decoder.submit_decode_unit(unpadded, sizeof(unpadded), 91500) == 0); + } } decoder.cleanup(); decoder.cleanup(); diff --git a/tests/gfn_atomic_write_test.cpp b/tests/gfn_atomic_write_test.cpp new file mode 100644 index 00000000..8491171c --- /dev/null +++ b/tests/gfn_atomic_write_test.cpp @@ -0,0 +1,56 @@ +#include "gfn/internal.hpp" + +#include +#include +#include +#include +#include +#include + +namespace opennow +{ +bool StreamDiagnosticsEnabled() { return false; } +} + +int main() +{ + using namespace opennow::gfn::detail; + const auto original_directory = std::filesystem::current_path(); + std::string pattern = (std::filesystem::temp_directory_path() / "opennow-write-XXXXXX").string(); + const char* directory = mkdtemp(pattern.data()); + assert(directory); + const std::filesystem::path test_directory(directory); + std::filesystem::current_path(test_directory); + std::filesystem::create_directories(GetAppHome()); + const std::string path = GetAppHome() + "/synthetic-store"; + WriteTextFileAtomically(path, "known-good"); + WriteTextFileAtomically(path, "latest-good"); + assert(ReadTextFile(path + ".bak") == "known-good"); + rlimit original_limit {}; + assert(getrlimit(RLIMIT_FSIZE, &original_limit) == 0); + rlimit write_limit = original_limit; + write_limit.rlim_cur = 0; + const auto original_handler = std::signal(SIGXFSZ, SIG_IGN); + assert(original_handler != SIG_ERR); + assert(setrlimit(RLIMIT_FSIZE, &write_limit) == 0); + bool failed = false; + try + { + WriteTextFileAtomically(path, "incomplete"); + } + catch (const std::runtime_error&) + { + failed = true; + } + assert(setrlimit(RLIMIT_FSIZE, &original_limit) == 0); + assert(std::signal(SIGXFSZ, original_handler) != SIG_ERR); + assert(failed); + assert(ReadTextFile(path) == "latest-good"); + assert(ReadTextFile(path + ".bak") == "known-good"); + assert(!std::filesystem::exists(path + ".tmp")); + WriteTextFileAtomically(path, "recovered"); + assert(ReadTextFile(path) == "recovered"); + assert(ReadTextFile(path + ".bak") == "latest-good"); + std::filesystem::current_path(original_directory); + std::filesystem::remove_all(test_directory); +} diff --git a/tests/gfn_device_identity_test.cpp b/tests/gfn_device_identity_test.cpp new file mode 100644 index 00000000..93b58749 --- /dev/null +++ b/tests/gfn_device_identity_test.cpp @@ -0,0 +1,130 @@ +#include "gfn/internal.hpp" +#include "device_identity_policy.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace +{ +bool fail_install = false; +std::string install_source; +std::string install_destination; +} + +extern "C" int rename(const char* source, const char* destination) noexcept +{ + if (fail_install && std::strcmp(source, install_source.c_str()) == 0 && + std::strcmp(destination, install_destination.c_str()) == 0) + { + errno = EIO; + return -1; + } + return renameat(AT_FDCWD, source, AT_FDCWD, destination); +} + +namespace opennow +{ +bool StreamDiagnosticsEnabled() { return false; } +} + +int main() +{ + using namespace opennow::gfn::detail; + const auto original_directory = std::filesystem::current_path(); + std::string pattern = (std::filesystem::temp_directory_path() / "opennow-device-XXXXXX").string(); + const char* directory = mkdtemp(pattern.data()); + assert(directory); + const std::filesystem::path test_directory(directory); + std::filesystem::current_path(test_directory); + std::filesystem::create_directories(GetAppHome()); + const std::string path = GetAppHome() + "/device_id.txt"; + install_source = path + ".tmp"; + install_destination = path; + + std::array identities; + std::array failed {}; + std::barrier start(static_cast(identities.size())); + std::array workers; + for (std::size_t index = 0; index < workers.size(); ++index) + workers[index] = std::thread([&, index] { + start.arrive_and_wait(); + try + { + identities[index] = GenerateDeviceId(); + } + catch (...) + { + failed[index] = true; + } + }); + for (auto& worker : workers) + worker.join(); + for (std::size_t index = 0; index < identities.size(); ++index) + { + assert(!failed[index]); + assert(opennow::device_identity::IsUsableStoredDeviceId(identities[index])); + assert(identities[index] == identities.front()); + } + assert(ReadTextFile(path) == identities.front()); + WriteTextFileAtomically(path, identities.front()); + for (int attempt = 0; attempt < 3; ++attempt) + { + std::filesystem::remove(path); + assert(GenerateDeviceId() == identities.front()); + assert(ReadTextFile(path) == identities.front()); + assert(ReadTextFile(path + ".bak") == identities.front()); + WriteTextFileAtomically(path, " "); + assert(GenerateDeviceId() == identities.front()); + assert(ReadTextFile(path) == identities.front()); + assert(ReadTextFile(path + ".bak") == identities.front()); + } + for (const bool missing_primary : {true, false}) + { + if (missing_primary) + std::filesystem::remove(path); + else + WriteTextFileAtomically(path, " "); + std::filesystem::create_directory(path + ".tmp"); + bool write_failed = false; + try + { + GenerateDeviceId(); + } + catch (const std::runtime_error&) + { + write_failed = true; + } + assert(write_failed); + assert(ReadTextFile(path + ".bak") == identities.front()); + std::filesystem::remove(path + ".tmp"); + + fail_install = true; + bool install_failed = false; + try + { + GenerateDeviceId(); + } + catch (const std::runtime_error&) + { + install_failed = true; + } + fail_install = false; + assert(install_failed); + assert(ReadTextFile(path + ".bak") == identities.front()); + assert(!std::filesystem::exists(path + ".tmp")); + assert(GenerateDeviceId() == identities.front()); + assert(ReadTextFile(path + ".bak") == identities.front()); + } + WriteTextFileAtomically(path, "legacy-custom-device-id"); + assert(GenerateDeviceId() == "legacy-custom-device-id"); + std::filesystem::current_path(original_directory); + std::filesystem::remove_all(test_directory); +} diff --git a/tests/gfn_trace_redaction_test.cpp b/tests/gfn_trace_redaction_test.cpp new file mode 100644 index 00000000..39a44e04 --- /dev/null +++ b/tests/gfn_trace_redaction_test.cpp @@ -0,0 +1,31 @@ +#include "gfn/internal.hpp" + +#include +#include +#include + +int main() +{ + using namespace opennow::gfn::detail; + const std::string marker = "fixtureSecret"; + const std::string valid = "{\"sessionToken\":\"" + marker + + "\",\"nested\":[{\"credential\":\"" + marker + "\"}],\"status\":2}"; + const auto redacted = JsonForTrace(valid); + assert(redacted.find(marker) == std::string::npos); + assert(redacted.find("status") != std::string::npos); + for (const auto& body : {valid.substr(0, valid.size() - 1), marker, + "\"" + marker + "\"", "[\"" + marker + "\"]"}) + assert(JsonForTrace(body).find(marker) == std::string::npos); + + bool failed = false; + try + { + LoadJson(marker); + } + catch (const std::runtime_error& error) + { + failed = true; + assert(std::string(error.what()).find(marker) == std::string::npos); + } + assert(failed); +} diff --git a/tests/gl_renderer_reconfiguration_test.cpp b/tests/gl_renderer_reconfiguration_test.cpp new file mode 100644 index 00000000..13a33a1c --- /dev/null +++ b/tests/gl_renderer_reconfiguration_test.cpp @@ -0,0 +1,119 @@ +#include "stream/OpenGL/GLVideoRenderer.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace opennow { +bool StreamDiagnosticsEnabled() { return false; } +} + +static std::array center_pixel(int width, int height) +{ + std::array pixel {}; + glReadPixels(width / 2, height / 2, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, pixel.data()); + return pixel; +} + +int main(int argc, char** argv) +{ + assert(argc == 2); + const std::string scenario = argv[1]; + assert(scenario == "resize" || scenario == "color" || scenario == "p010"); + setenv("EGL_PLATFORM", "surfaceless", 0); + EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); + assert(display != EGL_NO_DISPLAY); + assert(eglInitialize(display, nullptr, nullptr)); + assert(eglBindAPI(EGL_OPENGL_API)); + const EGLint attributes[] = { + EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_RED_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_BLUE_SIZE, 8, EGL_NONE + }; + EGLConfig config; + EGLint count = 0; + assert(eglChooseConfig(display, attributes, &config, 1, &count) && count == 1); + const EGLint surface_attributes[] = {EGL_WIDTH, 64, EGL_HEIGHT, 64, EGL_NONE}; + EGLSurface surface = eglCreatePbufferSurface(display, config, surface_attributes); + assert(surface != EGL_NO_SURFACE); + const EGLint context_attributes[] = { + EGL_CONTEXT_MAJOR_VERSION, 3, EGL_CONTEXT_MINOR_VERSION, 1, EGL_NONE + }; + EGLContext context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attributes); + assert(context != EGL_NO_CONTEXT); + assert(eglMakeCurrent(display, surface, surface, context)); + assert(gladLoadGLLoader(reinterpret_cast(eglGetProcAddress))); + + AVFrame* frame = av_frame_alloc(); + assert(frame); + frame->format = scenario == "p010" ? AV_PIX_FMT_P010 : AV_PIX_FMT_YUV420P; + frame->width = frame->height = 32; + frame->colorspace = AVCOL_SPC_BT709; + frame->color_range = AVCOL_RANGE_MPEG; + assert(av_frame_get_buffer(frame, 32) == 0); + if (scenario == "p010") { + for (int row = 0; row < frame->height; ++row) { + auto* pixels = reinterpret_cast(frame->data[0] + row * frame->linesize[0]); + std::fill_n(pixels, frame->width, static_cast((row < 16 ? 64 : 940) << 6)); + } + for (int row = 0; row < frame->height / 2; ++row) { + auto* pixels = reinterpret_cast(frame->data[1] + row * frame->linesize[1]); + std::fill_n(pixels, frame->width, static_cast(512 << 6)); + } + } else { + for (int row = 0; row < frame->height; ++row) + std::memset(frame->data[0] + row * frame->linesize[0], 180, frame->width); + for (int plane = 1; plane <= 2; ++plane) + for (int row = 0; row < frame->height / 2; ++row) + std::memset(frame->data[plane] + row * frame->linesize[plane], 128, frame->width / 2); + } + { + GLVideoRenderer renderer; + renderer.drawLatest(nullptr, 64, 64, frame, 0, 1); + const auto initial = center_pixel(64, 64); + if (scenario == "resize") { + renderer.drawLatest(nullptr, 32, 32, frame, 0, 1); + const auto resized = center_pixel(32, 32); + std::printf("GL resize RGB before=%u/%u/%u after=%u/%u/%u\n", + initial[0], initial[1], initial[2], resized[0], resized[1], resized[2]); + std::fflush(stdout); + assert(initial == resized); + } else if (scenario == "color") { + frame->color_range = AVCOL_RANGE_JPEG; + renderer.drawLatest(nullptr, 64, 64, frame, 0, 2); + const auto full = center_pixel(64, 64); + assert(full[0] >= 178 && full[0] <= 182); + assert(initial[0] > full[0] + 5); + frame->format = AV_PIX_FMT_YUVJ420P; + frame->color_range = AVCOL_RANGE_UNSPECIFIED; + frame->colorspace = AVCOL_SPC_UNSPECIFIED; + renderer.drawLatest(nullptr, 64, 64, frame, 0, 3); + assert(center_pixel(64, 64) == full); + for (int row = 0; row < frame->height / 2; ++row) { + std::memset(frame->data[1] + row * frame->linesize[1], 80, frame->width / 2); + std::memset(frame->data[2] + row * frame->linesize[2], 160, frame->width / 2); + } + renderer.drawLatest(nullptr, 64, 64, frame, 0, 4); + const auto bt601 = center_pixel(64, 64); + frame->colorspace = AVCOL_SPC_BT709; + renderer.drawLatest(nullptr, 64, 64, frame, 0, 4); + assert(center_pixel(64, 64) != bt601); + } else { + std::array bottom {}; + glReadPixels(32, 16, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, bottom.data()); + std::printf("GL P010 bottom RGB=%u/%u/%u\n", bottom[0], bottom[1], bottom[2]); + std::fflush(stdout); + assert(bottom[0] > 240 && bottom[1] > 240 && bottom[2] > 240); + } + } + av_frame_free(&frame); + assert(eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT)); + assert(eglDestroyContext(display, context)); + assert(eglDestroySurface(display, surface)); + assert(eglTerminate(display)); + std::printf("OpenGL renderer %s: PASS\n", scenario.c_str()); +} diff --git a/tests/peer_dtls_loop_test.c b/tests/peer_dtls_loop_test.c index be89491e..c90f04ea 100644 --- a/tests/peer_dtls_loop_test.c +++ b/tests/peer_dtls_loop_test.c @@ -12,6 +12,17 @@ static int next_dtls_result; static int consume_datagram; static uint8_t socket_packet[32]; static int socket_size; +static int next_handshake_result; +static int next_association_result; +static int association_creates; +static int state_changes; +static int callback_opens; +static int callback_closes; +static int callback_messages; +static int open_during_create; +static int close_during_create; +static int close_during_tick; +static PeerConnectionState last_state; int agent_recv_nonblocking(Agent* agent, uint8_t* buffer, int length) { (void)agent; @@ -65,7 +76,18 @@ int rtp_packet_validate(uint8_t* data, size_t length) { uint32_t rtp_get_ssrc(uint8_t* packet) { (void)packet; return 42; } void rtp_decoder_poll(RtpDecoder* decoder) { (void)decoder; } int dtls_srtp_probe(uint8_t* data) { return data[0] >= 0x14 && data[0] <= 0x17; } -void sctp_tick(Sctp* sctp) { (void)sctp; } +void sctp_tick(Sctp* sctp) { + if (close_during_tick) { + close_during_tick = 0; + sctp->connected = 0; + sctp->onclose(sctp->userdata); + } +} +void sctp_onopen(Sctp* sctp, void (*callback)(void*)) { sctp->onopen = callback; } +void sctp_onclose(Sctp* sctp, void (*callback)(void*)) { sctp->onclose = callback; } +void sctp_onmessage(Sctp* sctp, void (*callback)(char*, size_t, void*, uint16_t)) { + sctp->onmessage = callback; +} int sctp_is_connected(Sctp* sctp) { (void)sctp; return 1; } uint32_t ports_get_epoch_time(void) { return 1; } uint32_t ports_get_monotonic_time(void) { return 1; } @@ -78,11 +100,17 @@ int agent_select_candidate_pair(Agent* agent) { (void)agent; abort(); } int agent_connectivity_check(Agent* agent) { (void)agent; abort(); } int agent_fail_nominated_remote(Agent* agent) { (void)agent; abort(); } int dtls_srtp_handshake(DtlsSrtp* dtls, Address* address) { - (void)dtls; (void)address; abort(); + (void)dtls; (void)address; return next_handshake_result; } void dtls_srtp_reset_session(DtlsSrtp* dtls) { (void)dtls; abort(); } int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls) { - (void)sctp; (void)dtls; abort(); + (void)dtls; + ++association_creates; + if (open_during_create) + sctp->onopen(sctp->userdata); + if (close_during_create) + sctp->onclose(sctp->userdata); + return next_association_result; } int dtls_srtp_decrypt_rtp_packet(DtlsSrtp* dtls, uint8_t* packet, int* bytes) { (void)dtls; (void)packet; (void)bytes; return 0; @@ -102,7 +130,150 @@ static void queue_dtls(void) { socket_size = 5; } +static void state_changed(PeerConnectionState state, void* userdata) { + assert(userdata == &association_creates); + ++state_changes; + last_state = state; +} + +static void association_opened(void* userdata) { + assert(userdata == &association_creates); + ++callback_opens; +} + +static void association_closed(void* userdata) { + assert(userdata == &association_creates); + ++callback_closes; +} + +static void association_message(char* message, size_t len, void* userdata, uint16_t sid) { + assert(userdata == &association_creates); + assert(len == 4 && memcmp(message, "test", len) == 0 && sid == 7); + ++callback_messages; +} + +static void test_association_startup(void) { + for (int datachannel = DATA_CHANNEL_NONE; datachannel <= DATA_CHANNEL_BINARY; ++datachannel) { + for (int result = -1; result <= 1; ++result) { + PeerConnection* peer = calloc(1, sizeof(*peer)); + assert(peer); + peer->state = PEER_CONNECTION_CONNECTED; + peer->config.datachannel = datachannel; + peer->config.user_data = &association_creates; + peer->oniceconnectionstatechange = state_changed; + peer_connection_ondatachannel(peer, NULL, association_opened, association_closed); + association_creates = state_changes = callback_opens = 0; + open_during_create = 0; + next_handshake_result = MBEDTLS_ERR_SSL_WANT_READ; + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_CONNECTED); + assert(association_creates == 0 && state_changes == 0); + + next_handshake_result = 0; + next_association_result = result; + assert(peer_connection_loop(peer) == 0); + const PeerConnectionState expected = datachannel && result != 0 + ? PEER_CONNECTION_FAILED : PEER_CONNECTION_COMPLETED; + assert(peer->state == expected); + assert(state_changes == 1 && last_state == expected); + assert(association_creates == (datachannel ? 1 : 0)); + assert(peer->sctp_create_attempted == (datachannel ? 1 : 0)); + for (int attempt = 0; attempt < 100; ++attempt) + assert(peer_connection_loop(peer) == 0); + assert(peer->state == expected && state_changes == 1); + assert(association_creates == (datachannel ? 1 : 0)); + free(peer); + } + } + PeerConnection* peer = calloc(1, sizeof(*peer)); + assert(peer); + peer->state = PEER_CONNECTION_CONNECTED; + peer->config.datachannel = DATA_CHANNEL_STRING; + peer->config.user_data = &association_creates; + peer_connection_ondatachannel(peer, association_message, association_opened, association_closed); + open_during_create = 1; + next_association_result = 0; + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_COMPLETED && callback_opens == 1); + char message[] = "test"; + peer->sctp.onmessage(message, 4, peer->sctp.userdata, 7); + assert(callback_messages == 1); + free(peer); + open_during_create = 0; + socket_reads = 0; +} + +static void test_association_close(void) { + for (int datachannel = 1; datachannel >= 0; --datachannel) { + for (int opened = 0; opened <= 1; ++opened) { + PeerConnection* peer = calloc(1, sizeof(*peer)); + assert(peer); + peer->state = PEER_CONNECTION_CONNECTED; + peer->config.datachannel = datachannel; + peer->config.user_data = &association_creates; + peer->oniceconnectionstatechange = state_changed; + peer_connection_ondatachannel(peer, NULL, association_opened, association_closed); + state_changes = callback_opens = callback_closes = 0; + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_COMPLETED && state_changes == 1); + for (int attempt = 0; attempt < 100; ++attempt) + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_COMPLETED && callback_closes == 0); + if (opened) { + peer->sctp.connected = 1; + peer->sctp.onopen(peer->sctp.userdata); + assert(callback_opens == 1); + } + close_during_tick = 1; + const int reads_before_close = socket_reads; + assert(peer_connection_loop(peer) == 0); + assert(callback_closes == 1); + const PeerConnectionState expected = datachannel + ? PEER_CONNECTION_FAILED : PEER_CONNECTION_COMPLETED; + assert(peer->state == expected); + assert(state_changes == (datachannel ? 2 : 1)); + if (datachannel) + assert(socket_reads == reads_before_close); + for (int attempt = 0; attempt < 100; ++attempt) + assert(peer_connection_loop(peer) == 0); + assert(peer->state == expected && callback_closes == 1); + peer_connection_close(peer); + peer->sctp.onclose(peer->sctp.userdata); + assert(peer->state == PEER_CONNECTION_CLOSED && callback_closes == 2); + assert(state_changes == (datachannel ? 2 : 1)); + free(peer); + } + } + PeerConnection* peer = calloc(1, sizeof(*peer)); + assert(peer); + peer->state = PEER_CONNECTION_CONNECTED; + peer->config.datachannel = DATA_CHANNEL_STRING; + peer->config.user_data = &association_creates; + peer->oniceconnectionstatechange = state_changed; + peer_connection_ondatachannel(peer, NULL, association_opened, association_closed); + state_changes = callback_closes = 0; + close_during_create = 1; + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_FAILED && state_changes == 1 && callback_closes == 1); + close_during_create = 0; + free(peer); + peer = calloc(1, sizeof(*peer)); + assert(peer); + peer->state = PEER_CONNECTION_CONNECTED; + peer->config.datachannel = DATA_CHANNEL_STRING; + peer_connection_ondatachannel(peer, NULL, NULL, NULL); + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_COMPLETED); + close_during_tick = 1; + assert(peer_connection_loop(peer) == 0); + assert(peer->state == PEER_CONNECTION_FAILED); + free(peer); + socket_reads = 0; +} + int main(void) { + test_association_startup(); + test_association_close(); PeerConnection* peer = calloc(1, sizeof(*peer)); assert(peer); peer->state = PEER_CONNECTION_COMPLETED; diff --git a/tests/run_ffmpeg_decode_integration_test.sh b/tests/run_ffmpeg_decode_integration_test.sh new file mode 100755 index 00000000..cc7dea1d --- /dev/null +++ b/tests/run_ffmpeg_decode_integration_test.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "$(dirname "$0")/.." +out="$(mktemp -d)" +trap 'rm -rf "$out"' EXIT +for size in 64x32 32x64; do + ffmpeg -v error -f lavfi -i "color=c=gray:s=$size:r=60" -frames:v 20 \ + -c:v libx264 -threads 1 -preset ultrafast -tune zerolatency \ + -x264-params keyint=1:bframes=0 -f h264 "$out/$size.h264" +done +cxxflags=(-std=c++20 -Wall -Wextra -Werror -pthread -g -O1 + -fno-omit-frame-pointer -Iapp/src -Itests/stream_stubs) +if [[ -n "${OPENNOW_SANITIZERS:-}" ]]; then + cxxflags+=("-fsanitize=$OPENNOW_SANITIZERS") +fi +"${CXX:-g++}" "${cxxflags[@]}" tests/ffmpeg_decode_integration_test.cpp \ + app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp app/src/stream/ffmpeg/AVFrameHolder.cpp \ + -lavcodec -lavutil -o "$out/test" +"$out/test" "$out/64x32.h264" "$out/32x64.h264" diff --git a/tests/run_gl_renderer_reconfiguration_test.sh b/tests/run_gl_renderer_reconfiguration_test.sh new file mode 100755 index 00000000..1d4cd987 --- /dev/null +++ b/tests/run_gl_renderer_reconfiguration_test.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "$(dirname "$0")/.." +out="$(mktemp -d)" +trap 'rm -rf "$out"' EXIT +cxxflags=(-std=c++20 -Wall -Wextra -Werror -g -O1 -fno-omit-frame-pointer + -DUSE_GL_RENDERER -Iapp/src -Itests/stream_stubs + -Iextern/borealis/library/include/borealis/extern + -Iextern/borealis/library/include/borealis/extern/nanovg) +if [[ -n "${OPENNOW_SANITIZERS:-}" ]]; then + cxxflags+=("-fsanitize=$OPENNOW_SANITIZERS") +fi +"${CC:-cc}" -Iextern/borealis/library/include/borealis/extern \ + -c extern/borealis/library/lib/extern/glad/glad.c -o "$out/glad.o" +"${CXX:-g++}" "${cxxflags[@]}" tests/gl_renderer_reconfiguration_test.cpp \ + app/src/stream/OpenGL/GLVideoRenderer.cpp "$out/glad.o" \ + -lavcodec -lavutil -lEGL -ldl -o "$out/test" +for scenario in resize color p010; do + "$out/test" "$scenario" +done diff --git a/tests/ui_layout/CMakeLists.txt b/tests/ui_layout/CMakeLists.txt new file mode 100644 index 00000000..4a184b56 --- /dev/null +++ b/tests/ui_layout/CMakeLists.txt @@ -0,0 +1,21 @@ +cmake_minimum_required(VERSION 3.20) +project(opennow_ui_layout LANGUAGES C CXX) +get_filename_component(ROOT "../.." ABSOLUTE) +set(PLATFORM_DESKTOP ON) +set(USE_SDL2 ON) +set(USE_SYSTEM_SDL2 ON) +set(USE_GL3 ON) +set(BRLS_RESOURCES_DIR "${ROOT}") +include("${ROOT}/extern/borealis/library/cmake/commonOption.cmake") +include("${ROOT}/extern/borealis/library/cmake/toolchain.cmake") +add_subdirectory("${ROOT}/extern/borealis/library" borealis) +add_executable(ui_layout ui_layout.cpp ui_layout_stubs.cpp + "${ROOT}/app/src/top_bar_frame.cpp" + "${ROOT}/app/src/game_browser_header.cpp" + "${ROOT}/app/src/game_card_view.cpp" + "${ROOT}/app/src/game_detail_view.cpp" + "${ROOT}/app/src/app_state.cpp" + "${ROOT}/app/src/localization.cpp") +target_compile_features(ui_layout PRIVATE cxx_std_20) +target_include_directories(ui_layout PRIVATE "${ROOT}/app/src") +target_link_libraries(ui_layout PRIVATE borealis) diff --git a/tests/ui_layout/README.md b/tests/ui_layout/README.md new file mode 100644 index 00000000..a719b599 --- /dev/null +++ b/tests/ui_layout/README.md @@ -0,0 +1,44 @@ +# Native UI layout regression test + +This target renders the production `TopBarFrame`, browser header, game cards and +game detail view with the vendored Borealis SDL/OpenGL backend. It is not an HTML +mock or a full application build. Only account fixtures, cover loading, persistence +and network/launch actions are stubbed, so it needs no NVIDIA account and writes no +runtime account files. The placeholder cover and blank avatar are intentional. + +On Ubuntu, install the host dependencies and build outside the repository: + +```sh +sudo apt-get install cmake ninja-build libsdl2-dev libgl1-mesa-dev libcurl4-openssl-dev xvfb xauth +cmake -S tests/ui_layout -B /tmp/opennow-ui-layout -G Ninja -DCMAKE_BUILD_TYPE=Debug +cmake --build /tmp/opennow-ui-layout -j4 +bash tests/ui_layout/run.sh /tmp/opennow-ui-layout/ui_layout /tmp/opennow-ui-evidence +``` + +The runner tests every supported interface language with a long account name, +subscription chips and a minimized queue at 1280×720 and 1920×1080 physical +resolution. Both must retain the same 1280×720 logical coordinates. Guest and game +detail cases also run at both sizes. Each run checks child containment, horizontal +sibling separation, one-line tabs, card widths and vertical grid navigation routes. +The two-pixel tolerance allows Borealis/Yoga text and pixel rounding. Scrolling +frame scrollbars intentionally overlay content and are excluded from sibling checks. +The programmatic resize also updates the OpenGL viewport, matching Borealis' +native resize callback. The test checks drawable dimensions, viewport coverage +and the bottom-right framebuffer pixel before accepting a capture. + +Logs contain the measured rectangles, and `.ppm` files contain native framebuffer +captures. View them directly or convert them with ImageMagick: + +```sh +convert /tmp/opennow-ui-evidence/fr-1280.ppm /tmp/opennow-ui-evidence/fr-1280.png +``` + +The executable accepts `language account-name screenshot-path physical-width +[detail]`. Use `guest` as the account name for the signed-out fixture. A nonzero exit +means initialization or a geometry assertion failed. Switch/Deko3D rendering, +real controller input, asynchronous cover loading, settings pages and live catalog +contents still require separate application and hardware verification. + +The Linux Borealis backend does not load a system Chinese fallback font. Some +Chinese glyphs appear as missing-character boxes in these captures. The Chinese +cases check geometry, not glyph coverage or the Switch shared-font fallback. diff --git a/tests/ui_layout/run.sh b/tests/ui_layout/run.sh new file mode 100644 index 00000000..8598ad45 --- /dev/null +++ b/tests/ui_layout/run.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail +binary="$(realpath "$1")" +output="$(realpath -m "$2")" +mkdir -p "$output" +for width in 1280 1920; do + for language in en zh-CN es ru it fr pl uk; do + name="${language}-${width}" + xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" "$language" \ + 'A player with a very long account display name' \ + "$output/$name.ppm" "$width" > "$output/$name.log" 2>&1 + printf 'PASS %s\n' "$name" + done + xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" en guest \ + "$output/guest-$width.ppm" "$width" > "$output/guest-$width.log" 2>&1 + printf 'PASS guest-%s\n' "$width" + xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" fr Player \ + "$output/detail-$width.ppm" "$width" detail > "$output/detail-$width.log" 2>&1 + printf 'PASS detail-%s\n' "$width" +done diff --git a/tests/ui_layout/ui_layout.cpp b/tests/ui_layout/ui_layout.cpp new file mode 100644 index 00000000..9cd44641 --- /dev/null +++ b/tests/ui_layout/ui_layout.cpp @@ -0,0 +1,179 @@ +#include "app_state.hpp" +#include "game_browser_header.hpp" +#include "game_card_view.hpp" +#include "game_detail_view.hpp" +#include "game_grid_navigation.hpp" +#include "localization.hpp" +#include "top_bar_frame.hpp" + +#include +#include +#include + +#include +#include +#include +#include + +namespace +{ +int failures = 0; + +void Check(bool passed, const std::string& message) +{ + std::printf("%s %s\n", passed ? "PASS" : "FAIL", message.c_str()); + failures += !passed; +} + +void CheckChildren(brls::Box* box, const std::string& path) +{ + const auto bounds = box->getFrame(); + float previous_right = bounds.getMinX(); + size_t index = 0; + for (auto* child : box->getChildren()) + { + if (child->getVisibility() == brls::Visibility::GONE) + continue; + const auto rect = child->getFrame(); + const auto name = path + "/" + std::to_string(index++); + std::printf("RECT %s %.1f %.1f %.1f %.1f\n", name.c_str(), + rect.getMinX(), rect.getMinY(), rect.getWidth(), rect.getHeight()); + Check(rect.getMinX() >= bounds.getMinX() - 2.0f && + rect.getMaxX() <= bounds.getMaxX() + 2.0f, name + " horizontal containment"); + Check(rect.getMinY() >= bounds.getMinY() - 2.0f && + rect.getMaxY() <= bounds.getMaxY() + 2.0f, name + " vertical containment"); + if (box->getAxis() == brls::Axis::ROW && !dynamic_cast(box)) + Check(rect.getMinX() >= previous_right - 2.0f, name + " no sibling overlap"); + previous_right = rect.getMaxX(); + if (auto* nested = dynamic_cast(child)) + CheckChildren(nested, name); + } +} + +void Screenshot(const std::string& path) +{ + const int width = brls::Application::windowWidth; + const int height = brls::Application::windowHeight; + std::vector pixels(width * height * 3); + glReadBuffer(GL_BACK); + glPixelStorei(GL_PACK_ALIGNMENT, 1); + glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels.data()); + const size_t bottom_right = static_cast(width - 1) * 3; + Check(pixels[bottom_right] != 0 || pixels[bottom_right + 1] != 0 || pixels[bottom_right + 2] != 0, + "native frame covers bottom-right framebuffer pixel"); + std::ofstream file(path, std::ios::binary); + file << "P6\n" << width << ' ' << height << "\n255\n"; + for (int y = height - 1; y >= 0; --y) + file.write(reinterpret_cast(pixels.data() + y * width * 3), width * 3); +} +} + +int main(int argc, char** argv) +{ + opennow::SetInterfaceLanguage(argc > 1 ? argv[1] : "en"); + brls::Logger::setLogLevel(brls::LogLevel::LOG_ERROR); + if (!brls::Application::init()) + return 2; + brls::Application::createWindow("OpenNOW native UI layout test"); + brls::Application::getPlatform()->setThemeVariant(brls::ThemeVariant::DARK); + brls::Application::setGlobalQuit(false); + if (argc > 4 && std::string(argv[4]) == "1920") + { + SDL_SetWindowSize(SDL_GL_GetCurrentWindow(), 1920, 1080); + int width = 0; + int height = 0; + SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &width, &height); + glViewport(0, 0, width, height); + brls::Application::setWindowSize(1920, 1080); + } + opennow::AuthSession session; + session.user.display_name = argc > 2 ? argv[2] : "Player"; + session.user.membership_tier = "Ultimate"; + session.user.membership_tier_verified = true; + session.subscription.available = true; + session.subscription.remaining_hours = 100.5; + session.subscription.has_storage = true; + session.subscription.storage_size_gb = 1000; + if (session.user.display_name != "guest") + opennow::AppState::Instance().SetSession(session); + + auto* frame = new opennow::TopBarFrame(); + brls::Box* header = nullptr; + brls::Box* row = nullptr; + std::vector actions; + frame->addTab(opennow::Tr("Store"), [] { return new brls::Box(); }); + frame->addTab(opennow::Tr("Library"), [&] { + auto* page = new brls::Box(brls::Axis::COLUMN); + page->setPadding(18, 32, 18, 32); + for (const auto* text : {"Y Search", "ZL All stores", "ZR Last Played", "X More / Refresh"}) + actions.push_back(opennow::ui::MakeGameBrowserActionButton(text)); + header = opennow::ui::MakeGameBrowserHeader("My Library", actions); + page->addView(header); + row = new brls::Box(brls::Axis::ROW); + for (int i = 0; i < 5; ++i) + { + auto* card = new opennow::GameCardView({"A very long game title for clipping verification", "Steam", "Recently played", ""}, [] {}); + card->setMarginRight(i < 4 ? 24 : 0); + row->addView(card); + } + page->addView(row); + return page; + }); + frame->addTab(opennow::Tr("Settings"), [] { return new brls::Box(); }); + frame->focusTab(1); + brls::Application::pushActivity(new brls::Activity(frame)); + for (int i = 0; i < 20; ++i) + if (!brls::Application::mainLoop()) + return 2; + int drawable_width = 0; + int drawable_height = 0; + SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &drawable_width, &drawable_height); + const int expected_width = argc > 4 && std::string(argv[4]) == "1920" ? 1920 : 1280; + Check(drawable_width == expected_width && drawable_height == expected_width * 9 / 16, + "native drawable reaches requested physical resolution"); + int viewport[4] {}; + glGetIntegerv(GL_VIEWPORT, viewport); + Check(viewport[2] == drawable_width && viewport[3] == drawable_height, + "OpenGL viewport covers native drawable"); + Check(brls::Application::windowWidth == static_cast(drawable_width) && + brls::Application::windowHeight == static_cast(drawable_height), + "Borealis physical dimensions match native drawable"); + Check(brls::Application::contentWidth == 1280 && brls::Application::contentHeight == 720, + "1280x720 logical layout"); + CheckChildren(static_cast(frame->getChildren()[0]), "topbar"); + auto* tabs = static_cast(static_cast(frame->getChildren()[0])->getChildren()[1]); + for (auto* tab : tabs->getChildren()) + { + auto* label_box = static_cast(static_cast(tab)->getChildren()[0]); + Check(label_box->getChildren()[0]->getFrame().getHeight() <= 20, "tab label stays on one line"); + } + CheckChildren(header, "browser_header"); + CheckChildren(row, "grid"); + for (auto* card : row->getChildren()) + Check(card->getFrame().getWidth() == 224, "grid card retains 224 logical pixels"); + auto& cards = row->getChildren(); + opennow::WireVerticalGridNavigation({actions, cards}); + Check(cards.back()->getCustomNavigationRoutePtr(brls::FocusDirection::UP) == actions.back(), + "last grid column clamps to last toolbar action"); + Check(cards.back()->getCustomNavigationRoutePtr(brls::FocusDirection::DOWN) == cards.back(), + "bottom grid edge stays on live card"); + if (argc > 5 && std::string(argv[5]) == "detail") + { + opennow::GameDetailData data; + data.title = "A game title"; + data.subtitle = "GeForce NOW library"; + data.stores = "Steam"; + data.description = "A description for the native layout fixture."; + data.owned = true; + auto* detail = new opennow::GameDetailView(opennow::GfnClient(), data); + brls::Application::pushActivity(new brls::Activity(detail)); + for (int i = 0; i < 20; ++i) + brls::Application::mainLoop(); + CheckChildren(detail, "detail"); + } + if (argc > 3) + Screenshot(argv[3]); + brls::Application::quit(); + while (brls::Application::mainLoop()) {} + return failures ? 1 : 0; +} diff --git a/tests/ui_layout/ui_layout_stubs.cpp b/tests/ui_layout/ui_layout_stubs.cpp new file mode 100644 index 00000000..650f6637 --- /dev/null +++ b/tests/ui_layout/ui_layout_stubs.cpp @@ -0,0 +1,44 @@ +#include "avatar_utils.hpp" +#include "cover_image_cache.hpp" +#include "home_shortcut.hpp" +#include "nte_credentials.hpp" +#include "ui_helpers.hpp" + +namespace opennow +{ + +CachedImage::~CachedImage() = default; +void CachedImage::draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style style, brls::FrameContext* ctx) +{ + brls::Image::draw(vg, x, y, width, height, style, ctx); +} +void SetCachedCoverImage(CachedImage* image, const std::string&) +{ + image->setImageFromRes("img/opennow-logo-mark.png"); +} +void SetCachedAvatarImage(CachedImage*, const std::string&) {} +std::string ResolveAvatarUrl(const AuthUser&) { return "fixture-avatar"; } +int GetCurrentQueuePosition() { return 123; } +bool IsQueueMinimized() { return true; } +void RestoreMinimizedQueueDialog() {} +GfnClient::GfnClient() = default; +std::string GfnClient::LoadLauncherPreference(const std::string&, const std::string&) const { return {}; } +void GfnClient::SaveLauncherPreference(const std::string&, const std::string&, const std::string&) const {} +void ShowError(const std::string&, const std::string&) {} +void LaunchSessionDialog(const GfnClient&, const AuthSession&, const std::string&, const std::string&, + const std::string&, const std::string&, const std::string&, const std::string&) {} +bool IsNevernessToEverness(const std::string&) { return false; } +bool NteCredentials::valid() const { return false; } +NteCredentials LoadNteCredentials() { return {}; } +bool SaveNteCredentials(const NteCredentials&) { return false; } +bool ClearNteCredentials() { return true; } +std::string NteCredentialsPath() { return {}; } + +namespace shortcut +{ +CreateResult CreateGameShortcut(LaunchRequest) { return {}; } +bool StartForwarderInstaller(const std::string&, const std::string&, std::string&) { return false; } +} + +} diff --git a/tests/webrtc_input_handshake_test.cpp b/tests/webrtc_input_handshake_test.cpp new file mode 100644 index 00000000..5a0ee07a --- /dev/null +++ b/tests/webrtc_input_handshake_test.cpp @@ -0,0 +1,253 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define private public +#include "webrtc_session.hpp" +#undef private +#include "webrtc/internal.hpp" +#include "stream_diagnostics.hpp" + +#include + +struct SentMessage { + uint16_t sid; + std::vector bytes; +}; + +static std::vector sent_messages; +static int send_result = 0; +static char channel_label[] = "input_channel_v1"; +static int open_attempts = 0; +static std::vector input_logs; + +extern "C" { +int peer_init() { return 0; } +void peer_deinit() {} +PeerConnectionState peer_connection_get_state(PeerConnection*) { + return PEER_CONNECTION_COMPLETED; +} +const char* peer_connection_state_to_string(PeerConnectionState) { return "completed"; } +char* peer_connection_lookup_sid_label(PeerConnection*, uint16_t) { return channel_label; } +int peer_connection_datachannel_send_binary_sid(PeerConnection*, char* data, size_t len, uint16_t sid) { + sent_messages.push_back({sid, std::vector(data, data + len)}); + return send_result < 0 ? send_result : static_cast(len); +} +int peer_connection_create_datachannel_sid(PeerConnection*, DecpChannelType type, uint16_t, + uint32_t, char* label, char*, uint16_t sid) { + assert(type == DATA_CHANNEL_RELIABLE && sid == 0); + assert(std::string(label) == "input_channel_v1"); + ++open_attempts; + return send_result; +} +} + +namespace opennow { +bool StreamDiagnosticsEnabled() { return false; } +bool SensitiveInputLoggingSuppressed() { return false; } +} + +namespace opennow::webrtc::internal { +void AppendInputLog(const std::string& line) { input_logs.push_back(line); } +void AppendStreamLog(const std::string&) {} +std::string HexPreview(const uint8_t*, size_t, size_t) { return {}; } +std::string PreviewText(const std::string&, size_t) { return {}; } +uint64_t NowUs() { return 0x0102030405060708ULL; } +} + +WebRtcSession::WebRtcSession(const std::string&, const std::string&, const std::string&, + const std::string&, int, const std::vector&) {} +WebRtcSession::~WebRtcSession() = default; +SignalingClient::~SignalingClient() = default; +WebSocketClient::~WebSocketClient() = default; +FFmpegVideoDecoder::~FFmpegVideoDecoder() = default; +int FFmpegVideoDecoder::setup(int, int, int, int, void*, int) { return 0; } +void FFmpegVideoDecoder::cleanup() {} +int FFmpegVideoDecoder::submit_decode_unit(uint8_t*, int, int64_t) { return 0; } +int FFmpegVideoDecoder::capabilities() const { return 0; } +VideoDecodeStats* FFmpegVideoDecoder::video_decode_stats() { return nullptr; } +struct AudioPipeline::Impl {}; +AudioPipeline::~AudioPipeline() = default; + +static void RunScenario(const std::string& scenario) { + sent_messages.clear(); + send_result = 0; + open_attempts = 0; + input_logs.clear(); + channel_label[0] = 'i'; + WebRtcSession session("", "", "", "", 0, {}); + session.pc_ = reinterpret_cast(&session); + session.on_datachannel_open(); + session.datachannel_open_requested_ = true; + session.reliable_input_channel_requested_ = true; + assert(opennow::webrtc::internal::InputEncodingSelfTest()); + if (scenario == "echo") { + const uint8_t handshake[] = {0x0e, 0x02, 0x03, 0x00}; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 0); + assert(!sent_messages.empty()); + assert(sent_messages[0].sid == 0); + assert(sent_messages[0].bytes == std::vector(std::begin(handshake), std::end(handshake))); + assert(session.input_ready_ && session.input_protocol_version_ == 3); + assert(session.send_gamepad_input(0, 0x0101, 0x1000, 0, 0, 0, 0, 0, 0)); + assert(sent_messages.back().bytes.size() == 50); + assert(sent_messages.back().bytes[0] == 0x23); + assert(sent_messages.back().bytes[9] == 0x21); + session.send_mouse_left_button(true); + assert(sent_messages.back().bytes.size() == 28); + assert(sent_messages.back().bytes[9] == 0x22 && sent_messages.back().bytes[10] == 8); + session.send_mouse_move(10, -5); + assert(sent_messages.back().bytes.size() == 34); + assert(sent_messages.back().bytes[9] == 0x21 && sent_messages.back().bytes[12] == 7); + session.send_keyboard_key(0x41, 0x1e, 0, true); + assert(sent_messages.back().bytes.size() == 28); + assert(sent_messages.back().bytes[9] == 0x22 && sent_messages.back().bytes[10] == 3); + } else if (scenario == "post-handshake") { + const uint8_t handshake[] = {0x0e, 0x02, 0x03, 0x00}; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 0); + assert(session.input_ready_ && session.input_protocol_version_ == 3); + const auto messages_after_handshake = sent_messages.size(); + const uint8_t later_message[] = {0x0e, 0x02, 0x02, 0x00}; + session.on_datachannel_message(reinterpret_cast(later_message), sizeof(later_message), 0); + assert(session.input_ready_ && session.input_protocol_version_ == 3); + assert(sent_messages.size() == messages_after_handshake); + const uint8_t legacy_message[] = {0x0e, 0x03, 0x00, 0x00}; + session.on_datachannel_message(reinterpret_cast(legacy_message), sizeof(legacy_message), 0); + assert(session.input_ready_ && session.input_protocol_version_ == 3); + assert(sent_messages.size() == messages_after_handshake); + session.on_datachannel_close(); + session.on_datachannel_open(); + session.on_datachannel_message(reinterpret_cast(later_message), sizeof(later_message), 0); + assert(session.input_ready_ && session.input_protocol_version_ == 2); + assert(sent_messages[messages_after_handshake].bytes == + std::vector(std::begin(later_message), std::end(later_message))); + } else if (scenario == "retry") { + const uint8_t handshake[] = {0x0e, 0x02, 0x03, 0x00}; + send_result = -1; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 0); + assert(!session.input_ready_); + assert(!session.send_gamepad_input(0, 0x0101, 0, 0, 0, 0, 0, 0, 0)); + session.input_activation_due_ = std::chrono::steady_clock::now() - std::chrono::seconds(1); + session.maybe_activate_input(); + assert(!session.input_ready_); + send_result = 0; + session.input_activation_due_ = std::chrono::steady_clock::now() - std::chrono::seconds(1); + session.maybe_activate_input(); + assert(session.input_ready_ && session.input_protocol_version_ == 3); + assert(sent_messages.back().bytes == std::vector(std::begin(handshake), std::end(handshake))); + } else if (scenario == "recovery") { + session.input_ready_ = true; + session.input_protocol_version_ = 3; + session.input_handshake_acknowledged_ = true; + session.note_input_send_result(-1, "gamepad"); + session.note_input_send_result(-1, "gamepad"); + assert(session.input_ready_); + session.note_input_send_result(-1, "gamepad"); + assert(!session.input_ready_); + session.maybe_activate_input(); + assert(!session.input_ready_); + session.input_activation_due_ = std::chrono::steady_clock::now() - std::chrono::seconds(1); + session.maybe_activate_input(); + assert(session.input_ready_); + assert(session.input_protocol_version_ == 3); + assert(input_logs.back().find("HANDSHAKE reactivate protocol=3") == 0); + assert(session.send_gamepad_input(0, 0x0101, 0, 0, 0, 0, 0, 0, 0)); + assert(sent_messages.back().bytes.size() == 50); + } else if (scenario == "reset") { + session.datachannel_open_attempts_ = 60; + session.reset_input_channel_for_retry("sctp_close"); + assert(session.datachannel_open_attempts_ == 0); + assert(!session.input_ready_ && !session.datachannel_open_requested_); + assert(!session.datachannel_opened_); + assert(session.input_protocol_version_ == 2); + session.on_datachannel_open(); + session.maybe_open_datachannel(); + assert(open_attempts == 1 && session.datachannel_open_requested_); + } else if (scenario == "budget") { + session.datachannel_open_requested_ = false; + session.reliable_input_channel_requested_ = false; + send_result = -1; + for (int attempt = 0; attempt < 65; ++attempt) { + session.last_datachannel_open_attempt_ = {}; + session.maybe_open_datachannel(); + } + assert(open_attempts == 60); + session.on_datachannel_close(); + session.on_datachannel_open(); + send_result = 0; + session.maybe_open_datachannel(); + assert(open_attempts == 61 && session.datachannel_open_requested_); + } else if (scenario == "association-wait") { + session.reset_input_channel_for_retry("sctp_close"); + send_result = -1; + for (int attempt = 0; attempt < 65; ++attempt) { + session.last_datachannel_open_attempt_ = {}; + session.maybe_open_datachannel(); + } + assert(open_attempts == 0 && session.datachannel_open_attempts_ == 0); + session.on_datachannel_open(); + send_result = 0; + session.maybe_open_datachannel(); + assert(open_attempts == 1 && session.datachannel_open_requested_); + } else if (scenario == "bounds") { + std::vector oversized(65, 0); + oversized[0] = 0x0e; + oversized[1] = 0x02; + oversized[2] = 0x03; + session.on_datachannel_message(reinterpret_cast(oversized.data()), oversized.size(), 0); + assert(!session.input_ready_ && session.pending_input_handshake_.empty()); + assert(sent_messages.empty()); + const uint8_t handshake[] = {0x0e, 0x02, 0x03, 0x00}; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 2); + assert(!session.input_ready_ && sent_messages.empty()); + channel_label[0] = 'x'; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 0); + assert(!session.input_ready_ && sent_messages.empty()); + } else if (scenario == "pending-reset") { + const uint8_t handshake[] = {0x0e, 0x02, 0x03, 0x00}; + send_result = -1; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 0); + assert(!session.pending_input_handshake_.empty()); + session.on_datachannel_close(); + assert(session.pending_input_handshake_.empty()); + assert(session.input_protocol_version_ == 2 && !session.input_ready_); + assert(!session.input_handshake_acknowledged_); + } else if (scenario == "fallback") { + session.input_activation_due_ = std::chrono::steady_clock::now() - std::chrono::seconds(1); + session.maybe_activate_input(); + assert(session.input_ready_ && session.input_protocol_version_ == 2); + assert(input_logs.back().find("HANDSHAKE fallback protocol=2") == 0); + assert(session.send_gamepad_input(0, 0x0101, 0, 0, 0, 0, 0, 0, 0)); + assert(sent_messages.back().bytes.size() == 38 && sent_messages.back().bytes[0] == 12); + } else if (scenario == "legacy") { + const uint8_t handshake[] = {0x0e, 0x03, 0x00, 0x00}; + session.on_datachannel_message(reinterpret_cast(handshake), sizeof(handshake), 0); + assert(session.input_ready_ && session.input_protocol_version_ == 0x030e); + assert(sent_messages[0].bytes == std::vector(std::begin(handshake), std::end(handshake))); + } else { + assert(false); + } +} + +int main(int argc, char** argv) { + if (argc == 2) { + RunScenario(argv[1]); + return 0; + } + assert(argc == 1); + for (const auto* scenario : {"echo", "post-handshake", "retry", "recovery", "reset", "budget", + "association-wait", "bounds", "pending-reset", "fallback", "legacy"}) { + RunScenario(scenario); + std::printf("PASS webrtc_input_handshake/%s\n", scenario); + } +} diff --git a/tests/websocket_client_test.cpp b/tests/websocket_client_test.cpp index f2f37f2c..f91b5664 100644 --- a/tests/websocket_client_test.cpp +++ b/tests/websocket_client_test.cpp @@ -11,7 +11,7 @@ namespace { -enum class UpgradeResponse { Valid, Bare, WrongAccept }; +enum class UpgradeResponse { Valid, Bare, WrongAccept, SlowDrip }; UpgradeResponse next_upgrade = UpgradeResponse::Valid; struct FakeTransport @@ -31,6 +31,7 @@ struct FakeTransport CURLcode receive_result = CURLE_AGAIN; UpgradeResponse upgrade = std::exchange(next_upgrade, UpgradeResponse::Valid); std::string request; + size_t upgrade_offset = 0; }; std::vector> transports; @@ -148,10 +149,16 @@ CURLcode curl_easy_recv(CURL* curl, void* buffer, size_t length, size_t* receive (fake.upgrade == UpgradeResponse::Bare ? std::string() : "Upgrade: WebSocket\r\nConnection: keep-alive, Upgrade\r\nSec-WebSocket-Accept: " + (fake.upgrade == UpgradeResponse::WrongAccept ? "synthetic-secret" : *accept) + "\r\n") + "\r\n"; - assert(length >= response.size()); - std::memcpy(buffer, response.data(), response.size()); - *received = response.size(); - fake.handshaking = false; + if (fake.upgrade == UpgradeResponse::SlowDrip && fake.upgrade_offset < 55) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + *received = 1; + } else { + *received = response.size() - fake.upgrade_offset; + } + assert(length >= *received); + std::memcpy(buffer, response.data() + fake.upgrade_offset, *received); + fake.upgrade_offset += *received; + fake.handshaking = fake.upgrade_offset != response.size(); return CURLE_OK; } *received = std::min(length, fake.input.size()); @@ -167,6 +174,40 @@ CURLcode curl_easy_recv(CURL* curl, void* buffer, size_t length, size_t* receive int main() { using Queue = opennow::websocket::WriteQueue; + for (const CURLcode error : {CURLE_OK, CURLE_RECV_ERROR}) { + WebSocketClient client("ws://example.invalid"); + assert(client.connect()); + auto& fake = latest(); + std::vector messages; + client.set_on_message([&](const std::string& message) { messages.push_back(message); }); + for (size_t i = 0; i < 32; ++i) + fake.input.insert(fake.input.end(), {0x81, 1, 'x'}); + fake.input.insert(fake.input.end(), {0x81, 2, 'y'}); + fake.receive_result = error; + for (size_t i = 0; i < 4; ++i) + client.poll(); + assert(messages == std::vector(32, "x")); + assert(!client.is_connected()); + assert(fake.closed); + assert(client.get_last_error() == (error == CURLE_OK + ? "Remote endpoint closed the signaling connection" : "Receive error: fake transport error")); + assert(client.connect()); + auto& fresh = latest(); + fresh.input = {0x81, 1, 'z'}; + client.poll(); + client.poll(); + assert(messages.back() == "z"); + assert(client.is_connected()); + } + { + next_upgrade = UpgradeResponse::SlowDrip; + WebSocketClient client("ws://example.invalid"); + const auto started = Queue::Clock::now(); + assert(!client.connect()); + assert(Queue::Clock::now() - started < std::chrono::seconds(6)); + assert(latest().closed); + assert(client.get_last_error() == "Handshake timeout"); + } for (const auto response : {UpgradeResponse::Bare, UpgradeResponse::WrongAccept}) { next_upgrade = response; WebSocketClient client("wss://example.invalid"); From 3d6ebc63da8602f84e2b39f05ba6d0396e295451 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 18:54:23 +0000 Subject: [PATCH 02/23] Recover native UI verification harness after workspace rollback --- tests/ui_layout/CMakeLists.txt | 28 +- tests/ui_layout/README.md | 131 +++-- tests/ui_layout/font_chain_test.py | 21 + tests/ui_layout/run.sh | 50 +- tests/ui_layout/ui_layout.cpp | 675 ++++++++++++++++++++----- tests/ui_layout/ui_layout_fixtures.hpp | 37 ++ tests/ui_layout/ui_layout_stubs.cpp | 218 +++++++- 7 files changed, 972 insertions(+), 188 deletions(-) create mode 100644 tests/ui_layout/font_chain_test.py create mode 100644 tests/ui_layout/ui_layout_fixtures.hpp diff --git a/tests/ui_layout/CMakeLists.txt b/tests/ui_layout/CMakeLists.txt index 4a184b56..450dc086 100644 --- a/tests/ui_layout/CMakeLists.txt +++ b/tests/ui_layout/CMakeLists.txt @@ -1,5 +1,10 @@ cmake_minimum_required(VERSION 3.20) project(opennow_ui_layout LANGUAGES C CXX) +option(OPENNOW_UI_SANITIZERS "Instrument the native harness and Borealis with ASan/UBSan" OFF) +if(OPENNOW_UI_SANITIZERS) + add_compile_options(-fsanitize=address,undefined -fno-omit-frame-pointer) + add_link_options(-fsanitize=address,undefined) +endif() get_filename_component(ROOT "../.." ABSOLUTE) set(PLATFORM_DESKTOP ON) set(USE_SDL2 ON) @@ -9,7 +14,26 @@ set(BRLS_RESOURCES_DIR "${ROOT}") include("${ROOT}/extern/borealis/library/cmake/commonOption.cmake") include("${ROOT}/extern/borealis/library/cmake/toolchain.cmake") add_subdirectory("${ROOT}/extern/borealis/library" borealis) +find_package(PkgConfig REQUIRED) +pkg_check_modules(JANSSON REQUIRED IMPORTED_TARGET jansson) add_executable(ui_layout ui_layout.cpp ui_layout_stubs.cpp + "${ROOT}/app/src/library_tab.cpp" + "${ROOT}/app/src/library_row_view.cpp" + "${ROOT}/app/src/catalog_tab.cpp" + "${ROOT}/app/src/settings_tab.cpp" + "${ROOT}/app/src/settings_tab_pages.cpp" + "${ROOT}/app/src/settings_tab_actions.cpp" + "${ROOT}/app/src/settings_tab_account.cpp" + "${ROOT}/app/src/providers_tab.cpp" + "${ROOT}/app/src/qr_login_dialog.cpp" + "${ROOT}/app/src/qrcodegen.c" + "${ROOT}/app/src/ui_action_guard.cpp" + "${ROOT}/app/src/ui_helpers.cpp" + "${ROOT}/app/src/queue_view.cpp" + "${ROOT}/app/src/stream_overlay_view.cpp" + "${ROOT}/app/src/ui_theme.cpp" + "${ROOT}/app/src/stream_settings.cpp" + "${ROOT}/app/src/stream_diagnostics.cpp" "${ROOT}/app/src/top_bar_frame.cpp" "${ROOT}/app/src/game_browser_header.cpp" "${ROOT}/app/src/game_card_view.cpp" @@ -18,4 +42,6 @@ add_executable(ui_layout ui_layout.cpp ui_layout_stubs.cpp "${ROOT}/app/src/localization.cpp") target_compile_features(ui_layout PRIVATE cxx_std_20) target_include_directories(ui_layout PRIVATE "${ROOT}/app/src") -target_link_libraries(ui_layout PRIVATE borealis) +target_link_libraries(ui_layout PRIVATE borealis PkgConfig::JANSSON) +target_compile_definitions(ui_layout PRIVATE OPENNOW_UI_SOURCE_ROOT="${ROOT}") +target_link_options(ui_layout PRIVATE "-Wl,--wrap=_ZN4brls11Application6notifyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE") diff --git a/tests/ui_layout/README.md b/tests/ui_layout/README.md index a719b599..99c5d772 100644 --- a/tests/ui_layout/README.md +++ b/tests/ui_layout/README.md @@ -1,44 +1,109 @@ -# Native UI layout regression test +# Production native UI verification -This target renders the production `TopBarFrame`, browser header, game cards and -game detail view with the vendored Borealis SDL/OpenGL backend. It is not an HTML -mock or a full application build. Only account fixtures, cover loading, persistence -and network/launch actions are stubbed, so it needs no NVIDIA account and writes no -runtime account files. The placeholder cover and blank avatar are intentional. +This target compiles actual LibraryTab, CatalogTab, SettingsTab and their actions, +GameDetailView, the shell, queue UI and launch worker, and the pure stream overlay +renderer with vendored Borealis SDL/OpenGL. It does not build an HTML mock or add +a demo path to the application. Production InitializeThemeAndFonts runs after +window creation and before any view constructor. -On Ubuntu, install the host dependencies and build outside the repository: +Only external NVIDIA, image/avatar downloads, account/launcher-preference +persistence, shortcut installation, network information, play-history writes, +and the hardware stream handoff use test-link fixtures. Stream settings use the +real atomic implementation with isolated test AppHomePath storage. Queue tests +run real start/poll/cancel/adopt/minimize/restore code with scripted service +replies and a recording PresentCloudStream bridge. Notification instrumentation +records calls and forwards to the real Borealis notification implementation. +No fixture contains credentials or belongs to the NRO target. + +## Build and run + +On Ubuntu, build outside the repository: ```sh -sudo apt-get install cmake ninja-build libsdl2-dev libgl1-mesa-dev libcurl4-openssl-dev xvfb xauth -cmake -S tests/ui_layout -B /tmp/opennow-ui-layout -G Ninja -DCMAKE_BUILD_TYPE=Debug -cmake --build /tmp/opennow-ui-layout -j4 -bash tests/ui_layout/run.sh /tmp/opennow-ui-layout/ui_layout /tmp/opennow-ui-evidence +sudo apt-get install cmake ninja-build libsdl2-dev libgl1-mesa-dev \ + libcurl4-openssl-dev libjansson-dev xvfb xauth imagemagick +cmake -S tests/ui_layout -B ~/.capy/work/opennow-native-ui -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug +cmake --build ~/.capy/work/opennow-native-ui -j4 +python3 tests/ui_font_assets_test.py +python3 tests/ui_layout/font_chain_test.py +bash tests/ui_layout/run.sh ~/.capy/work/opennow-native-ui/ui_layout \ + ~/.capy/work/opennow-native-evidence ``` -The runner tests every supported interface language with a long account name, -subscription chips and a minimized queue at 1280×720 and 1920×1080 physical -resolution. Both must retain the same 1280×720 logical coordinates. Guest and game -detail cases also run at both sizes. Each run checks child containment, horizontal -sibling separation, one-line tabs, card widths and vertical grid navigation routes. -The two-pixel tolerance allows Borealis/Yoga text and pixel rounding. Scrolling -frame scrollbars intentionally overlay content and are excluded from sibling checks. -The programmatic resize also updates the OpenGL viewport, matching Borealis' -native resize callback. The test checks drawable dimensions, viewport coverage -and the bottom-right framebuffer pixel before accepting a capture. +The full runner has 104 cases: six screens, all eight supported languages, and +1280×720/1920×1080 physical resolution, plus guest and empty Library/Store at both +sizes. Every case must retain 1280×720 logical geometry. Settings has four extra +category captures; queue has initial-position and restored-snapshot captures. + +The executable accepts `language account-name screenshot-path physical-width +scenario`. Use `guest` for the signed-out fixture. Scenarios are `library`, +`store`, `settings`, `detail`, `queue`, `overlay`, `empty`, and `empty-store`. +Pass scenario names after the runner's output directory for a narrow matrix. +For parallel isolated output directories, `--screens-only` before scenario names +omits only separately assigned guest/empty cases. Run one group without that +flag so all eight extra cases remain covered. Each attempted case gets a log; +failures do not stop subsequent cases, and any failure makes the runner nonzero. + +## Assertions -Logs contain the measured rectangles, and `.ppm` files contain native framebuffer -captures. View them directly or convert them with ImageMagick: +- Child containment, flow sibling separation, one-line tabs, a single shell + footer, exact Store 220×210 cards with 245-pixel origin spacing, and containment + in 1200-pixel rows. Absolute art is not a flow sibling, and scrolling content + may exceed its viewport. Two-pixel Yoga containment tolerance does not relax + exact card dimensions. +- Public Borealis controller dispatch, real focus routing, hit-testing and + START/END gestures, actual SDL IME text-input/submission, Library focus-preview + identity, filter/sort/search, bounded fifteen-row local pages with previous + restoration and no extra fetch, Store order/query/cursor effects, and detail + activity navigation. +- Settings A cycle, X Save, Y Revert and reminder-only dirty/save behavior through + actual persistence. All categories get geometry/font checks and captures. + Category construction and help focus must not start implicit region probes. +- Detail Play and shortcut argument recording, multi-variant selector and saved + preference, actual selected-store launch, stale-account deferred-dismiss guard, + and overflowing descriptions scrolled through native held SDL input. +- Real queue ownership, position 123/unknown, minimize/restore/cancel, adopted and + after-cancel session cleanup, repeated polling, exactly one reminder, blocked + second launch, patch/ad/error priority, and account-generation cleanup. Entire + StartSession and PresentCloudStream settings must stay frozen when separately + saved settings change while minimized. A covering real dialog must remain + intact during handoff, then remove the stale queue after it closes. +- Named font IDs, stock-label font initialization, actual bundled glyph presence + for rendered text, mixed Latin/Cyrillic/Chinese NanoVG measurement, complete UI + translation codepoint coverage in every named face plus direct CJK fallback, + static weights and licenses. Missing Chinese glyphs are failures. +- Production overlay formatting for unavailable RTT/no packets, sequence-gap + loss estimate, fractional measured p95 latency, queue high-water and elapsed. +- Drawable/viewport coverage and bottom-right framebuffer coverage before native + PPM capture and PNG conversion. Final captures wait for notification toasts. + +Waits have finite deadlines; assertion failures are not skipped. Fixture covers +use the authentic OpenNOW logo and avatars are blank, so screenshots do not +prove real image download lifetime/cropping. + +## Sanitizers ```sh -convert /tmp/opennow-ui-evidence/fr-1280.ppm /tmp/opennow-ui-evidence/fr-1280.png +cmake -S tests/ui_layout -B ~/.capy/work/opennow-native-asan -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug -DOPENNOW_UI_SANITIZERS=ON +cmake --build ~/.capy/work/opennow-native-asan -j4 +xvfb-run -a -s '-screen 0 1920x1080x24' \ + ~/.capy/work/opennow-native-asan/ui_layout en Player \ + ~/.capy/work/opennow-native-asan/library.ppm 1280 library ``` -The executable accepts `language account-name screenshot-path physical-width -[detail]`. Use `guest` as the account name for the signed-out fixture. A nonzero exit -means initialization or a geometry assertion failed. Switch/Deko3D rendering, -real controller input, asynchronous cover loading, settings pages and live catalog -contents still require separate application and hardware verification. - -The Linux Borealis backend does not load a system Chinese fallback font. Some -Chinese glyphs appear as missing-character boxes in these captures. The Chinese -cases check geometry, not glyph coverage or the Switch shared-font fallback. +Run detail and queue similarly. Keep sanitizer diagnostics. If SDL/Mesa reports +a dependency leak, distinguish that report from view/application lifetime +failures instead of broadly suppressing it. GNU linker notification observation +is intended for this Linux host target. + +## Limits + +Fixtures do not prove NVIDIA authentication/entitlement or remote allocation, +real cover workers, live WebRTC sampling, Switch/Deko3D rendering, physical input +coordinates, remote reports, inline-keyboard capture or gameplay latency. The +overlay uses production rendering with test samples; the handoff bridge records +a call instead of creating a hardware stream. Run the supported full Switch +build, inspect RomFS, sideload the real SwitchNOW.nro, and verify login, playback, +dock/undock, queue cancellation and input release on real Switch hardware. diff --git a/tests/ui_layout/font_chain_test.py b/tests/ui_layout/font_chain_test.py new file mode 100644 index 00000000..e57ffa07 --- /dev/null +++ b/tests/ui_layout/font_chain_test.py @@ -0,0 +1,21 @@ +from pathlib import Path +import re +import runpy + +root = Path(__file__).resolve().parents[2] +asset_check = runpy.run_path(str(root / "tests/ui_font_assets_test.py")) +tables = asset_check["tables"] +has_glyph = asset_check["has_glyph"] +font_dir = root / "resources/font" +fallback = tables(font_dir / "OpenNOW-CJK.ttf") +source = (root / "app/src/localization.cpp").read_text() +literals = re.findall(r'"((?:\\.|[^"\\])*)"', source) +characters = set("".join(literals)) +characters.update("OpenNOW Жї 玩家设置游戏 123.45%") +characters = sorted(character for character in characters if ord(character) > 32) +for filename in ("Nunito-Medium.ttf", "Nunito-SemiBold.ttf", "Nunito-Bold.ttf", "Nunito-ExtraBold.ttf", "IBMPlexMono-Medium.ttf"): + base = tables(font_dir / filename) + missing = [character for character in characters + if not has_glyph(base, ord(character)) and not has_glyph(fallback, ord(character))] + assert not missing, f"{filename} direct bundled fallback misses: {missing}" + print(f"PASS {filename} + direct OpenNOW-CJK: {len(characters)} UI codepoints") diff --git a/tests/ui_layout/run.sh b/tests/ui_layout/run.sh index 8598ad45..4fc768d6 100644 --- a/tests/ui_layout/run.sh +++ b/tests/ui_layout/run.sh @@ -2,19 +2,47 @@ set -euo pipefail binary="$(realpath "$1")" output="$(realpath -m "$2")" +python3 "$(dirname "$(realpath "$0")")/font_chain_test.py" mkdir -p "$output" +shift 2 +include_extra=1 +if [[ "${1:-}" == --screens-only ]]; then + include_extra=0 + shift + printf 'INFO Running named screens only; guest/empty cases run in the separate main matrix.\n' +fi +if (( $# )); then scenarios=("$@"); else scenarios=(library store settings detail queue overlay); fi +status=0 +capture_case() { + local language="$1" width="$2" account="$3" scenario="$4" name="$5" + rm -f "$output/$name.ppm" "$output/$name.png" "$output/$name.ppm.queue.ppm" "$output/$name.ppm.queue.png" \ + "$output/$name.ppm.failure.ppm" "$output/$name.ppm.failure.png" "$output/$name.ppm.restored.ppm" "$output/$name.ppm.restored.png" + rm -f "$output/$name.ppm".settings-*.ppm "$output/$name.ppm".settings-*.png + if xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" "$language" "$account" \ + "$output/$name.ppm" "$width" "$scenario" > "$output/$name.log" 2>&1; then + printf 'PASS %s\n' "$name" + else + printf 'FAIL %s (see %s.log)\n' "$name" "$name" + status=1 + fi + if [[ -f "$output/$name.ppm" ]]; then convert "$output/$name.ppm" "$output/$name.png"; fi + if [[ -f "$output/$name.ppm.queue.ppm" ]]; then convert "$output/$name.ppm.queue.ppm" "$output/$name.ppm.queue.png"; fi + if [[ -f "$output/$name.ppm.failure.ppm" ]]; then convert "$output/$name.ppm.failure.ppm" "$output/$name.ppm.failure.png"; fi + if [[ -f "$output/$name.ppm.restored.ppm" ]]; then convert "$output/$name.ppm.restored.ppm" "$output/$name.ppm.restored.png"; fi + find "$output" -maxdepth 1 -name "$name.ppm.settings-*.ppm" -print0 | + while IFS= read -r -d '' path; do convert "$path" "${path%.ppm}.png"; done +} for width in 1280 1920; do for language in en zh-CN es ru it fr pl uk; do - name="${language}-${width}" - xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" "$language" \ - 'A player with a very long account display name' \ - "$output/$name.ppm" "$width" > "$output/$name.log" 2>&1 - printf 'PASS %s\n' "$name" + for scenario in "${scenarios[@]}"; do + capture_case "$language" "$width" 'A player with a very long account display name' "$scenario" "$language-$width-$scenario" + done done - xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" en guest \ - "$output/guest-$width.ppm" "$width" > "$output/guest-$width.log" 2>&1 - printf 'PASS guest-%s\n' "$width" - xvfb-run -a -s '-screen 0 1920x1080x24' "$binary" fr Player \ - "$output/detail-$width.ppm" "$width" detail > "$output/detail-$width.log" 2>&1 - printf 'PASS detail-%s\n' "$width" + if (( include_extra )); then + capture_case en "$width" guest library "guest-$width" + capture_case en "$width" Player empty "empty-$width" + capture_case en "$width" guest store "guest-store-$width" + capture_case en "$width" Player empty-store "empty-store-$width" + fi done +exit "$status" diff --git a/tests/ui_layout/ui_layout.cpp b/tests/ui_layout/ui_layout.cpp index 9cd44641..bbcbe86d 100644 --- a/tests/ui_layout/ui_layout.cpp +++ b/tests/ui_layout/ui_layout.cpp @@ -1,30 +1,166 @@ #include "app_state.hpp" -#include "game_browser_header.hpp" +#include "catalog_tab.hpp" #include "game_card_view.hpp" #include "game_detail_view.hpp" -#include "game_grid_navigation.hpp" +#include "library_tab.hpp" +#include "library_row_view.hpp" #include "localization.hpp" +#include "queue_view.hpp" +#include "settings_tab.hpp" +#include "stream_overlay_view.hpp" +#include "stream_settings.hpp" #include "top_bar_frame.hpp" +#include "ui_layout_fixtures.hpp" +#include "ui_theme.hpp" +#include "ui_helpers.hpp" #include #include +#include #include - +#include +#include +#include +#include +#include #include +#include #include +#include +#include +#include #include #include namespace { int failures = 0; - void Check(bool passed, const std::string& message) { std::printf("%s %s\n", passed ? "PASS" : "FAIL", message.c_str()); failures += !passed; } - +void Pump(int frames = 24) +{ + for (int index = 0; index < frames; ++index) + if (!brls::Application::mainLoop()) + throw std::runtime_error("Native event loop exited before assertions completed"); +} +void DrainToasts() +{ + auto style = brls::Application::getStyle(); + const auto duration = static_cast(style.getMetric("brls/animations/notification_timeout") + + 2 * style.getMetric("brls/animations/notification_show") + 100); + const auto deadline = std::chrono::steady_clock::now() + std::chrono::milliseconds(duration); + while (std::chrono::steady_clock::now() < deadline) Pump(1); +} +void Until(const std::function& predicate, const std::string& message, int seconds = 5) +{ + const auto deadline = std::chrono::steady_clock::now() + std::chrono::seconds(seconds); + while (!predicate() && std::chrono::steady_clock::now() < deadline) Pump(1); + Check(predicate(), message); + Pump(); +} +brls::View* CurrentRoot() +{ + const auto stack = brls::Application::getActivitiesStack(); + return stack.empty() ? nullptr : stack.back()->getContentView(); +} +void Walk(brls::View* root, const std::function& visit) +{ + if (!root || root->getVisibility() == brls::Visibility::GONE) return; + visit(root); + if (auto* box = dynamic_cast(root)) + for (auto* child : box->getChildren()) Walk(child, visit); +} +std::string Text(brls::View* root) +{ + std::string text; + Walk(root, [&](brls::View* view) { + if (auto* label = dynamic_cast(view)) text += label->getFullText() + "\n"; + }); + return text; +} +brls::View* Required(brls::View* root, const std::string& id) +{ + auto* view = root ? root->getView(id) : nullptr; + Check(view != nullptr, "semantic view exists: " + id); + if (!view) throw std::runtime_error("Missing production view ID: " + id); + return view; +} +brls::View* Action(brls::View* root, const std::string& title) +{ + brls::View* result = nullptr; + Walk(root, [&](brls::View* view) { + if (view->isFocusable() && Text(view).find(opennow::Tr(title)) != std::string::npos) result = view; + }); + Check(result != nullptr, "production action exists: " + title); + if (!result) throw std::runtime_error("Missing production action: " + title); + return result; +} +void Key(brls::ControllerButton button) +{ + const auto deadline = std::chrono::steady_clock::now() + std::chrono::seconds(5); + while (brls::Application::isInputBlocks() && std::chrono::steady_clock::now() < deadline) Pump(1); + Check(!brls::Application::isInputBlocks(), "controller dispatch is not blocked by a transition"); + std::printf("INPUT button=%d focus=%s\n", static_cast(button), + brls::Application::getCurrentFocus() ? brls::Application::getCurrentFocus()->describe().c_str() : "none"); + brls::Application::onControllerButtonPressed(button, false); + Pump(); +} +void Activate(brls::View* view) +{ + brls::Application::giveFocus(view); + Pump(); + Check(brls::Application::getCurrentFocus() == view->getDefaultFocus(), "action owns native focus before A"); + Key(brls::BUTTON_A); +} +void Tap(brls::View* target) +{ + const auto frame = target->getFrame(); + brls::Point point(frame.getMinX() + frame.getWidth() * 0.5f, frame.getMinY() + frame.getHeight() * 0.5f); + auto* responder = CurrentRoot()->hitTest(point); + Check(responder != nullptr, "native hitTest finds touch responder"); + if (!responder) throw std::runtime_error("Touch target is outside the production activity"); + auto* ancestor = responder; + while (ancestor && ancestor != target) ancestor = ancestor->hasParent() ? ancestor->getParent() : nullptr; + Check(ancestor == target, "touch responder belongs to the painted action"); + brls::TouchState touch; + touch.position = point; + touch.view = responder; + touch.phase = brls::TouchPhase::START; + responder->gestureRecognizerRequest(touch, {}, responder); + touch.phase = brls::TouchPhase::END; + responder->gestureRecognizerRequest(touch, {}, responder); + Pump(); +} +void Search(brls::View* root, const std::string& query) +{ + const std::string id = root->getView("catalog") ? "catalog-search" : "library-search"; + brls::Application::giveFocus(Required(root, id)); + Pump(); + const auto count = brls::Application::getActivitiesStack().size(); + Key(brls::BUTTON_Y); + Check(brls::Application::getActivitiesStack().size() == count + 1, "Y opens actual native SDL IME dialog"); + auto* input = dynamic_cast(Required(CurrentRoot(), "brls/dialog/label")); + auto* count_label = dynamic_cast(Required(CurrentRoot(), "brls/dialog/count")); + if (!input || !count_label) throw std::runtime_error("Native IME text/count label missing"); + size_t deletes = 0; + while (!count_label->getFullText().starts_with("0/") && deletes++ < 64) + brls::Application::onControllerButtonPressed(brls::BUTTON_BACK, false); + Check(count_label->getFullText().starts_with("0/"), "native IME deletion clears previous query"); + if (!query.empty()) + { + SDL_Event event {}; + event.type = SDL_TEXTINPUT; + std::snprintf(event.text.text, sizeof(event.text.text), "%s", query.c_str()); + Check(SDL_PushEvent(&event) == 1, "SDL accepts actual text-input event"); + Pump(); + Check(input->getFullText() == query, "native IME receives SDL text-input query"); + } + Key(brls::BUTTON_A); + Check(brls::Application::getActivitiesStack().size() == count, "native IME submit returns to production page"); +} void CheckChildren(brls::Box* box, const std::string& path) { const auto bounds = box->getFrame(); @@ -32,148 +168,441 @@ void CheckChildren(brls::Box* box, const std::string& path) size_t index = 0; for (auto* child : box->getChildren()) { - if (child->getVisibility() == brls::Visibility::GONE) - continue; + if (child->getVisibility() == brls::Visibility::GONE) continue; const auto rect = child->getFrame(); const auto name = path + "/" + std::to_string(index++); - std::printf("RECT %s %.1f %.1f %.1f %.1f\n", name.c_str(), - rect.getMinX(), rect.getMinY(), rect.getWidth(), rect.getHeight()); - Check(rect.getMinX() >= bounds.getMinX() - 2.0f && - rect.getMaxX() <= bounds.getMaxX() + 2.0f, name + " horizontal containment"); - Check(rect.getMinY() >= bounds.getMinY() - 2.0f && - rect.getMaxY() <= bounds.getMaxY() + 2.0f, name + " vertical containment"); - if (box->getAxis() == brls::Axis::ROW && !dynamic_cast(box)) - Check(rect.getMinX() >= previous_right - 2.0f, name + " no sibling overlap"); - previous_right = rect.getMaxX(); - if (auto* nested = dynamic_cast(child)) - CheckChildren(nested, name); + std::printf("RECT %s %.1f %.1f %.1f %.1f\n", name.c_str(), rect.getMinX(), rect.getMinY(), rect.getWidth(), rect.getHeight()); + Check(rect.getMinX() >= bounds.getMinX() - 2 && rect.getMaxX() <= bounds.getMaxX() + 2, name + " horizontal containment"); + if (!dynamic_cast(box)) + Check(rect.getMinY() >= bounds.getMinY() - 2 && rect.getMaxY() <= bounds.getMaxY() + 2, name + " vertical containment"); + const bool flow = YGNodeStyleGetPositionType(child->getYGNode()) != YGPositionTypeAbsolute; + if (box->getAxis() == brls::Axis::ROW && !dynamic_cast(box) && flow) + Check(rect.getMinX() >= previous_right - 2, name + " no flow sibling overlap"); + if (flow) previous_right = rect.getMaxX(); + if (auto* nested = dynamic_cast(child)) CheckChildren(nested, name); + } +} +struct FontFile +{ + std::vector bytes; + stbtt_fontinfo info {}; + explicit FontFile(const std::string& path) + { + std::ifstream file(path, std::ios::binary); + bytes.assign(std::istreambuf_iterator(file), {}); + if (bytes.empty() || !stbtt_InitFont(&info, bytes.data(), stbtt_GetFontOffsetForIndex(bytes.data(), 0))) + throw std::runtime_error("Cannot inspect bundled font: " + path); + } +}; +std::vector Codepoints(const std::string& text) +{ + std::vector result; + for (size_t offset = 0; offset < text.size();) + { + const unsigned char first = text[offset++]; + int count = first < 0x80 ? 0 : (first & 0xe0) == 0xc0 ? 1 : (first & 0xf0) == 0xe0 ? 2 : 3; + int code = first & (count == 0 ? 0x7f : count == 1 ? 0x1f : count == 2 ? 0x0f : 0x07); + while (count-- && offset < text.size()) code = (code << 6) | (static_cast(text[offset++]) & 0x3f); + result.push_back(code); + } + return result; +} +void CheckFonts(brls::View* root) +{ + const std::string dir = std::string(OPENNOW_UI_SOURCE_ROOT) + "/resources/"; + const std::array paths {"font/Nunito-Medium.ttf", "font/Nunito-SemiBold.ttf", "font/Nunito-Bold.ttf", "font/Nunito-ExtraBold.ttf", "font/IBMPlexMono-Medium.ttf"}; + const std::array names {"regular", "opennow-semibold", "opennow-bold", "opennow-extrabold", "opennow-mono"}; + std::vector bases; + std::vector handles; + for (size_t index = 0; index < paths.size(); ++index) + { + handles.push_back(opennow::ui::Font(static_cast(index))); + Check(handles.back() != brls::FONT_INVALID && brls::Application::getFont(names[index]) == handles.back(), "real named OpenNOW font role registered: " + std::to_string(index)); + bases.emplace_back(dir + paths[index]); + } + Check(brls::Application::getDefaultFont() == handles.front(), "stock label default uses initialized Nunito 500"); + std::vector fallbacks; + for (const char* path : {"font/OpenNOW-CJK.ttf", "font/switch_font.ttf", "font/switch_icons.ttf", "material/MaterialIcons-Regular.ttf"}) fallbacks.emplace_back(dir + path); + Check(brls::Application::getFont("opennow-cjk") != brls::FONT_INVALID, "bundled Chinese fallback registered"); + Walk(root, [&](brls::View* view) { + auto* label = dynamic_cast(view); + if (!label) return; + const auto found = std::find(handles.begin(), handles.end(), label->getFont()); + Check(found != handles.end(), "production label uses an initialized OpenNOW font"); + if (found == handles.end()) return; + const size_t index = found - handles.begin(); + for (int code : Codepoints(label->getFullText())) + { + if (code <= 32) continue; + bool present = stbtt_FindGlyphIndex(&bases[index].info, code) != 0; + for (auto& fallback : fallbacks) present = present || stbtt_FindGlyphIndex(&fallback.info, code) != 0; + if (!present) Check(false, "actual bundled font chain lacks codepoint " + std::to_string(code)); + } + }); + auto* vg = brls::Application::getNVGContext(); + for (int handle : handles) + { + nvgFontFaceId(vg, handle); + nvgFontSize(vg, 18); + float bounds[4] {}; + const float measured = nvgTextBounds(vg, 0, 0, "OpenNOW Жї 玩家设置", nullptr, bounds); + Check(std::isfinite(measured) && measured > 100 && bounds[3] > bounds[1], "actual font chain measures mixed Latin/Cyrillic/Chinese text"); } } - void Screenshot(const std::string& path) { - const int width = brls::Application::windowWidth; - const int height = brls::Application::windowHeight; + const int width = brls::Application::windowWidth, height = brls::Application::windowHeight; std::vector pixels(width * height * 3); glReadBuffer(GL_BACK); glPixelStorei(GL_PACK_ALIGNMENT, 1); glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels.data()); const size_t bottom_right = static_cast(width - 1) * 3; - Check(pixels[bottom_right] != 0 || pixels[bottom_right + 1] != 0 || pixels[bottom_right + 2] != 0, - "native frame covers bottom-right framebuffer pixel"); + Check(pixels[bottom_right] != 0 || pixels[bottom_right + 1] != 0 || pixels[bottom_right + 2] != 0, "native frame covers bottom-right framebuffer pixel"); std::ofstream file(path, std::ios::binary); file << "P6\n" << width << ' ' << height << "\n255\n"; - for (int y = height - 1; y >= 0; --y) - file.write(reinterpret_cast(pixels.data() + y * width * 3), width * 3); + for (int y = height - 1; y >= 0; --y) file.write(reinterpret_cast(pixels.data() + y * width * 3), width * 3); + Check(file.good(), "native framebuffer capture written"); } + +void StoreChecks(brls::View* root, bool empty, bool guest) +{ + Until([] { return ui_fixture::Snapshot().catalog_requests + ui_fixture::Snapshot().public_requests > 0; }, "production Store fetch callback reached external fixture"); + std::vector cards; + Walk(root, [&](brls::View* view) { if (auto* card = dynamic_cast(view)) cards.push_back(card); }); + if (empty) { Check(cards.empty(), "empty real Store feed creates no game cards"); return; } + Check(cards.size() == 15, "production Store page retains fifteen games"); + for (size_t index = 0; index < cards.size(); ++index) + { + const auto rect = cards[index]->getFrame(); + Check(std::abs(rect.getWidth() - 220) < 0.01 && std::abs(rect.getHeight() - 210) < 0.01, "Store card has exact 220x210 logical geometry"); + if (index % 5 != 0) Check(std::abs(rect.getMinX() - cards[index - 1]->getFrame().getMinX() - 245) < 0.01, "Store card origins have exact 245 spacing"); + const auto row = cards[index]->getParent()->getFrame(); + Check(std::abs(row.getWidth() - 1200) < 0.01, "Store row spans 1200 logical pixels"); + Check(rect.getMinX() >= row.getMinX() && rect.getMaxX() <= row.getMaxX() + 0.01, "Store card remains within the 1200-wide row"); + } + brls::Application::giveFocus(cards[4]); Pump(); Key(brls::BUTTON_NAV_DOWN); + Check(brls::Application::getCurrentFocus() == cards[9], "real Store down navigation preserves fifth column"); + Key(brls::BUTTON_NAV_UP); + Check(brls::Application::getCurrentFocus() == cards[4], "real Store up navigation returns to fifth column"); + brls::Application::giveFocus(Required(root, "catalog-filter")); Key(brls::BUTTON_LT); + Check(Text(root).find("Epic\n") == std::string::npos, "Store Steam filter removes Epic cards"); + for (int index = 0; index < 5; ++index) Key(brls::BUTTON_LT); + Key(brls::BUTTON_RT); + Check(Text(Required(root, "catalog-sort")).find(opennow::Tr("Store")) != std::string::npos, "real Store sort cycles to Store"); + Check(dynamic_cast(Required(root, "catalog-row-0"))->getChildren().front() == root->getView("catalog-card-1001"), "Store sort actually reorders Epic before Steam instead of just changing its label"); + Key(brls::BUTTON_RT); + Check(dynamic_cast(Required(root, "catalog-row-0"))->getChildren().front() == root->getView("catalog-card-1001"), "Publisher sort actually places the Alpha publisher first"); + Key(brls::BUTTON_RT); + Search(root, "Fixture game 1"); + if (guest) Check(root->getView("catalog-card-1000") == nullptr && ui_fixture::Snapshot().catalog_requests == 0, "guest Store search filters actual public feed without authenticated requests"); + else Until([] { const auto calls = ui_fixture::Snapshot(); return !calls.search_queries.empty() && calls.search_queries.back() == "Fixture game 1"; }, "Y search passes actual query to catalog service"); + Search(root, ""); + if (!guest) Until([] { return ui_fixture::Snapshot().catalog_requests >= 3; }, "clearing catalog search reloads feed"); + Activate(Required(root, "catalog-next")); + if (guest) Check(root->getView("catalog-card-1015") != nullptr && ui_fixture::Snapshot().public_requests == 1, "guest Store next page uses already-loaded public data without another fetch"); + else Until([] { const auto calls = ui_fixture::Snapshot(); return std::find(calls.cursors.begin(), calls.cursors.end(), "fixture-page-2") != calls.cursors.end(); }, "next page consumes actual catalog cursor"); + Activate(Required(root, "catalog-previous")); + brls::Application::giveFocus(Required(root, "catalog-card-1000")); Pump(); + const size_t size = brls::Application::getActivitiesStack().size(); Key(brls::BUTTON_A); + Check(brls::Application::getActivitiesStack().size() == size + 1 && dynamic_cast(CurrentRoot()), "Store A opens actual production detail activity"); + Key(brls::BUTTON_B); + Check(brls::Application::getActivitiesStack().size() == size, "detail B returns to real Store"); +} +void LibraryChecks(brls::View* root, bool guest, bool empty) +{ + if (guest || empty) + { + Check(Text(root).find(ui_fixture::Library().empty() ? "Fixture game" : ui_fixture::Library().front().title) == std::string::npos, "guest or empty library has no fabricated games"); + return; + } + Until([] { return ui_fixture::Snapshot().library_requests > 0; }, "real Library fetch callback reached fixture"); + auto* preview = Required(root, "library-preview-title"); + auto* row = Required(root, "library-row-fixture-1000"); + brls::Application::giveFocus(row); Pump(); + Check(Text(preview).find(ui_fixture::Library().front().title) != std::string::npos, "focused Library game identity updates actual preview title"); + Check(ui_fixture::Snapshot().cover_urls.back() == ui_fixture::Library().front().image_url, "focused Library identity requests that game's actual cover URL at external image boundary"); + Key(brls::BUTTON_NAV_DOWN); + Check(brls::Application::getCurrentFocus() != row, "Library down moves to another selectable row"); + Check(Text(preview).find(ui_fixture::Library().front().title) == std::string::npos, "Library preview follows changed focus identity"); + Activate(Required(root, "library-sort")); + Check(Text(Required(root, "library-sort")).find(opennow::Tr("Last Added")) != std::string::npos, "Library sort callback cycles to actual Last Added feed order"); + Tap(Required(root, "library-filter")); + Check(Text(Required(root, "library-filter")).find("Steam") != std::string::npos, "native touch activates real Library store filter"); + for (int index = 0; index < 5; ++index) Key(brls::BUTTON_LT); + Search(root, "Fixture game 1"); + Check(root->getView("library-row-fixture-1000") == nullptr, "real Library search removes unmatched row"); + Search(root, ""); + const int fetches = ui_fixture::Snapshot().library_requests; + size_t count = 0; + Walk(Required(root, "library-list"), [&count](brls::View* view) { count += dynamic_cast(view) != nullptr; }); + Check(count <= 15 && count > 0, "actual Library page bounds number of native row views"); + Activate(Required(root, "library-next")); + Check(root->getView("library-row-fixture-1015") && !root->getView("library-row-fixture-1000"), "Library next exposes next actual feed slice without retaining prior rows"); + Activate(Required(root, "library-previous")); + Check(root->getView("library-row-fixture-1000") && ui_fixture::Snapshot().library_requests == fetches, "Library previous restores game 1000 without another network fetch"); + brls::Application::giveFocus(Required(root, "library-row-fixture-1000")); Pump(); + const auto size = brls::Application::getActivitiesStack().size(); Key(brls::BUTTON_A); + Check(dynamic_cast(CurrentRoot()) != nullptr, "Library A opens actual production detail"); + Key(brls::BUTTON_B); + Check(brls::Application::getActivitiesStack().size() == size, "Library detail B returns without quitting"); + Key(brls::BUTTON_LB); + Check(root->getView("catalog") != nullptr, "real L action switches to Store"); + Key(brls::BUTTON_RB); + Check(root->getView("library") && root->getView("library-row-fixture-1000"), "real R action returns to live Library with page identity"); +} +void SettingsChecks(brls::View* root, const std::string& capture) +{ + auto capture_category = [&](const std::string& category) { + CheckChildren(dynamic_cast(root), "settings-" + category); + CheckFonts(root); DrainToasts(); Screenshot(capture + ".settings-" + category + ".ppm"); + }; + capture_category("account"); + Activate(Required(root, "settings/category/stream")); + auto* bitrate = Action(root, "Bitrate"); Activate(bitrate); Key(brls::BUTTON_X); + Check(opennow::LoadStreamSettings().bitrate_kbps == 16000, "real A bitrate cycle and X Save persist 16 Mbps"); + Activate(bitrate); Key(brls::BUTTON_Y); Key(brls::BUTTON_X); + Check(opennow::LoadStreamSettings().bitrate_kbps == 16000, "real Y Revert prevents unsaved bitrate persistence"); + capture_category("stream"); + Activate(Required(root, "settings/category/app")); + auto* reminder = Action(root, "Queue notify at"); Activate(reminder); Key(brls::BUTTON_X); + Check(opennow::LoadStreamSettings().queue_notify_threshold == 20, "queue reminder alone marks settings dirty and is saved by real X callback"); + Activate(reminder); Key(brls::BUTTON_Y); Key(brls::BUTTON_X); + Check(opennow::LoadStreamSettings().queue_notify_threshold == 20, "reminder Y Revert retains saved value"); + capture_category("app"); + Activate(Required(root, "settings/category/preferences")); capture_category("preferences"); + for (const char* category : {"preferences", "account", "stream"}) Activate(Required(root, std::string("settings/category/") + category)); + brls::Application::giveFocus(Action(root, "Bitrate")); Pump(); + Check(!Text(Required(root, "settings/help")).empty(), "actual focused setting help is populated"); + Check(ui_fixture::Snapshot().region_requests == 0 && ui_fixture::Snapshot().latency_measurements == 0, "category construction and focused help do not trigger implicit region or latency requests"); +} +void DetailChecks(opennow::GameDetailView* root) +{ + auto* description = dynamic_cast(Required(root, "detail/description")); + Check(description && description->getChildren().front()->getHeight() > description->getHeight(), "actual production description overflows bounded scroll viewport"); + brls::Application::giveFocus(Required(root, "detail/play")); Pump(); Key(brls::BUTTON_NAV_UP); + Check(brls::Application::getCurrentFocus() == description, "detail Up routes from Play to real description scroller"); + SDL_Event scroll {}; + scroll.type = SDL_KEYDOWN; scroll.key.keysym.scancode = SDL_SCANCODE_DOWN; scroll.key.keysym.sym = SDLK_DOWN; + SDL_PushEvent(&scroll); Pump(16); scroll.type = SDL_KEYUP; SDL_PushEvent(&scroll); Pump(); + Check(description->getContentOffsetY() > 0, "held native SDL Down scrolls actual overflow description"); + Activate(Action(root, "Play on GeForce NOW")); + Check(ui_fixture::Snapshot().launches.size() == 1, "actual detail Play callback reaches launch boundary once"); + const auto call = ui_fixture::Snapshot().launches.front(); + Check(call.app_id == "1000" && call.store == "Steam" && call.user_id == "native-fixture-user" && call.title == ui_fixture::Library().front().title, "actual Play passes selected launch ID, Steam, current account identity and internal title"); + Until([] { return !ui_fixture::Snapshot().handed_off_sessions.empty(); }, "real queue worker reaches recording stream handoff"); + Check(ui_fixture::Snapshot().played_ids == std::vector{"fixture-1000"}, "real queue worker records selected history identity"); + Check(ui_fixture::Snapshot().start_settings == ui_fixture::Snapshot().handoff_settings, "actual Play forwards complete request settings to stream handoff unchanged"); + Activate(Action(root, "Store")); Key(brls::BUTTON_B); + Activate(Action(root, "Create Switch shortcut")); + Until([] { return !ui_fixture::Snapshot().shortcuts.empty(); }, "actual shortcut worker reaches external shortcut boundary"); + const auto request = ui_fixture::Snapshot().shortcuts.front(); + Check(request.launch_app_id == "1000" && request.store == "Steam" && request.game_id == "fixture-1000", "actual shortcut request preserves launch/store/game IDs"); + if (CurrentRoot() != root) Key(brls::BUTTON_B); + auto data = opennow::MakeLibraryGameDetail(ui_fixture::Library().front()); + data.game_id = "fixture-multi"; + data.variants.push_back({"2000", "Epic", "OWNED", {}, "AVAILABLE", true}); + ui_fixture::ClearLauncherPreference(); + auto* multi = new opennow::GameDetailView(opennow::GfnClient(), data); + brls::Application::pushActivity(new brls::Activity(multi)); Pump(); + const size_t starts = ui_fixture::Snapshot().launches.size(); + Activate(Required(multi, "detail/play")); + Check(dynamic_cast(CurrentRoot()) != nullptr, "multi-variant Play opens actual native store selector"); + Key(brls::BUTTON_NAV_DOWN); Key(brls::BUTTON_A); + Until([starts] { return ui_fixture::Snapshot().launches.size() > starts; }, "native selector dismissal launches selected variant"); + Check(ui_fixture::Snapshot().launches.back().app_id == "2000" && ui_fixture::Snapshot().launches.back().store == "Epic", "actual selector launches Epic variant, not default Steam variant"); + Check(ui_fixture::Snapshot().saved_variants.back() == "2000", "actual selector persists selected launcher preference"); + Until([starts] { return ui_fixture::Snapshot().handed_off_sessions.size() > starts; }, "selected variant completes real queue handoff"); + Key(brls::BUTTON_B); + ui_fixture::ClearLauncherPreference(); + auto* guarded = new opennow::GameDetailView(opennow::GfnClient(), data); + brls::Application::pushActivity(new brls::Activity(guarded)); Pump(); + Activate(Required(guarded, "detail/play")); Key(brls::BUTTON_NAV_DOWN); + const size_t guarded_starts = ui_fixture::Snapshot().launches.size(); + const auto auth = *opennow::AppState::Instance().session(); + brls::Application::onControllerButtonPressed(brls::BUTTON_A, false); + opennow::AppState::Instance().ActivateSession(auth); Pump(48); + Check(ui_fixture::Snapshot().launches.size() == guarded_starts, "account change between selection and deferred dismiss prevents stale-account launch"); + Key(brls::BUTTON_B); } -int main(int argc, char** argv) +void QueueChecks(const opennow::AuthSession& session, const std::string& capture) { - opennow::SetInterfaceLanguage(argc > 1 ? argv[1] : "en"); - brls::Logger::setLogLevel(brls::LogLevel::LOG_ERROR); - if (!brls::Application::init()) - return 2; - brls::Application::createWindow("OpenNOW native UI layout test"); - brls::Application::getPlatform()->setThemeVariant(brls::ThemeVariant::DARK); - brls::Application::setGlobalQuit(false); - if (argc > 4 && std::string(argv[4]) == "1920") + ui_fixture::SetSessionMode(ui_fixture::SessionMode::Waiting); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1000", "Native queue fixture", "Steam", "Native queue fixture", "fixture-1000", "fixture://cover/1000"); + Until([] { return opennow::GetCurrentQueuePosition() == 123; }, "real queue worker publishes actual three-digit position"); + Check(Text(Required(CurrentRoot(), "queue/position")).find("123") != std::string::npos, "native queue displays all three position digits"); + CheckChildren(dynamic_cast(CurrentRoot()), "queue"); CheckFonts(CurrentRoot()); Screenshot(capture + ".queue.ppm"); + Tap(Required(CurrentRoot(), "queue/minimize")); + Check(opennow::IsQueueMinimized(), "actual Minimize dismisses UI without canceling worker"); + const auto original = opennow::LoadStreamSettings(); + auto changed = original; + changed.bitrate_kbps = 25000; changed.queue_notify_threshold = 5; changed.region = "https://changed-region.fixture.invalid/"; + Check(opennow::SaveStreamSettings(changed), "fixture saves new settings while actual queue is minimized"); + const size_t starts_before_second = ui_fixture::Snapshot().launches.size(); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "9999", "Blocked second launch", "Steam"); Pump(); + Check(ui_fixture::Snapshot().launches.size() == starts_before_second, "second launch is blocked while actual queue exists"); + Check(Text(Required(CurrentRoot(), "queue/stream-summary")).find("12 Mbps") != std::string::npos && + Text(Required(CurrentRoot(), "queue/region")).find(opennow::ui::ConfiguredLocation(original.region)) != std::string::npos && + Text(Required(CurrentRoot(), "queue/reminder")).find("10") != std::string::npos, "restored actual queue retains original configured bitrate, region and reminder"); + Activate(Required(CurrentRoot(), "queue/minimize")); + const int polls = ui_fixture::Snapshot().polls; + Until([polls] { return ui_fixture::Snapshot().polls >= polls + 2; }, "real minimized queue keeps polling without another worker", 12); + const auto notifications = ui_fixture::Snapshot().notifications; + const auto reminder = opennow::Tr("Queue almost ready. Tap the Queue chip to return."); + Check(std::count(notifications.begin(), notifications.end(), reminder) == 1, "actual minimized queue reminds once using original threshold despite changed saved settings"); + opennow::RestoreMinimizedQueueDialog(); Pump(); + Check(!opennow::IsQueueMinimized() && CurrentRoot()->getView("queue/position"), "actual restore reattaches native queue activity"); + Activate(Required(CurrentRoot(), "queue/cancel")); + Until([] { return !ui_fixture::Snapshot().stopped_sessions.empty(); }, "actual queue cancellation stops adopted remote session"); + Check(opennow::GetCurrentQueuePosition() == -1 && !opennow::IsQueueMinimized(), "cancel clears active queue ownership"); + ui_fixture::SetSessionMode(ui_fixture::SessionMode::BlockStart); + const size_t before = ui_fixture::Snapshot().launches.size(), stops = ui_fixture::Snapshot().stopped_sessions.size(); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1001", "Cancel-before-adopt fixture", "Epic"); + Until([before] { return ui_fixture::Snapshot().launches.size() > before; }, "actual start worker reaches controlled external gate"); + Activate(Required(CurrentRoot(), "queue/cancel")); ui_fixture::ReleaseStart(); + Until([stops] { return ui_fixture::Snapshot().stopped_sessions.size() > stops; }, "session returned after cancel is stopped instead of adopted"); + Check(ui_fixture::Snapshot().handed_off_sessions.empty(), "canceled queue never hands off a stream"); + opennow::SaveStreamSettings(original); + for (const auto mode : {ui_fixture::SessionMode::Unknown, ui_fixture::SessionMode::Patching, ui_fixture::SessionMode::Confirmation, ui_fixture::SessionMode::Failure}) { - SDL_SetWindowSize(SDL_GL_GetCurrentWindow(), 1920, 1080); - int width = 0; - int height = 0; - SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &width, &height); - glViewport(0, 0, width, height); - brls::Application::setWindowSize(1920, 1080); + ui_fixture::SetSessionMode(mode); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1000", "Actual phase fixture", "Steam"); Pump(48); + if (mode == ui_fixture::SessionMode::Unknown) + Check(Text(Required(CurrentRoot(), "queue/position")).find(opennow::Tr("Unknown")) != std::string::npos, "real queue with unavailable position stays unknown"); + else if (mode == ui_fixture::SessionMode::Patching) + Check(Text(Required(CurrentRoot(), "queue/status")).find(opennow::Tr("Updating the game")) != std::string::npos, "actual patching state takes priority over positive queue position"); + else if (mode == ui_fixture::SessionMode::Confirmation) + Check(Text(CurrentRoot()).find(opennow::Tr("Waiting for NVIDIA session ads or confirmation...")) != std::string::npos, "actual confirmation state takes priority over positive queue position"); + else { CheckChildren(dynamic_cast(CurrentRoot()), "queue-failure"); Check(opennow::GetCurrentQueuePosition() == -1, "actual failed queue relinquishes running ownership"); } + Activate(Required(CurrentRoot(), "queue/cancel")); } - opennow::AuthSession session; - session.user.display_name = argc > 2 ? argv[2] : "Player"; - session.user.membership_tier = "Ultimate"; - session.user.membership_tier_verified = true; - session.subscription.available = true; - session.subscription.remaining_hours = 100.5; - session.subscription.has_storage = true; - session.subscription.storage_size_gb = 1000; - if (session.user.display_name != "guest") - opennow::AppState::Instance().SetSession(session); + ui_fixture::SetSessionMode(ui_fixture::SessionMode::BlockStart); + const size_t epoch_starts = ui_fixture::Snapshot().launches.size(), epoch_stops = ui_fixture::Snapshot().stopped_sessions.size(); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1002", "Account guard fixture", "Steam"); + Until([epoch_starts] { return ui_fixture::Snapshot().launches.size() > epoch_starts; }, "account-guarded worker reaches controlled start boundary"); + auto replacement = session; replacement.user.user_id = "replacement-native-fixture-user"; + opennow::AppState::Instance().ActivateSession(replacement); ui_fixture::ReleaseStart(); + Until([epoch_stops] { return ui_fixture::Snapshot().stopped_sessions.size() > epoch_stops; }, "actual account-generation guard cancels and cleans up prior account session"); + Check(ui_fixture::Snapshot().handed_off_sessions.empty(), "prior-account queue never hands off a stream"); + opennow::AppState::Instance().ActivateSession(session); opennow::SaveStreamSettings(original); + ui_fixture::SetSessionMode(ui_fixture::SessionMode::BlockStart); + const size_t frozen_starts = ui_fixture::Snapshot().launches.size(), frozen_handoffs = ui_fixture::Snapshot().handed_off_sessions.size(); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1003", "Frozen settings handoff fixture", "Steam"); + Until([frozen_starts] { return ui_fixture::Snapshot().launches.size() > frozen_starts; }, "gated actual request captures explicit stream settings"); + Activate(Required(CurrentRoot(), "queue/minimize")); + Check(opennow::SaveStreamSettings(changed), "saved settings change while real start request is gated and minimized"); + opennow::RestoreMinimizedQueueDialog(); Pump(); + Check(Text(Required(CurrentRoot(), "queue/stream-summary")).find("12 Mbps") != std::string::npos, "restored gated queue still displays original configuration"); + Screenshot(capture + ".restored.ppm"); ui_fixture::ReleaseStart(); + Until([frozen_handoffs] { return ui_fixture::Snapshot().handed_off_sessions.size() > frozen_handoffs; }, "gated real worker completes actual stream handoff"); + Check(ui_fixture::Snapshot().start_settings.back() == original && ui_fixture::Snapshot().handoff_settings.back() == original, "StartSession and PresentCloudStream receive same entire frozen StreamSettings after saved-settings change"); + Check(opennow::LoadStreamSettings() == changed, "handoff does not roll back independently saved next-stream settings"); + ui_fixture::SetSessionMode(ui_fixture::SessionMode::BlockStart); + const size_t covered_starts = ui_fixture::Snapshot().launches.size(), covered_handoffs = ui_fixture::Snapshot().handed_off_sessions.size(); + const size_t original_stack = brls::Application::getActivitiesStack().size(); + opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1004", "Covered queue handoff fixture", "Steam"); + Until([covered_starts] { return ui_fixture::Snapshot().launches.size() > covered_starts; }, "covered queue worker reaches external gate"); + auto* dialog = new brls::Dialog("Native dialog covering the production queue"); + dialog->addButton("Close", [] {}); dialog->setCancelable(true); dialog->open(); Pump(); ui_fixture::ReleaseStart(); + Until([covered_handoffs] { return ui_fixture::Snapshot().handed_off_sessions.size() > covered_handoffs; }, "covered real queue hands off exactly when ready"); + Check(CurrentRoot() == dialog && brls::Application::getActivitiesStack().size() == original_stack + 2, "covered queue readiness does not pop unrelated top dialog"); + Check(ui_fixture::Snapshot().handed_off_sessions.size() == covered_handoffs + 1, "covered queue invokes actual handoff callback exactly once"); + Key(brls::BUTTON_B); + Until([original_stack] { return brls::Application::getActivitiesStack().size() == original_stack; }, "closing cover dialog removes stale queue on resume"); +} +void OverlayChecks() +{ + opennow::StreamOverlaySample sample; + const auto unknown = opennow::FormatStreamOverlay(sample); + Check(unknown.metrics[2] == opennow::Tr("Unknown") && unknown.metrics[3] == opennow::Tr("Unknown"), "real overlay formatter keeps unavailable RTT and zero-packet loss unknown"); + sample.game_title = "A long live game title Жї 玩家"; sample.provider = "GeForce NOW"; + sample.presented_fps = 60; sample.incoming_fps = 60; sample.decoded_fps = 59; sample.bitrate_mbps = 15.8; + sample.rtt_ms = 18; sample.width = 1280; sample.height = 720; sample.decode_us_p95 = 6100; sample.render_us_p95 = 2400; + sample.queue_size = 1; sample.queue_high_water = 4; sample.packets_received = 9998; sample.sequence_gaps = 2; + sample.codec = "H.264"; sample.location = "Auto"; sample.network = "Wi-Fi 5 GHz"; sample.peer_connected = true; + auto* view = new opennow::StreamOverlayView(); view->Update(sample); view->UpdateElapsed(2538); + std::printf("OVERLAY loss=%s decode=%s render=%s queue=%s elapsed=%s\n", view->Display().metrics[3].c_str(), view->Display().details[2].c_str(), view->Display().details[3].c_str(), view->Display().details[4].c_str(), view->Display().elapsed.c_str()); + Check(view->Display().metrics[3] == "0.02", "actual overlay loss estimate uses received plus sequence gaps denominator"); + Check(view->Display().details[2] == "6.1 ms" && view->Display().details[3] == "2.4 ms", "actual overlay preserves measured p95 fractions"); + Check(view->Display().details[4] == "1 / 4" && view->Display().elapsed == "42:18", "actual overlay formats queue high water and elapsed time"); + view->setDimensions(1280, 720); brls::Application::pushActivity(new brls::Activity(view)); Pump(); +} +} - auto* frame = new opennow::TopBarFrame(); - brls::Box* header = nullptr; - brls::Box* row = nullptr; - std::vector actions; - frame->addTab(opennow::Tr("Store"), [] { return new brls::Box(); }); - frame->addTab(opennow::Tr("Library"), [&] { - auto* page = new brls::Box(brls::Axis::COLUMN); - page->setPadding(18, 32, 18, 32); - for (const auto* text : {"Y Search", "ZL All stores", "ZR Last Played", "X More / Refresh"}) - actions.push_back(opennow::ui::MakeGameBrowserActionButton(text)); - header = opennow::ui::MakeGameBrowserHeader("My Library", actions); - page->addView(header); - row = new brls::Box(brls::Axis::ROW); - for (int i = 0; i < 5; ++i) +int main(int argc, char** argv) +{ + try + { + const std::string language = argc > 1 ? argv[1] : "en", account = argc > 2 ? argv[2] : "Player"; + const std::string capture = argc > 3 ? argv[3] : "native.ppm", scenario = argc > 5 ? argv[5] : "library"; + const int physical_width = argc > 4 ? std::stoi(argv[4]) : 1280; + const bool guest = account == "guest", empty = scenario == "empty" || scenario == "empty-store"; + ui_fixture::Reset(capture + ".storage", empty); + opennow::StreamSettings initial; initial.interface_language = language; + Check(opennow::SaveStreamSettings(initial), "real settings fixture initializes isolated scratch persistence"); + opennow::SetInterfaceLanguage(language); brls::Logger::setLogLevel(brls::LogLevel::LOG_ERROR); + if (!brls::Application::init()) return 2; + brls::Application::createWindow("OpenNOW production native UI tests"); opennow::ui::InitializeThemeAndFonts(); + brls::Application::setGlobalQuit(false); + if (physical_width == 1920) { - auto* card = new opennow::GameCardView({"A very long game title for clipping verification", "Steam", "Recently played", ""}, [] {}); - card->setMarginRight(i < 4 ? 24 : 0); - row->addView(card); + SDL_SetWindowSize(SDL_GL_GetCurrentWindow(), 1920, 1080); + int width, height; SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &width, &height); + glViewport(0, 0, width, height); brls::Application::setWindowSize(1920, 1080); } - page->addView(row); - return page; - }); - frame->addTab(opennow::Tr("Settings"), [] { return new brls::Box(); }); - frame->focusTab(1); - brls::Application::pushActivity(new brls::Activity(frame)); - for (int i = 0; i < 20; ++i) - if (!brls::Application::mainLoop()) - return 2; - int drawable_width = 0; - int drawable_height = 0; - SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &drawable_width, &drawable_height); - const int expected_width = argc > 4 && std::string(argv[4]) == "1920" ? 1920 : 1280; - Check(drawable_width == expected_width && drawable_height == expected_width * 9 / 16, - "native drawable reaches requested physical resolution"); - int viewport[4] {}; - glGetIntegerv(GL_VIEWPORT, viewport); - Check(viewport[2] == drawable_width && viewport[3] == drawable_height, - "OpenGL viewport covers native drawable"); - Check(brls::Application::windowWidth == static_cast(drawable_width) && - brls::Application::windowHeight == static_cast(drawable_height), - "Borealis physical dimensions match native drawable"); - Check(brls::Application::contentWidth == 1280 && brls::Application::contentHeight == 720, - "1280x720 logical layout"); - CheckChildren(static_cast(frame->getChildren()[0]), "topbar"); - auto* tabs = static_cast(static_cast(frame->getChildren()[0])->getChildren()[1]); - for (auto* tab : tabs->getChildren()) - { - auto* label_box = static_cast(static_cast(tab)->getChildren()[0]); - Check(label_box->getChildren()[0]->getFrame().getHeight() <= 20, "tab label stays on one line"); + opennow::AuthSession session; + session.user.user_id = "native-fixture-user"; session.user.display_name = account; + session.user.membership_tier = "Ultimate"; session.user.membership_tier_verified = true; + session.subscription.available = true; session.subscription.remaining_hours = 100.5; + session.subscription.has_storage = true; session.subscription.storage_size_gb = 1000; + auto& state = opennow::AppState::Instance(); + if (!guest) state.SetSession(session); else state.MarkSessionLoaded(); + state.SetLibraryGames(ui_fixture::Library()); + auto* frame = new opennow::TopBarFrame(); + frame->addTab(opennow::Tr("Store"), [] { return new opennow::CatalogTab(); }); + frame->addTab(opennow::Tr("Library"), [] { return new opennow::LibraryTab(); }); + frame->addTab(opennow::Tr("Settings"), [] { return new opennow::SettingsTab(); }); + frame->focusTab(scenario == "store" || scenario == "empty-store" ? 0 : scenario == "settings" ? 2 : 1); + brls::Application::pushActivity(new brls::Activity(frame)); Pump(); + int width, height, viewport[4] {}; SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &width, &height); glGetIntegerv(GL_VIEWPORT, viewport); + Check(width == physical_width && height == physical_width * 9 / 16, "native drawable reaches requested resolution"); + Check(viewport[2] == width && viewport[3] == height, "OpenGL viewport covers drawable"); + Check(brls::Application::windowWidth == static_cast(width) && brls::Application::windowHeight == static_cast(height), "physical dimensions match drawable"); + Check(brls::Application::contentWidth == 1280 && brls::Application::contentHeight == 720, "layout remains logical 1280x720"); + CheckChildren(frame, "production"); + const auto header = Required(frame, "shell-header")->getFrame(), footer = Required(frame, "shell-footer")->getFrame(); + Check(header.getHeight() == 76 && footer.getHeight() == 60 && footer.getMinY() == 660, "production shell retains 76-pixel header and single 60-pixel footer at y660"); + Walk(Required(frame, "shell-tabs"), [](brls::View* view) { + if (auto* label = dynamic_cast(view)) Check(label->isSingleLine() && label->getHeight() <= 20, "production tab label stays on one line"); + }); + CheckFonts(frame); + opennow::StreamSettings fractional; fractional.bitrate_kbps = 12345; + Check(opennow::ui::StreamSummary(fractional).find("12.345") != std::string::npos, "configured stream summary preserves 12345 kbps"); + fractional.bitrate_kbps = 12500; + Check(opennow::ui::StreamSummary(fractional).find("12.5") != std::string::npos, "configured stream summary preserves 12500 kbps"); + fractional.bitrate_kbps = 12000; + Check(opennow::ui::StreamSummary(fractional).find("12 Mbps") != std::string::npos, "configured stream summary preserves integer 12000 kbps"); + if (scenario == "store" || scenario == "empty-store") StoreChecks(frame, empty, guest); + else if (scenario == "settings") SettingsChecks(frame, capture); + else if (scenario == "queue") QueueChecks(session, capture); + else if (scenario == "overlay") OverlayChecks(); + else if (scenario == "detail") + { + auto data = opennow::MakeLibraryGameDetail(ui_fixture::Library().front()); + auto* detail = new opennow::GameDetailView(opennow::GfnClient(), std::move(data)); + brls::Application::pushActivity(new brls::Activity(detail)); Pump(); + CheckChildren(detail, "detail"); CheckFonts(detail); DetailChecks(detail); + } + else LibraryChecks(frame, guest, empty); + DrainToasts(); Screenshot(capture); + Check(dynamic_cast(CurrentRoot()) == nullptr && dynamic_cast(CurrentRoot()) == nullptr, "production callbacks leave no unexpected modal activity"); + brls::Application::quit(); while (brls::Application::mainLoop()) {} } - CheckChildren(header, "browser_header"); - CheckChildren(row, "grid"); - for (auto* card : row->getChildren()) - Check(card->getFrame().getWidth() == 224, "grid card retains 224 logical pixels"); - auto& cards = row->getChildren(); - opennow::WireVerticalGridNavigation({actions, cards}); - Check(cards.back()->getCustomNavigationRoutePtr(brls::FocusDirection::UP) == actions.back(), - "last grid column clamps to last toolbar action"); - Check(cards.back()->getCustomNavigationRoutePtr(brls::FocusDirection::DOWN) == cards.back(), - "bottom grid edge stays on live card"); - if (argc > 5 && std::string(argv[5]) == "detail") + catch (const std::exception& error) { - opennow::GameDetailData data; - data.title = "A game title"; - data.subtitle = "GeForce NOW library"; - data.stores = "Steam"; - data.description = "A description for the native layout fixture."; - data.owned = true; - auto* detail = new opennow::GameDetailView(opennow::GfnClient(), data); - brls::Application::pushActivity(new brls::Activity(detail)); - for (int i = 0; i < 20; ++i) - brls::Application::mainLoop(); - CheckChildren(detail, "detail"); + Check(false, std::string("native harness exception: ") + error.what()); + if (argc > 3 && CurrentRoot()) Screenshot(std::string(argv[3]) + ".failure.ppm"); } - if (argc > 3) - Screenshot(argv[3]); - brls::Application::quit(); - while (brls::Application::mainLoop()) {} + std::printf("RESULT failures=%d\n", failures); return failures ? 1 : 0; } diff --git a/tests/ui_layout/ui_layout_fixtures.hpp b/tests/ui_layout/ui_layout_fixtures.hpp new file mode 100644 index 00000000..e8099c8f --- /dev/null +++ b/tests/ui_layout/ui_layout_fixtures.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include "home_shortcut.hpp" +#include "models.hpp" +#include "stream_settings.hpp" + +#include +#include + +namespace ui_fixture +{ +struct LaunchCall { std::string user_id, app_id, title, store; }; +struct Calls +{ + int library_requests = 0; + int catalog_requests = 0; + int public_requests = 0; + int polls = 0; + int region_requests = 0; + int latency_measurements = 0; + std::vector search_queries, cursors; + std::vector launches; + std::vector shortcuts; + std::vector saved_variants, cover_urls, stopped_sessions; + std::vector handed_off_sessions, played_ids, notifications; + std::vector start_settings, handoff_settings; +}; +enum class SessionMode { Ready, Waiting, BlockStart, Unknown, Patching, Confirmation, Failure }; +void Reset(std::string storage_directory, bool empty); +Calls Snapshot(); +std::vector Library(); +std::vector Catalog(); +void SetSessionMode(SessionMode mode); +void ReleaseStart(); +void ClearLauncherPreference(); +void RecordNotification(const std::string& text); +} diff --git a/tests/ui_layout/ui_layout_stubs.cpp b/tests/ui_layout/ui_layout_stubs.cpp index 650f6637..933562d0 100644 --- a/tests/ui_layout/ui_layout_stubs.cpp +++ b/tests/ui_layout/ui_layout_stubs.cpp @@ -1,44 +1,222 @@ +#include "ui_layout_fixtures.hpp" +#include "app_paths.hpp" #include "avatar_utils.hpp" #include "cover_image_cache.hpp" -#include "home_shortcut.hpp" +#include "gfn_client.hpp" +#include "cloud_launch_internal.hpp" +#include "network_utils.hpp" #include "nte_credentials.hpp" +#include "play_history.hpp" #include "ui_helpers.hpp" -namespace opennow +#include +#include +#include +#include +#include +#include + +namespace +{ +std::mutex fixture_mutex; +ui_fixture::Calls calls; +std::vector library; +std::vector catalog; +std::string storage, saved_variant; +ui_fixture::SessionMode session_mode = ui_fixture::SessionMode::Ready; +std::condition_variable start_gate; +bool start_released = false; +} + +namespace ui_fixture +{ +void Reset(std::string directory, bool empty) +{ + std::lock_guard lock(fixture_mutex); + calls = {}; + storage = std::move(directory); + std::filesystem::create_directories(storage); + library.clear(); + catalog.clear(); + saved_variant.clear(); + session_mode = SessionMode::Ready; + start_released = false; + if (empty) return; + for (int index = 0; index < 21; ++index) + { + opennow::GameInfo game; + game.id = std::to_string(1000 + index); + game.uuid = "fixture-" + game.id; + game.launch_app_id = game.id; + game.title = index == 0 ? "A very long game title for native clipping verification Жї 玩家" : + std::string(1, static_cast('B' + index)) + " Fixture game " + std::to_string(index); + game.description = "A native fixture description with long wrapping text. " + "This is test data at the external feed boundary, not a runtime catalog entry. " + "Описание игры. 游戏描述。"; + const std::string paragraph = game.description; + for (int line = 0; line < 12; ++line) game.description += "\n" + paragraph; + game.publisher = index % 2 == 0 ? "Zulu publisher" : "Alpha publisher"; + game.available_stores = {index % 2 == 0 ? "Steam" : "Epic"}; + game.membership_tier_label = "Free"; + game.image_url = "fixture://cover/" + game.id; + game.is_in_library = true; + game.last_played = index == 0 ? "2026-10-02T12:00:00Z" : + index == 1 ? "2026-09-29T12:00:00Z" : index == 2 ? "2026-09-01T12:00:00Z" : ""; + game.variants = {{game.id, game.available_stores.front(), "OWNED", game.last_played, "AVAILABLE", true}}; + library.push_back(game); + opennow::PublicGame item; + item.id = game.id; + item.uuid = game.uuid; + item.launch_app_id = game.id; + item.title = game.title; + item.publisher = game.publisher; + item.store = game.available_stores.front(); + item.image_url = game.image_url; + item.is_in_library = index % 3 == 0; + item.variants = game.variants; + catalog.push_back(std::move(item)); + } +} +Calls Snapshot() { std::lock_guard lock(fixture_mutex); return calls; } +std::vector Library() { std::lock_guard lock(fixture_mutex); return library; } +std::vector Catalog() { std::lock_guard lock(fixture_mutex); return catalog; } +void SetSessionMode(SessionMode mode) { std::lock_guard lock(fixture_mutex); session_mode = mode; start_released = false; } +void ReleaseStart() { { std::lock_guard lock(fixture_mutex); start_released = true; } start_gate.notify_all(); } +void ClearLauncherPreference() { std::lock_guard lock(fixture_mutex); saved_variant.clear(); } +void RecordNotification(const std::string& text) { std::lock_guard lock(fixture_mutex); calls.notifications.push_back(text); } +} + +extern "C" void RealNotify(const std::string& text) + asm("__real__ZN4brls11Application6notifyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); +extern "C" void ObserveNotify(const std::string& text) + asm("__wrap__ZN4brls11Application6notifyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"); +extern "C" void ObserveNotify(const std::string& text) { + ui_fixture::RecordNotification(text); + RealNotify(text); +} +namespace opennow +{ +const std::string& AppHomePath() { return storage; } +const std::string& LegacyAppHomePath() { return storage; } +void PrepareAppStorage() { std::filesystem::create_directories(storage); } CachedImage::~CachedImage() = default; void CachedImage::draw(NVGcontext* vg, float x, float y, float width, float height, brls::Style style, brls::FrameContext* ctx) +{ brls::Image::draw(vg, x, y, width, height, style, ctx); } +void SetCachedCoverImage(CachedImage* image, const std::string& url) { - brls::Image::draw(vg, x, y, width, height, style, ctx); -} -void SetCachedCoverImage(CachedImage* image, const std::string&) -{ + { std::lock_guard lock(fixture_mutex); calls.cover_urls.push_back(url); } image->setImageFromRes("img/opennow-logo-mark.png"); } void SetCachedAvatarImage(CachedImage*, const std::string&) {} -std::string ResolveAvatarUrl(const AuthUser&) { return "fixture-avatar"; } -int GetCurrentQueuePosition() { return 123; } -bool IsQueueMinimized() { return true; } -void RestoreMinimizedQueueDialog() {} +void CachedImage::SetUrl(const std::string& url, bool) { SetCachedCoverImage(this, url); } +CoverImageCacheStats InspectCoverImageCache() { return {4096, 2}; } +std::size_t ClearCoverImageCache() { return 2; } +void ShutdownCoverImageWorker() {} +std::string ResolveAvatarUrl(const AuthUser&) { return {}; } GfnClient::GfnClient() = default; -std::string GfnClient::LoadLauncherPreference(const std::string&, const std::string&) const { return {}; } -void GfnClient::SaveLauncherPreference(const std::string&, const std::string&, const std::string&) const {} -void ShowError(const std::string&, const std::string&) {} -void LaunchSessionDialog(const GfnClient&, const AuthSession&, const std::string&, const std::string&, - const std::string&, const std::string&, const std::string&, const std::string&) {} -bool IsNevernessToEverness(const std::string&) { return false; } +std::vector GfnClient::FetchLibraryGames(AuthSession&) const +{ std::lock_guard lock(fixture_mutex); ++calls.library_requests; return library; } +CatalogPage GfnClient::FetchCatalogPage(AuthSession&, const std::string& query, const std::string& cursor) const +{ + std::lock_guard lock(fixture_mutex); + ++calls.catalog_requests; + calls.search_queries.push_back(query); + calls.cursors.push_back(cursor); + std::vector matches; + for (const auto& game : catalog) + if (query.empty() || game.title.find(query) != std::string::npos) matches.push_back(game); + const size_t start = cursor.empty() ? 0 : 15; + const size_t end = std::min(matches.size(), start + 15); + CatalogPage page; + if (start < matches.size()) page.games.assign(matches.begin() + start, matches.begin() + end); + page.total_count = matches.size(); + if (end < matches.size()) page.next_cursor = "fixture-page-2"; + return page; +} +std::vector GfnClient::FetchPublicGames() const +{ + std::lock_guard lock(fixture_mutex); + ++calls.public_requests; + auto public_games = catalog; + for (auto& game : public_games) game.is_in_library = false; + return public_games; +} +std::vector GfnClient::FetchLoginProviders() const { return {}; } +std::vector GfnClient::FetchStreamRegions(AuthSession&) const +{ std::lock_guard lock(fixture_mutex); ++calls.region_requests; return {{"Fixture region", "https://region.fixture.invalid/", -1}}; } +std::vector GfnClient::MeasureStreamRegionLatencies(std::vector regions) const +{ + std::lock_guard lock(fixture_mutex); + ++calls.latency_measurements; + for (auto& region : regions) region.ping_ms = 18; + return regions; +} +std::string GfnClient::ProvisionCommunityProxy() const { return "https://fixture.invalid"; } +AuthSession GfnClient::LoginWithQrCode(const LoginProvider&, const std::function&, + const std::function&) const +{ throw std::runtime_error("Native fixture does not authorize an NVIDIA account"); } +AuthSession GfnClient::EnsureFreshSession(const AuthSession& session) const { return session; } +AuthSession GfnClient::EnsureFreshSavedSession(const AuthSession& session) const { return session; } +AuthSession GfnClient::RecoverSavedSession(const AuthSession& session, bool) const { return session; } +bool GfnClient::LoadSavedSession(AuthSession&) const { return false; } +std::vector GfnClient::LoadSavedSessions() const { return {}; } +void GfnClient::ClearSavedSession() const {} +void GfnClient::SaveSession(const AuthSession&) const {} +bool GfnClient::SetActiveSavedSession(const std::string&) const { return true; } +std::string GfnClient::LoadLauncherPreference(const std::string&, const std::string&) const +{ std::lock_guard lock(fixture_mutex); return saved_variant; } +void GfnClient::SaveLauncherPreference(const std::string&, const std::string&, const std::string& variant) const +{ std::lock_guard lock(fixture_mutex); saved_variant = variant; calls.saved_variants.push_back(variant); } +SessionInfo GfnClient::StartSession(AuthSession& auth, const std::string& id, const StreamSettings& request_settings, + const std::string& store, const std::string& title) const +{ + std::unique_lock lock(fixture_mutex); + calls.launches.push_back({auth.user.user_id, id, title, store}); + calls.start_settings.push_back(request_settings); + if (session_mode == ui_fixture::SessionMode::BlockStart && + !start_gate.wait_for(lock, std::chrono::seconds(8), [] { return start_released; })) + throw std::runtime_error("Fixture start gate timed out"); + if (session_mode == ui_fixture::SessionMode::Failure) + throw std::runtime_error("Fixture cloud request failed. " + std::string(256, 'x')); + SessionInfo info; + info.session_id = "fixture-session-" + std::to_string(calls.launches.size()); + info.status = session_mode == ui_fixture::SessionMode::Ready || session_mode == ui_fixture::SessionMode::BlockStart ? 2 : + session_mode == ui_fixture::SessionMode::Confirmation ? 6 : session_mode == ui_fixture::SessionMode::Patching ? 1 : 0; + info.queue_position = session_mode == ui_fixture::SessionMode::Unknown || info.status == 2 ? -1 : 123; + info.app_patching = session_mode == ui_fixture::SessionMode::Patching; + info.signaling_url = "fixture://signaling"; + return info; +} +SessionInfo GfnClient::PollSession(AuthSession&, const std::string& id) const +{ std::lock_guard lock(fixture_mutex); ++calls.polls; SessionInfo info; info.session_id = id; info.status = 0; info.queue_position = 7; return info; } +void GfnClient::StopSession(AuthSession&, const std::string& id) const +{ std::lock_guard lock(fixture_mutex); calls.stopped_sessions.push_back(id); } +void GfnClient::CleanupStaleCloudSession(AuthSession&) const {} +void PresentCloudStream(const SessionInfo& info, const GfnClient&, const AuthSession&, const std::string&, const StreamSettings& settings) +{ std::lock_guard lock(fixture_mutex); calls.handed_off_sessions.push_back(info.session_id); calls.handoff_settings.push_back(settings); } +std::string CurrentUtcIsoTimestamp() { return "2026-10-02T12:00:00Z"; } +bool RecordGamePlayed(const std::string& id, const std::string&, const std::string&) +{ std::lock_guard lock(fixture_mutex); calls.played_ids.push_back(id); return true; } +bool IsNevernessToEverness(const std::string& title) { return title.find("Neverness") != std::string::npos; } bool NteCredentials::valid() const { return false; } NteCredentials LoadNteCredentials() { return {}; } bool SaveNteCredentials(const NteCredentials&) { return false; } bool ClearNteCredentials() { return true; } std::string NteCredentialsPath() { return {}; } - +NetworkConnectionInfo NetworkUtils::GetConnectionInfo() +{ return {true, NetworkConnectionType::Wifi, network::WifiBand::Ghz5, 3}; } namespace shortcut { -CreateResult CreateGameShortcut(LaunchRequest) { return {}; } -bool StartForwarderInstaller(const std::string&, const std::string&, std::string&) { return false; } +const std::string& ExecutablePath() { static const std::string path = "fixture://SwitchNOW.nro"; return path; } +CreateResult CreateGameShortcut(LaunchRequest request) +{ + std::lock_guard lock(fixture_mutex); + calls.shortcuts.push_back(request); + return {true, false, request.title, "fixture://shortcut.nro", "fixture://manifest", {}}; +} +bool StartForwarderInstaller(const std::string&, const std::string&, std::string&) { return true; } } - } From 448cf286539c5191e366ccaebebc1f1d45434574 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:05:27 +0000 Subject: [PATCH 03/23] Recover native UI, bundled typography and captured stream configuration --- .github/workflows/host-tests.yml | 3 +- app/src/catalog_tab.cpp | 114 +++- app/src/catalog_tab.hpp | 1 + app/src/game_browser_header.cpp | 13 +- app/src/game_card_view.cpp | 84 ++- app/src/game_card_view.hpp | 1 + app/src/game_detail_view.cpp | 380 ++++++++----- app/src/game_detail_view.hpp | 11 +- app/src/gfn/cloud_session.cpp | 2 +- app/src/gfn_client.hpp | 2 + app/src/library_row_view.cpp | 105 ++++ app/src/library_row_view.hpp | 36 ++ app/src/library_tab.cpp | 513 +++++++++++------- app/src/library_tab.hpp | 46 +- app/src/library_timetable_policy.hpp | 95 ++++ app/src/localization.cpp | 14 + app/src/main.cpp | 2 + app/src/settings_tab.cpp | 378 +++++++------ app/src/settings_tab.hpp | 22 +- app/src/settings_tab_pages.cpp | 20 +- app/src/stream/deko3d/DKVideoRenderer.cpp | 17 +- app/src/stream/deko3d/DKVideoRenderer.hpp | 7 +- app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp | 8 +- app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp | 4 +- app/src/stream_settings.hpp | 2 + app/src/top_bar_frame.cpp | 110 +++- app/src/ui_theme.cpp | 215 ++++++++ app/src/ui_theme.hpp | 73 +++ app/src/webrtc/session.cpp | 11 +- app/src/webrtc_session.hpp | 3 +- resources/font/IBMPlexMono-Medium.ttf | Bin 0 -> 136704 bytes resources/font/IBMPlexMono-OFL.txt | 93 ++++ resources/font/Nunito-Bold.ttf | Bin 0 -> 132304 bytes resources/font/Nunito-ExtraBold.ttf | Bin 0 -> 132212 bytes resources/font/Nunito-Medium.ttf | Bin 0 -> 132436 bytes resources/font/Nunito-OFL.txt | 93 ++++ resources/font/Nunito-SemiBold.ttf | Bin 0 -> 132292 bytes resources/font/OpenNOW-CJK-OFL.txt | 93 ++++ resources/font/OpenNOW-CJK.ttf | Bin 0 -> 2312664 bytes resources/font/README.md | 40 ++ resources/img/opennow-logo-mark.png | Bin 9252 -> 131744 bytes scripts/build-ui-fonts.py | 58 ++ scripts/test-host.sh | 5 +- scripts/test-streaming-host.sh | 2 + scripts/verify-nro-assets.py | 58 ++ tests/deko_renderer_color_range_test.cpp | 2 +- tests/deko_renderer_quality_snapshot_test.cpp | 31 ++ tests/deko_renderer_reconfiguration_test.cpp | 18 +- tests/ffmpeg_decode_integration_test.cpp | 2 +- tests/ffmpeg_packet_ownership_test.cpp | 2 +- tests/ffmpeg_video_decoder_test.cpp | 2 +- tests/library_timetable_policy_test.cpp | 32 ++ tests/settings_tab_equality_test.cpp | 42 ++ tests/ui_font_assets_test.py | 76 +++ tests/webrtc_input_handshake_test.cpp | 5 +- 55 files changed, 2276 insertions(+), 670 deletions(-) create mode 100644 app/src/library_row_view.cpp create mode 100644 app/src/library_row_view.hpp create mode 100644 app/src/library_timetable_policy.hpp create mode 100644 app/src/ui_theme.cpp create mode 100644 app/src/ui_theme.hpp create mode 100644 resources/font/IBMPlexMono-Medium.ttf create mode 100644 resources/font/IBMPlexMono-OFL.txt create mode 100644 resources/font/Nunito-Bold.ttf create mode 100644 resources/font/Nunito-ExtraBold.ttf create mode 100644 resources/font/Nunito-Medium.ttf create mode 100644 resources/font/Nunito-OFL.txt create mode 100644 resources/font/Nunito-SemiBold.ttf create mode 100644 resources/font/OpenNOW-CJK-OFL.txt create mode 100644 resources/font/OpenNOW-CJK.ttf create mode 100644 resources/font/README.md create mode 100644 scripts/build-ui-fonts.py create mode 100644 scripts/verify-nro-assets.py create mode 100644 tests/deko_renderer_quality_snapshot_test.cpp create mode 100644 tests/library_timetable_policy_test.cpp create mode 100644 tests/settings_tab_equality_test.cpp create mode 100644 tests/ui_font_assets_test.py diff --git a/.github/workflows/host-tests.yml b/.github/workflows/host-tests.yml index 7be0e25f..a151b327 100644 --- a/.github/workflows/host-tests.yml +++ b/.github/workflows/host-tests.yml @@ -41,7 +41,8 @@ jobs: run: | sudo apt-get update -qq sudo apt-get install -y --no-install-recommends \ - g++ cmake ninja-build libsdl2-dev libgl1-mesa-dev libcurl4-openssl-dev xvfb xauth + g++ cmake ninja-build pkg-config python3 imagemagick libjansson-dev \ + libsdl2-dev libgl1-mesa-dev libcurl4-openssl-dev xvfb xauth - name: Build native UI layout test run: | diff --git a/app/src/catalog_tab.cpp b/app/src/catalog_tab.cpp index c1987e85..07cced02 100644 --- a/app/src/catalog_tab.cpp +++ b/app/src/catalog_tab.cpp @@ -3,11 +3,14 @@ #include "app_state.hpp" #include "game_browser_header.hpp" #include "game_detail_view.hpp" +#include "game_detail_policy.hpp" #include "game_card_view.hpp" #include "game_grid_navigation.hpp" #include "ui_action_guard.hpp" #include "ui_helpers.hpp" #include "localization.hpp" +#include "ui_theme.hpp" +#include "ui_text_policy.hpp" #include #include @@ -26,9 +29,7 @@ constexpr std::array kCatalogSortModes = {"A-Z", "Store", "Publi brls::Label* MakeParagraph(const std::string& text, float bottom_margin = 16.0f) { - auto* label = new brls::Label(); - label->setText(Tr(text)); - label->setFontSize(18); + auto* label = ui::MakeLabel(Tr(text), 18, ui::Muted()); label->setMarginBottom(bottom_margin); return label; } @@ -66,13 +67,19 @@ bool MatchesStoreFilter(const PublicGame& game, size_t filter_index) CatalogTab::CatalogTab() : brls::Box(brls::Axis::COLUMN) { - setPadding(18, 32, 18, 32); - setBackgroundColor(nvgRGB(16, 16, 20)); + setId("catalog"); + setPadding(10, 40, 10, 40); + setBackgroundColor(ui::Ground()); + interface_language_ = GetInterfaceLanguage(); search_button_ = ui::MakeGameBrowserActionButton("Y Search"); filter_button_ = ui::MakeGameBrowserActionButton("ZL All stores"); sort_button_ = ui::MakeGameBrowserActionButton("ZR A-Z"); more_button_ = ui::MakeGameBrowserActionButton("X More / Refresh"); + search_button_->setId("catalog-search"); + filter_button_->setId("catalog-filter"); + sort_button_->setId("catalog-sort"); + more_button_->setId("catalog-more"); search_button_->setStyle(&brls::BUTTONSTYLE_HIGHLIGHT); toolbar_buttons_ = {search_button_, filter_button_, sort_button_, more_button_}; addView(ui::MakeGameBrowserHeader("Store", toolbar_buttons_)); @@ -91,8 +98,10 @@ CatalogTab::CatalogTab() }); status_label_ = MakeParagraph("Loading the supported GeForce NOW catalog...", 8.0f); + status_label_->setId("catalog-status"); status_label_->setFontSize(14); - status_label_->setTextColor(nvgRGB(132, 139, 151)); + status_label_->setWidthPercentage(100); + status_label_->setMaxHeight(64); addView(status_label_); scrolling_frame_ = new brls::ScrollingFrame(); @@ -100,6 +109,7 @@ CatalogTab::CatalogTab() scrolling_frame_->setScrollingBehavior(brls::ScrollingBehavior::CENTERED); list_container_ = new brls::Box(brls::Axis::COLUMN); + list_container_->setId("catalog-list"); list_container_->setPadding(0, 0, 32, 0); scrolling_frame_->setContentView(list_container_); @@ -137,10 +147,11 @@ void CatalogTab::BeginSearch() if (loading_) return; const auto alive = alive_; + const auto generation = AppState::Instance().session_generation(); brls::Application::giveFocus(search_button_); brls::Application::getImeManager()->openForText( - [this, alive](std::string text) { - if (!alive->load()) + [this, alive, generation](std::string text) { + if (!alive->load() || AppState::Instance().session_generation() != generation) return; RunUiAction("catalog.search.result", [this, text = std::move(text)]() mutable { if (loading_) @@ -161,6 +172,18 @@ void CatalogTab::willAppear(bool resetState) { brls::Box::willAppear(resetState); + if (interface_language_ != GetInterfaceLanguage()) + { + interface_language_ = GetInterfaceLanguage(); + if (auto* heading = dynamic_cast(getView("browser-heading"))) + heading->setText(Tr("Store")); + search_button_->setText("Y " + Tr("Search")); + more_button_->setText("X " + Tr("More / Refresh")); + search_button_->setWidth(ui::ToolbarButtonWidth(search_button_->getText())); + more_button_->setWidth(ui::ToolbarButtonWidth(more_button_->getText())); + RebuildList(); + } + const auto& state = AppState::Instance(); if (state.session_generation() != catalog_session_generation_) { @@ -187,6 +210,12 @@ void CatalogTab::ReloadCatalog(bool append) { if (loading_) return; + const auto& auth_state = AppState::Instance(); + if (auth_state.HasSession() && auth_state.session()->reauthentication_required) + { + status_label_->setText(Tr("Reconnect this account from Settings > Account before refreshing the catalog.")); + return; + } if (AppState::Instance().session_generation() != catalog_session_generation_) { @@ -286,6 +315,10 @@ void CatalogTab::RebuildList() current_focus == previous_page_button_; MoveFocusBeforeDestroy(list_container_, search_button_); + setLastFocusedView(search_button_); + WireVerticalGridNavigation({toolbar_buttons_}); + if (paging_container_) + WireVerticalGridNavigation({{previous_page_button_, load_more_button_}}); DetachPagingButton(); list_container_->clearViews(); card_rows_.clear(); @@ -326,27 +359,29 @@ void CatalogTab::RebuildList() page_index_ = total_pages - 1; const size_t page_start = std::min(filtered_count_, page_index_ * kInitialVisibleGameLimit); const size_t page_end = std::min(filtered_count_, page_start + kInitialVisibleGameLimit); - std::string status = "Loaded " + std::to_string(games_.size()); + std::string status = Tr("Loaded") + " " + std::to_string(games_.size()); if (catalog_.page().total_count) - status += " of " + std::to_string(*catalog_.page().total_count); - status += " supported games."; + status += " " + Tr("of") + " " + std::to_string(*catalog_.page().total_count); + status += " " + Tr("supported games") + "."; if (catalog_.page().next_cursor) - status += " More available online. Filters and sorting apply to loaded games."; - status += " Filter: " + std::string(kStoreFilters[store_filter_index_]) + "."; - status += " Sort: " + std::string(kCatalogSortModes[sort_mode_index_]) + "."; + status += " " + Tr("More available online. Filters and sorting apply to loaded games."); if (!search_query_.empty()) - status += " Found " + std::to_string(filtered_count_) + " matches."; + status += " " + TrFormat("Found {0} matches.", {std::to_string(filtered_count_)}); if (filtered_count_ > 0) - status += " Showing " + std::to_string(page_start + 1) + "-" + - std::to_string(page_end) + " of " + std::to_string(filtered_count_) + - " (page " + std::to_string(page_index_ + 1) + "/" + - std::to_string(total_pages) + ")."; + status += " " + TrFormat("Showing {0}-{1} of {2} (page {3}/{4}).", { + std::to_string(page_start + 1), std::to_string(page_end), std::to_string(filtered_count_), + std::to_string(page_index_ + 1), std::to_string(total_pages)}); else - status += " Press X to refresh."; + status += " " + Tr("Press X to refresh."); status_label_->setText(status); + const auto& state = AppState::Instance(); + if (state.HasSession() && state.session()->reauthentication_required) + status_label_->setText(Tr("Reconnect this account from Settings > Account before refreshing the catalog.")); filter_button_->setText("ZL " + Tr(kStoreFilters[store_filter_index_])); sort_button_->setText("ZR " + Tr(kCatalogSortModes[sort_mode_index_])); + filter_button_->setWidth(ui::ToolbarButtonWidth(filter_button_->getText())); + sort_button_->setWidth(ui::ToolbarButtonWidth(sort_button_->getText())); if (filtered_indices.empty()) { @@ -362,6 +397,9 @@ void CatalogTab::RebuildList() for (size_t start = page_start; start < page_end; start += kCardsPerRow) { auto* row = new brls::Box(brls::Axis::ROW); + row->setId("catalog-row-" + std::to_string((start - page_start) / kCardsPerRow)); + row->setWidth(1200); + row->setShrink(0); std::vector card_row; const size_t end = std::min(start + kCardsPerRow, page_end); @@ -372,16 +410,16 @@ void CatalogTab::RebuildList() GameCardDisplay display; display.title = game.title; - display.subtitle = game.store; - display.badge = game.is_in_library - ? "In library" - : (game.publisher.empty() ? "GFN catalog" : game.publisher); + display.subtitle = game_detail::IsUnknownMetadata(game.store) ? "" : game.store; + display.badge = game_detail::IsUnknownMetadata(game.publisher) ? "" : game.publisher; + display.in_library = game.is_in_library; display.image_url = game.image_url; auto* card = new GameCardView(display, [this, index]() { OpenGameDialog(nullptr, index); }); - card->setMarginRight(i + 1 < end ? 24.0f : 0.0f); + card->setId("catalog-card-" + game.id); + card->setMarginRight(i + 1 < end ? 25.0f : 0.0f); if (!first_card_) first_card_ = card; @@ -404,6 +442,8 @@ void CatalogTab::RebuildList() brls::Application::giveFocus(first_card_); else if (first_card_ && !brls::Application::getCurrentFocus()) brls::Application::giveFocus(first_card_); + if (first_card_) + setLastFocusedView(first_card_); } void CatalogTab::EnsurePagingButton() @@ -416,6 +456,7 @@ void CatalogTab::EnsurePagingButton() paging_container_->setMarginBottom(24); previous_page_button_ = new brls::Button(); + previous_page_button_->setId("catalog-previous"); previous_page_button_->setStyle(&brls::BUTTONSTYLE_BORDERED); previous_page_button_->setMarginRight(12); previous_page_button_->setGrow(1.0f); @@ -427,6 +468,7 @@ void CatalogTab::EnsurePagingButton() paging_container_->addView(previous_page_button_); load_more_button_ = new brls::Button(); + load_more_button_->setId("catalog-next"); load_more_button_->setStyle(&brls::BUTTONSTYLE_PRIMARY); load_more_button_->setGrow(1.0f); load_more_button_->registerClickAction([this](brls::View*) { @@ -482,9 +524,15 @@ void CatalogTab::HandlePagingButton() load_more_pending_ = true; brls::Application::giveFocus(more_button_); const auto alive = alive_; - brls::sync([this, alive]() { + const auto generation = AppState::Instance().session_generation(); + brls::sync([this, alive, generation]() { if (!alive->load()) return; + if (AppState::Instance().session_generation() != generation) + { + load_more_pending_ = false; + return; + } const std::string before = "page=" + std::to_string(page_index_ + 1) + " filtered=" + std::to_string(filtered_count_); @@ -523,9 +571,15 @@ void CatalogTab::HandlePreviousPage() load_more_pending_ = true; brls::Application::giveFocus(more_button_); const auto alive = alive_; - brls::sync([this, alive]() { + const auto generation = AppState::Instance().session_generation(); + brls::sync([this, alive, generation]() { if (!alive->load()) return; + if (AppState::Instance().session_generation() != generation) + { + load_more_pending_ = false; + return; + } --page_index_; RebuildList(); if (first_card_) @@ -538,6 +592,8 @@ void CatalogTab::HandlePreviousPage() void CatalogTab::CycleStoreFilter() { + if (load_more_pending_) + return; MoveFocusBeforeDestroy(list_container_, filter_button_); store_filter_index_ = (store_filter_index_ + 1) % kStoreFilters.size(); page_index_ = 0; @@ -547,6 +603,8 @@ void CatalogTab::CycleStoreFilter() void CatalogTab::CycleSortMode() { + if (load_more_pending_) + return; MoveFocusBeforeDestroy(list_container_, sort_button_); sort_mode_index_ = (sort_mode_index_ + 1) % kCatalogSortModes.size(); page_index_ = 0; @@ -561,6 +619,8 @@ bool CatalogTab::OpenGameDialog(brls::View* view, size_t index) if (index >= games_.size()) return false; + if (AppState::Instance().session_generation() != catalog_session_generation_) + return false; brls::Application::pushActivity(new brls::Activity(new GameDetailView( client_, diff --git a/app/src/catalog_tab.hpp b/app/src/catalog_tab.hpp index 8895b60d..ea68748a 100644 --- a/app/src/catalog_tab.hpp +++ b/app/src/catalog_tab.hpp @@ -57,6 +57,7 @@ class CatalogTab : public brls::Box bool paging_button_attached_ = false; std::shared_ptr alive_ = std::make_shared(true); std::string search_query_ = ""; + std::string interface_language_; size_t filtered_count_ = 0; size_t page_index_ = 0; size_t store_filter_index_ = 0; diff --git a/app/src/game_browser_header.cpp b/app/src/game_browser_header.cpp index f9174335..b40c301e 100644 --- a/app/src/game_browser_header.cpp +++ b/app/src/game_browser_header.cpp @@ -2,6 +2,7 @@ #include "localization.hpp" #include "ui_text_policy.hpp" +#include "ui_theme.hpp" namespace opennow::ui { @@ -30,17 +31,11 @@ brls::Box* MakeGameBrowserHeader( heading->setGrow(1.0f); heading->setAlignItems(brls::AlignItems::CENTER); - auto* accent = new brls::Rectangle(); - accent->setWidth(4); - accent->setHeight(30); - accent->setMarginRight(12); - accent->setColor(nvgRGB(88, 217, 138)); - heading->addView(accent); - - auto* label = new brls::Label(); + auto* label = new StyledLabel(FontRole::Heading); + label->setId("browser-heading"); label->setText(Tr(title)); label->setFontSize(28); - label->setTextColor(nvgRGB(248, 249, 251)); + label->setTextColor(Text()); heading->addView(label); header->addView(heading); diff --git a/app/src/game_card_view.cpp b/app/src/game_card_view.cpp index 0ddc9bad..283e798f 100644 --- a/app/src/game_card_view.cpp +++ b/app/src/game_card_view.cpp @@ -1,71 +1,61 @@ #include "game_card_view.hpp" #include "cover_image_cache.hpp" +#include "localization.hpp" +#include "ui_theme.hpp" + +#include #include namespace opennow { -namespace -{ - -std::string BuildSubtitle(const GameCardDisplay& display) -{ - if (display.badge.empty()) - return display.subtitle; - - if (display.subtitle.empty()) - return display.badge; - - return display.subtitle + " | " + display.badge; -} - -brls::Label* MakeLabel(const std::string& text, float size, NVGcolor color) -{ - auto* label = new brls::Label(); - label->setText(text); - label->setFontSize(size); - label->setTextColor(color); - label->setSingleLine(true); - return label; -} - -} // namespace - GameCardView::GameCardView(GameCardDisplay display, ClickHandler click_handler) : brls::Box(brls::Axis::COLUMN) , display_(std::move(display)) , click_handler_(std::move(click_handler)) { - setWidth(224); - setHeight(178); - setPadding(6, 6, 7, 6); - setMarginRight(10); - setMarginBottom(10); - setCornerRadius(10); - setBorderThickness(2); - setShadowType(brls::ShadowType::GENERIC); + setWidth(220); + setHeight(210); + setShrink(0); + setPadding(8, 8, 8, 8); + setMarginBottom(12); + setCornerRadius(12); + setBorderThickness(1); setFocusable(true); - // Keep the card surface dark, but retain Borealis' animated focus outline. - // The branded border color alone is too subtle at TV viewing distance. setHideHighlightBackground(true); - setHighlightPadding(2); - setHighlightCornerRadius(12); + setHighlightPadding(3); + setHighlightCornerRadius(14); image_ = new CachedImage(); - image_->setWidth(212); - image_->setHeight(112); + image_->setWidth(204); + image_->setHeight(114); + image_->setShrink(0); image_->setCornerRadius(7); - image_->setMarginBottom(6); + image_->setMarginBottom(10); image_->setScalingType(brls::ImageScalingType::FILL); addView(image_); - title_label_ = MakeLabel(display_.title, 16.0f, nvgRGB(245, 246, 248)); - title_label_->setMarginBottom(3); + title_label_ = ui::MakeLabel(display_.title, 18, ui::Text(), ui::FontRole::Heading); + title_label_->setId("catalog-card-title"); + title_label_->setWidthPercentage(100); + title_label_->setHeight(26); + title_label_->setSingleLine(true); addView(title_label_); - subtitle_label_ = MakeLabel(BuildSubtitle(display_), 12.0f, nvgRGB(88, 217, 138)); + subtitle_label_ = ui::MakeLabel(display_.subtitle, 14, ui::Muted()); + subtitle_label_->setId("catalog-card-store"); + subtitle_label_->setWidthPercentage(100); + subtitle_label_->setHeight(20); + subtitle_label_->setSingleLine(true); addView(subtitle_label_); + auto* badge = ui::MakeLabel(display_.in_library ? "● " + Tr("In library") : display_.badge, + 12, display_.in_library ? ui::Green() : ui::Muted()); + badge->setId("catalog-card-badge"); + badge->setWidthPercentage(100); + badge->setHeight(18); + badge->setSingleLine(true); + addView(badge); UpdateChrome(false); LoadImage(); @@ -77,6 +67,8 @@ GameCardView::GameCardView(GameCardDisplay display, ClickHandler click_handler) return true; }); + addGestureRecognizer(new brls::TapGestureRecognizer(this)); + updateActionHint(brls::BUTTON_A, Tr("View game")); } void GameCardView::onFocusGained() @@ -93,8 +85,8 @@ void GameCardView::onFocusLost() void GameCardView::UpdateChrome(bool focused) { - setBackgroundColor(focused ? nvgRGB(26, 42, 34) : nvgRGB(21, 21, 24)); - setBorderColor(focused ? nvgRGB(88, 217, 138) : nvgRGB(42, 42, 48)); + setBackgroundColor(focused ? ui::Raised() : ui::Ground()); + setBorderColor(focused ? ui::Green() : nvgRGBA(42, 45, 51, 0)); } void GameCardView::LoadImage() diff --git a/app/src/game_card_view.hpp b/app/src/game_card_view.hpp index 5f8e5598..cbcc88bb 100644 --- a/app/src/game_card_view.hpp +++ b/app/src/game_card_view.hpp @@ -16,6 +16,7 @@ struct GameCardDisplay std::string subtitle; std::string badge; std::string image_url; + bool in_library = false; }; class GameCardView : public brls::Box diff --git a/app/src/game_detail_view.cpp b/app/src/game_detail_view.cpp index 93d282be..82697771 100644 --- a/app/src/game_detail_view.cpp +++ b/app/src/game_detail_view.cpp @@ -4,7 +4,6 @@ #include "cover_image_cache.hpp" #include "game_detail_policy.hpp" #include "home_shortcut.hpp" -#include "membership_tier_style.hpp" #include "nte_credentials.hpp" #include "ui_helpers.hpp" #include "localization.hpp" @@ -23,24 +22,33 @@ namespace opennow namespace { -brls::Label* MakeLabel(const std::string& text, float size, NVGcolor color, float bottom_margin = 10.0f) +class CoverHero final : public CachedImage { - auto* label = new brls::Label(); - label->setText(Tr(text)); - label->setFontSize(size); - label->setTextColor(color); - label->setMarginBottom(bottom_margin); - return label; -} + public: + brls::View* hitTest(brls::Point) override { return nullptr; } + + void draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style style, brls::FrameContext* ctx) override + { + CachedImage::draw(vg, x, y, width, height, style, ctx); + nvgBeginPath(vg); + nvgRect(vg, x, y, width, height); + nvgFillPaint(vg, nvgLinearGradient(vg, x + width * 0.25f, y, + x + width * 0.85f, y, ui::Ground(), nvgRGBA(11, 12, 14, 60))); + nvgFill(vg); + nvgBeginPath(vg); + nvgRect(vg, x, y, width, height); + nvgFillPaint(vg, nvgLinearGradient(vg, x, y + height * 0.6f, + x, y + height, nvgRGBA(11, 12, 14, 0), nvgRGBA(11, 12, 14, 160))); + nvgFill(vg); + } +}; std::string PrimaryStore(const GameInfo& game) { if (!game.available_stores.empty()) return game_detail::DisplayStore(game.available_stores.front()); - if (!game_detail::IsUnknownMetadata(game.publisher)) - return game.publisher; - return "GeForce NOW"; } @@ -119,6 +127,7 @@ GameDetailView::GameDetailView(const GfnClient& client, GameDetailData data) : brls::Box(brls::Axis::COLUMN) , client_(client) , data_(std::move(data)) + , account_generation_(AppState::Instance().session_generation()) { const std::string saved_variant = client_.LoadLauncherPreference(ActiveUserId(), data_.game_id); for (size_t i = 0; i < data_.variants.size(); ++i) @@ -133,134 +142,179 @@ GameDetailView::GameDetailView(const GfnClient& client, GameDetailData data) selected_variant_index_ = i; } - setPadding(28, 40, 28, 40); - setBackgroundColor(nvgRGB(16, 16, 20)); - - auto* header = new brls::Header(); - header->setTitle(data_.title); - header->setSubtitle(data_.subtitle); + setId("detail"); + setBackgroundColor(ui::Ground()); + + auto* header = new brls::Box(brls::Axis::ROW); + header->setId("detail/header"); + header->setHeight(76); + header->setShrink(0); + header->setPadding(0, 48, 0, 48); + header->setAlignItems(brls::AlignItems::CENTER); + header->setBorderThickness(1); + header->setBorderColor(ui::Rule()); + auto* logo = new brls::Image(); + logo->setWidth(56); + logo->setHeight(32); + logo->setShrink(0); + logo->setMarginRight(28); + logo->setImageFromRes("img/opennow-logo-mark.png"); + header->addView(logo); + auto* route = ui::MakeLabel(Tr(data_.owned ? "Library" : "Store") + " /", 18, ui::Muted()); + route->setSingleLine(true); + route->setMaxWidthPercentage(30); + route->setMarginRight(14); + header->addView(route); + auto* breadcrumb = ui::MakeLabel(data_.title, 18, ui::Text(), ui::FontRole::Medium); + breadcrumb->setSingleLine(true); + breadcrumb->setGrow(1); + breadcrumb->setShrink(1); + header->addView(breadcrumb); addView(header); auto* content = new brls::Box(brls::Axis::ROW); - content->setGrow(1.0f); - content->setMarginTop(16); - - auto* poster_column = new brls::Box(brls::Axis::COLUMN); - poster_column->setWidth(310); - poster_column->setMarginRight(28); - - auto* poster = new CachedImage(); - poster->setWidth(310); - poster->setHeight(380); - poster->setCornerRadius(14); - poster->setScalingType(brls::ImageScalingType::FILL); - poster->setMarginBottom(16); - SetCachedCoverImage(poster, data_.image_url); - poster_column->addView(poster); - - auto* play_button = new brls::Button(); - play_button->setStyle(&brls::BUTTONSTYLE_PRIMARY); - play_button->setText(Tr(data_.owned ? "Play on GeForce NOW" : "Play from Store")); - play_button->setHeight(52); - play_button->setCornerRadius(10); - play_button->registerClickAction([this](brls::View* view) { - (void)view; - Play(); - return true; - }); - poster_column->addView(play_button); - - store_button_ = new brls::Button(); - store_button_->setMarginTop(10); - store_button_->setHeight(44); - store_button_->setCornerRadius(10); - store_button_->registerClickAction([this](brls::View*) { + content->setId("detail/content"); + content->setGrow(1); + content->setShrink(1); + content->setClipsToBounds(true); + + auto* hero = new CoverHero(); + hero->setId("detail/cover"); + hero->setPositionType(brls::PositionType::ABSOLUTE); + hero->setPositionTop(0); + hero->setPositionLeft(0); + hero->setWidthPercentage(100); + hero->setHeightPercentage(100); + hero->setScalingType(brls::ImageScalingType::FILL); + SetCachedCoverImage(hero, data_.image_url); + content->addView(hero); + + auto* left = new brls::Box(brls::Axis::COLUMN); + left->setWidth(640); + left->setShrink(0); + left->setPadding(28, 32, 24, 48); + + std::string metadata = game_detail::DisplayStore(data_.stores); + if (!data_.membership_tier_label.empty()) + metadata += " · " + data_.membership_tier_label; + if (!game_detail::IsUnknownMetadata(data_.publisher)) + metadata += " · " + data_.publisher; + auto* metadata_label = ui::MakeLabel(metadata, 14, ui::Muted()); + metadata_label->setId("detail/metadata"); + metadata_label->setSingleLine(true); + metadata_label->setShrink(0); + metadata_label->setMarginBottom(8); + left->addView(metadata_label); + + auto* title = ui::MakeLabel(data_.title, 44, ui::Text(), ui::FontRole::Display); + title->setId("detail/title"); + title->setSingleLine(true); + title->setShrink(0); + title->setMarginBottom(4); + left->addView(title); + + auto* description = ui::MakeLabel( + data_.description.empty() ? Tr("No description is available yet for this title.") : data_.description, + 18, ui::Muted()); + description->setSingleLine(false); + auto* description_frame = new brls::ScrollingFrame(); + description_frame->setId("detail/description"); + description_frame->setHeight(76); + description_frame->setShrink(0); + description_frame->setMarginBottom(20); + description_frame->setContentView(description); + left->addView(description_frame); + + auto* actions = new brls::Box(brls::Axis::COLUMN); + actions->setId("detail/actions"); + actions->setGrow(1); + actions->setWidth(472); + actions->setPadding(4); + play_button_ = new ui::ActionRow(Tr(data_.owned ? "Play on GeForce NOW" : "Play from Store"), {}, + [this](brls::View*) { + Play(); + return true; + }, ui::ActionTone::Primary); + play_button_->setId("detail/play"); + play_button_->setHeight(64); + play_button_->setMarginBottom(10); + play_button_->updateActionHint(brls::BUTTON_A, Tr("Play")); + actions->addView(play_button_); + + store_button_ = new ui::ActionRow(Tr("Store"), {}, [this](brls::View*) { ShowStoreSelector(false); return true; }); + store_button_->setId("detail/store"); + store_button_->setMarginBottom(10); + store_button_->updateActionHint(brls::BUTTON_A, Tr("Choose game store")); UpdateStoreButton(); - poster_column->addView(store_button_); - - auto* shortcut_button = new brls::Button(); - shortcut_button->setMarginTop(10); - shortcut_button->setHeight(44); - shortcut_button->setCornerRadius(10); - shortcut_button->setStyle(&brls::BUTTONSTYLE_BORDERED); - shortcut_button->setText(Tr("Create Switch shortcut")); - shortcut_button->registerClickAction([this](brls::View*) { - CreateSwitchShortcut(); - return true; - }); - poster_column->addView(shortcut_button); - - content->addView(poster_column); - - auto* info_column = new brls::Box(brls::Axis::COLUMN); - info_column->setGrow(1.0f); - - info_column->addView(MakeLabel(data_.title, 32.0f, nvgRGB(236, 236, 239), 6.0f)); - info_column->addView(MakeLabel( - game_detail::DetailSubtitle(data_.owned), 17.0f, nvgRGB(88, 217, 138), 18.0f)); - - auto* metadata = new brls::Box(brls::Axis::COLUMN); - metadata->setPadding(16, 18, 14, 18); - metadata->setMarginBottom(18); - metadata->setCornerRadius(12); - metadata->setBorderThickness(1); - metadata->setBorderColor(nvgRGB(42, 42, 48)); - metadata->setBackgroundColor(nvgRGB(21, 21, 24)); - metadata->addView(MakeLabel("GAME DETAILS", 12.0f, nvgRGB(112, 119, 130), 10.0f)); - metadata->addView(MakeLabel( - "Store · " + game_detail::DisplayStore(data_.stores), - 17.0f, nvgRGB(220, 220, 225), 6.0f)); - if (!data_.membership_tier_label.empty()) - { - metadata->addView(MakeLabel( - "Membership · " + data_.membership_tier_label, - 17.0f, membership::TextColor(data_.membership_tier_label), 6.0f)); - } - if (!game_detail::IsUnknownMetadata(data_.publisher)) - metadata->addView(MakeLabel( - "Publisher · " + data_.publisher, - 17.0f, nvgRGB(220, 220, 225), 6.0f)); - metadata->addView(MakeLabel( - "Last played · " + game_detail::FormatLastPlayed(data_.last_played), - 17.0f, nvgRGB(220, 220, 225), 0.0f)); - info_column->addView(metadata); + actions->addView(store_button_); + + auto* shortcut_button = new ui::ActionRow(Tr("Create Switch shortcut"), Tr("HOME screen"), + [this](brls::View*) { + CreateSwitchShortcut(); + return true; + }); + shortcut_button->setId("detail/shortcut"); + shortcut_button->updateActionHint(brls::BUTTON_A, Tr("Create Switch shortcut")); + actions->addView(shortcut_button); if (IsNevernessToEverness(data_.title)) { - nte_button_ = new brls::Button(); - nte_button_->setMarginBottom(18); - nte_button_->registerClickAction([this](brls::View*) { + nte_button_ = new ui::ActionRow("NTE Auto-login", {}, [this](brls::View*) { OpenNteCredentialsMenu(); return true; }); + nte_button_->setId("detail/nte"); + nte_button_->setMarginTop(10); UpdateNteButton(); - info_column->addView(nte_button_); + actions->addView(nte_button_); } - - info_column->addView(MakeLabel("ABOUT", 12.0f, nvgRGB(112, 119, 130), 8.0f)); - auto* description = MakeLabel( - SafeText(data_.description, "No description is available yet for this title."), - 18.0f, - nvgRGB(206, 206, 214), - 0.0f); - description->setSingleLine(false); - - auto* description_frame = new brls::ScrollingFrame(); - description_frame->setGrow(1.0f); - description_frame->setContentView(description); - info_column->addView(description_frame); - - content->addView(info_column); + left->addView(actions); + content->addView(left); + + auto* right = new brls::Box(brls::Axis::COLUMN); + right->setGrow(1); + right->setShrink(1); + right->setPadding(28, 48, 24, 16); + right->setJustifyContent(brls::JustifyContent::FLEX_END); + right->setAlignItems(brls::AlignItems::FLEX_END); + auto* summary = new ui::NextStreamSummaryView(LoadStreamSettings()); + summary->setId("detail/next-stream"); + summary->setWidth(380); + if (!data_.last_played.empty()) + { + auto* history = ui::MakeLabel(Tr("Last played") + " · " + game_detail::FormatLastPlayed(data_.last_played), + 14, ui::Muted()); + history->setSingleLine(true); + history->setMarginTop(8); + summary->addView(history); + } + right->addView(summary); + content->addView(right); addView(content); - registerAction("Back", brls::BUTTON_B, [](brls::View* view) { - (void)view; + registerAction(Tr("Back"), brls::BUTTON_B, [](brls::View*) { brls::Application::popActivity(); return true; }); + auto* footer = new brls::Box(brls::Axis::ROW); + footer->setId("detail/footer"); + footer->setHeight(60); + footer->setShrink(0); + footer->setPadding(0, 32, 0, 32); + footer->setAlignItems(brls::AlignItems::CENTER); + footer->setBorderThickness(1); + footer->setBorderColor(ui::Rule()); + auto* hints = new brls::Hints(); + hints->setId("detail/hints"); + hints->setAllowAButtonTouch(true); + hints->setAddUnableAButtonAction(false); + hints->setMaxWidthPercentage(100); + hints->applyXMLAttribute("forceShown", "true"); + footer->addView(hints); + addView(footer); } GameDetailView::~GameDetailView() @@ -268,6 +322,11 @@ GameDetailView::~GameDetailView() alive_->store(false); } +brls::View* GameDetailView::getDefaultFocus() +{ + return play_button_; +} + void GameDetailView::Play() { const auto& session = AppState::Instance().session(); @@ -276,6 +335,11 @@ void GameDetailView::Play() ShowError("Not Logged In", "Sign in from Library before starting a GeForce NOW session."); return; } + if (!AppState::Instance().IsCurrentSession(account_generation_)) + { + ShowError("Account Changed", "Open this game again from the current account before playing."); + return; + } if (data_.variants.size() > 1 && !launcher_preference_loaded_) { @@ -299,17 +363,17 @@ void GameDetailView::UpdateStoreButton() const std::string store = selected_variant_index_ < data_.variants.size() ? game_detail::DisplayStore(data_.variants[selected_variant_index_].store) : game_detail::DisplayStore(data_.stores); - store_button_->setText(Tr("Store") + ": " + store + (data_.variants.size() > 1 ? " (" + Tr("change") + ")" : "")); + store_button_->SetValue(store + (data_.variants.size() > 1 ? " · " + Tr("change") : "")); } void GameDetailView::UpdateNteButton() { if (!nte_button_) return; - nte_button_->setText( + nte_button_->SetValue( LoadNteCredentials().valid() - ? "NTE Auto-login: Ready (L + X in game)" - : "NTE Auto-login: Set email and password"); + ? "Saved · L + X in game" + : "Set email and password"); } void GameDetailView::ConfigureNteCredentials() @@ -355,8 +419,16 @@ void GameDetailView::OpenNteCredentialsMenu() "NTE Auto-login\n\nCredentials are stored as plain text at:\n" + NteCredentialsPath() + "\n\nPress L + X on the first NTE email sign-in screen. B cancels an active sequence."); - dialog->addButton("Edit credentials", [this] { ConfigureNteCredentials(); }); - dialog->addButton("Clear credentials", [this] { + const auto alive = alive_; + const auto generation = account_generation_; + dialog->addButton("Edit credentials", [this, alive, generation] { + if (!alive->load() || AppState::Instance().session_generation() != generation) + return; + ConfigureNteCredentials(); + }); + dialog->addButton("Clear credentials", [this, alive, generation] { + if (!alive->load() || AppState::Instance().session_generation() != generation) + return; ClearNteCredentials(); UpdateNteButton(); brls::Application::notify("NTE Auto-login credentials removed"); @@ -368,9 +440,12 @@ void GameDetailView::OpenNteCredentialsMenu() void GameDetailView::ShowStoreSelector(bool launch_after_selection) { + if (AppState::Instance().session_generation() != account_generation_) + return; if (data_.variants.empty()) { - LaunchSelectedVariant(); + if (launch_after_selection) + LaunchSelectedVariant(); return; } @@ -379,43 +454,64 @@ void GameDetailView::ShowStoreSelector(bool launch_after_selection) for (const auto& variant : data_.variants) labels.push_back(VariantLabel(variant)); + const auto alive = alive_; + const auto generation = account_generation_; + const auto user_id = ActiveUserId(); auto* dropdown = new brls::Dropdown( Tr("Choose game store"), labels, - [this](int selected) { + [this, alive, generation, user_id](int selected) { + if (!alive->load() || AppState::Instance().session_generation() != generation) + return; if (selected < 0 || static_cast(selected) >= data_.variants.size()) return; selected_variant_index_ = static_cast(selected); launcher_preference_loaded_ = true; const auto& variant = data_.variants[selected_variant_index_]; data_.launch_app_id = variant.id; - client_.SaveLauncherPreference(ActiveUserId(), data_.game_id, variant.id); + client_.SaveLauncherPreference(user_id, data_.game_id, variant.id); UpdateStoreButton(); brls::Application::notify("Store selected: " + SafeText(variant.store, variant.id)); }, static_cast(selected_variant_index_), - [this, launch_after_selection](int selected) { - if (launch_after_selection && selected >= 0) - LaunchSelectedVariant(); + [this, alive, generation, launch_after_selection](int selected) { + if (!alive->load() || !AppState::Instance().IsCurrentSession(generation)) + return; + if (!launch_after_selection || selected < 0 || + static_cast(selected) >= data_.variants.size() || + static_cast(selected) != selected_variant_index_) + return; + DeferredLaunchSelectedVariant(generation, data_.variants[static_cast(selected)].id); }); brls::Application::pushActivity(new brls::Activity(dropdown)); } void GameDetailView::LaunchSelectedVariant() { - std::string launch_app_id = data_.launch_app_id; - std::string store = data_.stores; - if (selected_variant_index_ < data_.variants.size()) - { - launch_app_id = data_.variants[selected_variant_index_].id; - store = data_.variants[selected_variant_index_].store; - } + const std::string launch_app_id = selected_variant_index_ < data_.variants.size() + ? data_.variants[selected_variant_index_].id : data_.launch_app_id; + DeferredLaunchSelectedVariant(account_generation_, launch_app_id); +} + +void GameDetailView::DeferredLaunchSelectedVariant(std::uint64_t generation, + const std::string& launch_app_id) +{ + const auto& state = AppState::Instance(); + if (!alive_->load() || !state.IsCurrentSession(generation) || generation != account_generation_) + return; - if (launch_app_id.empty()) + const std::string current_launch_app_id = selected_variant_index_ < data_.variants.size() + ? data_.variants[selected_variant_index_].id : data_.launch_app_id; + if (launch_app_id != current_launch_app_id) + return; + + if (!IsNumericLaunchId(launch_app_id)) { - ShowError("Launch Error", "This game has no launch App ID."); + ShowError("Launch Error", "This game has no valid numeric launch App ID."); return; } - LaunchSessionDialog(client_, *AppState::Instance().session(), launch_app_id, + const std::string store = selected_variant_index_ < data_.variants.size() + ? data_.variants[selected_variant_index_].store : data_.stores; + LaunchSessionDialog(client_, *state.session(), launch_app_id, data_.title, store, data_.title, data_.game_id, data_.image_url); } diff --git a/app/src/game_detail_view.hpp b/app/src/game_detail_view.hpp index bd0432d2..c2692971 100644 --- a/app/src/game_detail_view.hpp +++ b/app/src/game_detail_view.hpp @@ -2,10 +2,12 @@ #include "gfn_client.hpp" #include "models.hpp" +#include "ui_theme.hpp" #include #include +#include #include #include #include @@ -34,11 +36,14 @@ class GameDetailView : public brls::Box public: GameDetailView(const GfnClient& client, GameDetailData data); ~GameDetailView() override; + brls::View* getDefaultFocus() override; private: void Play(); void ShowStoreSelector(bool launch_after_selection); void LaunchSelectedVariant(); + void DeferredLaunchSelectedVariant(std::uint64_t generation, + const std::string& launch_app_id); void CreateSwitchShortcut(); void UpdateStoreButton(); void OpenNteCredentialsMenu(); @@ -48,12 +53,14 @@ class GameDetailView : public brls::Box GfnClient client_; GameDetailData data_; - brls::Button* store_button_ = nullptr; - brls::Button* nte_button_ = nullptr; + ui::ActionRow* play_button_ = nullptr; + ui::ActionRow* store_button_ = nullptr; + ui::ActionRow* nte_button_ = nullptr; std::shared_ptr alive_ = std::make_shared(true); size_t selected_variant_index_ = 0; bool launcher_preference_loaded_ = false; + std::uint64_t account_generation_ = 0; }; GameDetailData MakeLibraryGameDetail(const GameInfo& game); diff --git a/app/src/gfn/cloud_session.cpp b/app/src/gfn/cloud_session.cpp index 0fa9224b..676936ab 100644 --- a/app/src/gfn/cloud_session.cpp +++ b/app/src/gfn/cloud_session.cpp @@ -14,6 +14,7 @@ using namespace gfn::detail; using namespace gfn::cloud_session; SessionInfo GfnClient::StartSession(AuthSession& session, const std::string& launch_app_id, + const StreamSettings& stream_settings, const std::string& launch_store, const std::string& internal_title) const { @@ -22,7 +23,6 @@ SessionInfo GfnClient::StartSession(AuthSession& session, const std::string& lau const std::string device_id = GenerateDeviceId(); const std::string sub_session_id = GenerateUuid(); - const StreamSettings stream_settings = LoadStreamSettings(); const std::string proxy_url = community_proxy::EnabledUrl(stream_settings); std::string automatic_region_url; std::string automatic_region_trace; diff --git a/app/src/gfn_client.hpp b/app/src/gfn_client.hpp index f7880b13..baa5b64e 100644 --- a/app/src/gfn_client.hpp +++ b/app/src/gfn_client.hpp @@ -2,6 +2,7 @@ #include "http_client.hpp" #include "models.hpp" +#include "stream_settings.hpp" #include #include @@ -44,6 +45,7 @@ class GfnClient bool force_refresh = false) const; SessionInfo StartSession(AuthSession& session, const std::string& launch_app_id, + const StreamSettings& settings, const std::string& launch_store = "", const std::string& internal_title = "") const; SessionInfo PollSession(AuthSession& session, const std::string& session_id) const; diff --git a/app/src/library_row_view.cpp b/app/src/library_row_view.cpp new file mode 100644 index 00000000..20f6c478 --- /dev/null +++ b/app/src/library_row_view.cpp @@ -0,0 +1,105 @@ +#include "library_row_view.hpp" + +#include "cover_image_cache.hpp" +#include "localization.hpp" +#include "ui_theme.hpp" + +#include + +#include + +namespace opennow +{ + +LibraryRowView::LibraryRowView(LibraryRowDisplay display, std::function selected, + std::function opened) + : brls::Box(brls::Axis::ROW), selected_(std::move(selected)) +{ + setId("library-row-" + display.identity); + setWidthPercentage(100); + setHeight(72); + setShrink(0); + setPadding(8, 12, 8, 12); + setAlignItems(brls::AlignItems::CENTER); + setMarginBottom(2); + setCornerRadius(12); + setBorderThickness(1); + setFocusable(true); + setHideHighlightBackground(true); + setHighlightPadding(3); + setHighlightCornerRadius(14); + + time_ = ui::MakeLabel(display.time, 12, ui::Muted(), ui::FontRole::Medium); + time_->setWidth(80); + time_->setShrink(0); + time_->setSingleLine(true); + time_->setMarginRight(10); + addView(time_); + + auto* image = new CachedImage(); + image->setWidth(112); + image->setHeight(56); + image->setShrink(0); + image->setMarginRight(18); + image->setCornerRadius(6); + image->setScalingType(brls::ImageScalingType::FILL); + SetCachedCoverImage(image, display.image_url); + addView(image); + + auto* text = new brls::Box(brls::Axis::COLUMN); + text->setGrow(1); + text->setShrink(1); + auto* title = ui::MakeLabel(display.title, 20, ui::Text(), ui::FontRole::Heading); + title->setSingleLine(true); + title->setWidthPercentage(100); + text->addView(title); + std::string detail = display.store; + if (!display.membership.empty()) + detail += (detail.empty() ? "" : " · ") + display.membership; + auto* subtitle = ui::MakeLabel(detail, 14, ui::Muted()); + subtitle->setWidthPercentage(100); + subtitle->setSingleLine(true); + text->addView(subtitle); + addView(text); + + prompt_ = ui::MakeLabel("A " + Tr("Open"), 14, ui::Green(), ui::FontRole::Medium); + prompt_->setWidth(72); + prompt_->setMarginLeft(12); + prompt_->setSingleLine(true); + prompt_->setShrink(0); + addView(prompt_); + registerClickAction([selected = selected_, opened = std::move(opened)](brls::View*) { + if (selected) + selected(); + if (opened) + opened(); + return true; + }); + addGestureRecognizer(new brls::TapGestureRecognizer(this)); + updateActionHint(brls::BUTTON_A, Tr("Open")); + UpdateChrome(false); +} + +void LibraryRowView::onFocusGained() +{ + brls::Box::onFocusGained(); + UpdateChrome(true); + if (selected_) + selected_(); +} + +void LibraryRowView::onFocusLost() +{ + brls::Box::onFocusLost(); + UpdateChrome(false); +} + +void LibraryRowView::UpdateChrome(bool focused) +{ + setBackgroundColor(focused ? ui::Raised() : ui::Ground()); + setBorderColor(focused ? ui::Green() : nvgRGBA(42, 45, 51, 0)); + time_->setTextColor(focused ? ui::Green() : ui::Muted()); + prompt_->setVisibility(focused ? brls::Visibility::VISIBLE : brls::Visibility::INVISIBLE); +} + +} diff --git a/app/src/library_row_view.hpp b/app/src/library_row_view.hpp new file mode 100644 index 00000000..dbca5aee --- /dev/null +++ b/app/src/library_row_view.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include + +#include +#include + +namespace opennow +{ + +struct LibraryRowDisplay +{ + std::string identity; + std::string title; + std::string store; + std::string membership; + std::string time; + std::string image_url; +}; + +class LibraryRowView final : public brls::Box +{ + public: + LibraryRowView(LibraryRowDisplay display, std::function selected, + std::function opened); + void onFocusGained() override; + void onFocusLost() override; + + private: + void UpdateChrome(bool focused); + brls::Label* time_ = nullptr; + brls::Label* prompt_ = nullptr; + std::function selected_; +}; + +} diff --git a/app/src/library_tab.cpp b/app/src/library_tab.cpp index 9c2ee4fb..79827b27 100644 --- a/app/src/library_tab.cpp +++ b/app/src/library_tab.cpp @@ -1,12 +1,13 @@ #include "library_tab.hpp" #include "app_state.hpp" -#include "game_browser_header.hpp" +#include "cover_image_cache.hpp" #include "game_detail_view.hpp" -#include "game_card_view.hpp" +#include "game_detail_policy.hpp" #include "game_grid_navigation.hpp" +#include "library_row_view.hpp" #include "library_sort.hpp" -#include "membership_label.hpp" +#include "library_timetable_policy.hpp" #include "ui_action_guard.hpp" #include "ui_helpers.hpp" #include "localization.hpp" @@ -22,17 +23,14 @@ namespace opennow namespace { -constexpr size_t kCardsPerRow = 5; -constexpr size_t kInitialVisibleLibraryLimit = 15; +constexpr size_t kRowsPerPage = 15; constexpr std::array kStoreFilters = {"All", "Steam", "Epic", "Ubisoft", "Xbox", "Battle.net"}; constexpr std::array kLibrarySortModes = { "Last Played", "Last Added", "A-Z", "Store"}; brls::Label* MakeParagraph(const std::string& text, float bottom_margin = 16.0f, float font_size = 18.0f) { - auto* label = new brls::Label(); - label->setText(Tr(text)); - label->setFontSize(font_size); + auto* label = ui::MakeLabel(Tr(text), font_size, ui::Muted()); label->setMarginBottom(bottom_margin); return label; } @@ -52,13 +50,15 @@ bool ContainsText(const std::string& haystack, const std::string& needle) std::string PrimaryStore(const GameInfo& game) { - if (!game.available_stores.empty()) - return game.available_stores.front(); - - if (!game.publisher.empty()) - return game.publisher; + for (const auto& store : game.available_stores) + if (!game_detail::IsUnknownMetadata(store)) + return store; + return Tr("Unknown store"); +} - return "GeForce NOW"; +std::string GameIdentity(const GameInfo& game) +{ + return game.uuid.empty() ? game.id : game.uuid; } bool MatchesStoreFilter(const GameInfo& game, size_t filter_index) @@ -87,45 +87,128 @@ bool MatchesStoreFilter(const GameInfo& game, size_t filter_index) LibraryTab::LibraryTab() : brls::Box(brls::Axis::COLUMN) { - setPadding(18, 32, 18, 32); - setBackgroundColor(nvgRGB(16, 16, 20)); - - search_button_ = ui::MakeGameBrowserActionButton("Y Search"); - filter_button_ = ui::MakeGameBrowserActionButton("ZL All stores"); - sort_button_ = ui::MakeGameBrowserActionButton("ZR Last Played"); - more_button_ = ui::MakeGameBrowserActionButton("X More / Refresh"); - search_button_->setStyle(&brls::BUTTONSTYLE_HIGHLIGHT); + setId("library"); + setPadding(10, 48, 14, 48); + setBackgroundColor(ui::Ground()); + library_session_generation_ = AppState::Instance().session_generation(); + + auto* body = new brls::Box(brls::Axis::ROW); + body->setGrow(1); + auto* timetable = new brls::Box(brls::Axis::COLUMN); + timetable->setWidth(660); + timetable->setShrink(0); + timetable->setMarginRight(40); + heading_ = ui::MakeLabel(Tr("My Library"), 28, ui::Text(), ui::FontRole::Heading); + heading_->setGrow(1); + heading_->setShrink(1); + heading_->setSingleLine(true); + + auto make_control = [](const std::string& id, const std::string& text, float width, + std::function action) { + auto* control = new ui::ActionRow(text, {}, std::move(action)); + control->setId(id); + control->setWidth(width); + control->setHeight(38); + control->setPadding(0, 8, 0, 8); + return control; + }; + search_button_ = make_control("library-search", "Y " + Tr("Search"), 88, + [this](brls::View*) { return RunUiAction("library.search.button", [this] { BeginSearch(); }); }); + filter_button_ = make_control("library-filter", "ZL " + Tr("All"), 100, + [this](brls::View*) { return RunUiAction("library.filter.button", [this] { CycleStoreFilter(); }); }); + sort_button_ = make_control("library-sort", "ZR " + Tr("Last Played"), 124, + [this](brls::View*) { return RunUiAction("library.sort.button", [this] { CycleSortMode(); }); }); + more_button_ = make_control("library-more", "X " + Tr("More"), 96, + [this](brls::View*) { return RunUiAction("library.more.button", [this] { LoadMoreOrRefresh(); }); }); toolbar_buttons_ = {search_button_, filter_button_, sort_button_, more_button_}; - addView(ui::MakeGameBrowserHeader("My Library", toolbar_buttons_)); - - search_button_->registerClickAction([this](brls::View*) { - return RunUiAction("library.search.button", [this]() { BeginSearch(); }); - }); - filter_button_->registerClickAction([this](brls::View*) { - return RunUiAction("library.filter.button", [this]() { CycleStoreFilter(); }); - }); - sort_button_->registerClickAction([this](brls::View*) { - return RunUiAction("library.sort.button", [this]() { CycleSortMode(); }); - }); - more_button_->registerClickAction([this](brls::View*) { - return RunUiAction("library.more.button", [this]() { LoadMoreOrRefresh(); }); - }); + for (auto* control : {search_button_, filter_button_, sort_button_, more_button_}) + { + control->SetFontSize(14); + control->setPadding(0, 4, 0, 4); + } + auto* toolbar = new brls::Box(brls::Axis::ROW); + toolbar->setHeight(38); + toolbar->setShrink(0); + toolbar->setAlignItems(brls::AlignItems::CENTER); + toolbar->setMarginBottom(4); + heading_->setMarginRight(12); + toolbar->addView(heading_); + for (size_t i = 0; i < toolbar_buttons_.size(); ++i) + { + toolbar_buttons_[i]->setMarginRight(i + 1 < toolbar_buttons_.size() ? 8 : 0); + toolbar->addView(toolbar_buttons_[i]); + } + timetable->addView(toolbar); status_label_ = MakeParagraph( "Open Settings > Account to connect GeForce NOW and load your library.", 8.0f, 14.0f); - status_label_->setTextColor(nvgRGB(132, 139, 151)); - addView(status_label_); + status_label_->setId("library-status"); + status_label_->setWidthPercentage(100); + status_label_->setMaxHeight(60); + timetable->addView(status_label_); scrolling_frame_ = new brls::ScrollingFrame(); scrolling_frame_->setGrow(1.0f); scrolling_frame_->setScrollingBehavior(brls::ScrollingBehavior::CENTERED); - grid_container_ = new brls::Box(brls::Axis::COLUMN); - grid_container_->setPadding(0, 0, 30, 0); - scrolling_frame_->setContentView(grid_container_); - - addView(scrolling_frame_); + list_container_ = new brls::Box(brls::Axis::COLUMN); + list_container_->setId("library-list"); + list_container_->setPadding(4, 4, 8, 4); + scrolling_frame_->setContentView(list_container_); + timetable->addView(scrolling_frame_); + auto* paging = new brls::Box(brls::Axis::ROW); + paging->setMarginTop(8); + previous_button_ = make_control("library-previous", Tr("Previous page"), 320, + [this](brls::View*) { return RunUiAction("library.previous.button", [this] { PreviousPage(); }); }); + previous_button_->setMarginRight(20); + next_button_ = make_control("library-next", Tr("More / Refresh"), 320, + [this](brls::View*) { return RunUiAction("library.next.button", [this] { LoadMoreOrRefresh(); }); }); + paging->addView(previous_button_); + paging->addView(next_button_); + timetable->addView(paging); + body->addView(timetable); + + preview_container_ = new brls::Box(brls::Axis::COLUMN); + preview_container_->setGrow(1); + preview_container_->setShrink(1); + preview_container_->setPaddingTop(6); + preview_image_ = new CachedImage(); + preview_image_->setId("library-preview-image"); + preview_image_->setWidthPercentage(100); + preview_image_->setHeight(272); + preview_image_->setShrink(0); + preview_image_->setCornerRadius(12); + preview_image_->setScalingType(brls::ImageScalingType::FILL); + preview_image_->setMarginBottom(10); + preview_container_->addView(preview_image_); + selection_label_ = ui::MakeLabel(Tr("Now selected"), 12, ui::Green(), ui::FontRole::Medium); + selection_label_->setHeight(18); + preview_container_->addView(selection_label_); + preview_title_ = ui::MakeLabel({}, 28, ui::Text(), ui::FontRole::Heading); + preview_title_->setId("library-preview-title"); + preview_title_->setWidthPercentage(100); + preview_title_->setHeight(40); + preview_title_->setSingleLine(true); + preview_container_->addView(preview_title_); + auto metadata = [this](const std::string& id) { + auto* label = ui::MakeLabel({}, 14, ui::Muted()); + label->setId(id); + label->setWidthPercentage(100); + label->setHeight(20); + label->setSingleLine(true); + preview_container_->addView(label); + return label; + }; + preview_last_played_ = metadata("library-preview-last-played"); + preview_store_ = metadata("library-preview-store"); + preview_membership_ = metadata("library-preview-membership"); + stream_summary_ = new ui::NextStreamSummaryView(LoadStreamSettings()); + stream_summary_->setMarginTop(8); + preview_container_->addView(stream_summary_); + preview_container_->setVisibility(brls::Visibility::INVISIBLE); + body->addView(preview_container_); + addView(body); registerAction("Search", brls::BUTTON_Y, [this](brls::View* view) { (void)view; @@ -146,6 +229,7 @@ LibraryTab::LibraryTab() (void)view; return RunUiAction("library.sort.hotkey", [this]() { CycleSortMode(); }); }, false, false); + WireVerticalGridNavigation({toolbar_buttons_, {previous_button_, next_button_}}); } LibraryTab::~LibraryTab() @@ -156,17 +240,20 @@ LibraryTab::~LibraryTab() void LibraryTab::BeginSearch() { + if (page_pending_) + return; const auto alive = alive_; + const auto generation = AppState::Instance().session_generation(); brls::Application::giveFocus(search_button_); brls::Application::getImeManager()->openForText( - [this, alive](std::string text) { - if (!alive->load()) + [this, alive, generation](std::string text) { + if (!alive->load() || AppState::Instance().session_generation() != generation) return; RunUiAction("library.search.result", [this, text = std::move(text)]() mutable { - MoveFocusBeforeDestroy(grid_container_, search_button_); + MoveFocusBeforeDestroy(list_container_, search_button_); search_query_ = std::move(text); - visible_limit_ = kInitialVisibleLibraryLimit; - RebuildGrid(); + page_index_ = 0; + RebuildList(); }); }, "Search Library", "Enter a title to filter your games", 64, search_query_); @@ -177,11 +264,17 @@ void LibraryTab::willAppear(bool resetState) brls::Box::willAppear(resetState); EnsureSessionLoaded(); - UpdateSessionUi(); - auto& state = AppState::Instance(); - games_ = state.library_games(); - RebuildGrid(); + if (library_session_generation_ != state.session_generation()) + { + library_session_generation_ = state.session_generation(); + selected_identity_.clear(); + page_index_ = 0; + last_library_sync_ = {}; + } + games_ = state.HasSession() ? state.library_games() : std::vector{}; + stream_summary_->Update(LoadStreamSettings()); + RebuildList(); const bool displayed_cached_library = !games_.empty(); const auto now = std::chrono::steady_clock::now(); @@ -211,7 +304,7 @@ void LibraryTab::UpdateSessionUi() const auto& state = AppState::Instance(); if (!state.HasSession()) { - status_label_->setText("Open Settings > Account to connect GeForce NOW and load your library."); + status_label_->setText(Tr("Open Settings > Account to connect GeForce NOW and load your library.")); return; } @@ -220,17 +313,17 @@ void LibraryTab::UpdateSessionUi() if (session.reauthentication_required) { status_label_->setText( - "Reconnect this account from Settings > Account before refreshing the library."); + Tr("Reconnect this account from Settings > Account before refreshing the library.")); } } void LibraryTab::ReloadLibrary(bool background) { auto& state = AppState::Instance(); - if (loading_ || !state.HasSession()) + if (loading_ || !state.HasSession() || state.session()->reauthentication_required) { UpdateSessionUi(); - RebuildGrid(); + RebuildList(); return; } @@ -238,7 +331,7 @@ void LibraryTab::ReloadLibrary(bool background) // Throttle automatic retries even when NVIDIA temporarily rejects a // refresh, otherwise every tab appearance immediately repeats it. last_library_sync_ = std::chrono::steady_clock::now(); - status_label_->setText("Syncing your GeForce NOW library..."); + status_label_->setText(Tr("Syncing your GeForce NOW library...")); AuthSession session = *state.session(); const auto generation = state.session_generation(); @@ -263,8 +356,8 @@ void LibraryTab::ReloadLibrary(bool background) current.SetSession(std::move(session)); current.SetLibraryGames(games_); loading_ = false; - UpdateSessionUi(); - RebuildGrid(); + library_session_generation_ = generation; + RebuildList(); if (!background) brls::Application::notify("Library refreshed"); }); @@ -281,7 +374,7 @@ void LibraryTab::ReloadLibrary(bool background) if (background && !games_.empty()) { status_label_->setText( - "Showing cached library. NVIDIA background refresh is temporarily unavailable."); + Tr("Showing cached library. NVIDIA background refresh is temporarily unavailable.")); return; } ShowError("Library Sync Failed", error); @@ -291,41 +384,44 @@ void LibraryTab::ReloadLibrary(bool background) }, false); } -void LibraryTab::RebuildGrid() +void LibraryTab::RebuildList() { if (rebuilding_) return; rebuilding_ = true; struct ResetFlag { bool& flag; ~ResetFlag() { flag = false; } } reset {rebuilding_}; - MoveFocusBeforeDestroy(grid_container_, search_button_); - grid_container_->clearViews(); - card_rows_.clear(); - first_card_ = nullptr; - load_more_button_ = nullptr; - current_grid_size_ = 0; + const bool restore_row_focus = IsViewInside(list_container_, brls::Application::getCurrentFocus()); + MoveFocusBeforeDestroy(list_container_, search_button_); + setLastFocusedView(search_button_); + WireVerticalGridNavigation({toolbar_buttons_, {previous_button_, next_button_}}); + list_container_->clearViews(); + rows_.clear(); + page_pending_ = false; + previous_button_->SetTitle(Tr("Previous page")); + previous_button_->SetValue({}); + heading_->setText(Tr("My Library")); + selection_label_->setText(Tr("Now selected")); + search_button_->SetTitle("Y " + Tr("Search")); + filter_button_->SetTitle("ZL " + Tr(kStoreFilters[store_filter_index_])); + sort_button_->SetTitle("ZR " + Tr(kLibrarySortModes[sort_mode_index_])); const auto& state = AppState::Instance(); if (!state.HasSession()) { - WireVerticalGridNavigation({toolbar_buttons_}); - grid_container_->addView(MakeParagraph( + selected_identity_.clear(); + filtered_count_ = 0; + UpdatePreview(); + UpdateSessionUi(); + next_button_->SetTitle(Tr("Connect an account")); + list_container_->addView(MakeParagraph( "After login, this screen will show your owned GeForce NOW titles with cover art and store labels.", 0.0f)); return; } - LoadMore(); -} - -void LibraryTab::LoadMore() -{ - const bool load_more_had_focus = focus_new_cards_after_load_ || - (load_more_button_ && brls::Application::getCurrentFocus() == load_more_button_); - focus_new_cards_after_load_ = false; - std::vector filtered_indices; - std::string lower_query = ToLower(search_query_); + const std::string lower_query = ToLower(search_query_); for (size_t i = 0; i < games_.size(); ++i) { @@ -337,130 +433,90 @@ void LibraryTab::LoadMore() } } + const auto now = std::chrono::system_clock::now(); SortLibraryIndices( filtered_indices, games_, static_cast(sort_mode_index_)); + if (sort_mode_index_ == 0) + std::stable_sort(filtered_indices.begin(), filtered_indices.end(), [this, now](size_t left, size_t right) { + return library::PresentTimestamp(games_[left].last_played, now).bucket < + library::PresentTimestamp(games_[right].last_played, now).bucket; + }); filtered_count_ = filtered_indices.size(); - const size_t visible_count = std::min(filtered_count_, visible_limit_); - if (load_more_button_) - { - MoveFocusBeforeDestroy(load_more_button_, more_button_); - grid_container_->removeView(load_more_button_); - load_more_button_ = nullptr; - } - - std::string status = "Loaded " + std::to_string(games_.size()) + " games."; - status += " Filter: " + std::string(kStoreFilters[store_filter_index_]) + "."; - status += " Sort: " + std::string(kLibrarySortModes[sort_mode_index_]) + "."; - if (!search_query_.empty()) - status += " Found " + std::to_string(filtered_count_) + " matches."; - if (filtered_count_ > visible_count) - status += " Showing first " + std::to_string(visible_count) + ". Press X or select Show more."; - else - status += " Press X to refresh."; - - status_label_->setText(status); - filter_button_->setText("ZL " + Tr(kStoreFilters[store_filter_index_])); - sort_button_->setText("ZR " + Tr(kLibrarySortModes[sort_mode_index_])); + const size_t total_pages = std::max(1, (filtered_count_ + kRowsPerPage - 1) / kRowsPerPage); + const auto selected = std::find_if(filtered_indices.begin(), filtered_indices.end(), [this](size_t index) { + return GameIdentity(games_[index]) == selected_identity_; + }); + if (selected != filtered_indices.end()) + page_index_ = static_cast(selected - filtered_indices.begin()) / kRowsPerPage; + page_index_ = std::min(page_index_, total_pages - 1); + const size_t page_start = std::min(filtered_count_, page_index_ * kRowsPerPage); + const size_t page_end = std::min(filtered_count_, page_start + kRowsPerPage); + status_label_->setText(TrFormat("{0} games · {1} matches · {2} · {3} · {4}/{5}", { + std::to_string(games_.size()), std::to_string(filtered_count_), + Tr(kLibrarySortModes[sort_mode_index_]), Tr(kStoreFilters[store_filter_index_]), + std::to_string(page_index_ + 1), std::to_string(total_pages)})); + UpdateSessionUi(); + next_button_->SetTitle(Tr(page_end < filtered_count_ ? "Next page" : "Refresh library")); + previous_button_->SetValue(page_index_ > 0 ? std::to_string(page_index_) : ""); + more_button_->SetTitle("X " + Tr(page_end < filtered_count_ ? "More" : "Refresh")); if (filtered_indices.empty()) { - WireVerticalGridNavigation({toolbar_buttons_}); + selected_identity_.clear(); + UpdatePreview(); std::string empty_msg = search_query_.empty() ? "This account is logged in, but no owned games were returned by the current GeForce NOW library feed." : "No games found matching your search."; - grid_container_->addView(MakeParagraph(empty_msg, 0.0f)); + list_container_->addView(MakeParagraph(empty_msg, 0.0f)); return; } - brls::View* first_new_card = nullptr; - - // Always start on a new row. To be perfectly accurate, we should pad the last row if it was incomplete. - // For simplicity, we assume we load in multiples of kCardsPerRow, or we just append rows. - size_t start_index = current_grid_size_; - for (size_t start = start_index; start < visible_count; start += kCardsPerRow) + std::optional previous_bucket; + brls::View* selected_row = nullptr; + for (size_t i = page_start; i < page_end; ++i) { - auto* row = new brls::Box(brls::Axis::ROW); - row->setMarginBottom(2); - std::vector card_row; - - const size_t end = std::min(start + kCardsPerRow, visible_count); - for (size_t i = start; i < end; ++i) + const auto& game = games_[filtered_indices[i]]; + const auto timestamp = library::PresentTimestamp(game.last_played, now); + if (sort_mode_index_ == 0 && previous_bucket != timestamp.bucket) { - const size_t index = filtered_indices[i]; - const GameInfo& game = games_[index]; - - GameCardDisplay display; - display.title = game.title; - display.subtitle = PrimaryStore(game); - display.badge = BuildMembershipBadge( - game.last_played.empty() ? "In library" : "Recently played", - game.membership_tier_label); - display.image_url = game.image_url; - - auto* card = new GameCardView(display, [this, index]() { - OpenGameDialog(index); - }); - card->setMarginRight(i + 1 < end ? 24.0f : 0.0f); - - if (!first_new_card) - first_new_card = card; - if (!first_card_) - first_card_ = card; - - row->addView(card); - card_row.push_back(card); + auto* group = MakeParagraph(library::BucketLabel(timestamp.bucket), 2, 12); + group->setHeight(16); + group->setMarginTop(2); + list_container_->addView(group); + previous_bucket = timestamp.bucket; } - - grid_container_->addView(row); - card_rows_.push_back(std::move(card_row)); + const auto identity = GameIdentity(game); + auto* row = new LibraryRowView( + {identity, game.title, PrimaryStore(game), + game_detail::IsUnknownMetadata(game.membership_tier_label) ? "" : game.membership_tier_label, + Tr(timestamp.label), game.image_url}, + [this, identity] { SelectGame(identity); }, + [this, identity] { OpenGameDialog(identity); }); + if (identity == selected_identity_) + selected_row = row; + list_container_->addView(row); + rows_.push_back(row); } - - std::vector> navigation_rows {toolbar_buttons_}; - navigation_rows.insert(navigation_rows.end(), card_rows_.begin(), card_rows_.end()); + if (!selected_row) + SelectGame(GameIdentity(games_[filtered_indices[page_start]])); + else + UpdatePreview(); + std::vector> navigation_rows{toolbar_buttons_}; + for (auto* row : rows_) + navigation_rows.push_back({row}); + navigation_rows.push_back({previous_button_, next_button_}); WireVerticalGridNavigation(navigation_rows); - - current_grid_size_ = visible_count; - - if (filtered_count_ > visible_count) - { - load_more_button_ = new brls::Button(); - load_more_button_->setText( - "Show more games (" + std::to_string(filtered_count_ - visible_count) + " left)"); - load_more_button_->setStyle(&brls::BUTTONSTYLE_PRIMARY); - load_more_button_->setMarginTop(14); - load_more_button_->setMarginBottom(24); - load_more_button_->registerClickAction([this](brls::View* view) { - (void)view; - return RunUiAction("library.show_more.button", [this]() { - if (filtered_count_ > visible_limit_) - { - focus_new_cards_after_load_ = true; - MoveFocusBeforeDestroy(load_more_button_, more_button_); - visible_limit_ += kInitialVisibleLibraryLimit; - const auto alive = alive_; - brls::sync([this, alive]() { - if (alive->load()) - LoadMore(); - }); - } - }); - }); - grid_container_->addView(load_more_button_); - - navigation_rows.push_back({load_more_button_}); - WireVerticalGridNavigation(navigation_rows); - } - - if (first_new_card && (load_more_had_focus || !brls::Application::getCurrentFocus())) - { - brls::Application::giveFocus(first_new_card); - } + if (scrolling_frame_) + scrolling_frame_->setContentOffsetY(0, false); + setLastFocusedView(selected_row ? selected_row : rows_.front()); + if (restore_row_focus) + brls::Application::giveFocus(selected_row ? selected_row : rows_.front()); } void LibraryTab::LoadMoreOrRefresh() { - if (loading_) + if (loading_ || page_pending_) return; if (!AppState::Instance().HasSession()) @@ -469,42 +525,113 @@ void LibraryTab::LoadMoreOrRefresh() return; } - if (filtered_count_ > visible_limit_) + if ((page_index_ + 1) * kRowsPerPage < filtered_count_) { - MoveFocusBeforeDestroy(grid_container_, more_button_); - visible_limit_ += kInitialVisibleLibraryLimit; - LoadMore(); + ChangePage(page_index_ + 1); return; } ReloadLibrary(); } +void LibraryTab::PreviousPage() +{ + if (!loading_ && !page_pending_ && page_index_ > 0) + ChangePage(page_index_ - 1); +} + +void LibraryTab::ChangePage(size_t page) +{ + page_pending_ = true; + brls::Application::giveFocus(more_button_); + const auto alive = alive_; + const auto generation = AppState::Instance().session_generation(); + brls::sync([this, alive, generation, page] { + if (!alive->load()) + return; + page_pending_ = false; + if (!AppState::Instance().IsCurrentSession(generation)) + return; + page_index_ = page; + selected_identity_.clear(); + RebuildList(); + if (!rows_.empty()) + brls::Application::giveFocus(rows_.front()); + }); +} + +void LibraryTab::SelectGame(const std::string& identity) +{ + selected_identity_ = identity; + UpdatePreview(); +} + +void LibraryTab::UpdatePreview() +{ + const auto game = std::find_if(games_.begin(), games_.end(), [this](const GameInfo& value) { + return GameIdentity(value) == selected_identity_; + }); + if (!AppState::Instance().IsCurrentSession(library_session_generation_) || + game == games_.end() || selected_identity_.empty()) + { + preview_container_->setVisibility(brls::Visibility::INVISIBLE); + if (!preview_identity_.empty()) + SetCachedCoverImage(preview_image_, {}); + preview_identity_.clear(); + preview_image_url_.clear(); + preview_title_->setText({}); + return; + } + preview_container_->setVisibility(brls::Visibility::VISIBLE); + if (preview_identity_ != selected_identity_ || preview_image_url_ != game->image_url) + { + SetCachedCoverImage(preview_image_, game->image_url); + preview_identity_ = selected_identity_; + preview_image_url_ = game->image_url; + } + preview_title_->setText(game->title); + preview_store_->setText(Tr("Store") + " · " + PrimaryStore(*game)); + preview_membership_->setText(game_detail::IsUnknownMetadata(game->membership_tier_label) ? "" : + Tr("Membership") + " · " + game->membership_tier_label); + preview_last_played_->setText(Tr("Last played") + " · " + + game_detail::FormatLastPlayed(game->last_played)); +} + void LibraryTab::CycleStoreFilter() { - MoveFocusBeforeDestroy(grid_container_, filter_button_); + if (page_pending_) + return; + MoveFocusBeforeDestroy(list_container_, filter_button_); store_filter_index_ = (store_filter_index_ + 1) % kStoreFilters.size(); - visible_limit_ = kInitialVisibleLibraryLimit; - RebuildGrid(); + page_index_ = 0; + RebuildList(); brls::Application::notify("Store filter: " + std::string(kStoreFilters[store_filter_index_])); } void LibraryTab::CycleSortMode() { - MoveFocusBeforeDestroy(grid_container_, sort_button_); + if (page_pending_) + return; + MoveFocusBeforeDestroy(list_container_, sort_button_); sort_mode_index_ = (sort_mode_index_ + 1) % kLibrarySortModes.size(); - RebuildGrid(); + page_index_ = 0; + RebuildList(); brls::Application::notify("Sort: " + std::string(kLibrarySortModes[sort_mode_index_])); } -bool LibraryTab::OpenGameDialog(size_t index) +bool LibraryTab::OpenGameDialog(const std::string& identity) { - if (index >= games_.size()) + if (!AppState::Instance().IsCurrentSession(library_session_generation_)) + return false; + const auto game = std::find_if(games_.begin(), games_.end(), [&identity](const GameInfo& value) { + return GameIdentity(value) == identity; + }); + if (game == games_.end()) return false; brls::Application::pushActivity(new brls::Activity(new GameDetailView( client_, - MakeLibraryGameDetail(games_[index])))); + MakeLibraryGameDetail(*game)))); return true; } diff --git a/app/src/library_tab.hpp b/app/src/library_tab.hpp index 2409fa29..5945c6ca 100644 --- a/app/src/library_tab.hpp +++ b/app/src/library_tab.hpp @@ -2,6 +2,7 @@ #include "gfn_client.hpp" #include "models.hpp" +#include "ui_theme.hpp" #include @@ -13,6 +14,8 @@ namespace opennow { +class CachedImage; + class LibraryTab : public brls::Box { public: @@ -26,36 +29,51 @@ class LibraryTab : public brls::Box void UpdateSessionUi(); void ReloadLibrary(bool background = false); void BeginSearch(); - void RebuildGrid(); - void LoadMore(); + void RebuildList(); void LoadMoreOrRefresh(); + void PreviousPage(); + void ChangePage(size_t page); + void SelectGame(const std::string& identity); + void UpdatePreview(); void CycleStoreFilter(); void CycleSortMode(); - bool OpenGameDialog(size_t index); + bool OpenGameDialog(const std::string& identity); GfnClient client_; std::vector games_; - std::vector> card_rows_; + std::vector rows_; std::vector toolbar_buttons_; + brls::Label* heading_ = nullptr; + brls::Label* selection_label_ = nullptr; brls::Label* status_label_ = nullptr; - brls::Button* search_button_ = nullptr; - brls::Button* filter_button_ = nullptr; - brls::Button* sort_button_ = nullptr; - brls::Button* more_button_ = nullptr; - brls::Button* load_more_button_ = nullptr; + ui::ActionRow* search_button_ = nullptr; + ui::ActionRow* filter_button_ = nullptr; + ui::ActionRow* sort_button_ = nullptr; + ui::ActionRow* more_button_ = nullptr; + ui::ActionRow* previous_button_ = nullptr; + ui::ActionRow* next_button_ = nullptr; brls::ScrollingFrame* scrolling_frame_ = nullptr; - brls::Box* grid_container_ = nullptr; - brls::View* first_card_ = nullptr; + brls::Box* list_container_ = nullptr; + brls::Box* preview_container_ = nullptr; + CachedImage* preview_image_ = nullptr; + brls::Label* preview_title_ = nullptr; + brls::Label* preview_store_ = nullptr; + brls::Label* preview_membership_ = nullptr; + brls::Label* preview_last_played_ = nullptr; + ui::NextStreamSummaryView* stream_summary_ = nullptr; bool loading_ = false; bool rebuilding_ = false; - bool focus_new_cards_after_load_ = false; + bool page_pending_ = false; std::shared_ptr alive_ = std::make_shared(true); std::string search_query_ = ""; - size_t visible_limit_ = 15; - size_t current_grid_size_ = 0; + size_t page_index_ = 0; size_t filtered_count_ = 0; size_t store_filter_index_ = 0; size_t sort_mode_index_ = 0; + std::string selected_identity_; + std::string preview_identity_; + std::string preview_image_url_; + std::uint64_t library_session_generation_ = 0; std::chrono::steady_clock::time_point last_library_sync_ {}; }; diff --git a/app/src/library_timetable_policy.hpp b/app/src/library_timetable_policy.hpp new file mode 100644 index 00000000..1af8f73c --- /dev/null +++ b/app/src/library_timetable_policy.hpp @@ -0,0 +1,95 @@ +#pragma once + +#include +#include +#include +#include +#include + +namespace opennow::library +{ + +enum class DateBucket { Today, ThisWeek, Earlier, Unplayed, Unknown }; + +struct TimestampPresentation +{ + DateBucket bucket = DateBucket::Unknown; + std::string label = "?"; +}; + +inline TimestampPresentation PresentTimestamp( + std::string_view value, std::chrono::system_clock::time_point now) +{ + using namespace std::chrono; + if (value.empty()) + return {DateBucket::Unplayed, "--"}; + if (value.size() < 20 || value[4] != '-' || value[7] != '-' || + value[10] != 'T' || value[13] != ':' || value[16] != ':' || value.back() != 'Z') + return {}; + auto number = [value](size_t offset, size_t count) -> std::optional { + unsigned result = 0; + for (size_t i = offset; i < offset + count; ++i) + { + if (value[i] < '0' || value[i] > '9') + return std::nullopt; + result = result * 10 + static_cast(value[i] - '0'); + } + return result; + }; + const auto y = number(0, 4); + const auto m = number(5, 2); + const auto d = number(8, 2); + const auto h = number(11, 2); + const auto min = number(14, 2); + const auto sec = number(17, 2); + if (!y || *y == 0 || !m || !d || !h || !min || !sec || *h > 23 || *min > 59 || *sec > 59) + return {}; + const year_month_day date{year{static_cast(*y)}, month{*m}, day{*d}}; + if (!date.ok()) + return {}; + unsigned fraction = 0; + if (value.size() != 20) + { + if (value.size() < 22 || value.size() > 30 || value[19] != '.') + return {}; + const size_t digits = value.size() - 21; + const auto parsed = number(20, digits); + if (!parsed) + return {}; + fraction = *parsed; + for (size_t i = digits; i < 9; ++i) + fraction *= 10; + } + const sys_days played_day{date}; + const auto played = played_day + hours{*h} + minutes{*min} + seconds{*sec}; + const auto now_seconds = floor(now); + if (played > now_seconds || (played == now_seconds && + nanoseconds{fraction} > now - now_seconds)) + return {}; + const auto today = floor(now); + if (played_day == today) + return {DateBucket::Today, std::string(value.substr(11, 5))}; + const auto week_start = today - days{weekday{today}.iso_encoding() - 1}; + if (played_day >= week_start) + { + constexpr std::array days_of_week { + "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}; + return {DateBucket::ThisWeek, days_of_week[weekday{played_day}.iso_encoding() - 1]}; + } + return {DateBucket::Earlier, std::string(value.substr(0, 10))}; +} + +inline const char* BucketLabel(DateBucket bucket) +{ + switch (bucket) + { + case DateBucket::Today: return "Today (UTC)"; + case DateBucket::ThisWeek: return "This week (UTC)"; + case DateBucket::Earlier: return "Earlier (UTC)"; + case DateBucket::Unplayed: return "Unplayed"; + case DateBucket::Unknown: return "Unknown play time"; + } + return "Unknown play time"; +} + +} diff --git a/app/src/localization.cpp b/app/src/localization.cpp index 61781392..699941c3 100644 --- a/app/src/localization.cpp +++ b/app/src/localization.cpp @@ -17,6 +17,8 @@ const Dictionary& DictionaryFor(const std::string& code) static const Dictionary empty; static const std::unordered_map dictionaries = { {"ru", { + {"Selected server", "Выбранный сервер"}, {"Next value", "Следующее значение"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "Включите диагностические журналы для поиска проблем. Применяется после сохранения."}, {"Store", "Магазин"}, {"Library", "Библиотека"}, {"Settings", "Настройки"}, {"My Library", "Моя библиотека"}, {"Search", "Поиск"}, {"Close", "Закрыть"}, {"Cancel", "Отмена"}, {"Account", "Аккаунт"}, {"Stream", "Поток"}, @@ -82,6 +84,8 @@ const Dictionary& DictionaryFor(const std::string& code) {"SAVED NVIDIA ACCOUNT", "СОХРАНЕННЫЙ АККАУНТ NVIDIA"} }}, {"uk", { + {"Selected server", "Вибраний сервер"}, {"Next value", "Наступне значення"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "Увімкніть діагностичні журнали для пошуку проблем. Застосовується після збереження."}, {"Store", "Магазин"}, {"Library", "Бібліотека"}, {"Settings", "Налаштування"}, {"My Library", "Моя бібліотека"}, {"Search", "Пошук"}, {"Close", "Закрити"}, {"Cancel", "Скасувати"}, {"Account", "Обліковий запис"}, {"Stream", "Трансляція"}, @@ -112,6 +116,8 @@ const Dictionary& DictionaryFor(const std::string& code) {"Enter email and password", "Ввести пошту та пароль"}, {"Login failed", "Помилка входу"} }}, {"es", { + {"Selected server", "Servidor seleccionado"}, {"Next value", "Siguiente valor"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "Activa el registro de diagnóstico para resolver problemas. Se aplica al guardar."}, {"Store", "Tienda"}, {"Library", "Biblioteca"}, {"Settings", "Ajustes"}, {"My Library", "Mi biblioteca"}, {"Search", "Buscar"}, {"Close", "Cerrar"}, {"Cancel", "Cancelar"}, {"Account", "Cuenta"}, {"Stream", "Transmisión"}, {"Game", "Juego"}, {"Controls", "Controles"}, {"Audio", "Audio"}, @@ -136,6 +142,8 @@ const Dictionary& DictionaryFor(const std::string& code) {"Enter email and password", "Introducir correo y contraseña"}, {"Login failed", "Error de inicio de sesión"} }}, {"it", { + {"Selected server", "Server selezionato"}, {"Next value", "Valore successivo"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "Attiva i log diagnostici per risolvere i problemi. Si applica dopo il salvataggio."}, {"Store", "Negozio"}, {"Library", "Libreria"}, {"Settings", "Impostazioni"}, {"My Library", "La mia libreria"}, {"Search", "Cerca"}, {"Close", "Chiudi"}, {"Cancel", "Annulla"}, {"Account", "Account"}, {"Stream", "Streaming"}, {"Game", "Gioco"}, {"Controls", "Comandi"}, {"Audio", "Audio"}, @@ -156,6 +164,8 @@ const Dictionary& DictionaryFor(const std::string& code) {"Welcome back", "Bentornato"}, {"Login failed", "Accesso non riuscito"} }}, {"fr", { + {"Selected server", "Serveur sélectionné"}, {"Next value", "Valeur suivante"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "Activez les journaux de diagnostic pour résoudre les problèmes. Le changement s’applique après l’enregistrement."}, {"Store", "Boutique"}, {"Library", "Bibliothèque"}, {"Settings", "Paramètres"}, {"My Library", "Ma bibliothèque"}, {"Search", "Rechercher"}, {"Close", "Fermer"}, {"Cancel", "Annuler"}, {"Account", "Compte"}, {"Stream", "Streaming"}, {"Game", "Jeu"}, {"Controls", "Commandes"}, {"Audio", "Audio"}, @@ -176,6 +186,8 @@ const Dictionary& DictionaryFor(const std::string& code) {"Welcome back", "Bon retour"}, {"Login failed", "Échec de la connexion"} }}, {"pl", { + {"Selected server", "Wybrany serwer"}, {"Next value", "Następna wartość"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "Włącz dzienniki diagnostyczne, aby rozwiązywać problemy. Zmiana działa po zapisaniu."}, {"Store", "Sklep"}, {"Library", "Biblioteka"}, {"Settings", "Ustawienia"}, {"My Library", "Moja biblioteka"}, {"Search", "Szukaj"}, {"Close", "Zamknij"}, {"Cancel", "Anuluj"}, {"Account", "Konto"}, {"Stream", "Strumień"}, {"Game", "Gra"}, {"Controls", "Sterowanie"}, {"Audio", "Dźwięk"}, @@ -196,6 +208,8 @@ const Dictionary& DictionaryFor(const std::string& code) {"Welcome back", "Witaj ponownie"}, {"Login failed", "Logowanie nie powiodło się"} }}, {"zh-CN", { + {"Selected server", "所选服务器"}, {"Next value", "下一个值"}, + {"Enable diagnostic logging for troubleshooting. Applies after saving.", "启用诊断日志以排查问题。保存后生效。"}, {"Store", "商店"}, {"Library", "游戏库"}, {"Settings", "设置"}, {"My Library", "我的游戏库"}, {"Search", "搜索"}, {"Close", "关闭"}, {"Cancel", "取消"}, {"Account", "账户"}, {"Stream", "串流"}, {"Game", "游戏"}, {"Controls", "控制"}, {"Audio", "音频"}, diff --git a/app/src/main.cpp b/app/src/main.cpp index f08b19bd..c6fc4208 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -20,6 +20,7 @@ #include "localization.hpp" #include "stream_diagnostics.hpp" #include "stream_settings.hpp" +#include "ui_theme.hpp" #ifdef __SWITCH__ namespace @@ -121,6 +122,7 @@ int main(int argc, char* argv[]) const opennow::StreamSettings startup_settings = opennow::LoadStreamSettings(); opennow::SetInterfaceLanguage(startup_settings.interface_language); brls::Application::createWindow("OpenNOW"); + opennow::ui::InitializeThemeAndFonts(); AppendBootLog("boot: window created"); // Plus is an in-game Xbox Start/Guide input. Borealis otherwise binds diff --git a/app/src/settings_tab.cpp b/app/src/settings_tab.cpp index b10f4d46..634ad36e 100644 --- a/app/src/settings_tab.cpp +++ b/app/src/settings_tab.cpp @@ -3,11 +3,13 @@ #include "app_state.hpp" #include "localization.hpp" #include "stream_settings.hpp" +#include "stream_settings_policy.hpp" #include "stream_diagnostics.hpp" #include "ui_action_guard.hpp" #include "ui_helpers.hpp" #include +#include #include #include #include @@ -18,9 +20,8 @@ namespace opennow brls::Label* SettingsTab::MakeParagraph( const std::string& text, float bottom_margin) { - auto* label = new brls::Label(); - label->setText(Tr(text)); - label->setFontSize(18); + auto* label = ui::MakeLabel(Tr(text)); + label->setSingleLine(false); label->setMarginBottom(bottom_margin); return label; } @@ -40,28 +41,27 @@ std::string SettingsTab::FormatBytes(std::uint64_t bytes) return formatted.str(); } +std::string SettingsTab::BitrateValue(int kbps) +{ + std::ostringstream value; + value << std::fixed << std::setprecision(3) << static_cast(kbps) / 1000.0; + std::string text = value.str(); + while (!text.empty() && text.back() == '0') + text.pop_back(); + if (!text.empty() && text.back() == '.') + text.pop_back(); + return text + " Mbps"; +} + namespace { -bool SameSettings(const StreamSettings& left, const StreamSettings& right) +std::string OptionId(const std::string& title) { - return left.preset_id == right.preset_id && left.label == right.label && - left.width == right.width && left.height == right.height && - left.fps == right.fps && left.bitrate_kbps == right.bitrate_kbps && - left.codec == right.codec && left.region == right.region && - left.audio_enabled == right.audio_enabled && - left.audio_volume == right.audio_volume && - left.audio_buffer_ms == right.audio_buffer_ms && - left.video_backend == right.video_backend && - left.debug_diagnostics == right.debug_diagnostics && - left.stats_overlay_enabled == right.stats_overlay_enabled && - left.game_language == right.game_language && - left.persist_game_settings == right.persist_game_settings && - left.controller_layout == right.controller_layout && - left.image_quality_mode == right.image_quality_mode && - left.interface_language == right.interface_language && - left.community_proxy_enabled == right.community_proxy_enabled && - left.community_proxy_url == right.community_proxy_url; + std::string id = "settings/option/"; + for (unsigned char character : title) + id += std::isalnum(character) ? static_cast(std::tolower(character)) : '-'; + return id; } } // namespace @@ -69,20 +69,22 @@ bool SameSettings(const StreamSettings& left, const StreamSettings& right) SettingsTab::SettingsTab() : brls::Box(brls::Axis::COLUMN) { - setPadding(16, 28, 18, 28); - setBackgroundColor(nvgRGB(12, 13, 16)); + setId("settings"); + setPadding(24, 48, 20, 48); + setBackgroundColor(ui::Ground()); auto* body = new brls::Box(brls::Axis::ROW); body->setGrow(1.0f); + body->setMinHeight(0); auto* sidebar = new brls::Box(brls::Axis::COLUMN); sidebar->setWidth(220); - sidebar->setPadding(14, 12, 16, 12); - sidebar->setBackgroundColor(nvgRGB(16, 18, 22)); + sidebar->setShrink(0); + sidebar->setMarginRight(32); - auto* nav_label = MakeParagraph("General", 10.0f); + auto* nav_label = MakeParagraph("Settings", 20.0f); nav_label->setFontSize(13); - nav_label->setTextColor(nvgRGB(108, 115, 126)); + nav_label->setTextColor(ui::Muted()); sidebar->addView(nav_label); const std::array, 4> categories {{ @@ -93,85 +95,131 @@ SettingsTab::SettingsTab() }}; for (const auto& [label, category] : categories) { - auto* row = new brls::Box(brls::Axis::ROW); - row->setHeight(44); - row->setAlignItems(brls::AlignItems::CENTER); - row->setPadding(0, 12, 0, 0); - row->setMarginBottom(3); - row->setCornerRadius(6); - row->setHighlightCornerRadius(6); - row->setHighlightPadding(0); - row->setFocusable(true); - - auto* marker = new brls::Rectangle(); - marker->setWidth(3); - marker->setHeight(20); - marker->setMarginRight(12); - marker->setColor(nvgRGBA(0, 0, 0, 0)); - row->addView(marker); - - auto* text = MakeParagraph(label, 0.0f); - text->setFontSize(16); - text->setTextColor(nvgRGB(184, 190, 200)); - row->addView(text); - - row->registerClickAction([this, category](brls::View*) { + auto* row = new ui::ActionRow(Tr(label), {}, [this, category](brls::View*) { SelectCategory(category); return true; + }, ui::ActionTone::Flat); + std::string category_id = label; + for (char& character : category_id) + character = static_cast(std::tolower(static_cast(character))); + row->setId("settings/category/" + category_id); + row->setHeight(48); + row->setMarginBottom(6); + row->SetFocusHandler([this] { + ShowOptionHelp({}, page_subtitle_->getFullText()); }); - category_nav_items_.push_back({row, marker, text}); + category_nav_items_.push_back({row, row}); sidebar->addView(row); } + save_status_ = ui::MakeLabel({}, 15, ui::Green(), ui::FontRole::Medium); + save_status_->setId("settings/save-status"); + save_status_->setSingleLine(false); + save_status_->setMarginTop(32); + save_status_->setMarginBottom(8); + sidebar->addView(save_status_); auto* nav_hint = MakeParagraph( "Stream changes apply when the next game starts.", 0.0f); nav_hint->setFontSize(14); - nav_hint->setTextColor(nvgRGB(124, 132, 144)); + nav_hint->setTextColor(ui::Muted()); nav_hint->setSingleLine(false); sidebar->addView(nav_hint); body->addView(sidebar); - auto* sidebar_divider = new brls::Rectangle(); - sidebar_divider->setWidth(1); - sidebar_divider->setMarginRight(24); - sidebar_divider->setColor(nvgRGBA(255, 255, 255, 16)); - body->addView(sidebar_divider); - auto* content_shell = new brls::Box(brls::Axis::COLUMN); - content_shell->setGrow(1.0f); - content_shell->setPadding(0, 0, 0, 0); + content_shell->setWidth(560); + content_shell->setShrink(0); + content_shell->setMinHeight(0); + content_shell->setMarginRight(40); auto* page_heading = new brls::Box(brls::Axis::ROW); page_heading->setAlignItems(brls::AlignItems::CENTER); page_heading->setMarginBottom(2); - page_title_ = MakeParagraph("Account", 0.0f); - page_title_->setFontSize(27); + page_title_ = ui::MakeLabel(Tr("Account"), 28, ui::Text(), ui::FontRole::Heading); + page_title_->setSingleLine(true); page_title_->setGrow(1.0f); page_heading->addView(page_title_); - save_status_ = MakeParagraph("All changes saved", 0.0f); - save_status_->setFontSize(14); - save_status_->setTextColor(nvgRGB(88, 230, 146)); - page_heading->addView(save_status_); content_shell->addView(page_heading); page_subtitle_ = MakeParagraph("Manage your GeForce NOW identity and saved sign-in.", 14.0f); page_subtitle_->setFontSize(15); - page_subtitle_->setTextColor(nvgRGB(142, 149, 160)); + page_subtitle_->setTextColor(ui::Muted()); + page_subtitle_->setSingleLine(true); content_shell->addView(page_subtitle_); scrolling_frame_ = new brls::ScrollingFrame(); scrolling_frame_->setGrow(1.0f); + scrolling_frame_->setMinHeight(0); + scrolling_frame_->setId("settings/options"); scrolling_frame_->setScrollingBehavior(brls::ScrollingBehavior::CENTERED); content_container_ = new brls::Box(brls::Axis::COLUMN); - content_container_->setPadding(0, 0, 28, 0); + content_container_->setPadding(4, 0, 12, 0); scrolling_frame_->setContentView(content_container_); content_shell->addView(scrolling_frame_); body->addView(content_shell); + + auto* help_scroll = new brls::ScrollingFrame(); + help_scrolling_frame_ = help_scroll; + help_scroll->setWidth(332); + help_scroll->setShrink(0); + help_scroll->setMinHeight(0); + auto* help = new brls::Box(brls::Axis::COLUMN); + help->setId("settings/help"); + help->setPadding(4, 0, 12, 0); + help_title_ = ui::MakeLabel({}, 15, ui::Muted(), ui::FontRole::Medium); + help_title_->setId("settings/help/title"); + help_title_->setSingleLine(false); + help_title_->setMarginBottom(14); + help->addView(help_title_); + help_value_ = ui::MakeLabel({}, 28, ui::Text(), ui::FontRole::Heading); + help_value_->setId("settings/help/value"); + help_value_->setSingleLine(false); + help_value_->setMarginBottom(16); + help->addView(help_value_); + + bitrate_meter_ = new brls::Box(brls::Axis::ROW); + bitrate_meter_->setHeight(42); + bitrate_meter_->setMarginBottom(16); + for (int step : {8, 12, 16, 20, 25}) + { + auto* column = new brls::Box(brls::Axis::COLUMN); + column->setGrow(1); + column->setMarginRight(step == 25 ? 0 : 6); + auto* bar = new brls::Rectangle(); + bar->setHeight(8); + bar->setCornerRadius(3); + bar->setMarginBottom(7); + column->addView(bar); + auto* label = ui::MakeLabel(std::to_string(step), 13, ui::Muted(), ui::FontRole::Mono); + column->addView(label); + bitrate_meter_->addView(column); + bitrate_steps_.push_back({bar, label}); + } + help->addView(bitrate_meter_); + help_description_ = ui::MakeLabel({}, 17, ui::Text()); + help_description_->setId("settings/help/description"); + help_description_->setSingleLine(false); + help_description_->setMarginBottom(18); + help->addView(help_description_); + help_next_ = ui::MakeLabel({}, 14, ui::Green(), ui::FontRole::Medium); + help_next_->setSingleLine(false); + help_next_->setMarginBottom(24); + help->addView(help_next_); + draft_summary_status_ = ui::MakeLabel({}, 14, ui::Muted(), ui::FontRole::Medium); + draft_summary_status_->setId("settings/draft-status"); + draft_summary_status_->setSingleLine(false); + draft_summary_status_->setMarginBottom(8); + help->addView(draft_summary_status_); + next_stream_summary_ = new ui::NextStreamSummaryView(draft_settings_); + next_stream_summary_->setId("settings/summary"); + help->addView(next_stream_summary_); + help_scroll->setContentView(help); + body->addView(help_scroll); addView(body); - registerAction("Save", brls::BUTTON_X, [this](brls::View* view) { + registerAction(Tr("Save"), brls::BUTTON_X, [this](brls::View* view) { return SaveChanges(view); }, false, true); - registerAction("Revert", brls::BUTTON_Y, [this](brls::View* view) { + registerAction(Tr("Revert"), brls::BUTTON_Y, [this](brls::View* view) { return RevertChanges(view); }, false, true); @@ -186,24 +234,13 @@ SettingsTab::~SettingsTab() brls::Box* SettingsTab::MakeSection(const std::string& title, const std::string& subtitle) { auto* section = new brls::Box(brls::Axis::COLUMN); - section->setPadding(16, 18, 16, 18); - section->setMarginBottom(14); - section->setCornerRadius(6); - section->setBorderThickness(1); - section->setBorderColor(nvgRGB(42, 46, 54)); - section->setBackgroundColor(nvgRGB(18, 20, 24)); - - auto* label = MakeParagraph(title, subtitle.empty() ? 14.0f : 4.0f); - label->setFontSize(19); - label->setTextColor(nvgRGB(242, 244, 247)); + section->setMarginBottom(18); + + auto* label = ui::MakeLabel(Tr(title), 14, ui::Muted(), ui::FontRole::Medium); + label->setSingleLine(true); + label->setMarginBottom(8); section->addView(label); - if (!subtitle.empty()) - { - auto* detail = MakeParagraph(subtitle, 14.0f); - detail->setFontSize(14); - detail->setTextColor(nvgRGB(133, 141, 152)); - section->addView(detail); - } + (void)subtitle; return section; } @@ -213,36 +250,19 @@ brls::Box* SettingsTab::MakeOptionRow( std::function value, std::function action) { - auto* row = new brls::Box(brls::Axis::ROW); - row->setHeight(64); - row->setAlignItems(brls::AlignItems::CENTER); - row->setPadding(7, 8, 7, 8); - row->setMarginBottom(4); - - auto* copy = new brls::Box(brls::Axis::COLUMN); - copy->setGrow(1.0f); - copy->setMarginRight(18); - auto* name = MakeParagraph(title, 2.0f); - name->setFontSize(18); - copy->addView(name); - auto* detail = MakeParagraph(description, 0.0f); - detail->setFontSize(13); - detail->setTextColor(nvgRGB(132, 140, 151)); - copy->addView(detail); - row->addView(copy); - - auto* button = new brls::Button(); - button->setWidth(224); - button->setHeight(42); - button->setCornerRadius(6); - button->setText(Tr(value())); - button->registerClickAction([this, action = std::move(action)](brls::View* view) { + auto* row = new ui::ActionRow(Tr(title), Tr(value()), + [this, action = std::move(action)](brls::View* view) { const bool handled = action ? action(view) : true; UpdateOptionValues(); return handled; + }, ui::ActionTone::Flat); + row->setId(OptionId(title)); + row->updateActionHint(brls::BUTTON_A, Tr("Change")); + row->setMarginBottom(6); + row->SetFocusHandler([this, title, description, value] { + ShowOptionHelp(title, description, value); }); - option_values_.push_back({button, std::move(value)}); - row->addView(button); + option_values_.push_back({row, std::move(value)}); return row; } @@ -253,32 +273,13 @@ brls::Box* SettingsTab::MakeActionRow( std::function action, bool destructive) { - auto* row = new brls::Box(brls::Axis::ROW); - row->setHeight(64); - row->setAlignItems(brls::AlignItems::CENTER); - row->setPadding(7, 8, 7, 8); - row->setMarginBottom(4); - - auto* copy = new brls::Box(brls::Axis::COLUMN); - copy->setGrow(1.0f); - copy->setMarginRight(18); - auto* name = MakeParagraph(title, 2.0f); - name->setFontSize(18); - name->setTextColor(destructive ? nvgRGB(255, 170, 174) : nvgRGB(238, 241, 245)); - copy->addView(name); - auto* detail = MakeParagraph(description, 0.0f); - detail->setFontSize(13); - detail->setTextColor(nvgRGB(132, 140, 151)); - copy->addView(detail); - row->addView(copy); - - auto* button = new brls::Button(); - button->setWidth(224); - button->setHeight(42); - button->setCornerRadius(6); - button->setText(Tr(button_text)); - button->registerClickAction(std::move(action)); - row->addView(button); + auto* row = new ui::ActionRow(Tr(title), Tr(button_text), std::move(action), + destructive ? ui::ActionTone::Destructive : ui::ActionTone::Flat); + row->setId(OptionId(title)); + row->setMarginBottom(6); + row->SetFocusHandler([this, title, description, button_text] { + ShowOptionHelp(title, description, [button_text] { return button_text; }); + }); return row; } @@ -286,21 +287,25 @@ brls::Label* SettingsTab::AddInfoLine( brls::Box* parent, const std::string& label, const std::string& value) { auto* row = new brls::Box(brls::Axis::ROW); - row->setHeight(40); + row->setMinHeight(40); row->setPadding(5, 8, 5, 8); + row->setAlignItems(brls::AlignItems::CENTER); row->setMarginBottom(2); row->setCornerRadius(7); - row->setHighlightCornerRadius(7); - row->setHighlightPadding(0); - row->setFocusable(true); auto* key = MakeParagraph(label, 0.0f); - key->setGrow(1.0f); + key->setWidthPercentage(40); + key->setMarginRight(12); + key->setShrink(0); + key->setSingleLine(true); key->setFontSize(15); - key->setTextColor(nvgRGB(139, 147, 158)); + key->setTextColor(ui::Muted()); row->addView(key); auto* text = MakeParagraph(value, 0.0f); + text->setGrow(1); + text->setShrink(1); + text->setSingleLine(true); text->setFontSize(15); - text->setTextColor(nvgRGB(210, 216, 225)); + text->setTextColor(ui::Text()); row->addView(text); parent->addView(row); return text; @@ -317,7 +322,7 @@ void SettingsTab::SelectCategory(Category category) break; case Category::Stream: page_title_->setText(Tr("Stream")); - page_subtitle_->setText(Tr("Choose a simple quality profile for your connection.")); + page_subtitle_->setText(Tr("Stream changes apply when the next game starts.")); break; case Category::Preferences: page_title_->setText(Tr("Preferences")); @@ -340,12 +345,8 @@ void SettingsTab::UpdateCategoryChrome() { const auto& item = category_nav_items_[index]; const bool active = index == selected; - item.row->setBackgroundColor( - active ? nvgRGBA(77, 218, 130, 24) : nvgRGBA(0, 0, 0, 0)); - item.marker->setColor( - active ? nvgRGB(77, 218, 130) : nvgRGBA(0, 0, 0, 0)); - item.label->setTextColor( - active ? nvgRGB(245, 247, 249) : nvgRGB(184, 190, 200)); + item.action->SetTone(active ? ui::ActionTone::Neutral : ui::ActionTone::Flat); + item.action->SetValue(active ? "›" : ""); } } @@ -360,6 +361,7 @@ void SettingsTab::RebuildCategory() ? category_nav_items_[selected].row : static_cast(this); MoveFocusBeforeDestroy(content_container_, stable_focus); + ShowOptionHelp({}, page_subtitle_->getFullText()); option_values_.clear(); cover_cache_files_ = nullptr; @@ -387,22 +389,72 @@ void SettingsTab::RebuildCategory() void SettingsTab::UpdateOptionValues() { - for (auto& [button, value] : option_values_) + for (auto& [row, value] : option_values_) + { + if (row && value) + row->SetValue(Tr(value())); + } + UpdateOptionHelp(); +} + +void SettingsTab::ShowOptionHelp( + const std::string& title, const std::string& description, + std::function value) +{ + if (help_scrolling_frame_ && help_option_ != title) + help_scrolling_frame_->setContentOffsetY(0, false); + help_option_ = title; + help_description_text_ = description; + help_value_provider_ = std::move(value); + UpdateOptionHelp(); +} + +void SettingsTab::UpdateOptionHelp() +{ + if (!help_title_) + return; + + const bool bitrate = help_option_ == "Bitrate"; + help_title_->setText(help_option_.empty() ? page_title_->getFullText() : Tr(help_option_)); + help_value_->setText(help_value_provider_ ? Tr(help_value_provider_()) : ""); + help_value_->setFontSize(bitrate ? 40 : 24); + help_value_->setVisibility(help_value_provider_ ? brls::Visibility::VISIBLE : brls::Visibility::GONE); + help_description_->setText(Tr(help_description_text_)); + bitrate_meter_->setVisibility(bitrate ? brls::Visibility::VISIBLE : brls::Visibility::GONE); + help_next_->setVisibility(bitrate ? brls::Visibility::VISIBLE : brls::Visibility::GONE); + if (bitrate) { - if (button && value) - button->setText(Tr(value())); + constexpr std::array steps {8000, 12000, 16000, 20000, 25000}; + bool matched = false; + for (size_t index = 0; index < steps.size(); ++index) + { + const bool selected = steps[index] == draft_settings_.bitrate_kbps; + matched = matched || selected; + bitrate_steps_[index].first->setColor(selected ? ui::Green() : ui::Rule()); + bitrate_steps_[index].second->setTextColor(selected ? ui::Green() : ui::Muted()); + } + if (!matched) + help_title_->setText(Tr("Bitrate") + " · " + Tr("Custom")); + auto next = draft_settings_; + settings::CycleBitrate(next); + help_next_->setText(Tr("Next value") + ": " + BitrateValue(next.bitrate_kbps)); } } void SettingsTab::MarkDirty() { - dirty_ = !SameSettings(draft_settings_, saved_settings_); + dirty_ = draft_settings_ != saved_settings_; RefreshSummary(); } bool SettingsTab::SaveChanges(brls::View* view) { (void)view; + if (community_proxy_provisioning_) + { + brls::Application::notify(Tr("Connecting...")); + return true; + } if (!settings_loaded_ || !dirty_) { brls::Application::notify("Settings are already up to date"); @@ -427,7 +479,7 @@ bool SettingsTab::SaveChanges(brls::View* view) const std::array category_names { "Account", "Stream", "Preferences", "App"}; for (size_t index = 0; index < category_nav_items_.size() && index < category_names.size(); ++index) - category_nav_items_[index].label->setText(Tr(category_names[index])); + category_nav_items_[index].action->SetTitle(Tr(category_names[index])); if (interface_language_changed) SelectCategory(category_); brls::Application::notify(Tr("Settings saved; changes apply to the next stream")); @@ -481,14 +533,18 @@ void SettingsTab::RefreshSummary() if (dirty_) { - save_status_->setText(Tr("Unsaved changes | X Save")); - save_status_->setTextColor(nvgRGB(255, 190, 92)); + save_status_->setText(Tr("Unsaved changes")); + save_status_->setTextColor(ui::Green()); } else { save_status_->setText(Tr("All changes saved")); - save_status_->setTextColor(nvgRGB(88, 230, 146)); + save_status_->setTextColor(ui::Muted()); } + draft_summary_status_->setText(Tr(dirty_ ? "Unsaved changes" : "All changes saved")); + draft_summary_status_->setTextColor(dirty_ ? ui::Green() : ui::Muted()); + next_stream_summary_->Update(draft_settings_); + UpdateOptionHelp(); } } // namespace opennow diff --git a/app/src/settings_tab.hpp b/app/src/settings_tab.hpp index 63771fb5..6dac88a3 100644 --- a/app/src/settings_tab.hpp +++ b/app/src/settings_tab.hpp @@ -15,6 +15,7 @@ #include #include "stream_settings.hpp" +#include "ui_theme.hpp" namespace opennow { @@ -46,6 +47,9 @@ class SettingsTab : public brls::Box void BuildAppPage(); void UpdateCategoryChrome(); void UpdateOptionValues(); + void ShowOptionHelp(const std::string& title, const std::string& description, + std::function value = {}); + void UpdateOptionHelp(); void MarkDirty(); bool SaveChanges(brls::View* view); bool RevertChanges(brls::View* view); @@ -67,6 +71,7 @@ class SettingsTab : public brls::Box static brls::Label* MakeParagraph( const std::string& text, float bottom_margin = 16.0f); static std::string FormatBytes(std::uint64_t bytes); + static std::string BitrateValue(int kbps); brls::Box* MakeSection(const std::string& title, const std::string& subtitle = {}); brls::Box* MakeOptionRow( const std::string& title, @@ -100,17 +105,28 @@ class SettingsTab : public brls::Box brls::Label* page_title_ = nullptr; brls::Label* page_subtitle_ = nullptr; brls::Label* save_status_ = nullptr; + brls::Label* help_title_ = nullptr; + brls::Label* help_value_ = nullptr; + brls::Label* help_description_ = nullptr; + brls::Label* help_next_ = nullptr; + brls::Label* draft_summary_status_ = nullptr; + brls::Box* bitrate_meter_ = nullptr; + std::vector> bitrate_steps_; + ui::NextStreamSummaryView* next_stream_summary_ = nullptr; + std::string help_option_; + std::string help_description_text_; + std::function help_value_provider_; brls::ScrollingFrame* scrolling_frame_ = nullptr; + brls::ScrollingFrame* help_scrolling_frame_ = nullptr; brls::Box* content_container_ = nullptr; struct CategoryNavItem { brls::Box* row = nullptr; - brls::Rectangle* marker = nullptr; - brls::Label* label = nullptr; + ui::ActionRow* action = nullptr; }; std::vector category_nav_items_; - std::vector>> option_values_; + std::vector>> option_values_; Category category_ = Category::Account; StreamSettings saved_settings_; StreamSettings draft_settings_; diff --git a/app/src/settings_tab_pages.cpp b/app/src/settings_tab_pages.cpp index 9e607e5d..1d402f5b 100644 --- a/app/src/settings_tab_pages.cpp +++ b/app/src/settings_tab_pages.cpp @@ -74,7 +74,7 @@ void SettingsTab::BuildStreamPage() "Use automatic routing or choose a specific GeForce NOW data center."); location->addView(MakeOptionRow( "Location", - "Locations are ranked by direct latency from this console.", + "Use automatic routing or choose a specific GeForce NOW data center.", [this] { return ServerLocationValue(); }, [this](brls::View* view) { return ChooseServerLocation(view); })); location->addView(MakeActionRow( @@ -101,10 +101,10 @@ void SettingsTab::BuildStreamPage() video->addView(MakeOptionRow( "Bitrate", "Higher values improve motion detail but need stronger Wi-Fi.", [this] { - return std::to_string(draft_settings_.bitrate_kbps / 1000) + " Mbps"; + return BitrateValue(draft_settings_.bitrate_kbps); }, [this](brls::View* view) { return CycleBitrate(view); })); - AddInfoLine(video, "Encoder", "H.264"); + AddInfoLine(video, "Encoder", draft_settings_.codec); video->addView(MakeOptionRow( "Decoder", "Choose automatic fallback, hardware-only or software-only decode.", [this] { @@ -138,8 +138,6 @@ void SettingsTab::BuildStreamPage() [this](brls::View* view) { return ToggleCommunityProxy(view); })); content_container_->addView(connection); - if (!server_locations_loaded_ && !server_locations_loading_) - BeginServerLocationLoad(false, false); } void SettingsTab::BuildPreferencesPage() @@ -205,6 +203,18 @@ void SettingsTab::BuildAppPage() "When minimized, pop a reminder when queue drops to this position. Choose 5, 10, 20 or 50.", [this] { return std::to_string(draft_settings_.queue_notify_threshold); }, [this](brls::View* view) { return CycleQueueNotifyThreshold(view); })); + interface->addView(MakeOptionRow( + "Debug diagnostics", + "Enable diagnostic logging for troubleshooting. Applies after saving.", + [this] { + return draft_settings_.debug_diagnostics + ? std::string("Enabled") : std::string("Disabled"); + }, + [this](brls::View*) { + draft_settings_.debug_diagnostics = !draft_settings_.debug_diagnostics; + MarkDirty(); + return true; + })); content_container_->addView(interface); auto* shortcuts = MakeSection( diff --git a/app/src/stream/deko3d/DKVideoRenderer.cpp b/app/src/stream/deko3d/DKVideoRenderer.cpp index 829e9d22..44ee5e1b 100644 --- a/app/src/stream/deko3d/DKVideoRenderer.cpp +++ b/app/src/stream/deko3d/DKVideoRenderer.cpp @@ -2,7 +2,6 @@ #include "DKVideoRenderer.hpp" #include "SoftwareYuvUpload.hpp" -#include "../../stream_settings.hpp" #include "../../video_quality_policy.hpp" #include @@ -17,6 +16,7 @@ extern "C" { #include #include #include +#include namespace { @@ -121,6 +121,11 @@ void set_color_transform(Transformation& transform, AVColorSpace color_space, bo } // namespace +DKVideoRenderer::DKVideoRenderer(std::string image_quality_mode) + : image_quality_mode_(std::move(image_quality_mode)) +{ +} + DKVideoRenderer::~DKVideoRenderer() { if (auto* active = configurations_.active()) @@ -176,7 +181,8 @@ bool DKVideoRenderer::isFrameFullRange(const AVFrame* frame) } bool DKVideoRenderer::Configuration::initialize( - int width, int height, AVFrame* frame, uint64_t generation) + int width, int height, AVFrame* frame, uint64_t generation, + const std::string& image_quality_mode) { hardware_frames_ = frame->format == AV_PIX_FMT_NVTEGRA; @@ -237,9 +243,8 @@ bool DKVideoRenderer::Configuration::initialize( transform.uv[3] = multiplier; } - const auto quality_settings = opennow::LoadStreamSettings(); const auto tuning = opennow::video::ResolveQualityTuning( - quality_settings.image_quality_mode); + image_quality_mode); transform.quality[0] = 1.0f / static_cast(frame_width_); transform.quality[1] = 1.0f / static_cast(frame_height_); transform.quality[2] = tuning.denoise_strength; @@ -330,7 +335,7 @@ bool DKVideoRenderer::Configuration::initialize( brls::Logger::info( "Deko3D {} renderer initialized {}x{} quality={}", hardware_frames_ ? "NVTEGRA zero-copy" : "software NV12 upload", - frame_width_, frame_height_, quality_settings.image_quality_mode); + frame_width_, frame_height_, image_quality_mode); return true; } @@ -485,7 +490,7 @@ void DKVideoRenderer::drawLatest(NVGcontext* vg, int width, int height, AVFrame* (!active || !active->matches(width, height, frame))) { configurations_.replace(started, [&]() -> std::unique_ptr { auto candidate = std::make_unique(); - if (!candidate->initialize(width, height, frame, generation)) + if (!candidate->initialize(width, height, frame, generation, image_quality_mode_)) return nullptr; return candidate; }); diff --git a/app/src/stream/deko3d/DKVideoRenderer.hpp b/app/src/stream/deko3d/DKVideoRenderer.hpp index bd9c792f..0bcc89d9 100644 --- a/app/src/stream/deko3d/DKVideoRenderer.hpp +++ b/app/src/stream/deko3d/DKVideoRenderer.hpp @@ -15,10 +15,11 @@ #include #include #include +#include class DKVideoRenderer : public IVideoRenderer { public: - DKVideoRenderer() = default; + explicit DKVideoRenderer(std::string image_quality_mode); ~DKVideoRenderer() override; void draw(NVGcontext* vg, int width, int height, AVFrame* frame, int imageFormat) override; @@ -31,7 +32,8 @@ class DKVideoRenderer : public IVideoRenderer { private: struct Configuration { ~Configuration(); - bool initialize(int width, int height, AVFrame* frame, uint64_t generation); + bool initialize(int width, int height, AVFrame* frame, uint64_t generation, + const std::string& image_quality_mode); bool matches(int width, int height, const AVFrame* frame) const; bool prepareFrame(AVFrame* frame, uint64_t generation); bool drawLatest(AVFrame* frame, uint64_t generation); @@ -113,6 +115,7 @@ class DKVideoRenderer : public IVideoRenderer { opennow::video::GpuFrameQueue submitted_frames_; }; + std::string image_quality_mode_; opennow::video::GpuConfigurationQueue configurations_; VideoRenderStats render_stats_ {}; }; diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp index 05f5f5c3..f4aec014 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp @@ -1,13 +1,13 @@ #include "FFmpegVideoDecoder.hpp" #include "AVFrameHolder.hpp" #include "borealis.hpp" -#include "../../stream_settings.hpp" #include "../../video_quality_policy.hpp" #include "../DecodeQueuePolicy.hpp" #include #include #include #include +#include extern "C" { #include } @@ -35,7 +35,8 @@ extern "C" { //} #endif -FFmpegVideoDecoder::FFmpegVideoDecoder() { +FFmpegVideoDecoder::FFmpegVideoDecoder(std::string image_quality_mode) + : image_quality_mode_(std::move(image_quality_mode)) { // AVBufferRef* deviceRef = av_hwdevice_ctx_alloc(AV_HWDEVICE_TYPE_MEDIACODEC); // AVHWDeviceContext* ctx = (AVHWDeviceContext*)deviceRef->data; // AVMediaCodecDeviceContext* hwctx = (AVMediaCodecDeviceContext*)ctx->hwctx; @@ -151,8 +152,7 @@ int FFmpegVideoDecoder::setup(int video_format, int width, int height, } if (perf_lvl & DISABLE_LOOP_FILTER) { - const auto settings = opennow::LoadStreamSettings(); - const auto tuning = opennow::video::ResolveQualityTuning(settings.image_quality_mode); + const auto tuning = opennow::video::ResolveQualityTuning(image_quality_mode_); // Keep deblocking on reference pictures in enhanced modes. This removes // persistent block edges while still skipping work on disposable frames. m_decoder_context->skip_loop_filter = tuning.preserve_reference_deblocking diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp index acec4c19..e2827a73 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp @@ -1,10 +1,11 @@ #pragma once #include "IFFmpegVideoDecoder.hpp" #include "AVFrameHolder.hpp" +#include class FFmpegVideoDecoder : public IFFmpegVideoDecoder { public: - FFmpegVideoDecoder(); + explicit FFmpegVideoDecoder(std::string image_quality_mode); ~FFmpegVideoDecoder(); int setup(int video_format, int width, int height, int redraw_rate, @@ -17,6 +18,7 @@ class FFmpegVideoDecoder : public IFFmpegVideoDecoder { bool uses_hardware_frames() const override { return m_uses_hardware_frames; } private: + std::string image_quality_mode_; int decode(); AVFrame* get_frame(bool native_frame, int& decode_error); diff --git a/app/src/stream_settings.hpp b/app/src/stream_settings.hpp index ed35f34f..8034ee92 100644 --- a/app/src/stream_settings.hpp +++ b/app/src/stream_settings.hpp @@ -30,6 +30,8 @@ struct StreamSettings bool community_proxy_enabled = false; std::string community_proxy_url; int queue_notify_threshold = 10; + + bool operator==(const StreamSettings&) const = default; }; struct GameLanguageOption diff --git a/app/src/top_bar_frame.cpp b/app/src/top_bar_frame.cpp index 5af8737b..9d5fe035 100644 --- a/app/src/top_bar_frame.cpp +++ b/app/src/top_bar_frame.cpp @@ -8,10 +8,14 @@ #include "subscription_display.hpp" #include "ui_refresh_policy.hpp" #include "ui_helpers.hpp" +#include "ui_theme.hpp" #include #include #include +#include #include +#include +#include namespace opennow { @@ -100,7 +104,7 @@ class SubscriptionIconView final : public brls::View nvgStrokeWidth(vg, 2.0f * scale); nvgLineCap(vg, NVG_ROUND); nvgLineJoin(vg, NVG_ROUND); - nvgStrokeColor(vg, nvgRGB(77, 218, 130)); + nvgStrokeColor(vg, ui::Muted()); nvgStroke(vg); } @@ -116,10 +120,10 @@ brls::Box* MakeSubscriptionChip(SubscriptionIcon icon, brls::Label*& value_label chip->setAlignItems(brls::AlignItems::CENTER); chip->setPadding(5, 10, 5, 5); chip->setMarginRight(6); - chip->setCornerRadius(17); - chip->setBorderThickness(1.5f); - chip->setBorderColor(nvgRGB(38, 208, 103)); - chip->setBackgroundColor(nvgRGBA(8, 28, 17, 170)); + chip->setCornerRadius(10); + chip->setBorderThickness(1); + chip->setBorderColor(ui::Rule()); + chip->setBackgroundColor(ui::Ground()); chip->addView(new SubscriptionIconView(icon)); @@ -127,7 +131,7 @@ brls::Box* MakeSubscriptionChip(SubscriptionIcon icon, brls::Label*& value_label value_label->setFontSize(12); value_label->setSingleLine(true); value_label->setShrink(0.0f); - value_label->setTextColor(nvgRGB(234, 255, 241)); + value_label->setTextColor(ui::Muted()); chip->addView(value_label); return chip; } @@ -138,15 +142,19 @@ TopBarFrame::TopBarFrame() : brls::Box(brls::Axis::COLUMN) { setGrow(1.0f); - setBackgroundColor(nvgRGB(12, 13, 16)); + setBackgroundColor(ui::Ground()); // Header container header_container_ = new brls::Box(brls::Axis::ROW); + header_container_->setId("shell-header"); header_container_->setHeight(76); + header_container_->setShrink(0); header_container_->setAlignItems(brls::AlignItems::CENTER); header_container_->setJustifyContent(brls::JustifyContent::SPACE_BETWEEN); - header_container_->setPadding(0, 28, 0, 28); - header_container_->setBackgroundColor(nvgRGB(9, 10, 12)); + header_container_->setPadding(0, 40, 0, 40); + header_container_->setBackgroundColor(ui::Ground()); + header_container_->setLineBottom(1); + header_container_->setLineColor(ui::Rule()); addView(header_container_); @@ -164,14 +172,15 @@ TopBarFrame::TopBarFrame() brand_mark->setImageFromRes("img/opennow-logo-mark.png"); brand->addView(brand_mark); - auto* brand_name = new brls::Label(); + auto* brand_name = new ui::StyledLabel(ui::FontRole::Display); brand_name->setText("OpenNOW"); - brand_name->setFontSize(21); - brand_name->setTextColor(nvgRGB(248, 248, 248)); + brand_name->setFontSize(24); + brand_name->setTextColor(ui::Text()); brand->addView(brand_name); header_container_->addView(brand); tabs_container_ = new brls::Box(brls::Axis::ROW); + tabs_container_->setId("shell-tabs"); tabs_container_->setGrow(1.0f); tabs_container_->setShrink(0.0f); tabs_container_->setAlignItems(brls::AlignItems::CENTER); @@ -179,7 +188,7 @@ TopBarFrame::TopBarFrame() header_container_->addView(tabs_container_); auto* status_container = new brls::Box(brls::Axis::ROW); - status_container->setWidth(500); + status_container->setWidth(440); status_container->setHeight(54); status_container->setShrink(0.0f); status_container->setAlignItems(brls::AlignItems::CENTER); @@ -197,6 +206,7 @@ TopBarFrame::TopBarFrame() queue_chip_ = MakeSubscriptionChip( SubscriptionIcon::Queue, queue_position_label_); queue_chip_->setFocusable(true); + queue_chip_->addGestureRecognizer(new brls::TapGestureRecognizer(queue_chip_)); queue_chip_->registerClickAction([](brls::View* v){ if (IsQueueMinimized()) RestoreMinimizedQueueDialog(); return true; @@ -232,7 +242,7 @@ TopBarFrame::TopBarFrame() account_name_label_->setSingleLine(true); account_name_label_->setShrink(0.0f); account_name_label_->setHorizontalAlign(brls::HorizontalAlign::LEFT); - account_name_label_->setTextColor(nvgRGB(236, 236, 239)); + account_name_label_->setTextColor(ui::Text()); account_labels->addView(account_name_label_); account_detail_label_ = new brls::Label(); account_detail_label_->setText("No account"); @@ -240,21 +250,33 @@ TopBarFrame::TopBarFrame() account_detail_label_->setSingleLine(true); account_detail_label_->setShrink(0.0f); account_detail_label_->setHorizontalAlign(brls::HorizontalAlign::LEFT); - account_detail_label_->setTextColor(nvgRGB(112, 119, 130)); + account_detail_label_->setTextColor(ui::Muted()); account_labels->addView(account_detail_label_); account_container_->addView(account_labels); - // Divider - auto* divider = new brls::Rectangle(); - divider->setHeight(1); - divider->setColor(nvgRGBA(255, 255, 255, 18)); - addView(divider); - // Content container content_container_ = new brls::Box(brls::Axis::COLUMN); + content_container_->setId("shell-content"); content_container_->setGrow(1.0f); + content_container_->setMinHeight(0); addView(content_container_); + auto* footer = new brls::Box(brls::Axis::ROW); + footer->setId("shell-footer"); + footer->setHeight(60); + footer->setShrink(0); + footer->setPadding(0, 40, 0, 40); + footer->setAlignItems(brls::AlignItems::CENTER); + footer->setBackgroundColor(ui::Ground()); + footer->setLineTop(1); + footer->setLineColor(ui::Rule()); + auto* hints = new brls::Hints(); + hints->setId("shell-hints"); + hints->setGrow(1); + hints->setAllowAButtonTouch(true); + footer->addView(hints); + addView(footer); + registerAction("Previous Tab", brls::BUTTON_LB, [this](brls::View* view) { if (tabs_.empty()) return false; int prev = active_tab_index_ - 1; @@ -292,6 +314,33 @@ void TopBarFrame::draw(NVGcontext* vg, float x, float y, float width, float heig } } brls::Box::draw(vg, x, y, width, height, style, ctx); + if (!tabs_.empty()) + { + const auto bounds = tabs_container_->getFrame(); + const auto first = tabs_.front().tab_box->getFrame(); + const auto last = tabs_.back().tab_box->getFrame(); + if (first.getMinX() - bounds.getMinX() >= 32 && bounds.getMaxX() - last.getMaxX() >= 32) + { + nvgSave(vg); + nvgFontFaceId(vg, ui::Font(ui::FontRole::Medium)); + nvgFontSize(vg, 16); + nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); + const float center_y = header_container_->getFrame().getMidY(); + const std::array, 2> keys {{ + {first.getMinX() - 32, "L"}, {last.getMaxX() + 8, "R"}}}; + for (const auto& [key_x, text] : keys) + { + nvgBeginPath(vg); + nvgRoundedRect(vg, key_x, center_y - 13, 24, 26, 6); + nvgStrokeWidth(vg, 1); + nvgStrokeColor(vg, ui::Muted()); + nvgStroke(vg); + nvgFillColor(vg, ui::Text()); + nvgText(vg, key_x + 12, center_y, text, nullptr); + } + nvgRestore(vg); + } + } } TopBarFrame::~TopBarFrame() @@ -324,12 +373,13 @@ void TopBarFrame::addTab(const std::string& label, TabViewCreator creator) tab_box->setCornerRadius(6); tab_box->setBackgroundColor(nvgRGBA(0, 0, 0, 0)); tab_box->setFocusable(true); + tab_box->addGestureRecognizer(new brls::TapGestureRecognizer(tab_box)); - auto* text = new brls::Label(); + auto* text = new ui::StyledLabel(ui::FontRole::Medium); text->setText(Tr(label)); text->setSingleLine(true); text->setFontSize(18); - text->setTextColor(nvgRGB(128, 133, 143)); + text->setTextColor(ui::Muted()); auto* label_container = new brls::Box(brls::Axis::ROW); label_container->setHeight(57); @@ -339,13 +389,13 @@ void TopBarFrame::addTab(const std::string& label, TabViewCreator creator) tab_box->addView(label_container); auto* underline_container = new brls::Box(brls::Axis::ROW); - underline_container->setWidth(66); + underline_container->setWidth(28); underline_container->setHeight(5); underline_container->setAlignItems(brls::AlignItems::FLEX_END); auto* underline = new brls::Rectangle(); - underline->setWidth(66); - underline->setHeight(5); + underline->setWidth(28); + underline->setHeight(3); underline->setColor(nvgRGBA(0, 0, 0, 0)); underline_container->addView(underline); @@ -398,11 +448,11 @@ void TopBarFrame::SelectTab(int index) for (size_t i = 0; i < tabs_.size(); ++i) { if ((int)i == index) { - tabs_[i].header_label->setTextColor(nvgRGB(255, 255, 255)); - tabs_[i].underline->setColor(nvgRGB(77, 218, 130)); - tabs_[i].tab_box->setBackgroundColor(nvgRGBA(77, 218, 130, 22)); + tabs_[i].header_label->setTextColor(ui::Text()); + tabs_[i].underline->setColor(ui::Green()); + tabs_[i].tab_box->setBackgroundColor(nvgRGBA(0, 0, 0, 0)); } else { - tabs_[i].header_label->setTextColor(nvgRGB(128, 133, 143)); + tabs_[i].header_label->setTextColor(ui::Muted()); tabs_[i].underline->setColor(nvgRGBA(0, 0, 0, 0)); tabs_[i].tab_box->setBackgroundColor(nvgRGBA(0, 0, 0, 0)); } diff --git a/app/src/ui_theme.cpp b/app/src/ui_theme.cpp new file mode 100644 index 00000000..01893787 --- /dev/null +++ b/app/src/ui_theme.cpp @@ -0,0 +1,215 @@ +#include "ui_theme.hpp" + +#include "localization.hpp" + +#include +#include +#include + +#include +#include +#include +#include + +namespace opennow::ui +{ +namespace +{ + +constexpr std::array kFontNames { + "regular", "opennow-semibold", "opennow-bold", "opennow-extrabold", "opennow-mono"}; + +} + +void InitializeThemeAndFonts() +{ + const int original = brls::Application::getFont(brls::FONT_REGULAR); + const std::array paths { + "font/Nunito-Medium.ttf", "font/Nunito-SemiBold.ttf", "font/Nunito-Bold.ttf", + "font/Nunito-ExtraBold.ttf", "font/IBMPlexMono-Medium.ttf"}; + for (size_t index = 0; index < paths.size(); ++index) + { + if (!brls::Application::loadFontFromFile(kFontNames[index], std::string(BRLS_ASSET("")) + paths[index])) + throw std::runtime_error("Cannot load bundled OpenNOW font: " + std::string(paths[index])); + } + if (!brls::Application::loadFontFromFile("opennow-cjk", BRLS_ASSET("font/OpenNOW-CJK.ttf"))) + throw std::runtime_error("Cannot load bundled OpenNOW Chinese fallback font"); + + std::vector fallbacks {brls::Application::getFont("opennow-cjk")}; + for (const auto& name : {brls::FONT_CHINESE_SIMPLIFIED, brls::FONT_CHINESE_SIMPLIFIED_EXT, + brls::FONT_CHINESE_TRADITIONAL, brls::FONT_KOREAN_REGULAR, + brls::FONT_SWITCH_ICONS, brls::FONT_MATERIAL_ICONS, brls::FONT_EMOJI}) + fallbacks.push_back(brls::Application::getFont(name)); + fallbacks.push_back(original); + + for (const char* name : kFontNames) + { + const int base = brls::Application::getFont(name); + for (int fallback : fallbacks) + if (fallback != brls::FONT_INVALID && fallback != base) + nvgAddFallbackFontId(brls::Application::getNVGContext(), base, fallback); + } + + for (brls::Theme* theme : {&brls::Theme::getDarkTheme(), &brls::Theme::getLightTheme()}) + { + theme->addColor("brls/background", Ground()); + theme->addColor("brls/text", Text()); + theme->addColor("brls/text_disabled", Muted()); + theme->addColor("brls/accent", Green()); + theme->addColor("brls/highlight/color1", Green()); + theme->addColor("brls/highlight/color2", Green()); + theme->addColor("brls/highlight/background", Raised()); + theme->addColor("brls/click_pulse", nvgRGBA(118, 232, 58, 36)); + theme->addColor("brls/button/primary_enabled_background", Green()); + theme->addColor("brls/button/primary_enabled_text", Ground()); + theme->addColor("brls/button/default_enabled_background", Raised()); + theme->addColor("brls/button/default_enabled_text", Text()); + theme->addColor("brls/button/highlight_enabled_text", Green()); + theme->addColor("brls/button/enabled_border_color", Rule()); + theme->addColor("brls/list/listItem_value_color", Green()); + theme->addColor("brls/sidebar/background", Ground()); + theme->addColor("brls/sidebar/active_item", Green()); + theme->addColor("brls/header/subtitle", Muted()); + } + brls::Application::getPlatform()->setThemeVariant(brls::ThemeVariant::DARK); + brls::getStyle().addMetric("brls/highlight/stroke_width", 2.0f); +} + +int Font(FontRole role) +{ + const int handle = brls::Application::getFont(kFontNames[static_cast(role)]); + return handle == brls::FONT_INVALID ? brls::Application::getDefaultFont() : handle; +} + +StyledLabel::StyledLabel(FontRole role) +{ + font = Font(role); +} + +brls::Label* MakeLabel(const std::string& text, float size, NVGcolor color, FontRole role) +{ + auto* label = new StyledLabel(role); + label->setText(text); + label->setFontSize(size); + label->setTextColor(color); + label->setLineHeight(1.35f); + return label; +} + +ActionRow::ActionRow(std::string title, std::string value, + std::function activate, ActionTone tone) + : brls::Box(brls::Axis::ROW), tone_(tone) +{ + setHeight(56); + setShrink(0); + setPadding(0, 18, 0, 18); + setAlignItems(brls::AlignItems::CENTER); + setCornerRadius(12); + setBorderThickness(1); + setFocusable(true); + setHideHighlightBackground(true); + setHighlightPadding(3); + setHighlightCornerRadius(14); + title_ = MakeLabel(title, 18, Text(), FontRole::Medium); + title_->setGrow(1); + title_->setShrink(1); + title_->setSingleLine(true); + addView(title_); + value_ = MakeLabel(value, 16, Muted()); + value_->setMaxWidthPercentage(45); + value_->setMarginLeft(16); + value_->setSingleLine(true); + addView(value_); + registerClickAction(std::move(activate)); + addGestureRecognizer(new brls::TapGestureRecognizer(this)); + updateActionHint(brls::BUTTON_A, title); + UpdateChrome(false); +} + +void ActionRow::SetTitle(const std::string& title) +{ + title_->setText(title); + updateActionHint(brls::BUTTON_A, title); +} +void ActionRow::SetValue(const std::string& value) { value_->setText(value); } +void ActionRow::SetFontSize(float size) { title_->setFontSize(size); } +void ActionRow::SetTone(ActionTone tone) +{ + tone_ = tone; + UpdateChrome(brls::Application::getCurrentFocus() == this); +} +void ActionRow::SetFocusHandler(std::function handler) { focus_handler_ = std::move(handler); } + +void ActionRow::onFocusGained() +{ + brls::Box::onFocusGained(); + UpdateChrome(true); + if (focus_handler_) + focus_handler_(); +} + +void ActionRow::onFocusLost() +{ + brls::Box::onFocusLost(); + UpdateChrome(false); +} + +void ActionRow::UpdateChrome(bool focused) +{ + const bool primary = tone_ == ActionTone::Primary; + const bool flat = tone_ == ActionTone::Flat; + setBackgroundColor(primary ? Green() : focused ? nvgRGB(30, 32, 36) : flat ? Ground() : Raised()); + setBorderColor(focused ? Green() : flat ? nvgRGBA(0, 0, 0, 0) : Rule()); + title_->setTextColor(primary ? Ground() : tone_ == ActionTone::Destructive ? Danger() : Text()); + value_->setTextColor(primary ? Ground() : focused ? Green() : Muted()); +} + +std::string StreamSummary(const StreamSettings& settings) +{ + std::string bitrate = std::to_string(settings.bitrate_kbps / 1000); + if (const int remainder = settings.bitrate_kbps % 1000; remainder != 0) + { + std::string fraction = std::to_string(1000 + remainder).substr(1); + fraction.erase(fraction.find_last_not_of('0') + 1); + bitrate += "." + fraction; + } + return std::to_string(settings.width) + "×" + std::to_string(settings.height) + " · " + + std::to_string(settings.fps) + " FPS · " + bitrate + " Mbps"; +} + +std::string ConfiguredLocation(const std::string& region) +{ + return region.empty() || region == "auto" || region == "Auto" + ? Tr("Auto") : Tr("Selected server"); +} + +NextStreamSummaryView::NextStreamSummaryView(const StreamSettings& settings) + : brls::Box(brls::Axis::COLUMN) +{ + setPadding(14, 18, 14, 18); + setCornerRadius(12); + setBorderThickness(1); + setBorderColor(Rule()); + setBackgroundColor(Raised()); + heading_ = MakeLabel(Tr("Next stream"), 14, Muted()); + heading_->setMarginBottom(8); + addView(heading_); + summary_ = MakeLabel({}, 18, Text(), FontRole::Medium); + summary_->setSingleLine(true); + addView(summary_); + detail_ = MakeLabel({}, 14, Muted()); + detail_->setMarginTop(5); + detail_->setSingleLine(true); + addView(detail_); + Update(settings); +} + +void NextStreamSummaryView::Update(const StreamSettings& settings) +{ + heading_->setText(Tr("Next stream")); + summary_->setText(StreamSummary(settings)); + detail_->setText(Tr("Configured") + " · " + settings.codec + " · " + + ConfiguredLocation(settings.region)); +} + +} diff --git a/app/src/ui_theme.hpp b/app/src/ui_theme.hpp new file mode 100644 index 00000000..24f8fb1c --- /dev/null +++ b/app/src/ui_theme.hpp @@ -0,0 +1,73 @@ +#pragma once + +#include "stream_settings.hpp" + +#include + +#include +#include + +namespace opennow::ui +{ + +enum class FontRole { Body, Medium, Heading, Display, Mono }; +enum class ActionTone { Neutral, Primary, Destructive, Flat }; + +inline NVGcolor Ground() { return nvgRGB(11, 12, 14); } +inline NVGcolor Raised() { return nvgRGB(22, 24, 28); } +inline NVGcolor Text() { return nvgRGB(242, 244, 240); } +inline NVGcolor Muted() { return nvgRGB(163, 159, 150); } +inline NVGcolor Rule() { return nvgRGB(42, 45, 51); } +inline NVGcolor Green() { return nvgRGB(118, 232, 58); } +inline NVGcolor Danger() { return nvgRGB(255, 106, 85); } + +void InitializeThemeAndFonts(); +int Font(FontRole role); + +class StyledLabel final : public brls::Label +{ + public: + explicit StyledLabel(FontRole role = FontRole::Body); +}; + +brls::Label* MakeLabel(const std::string& text, float size = 18, + NVGcolor color = Text(), FontRole role = FontRole::Body); + +class ActionRow : public brls::Box +{ + public: + ActionRow(std::string title, std::string value, + std::function activate, + ActionTone tone = ActionTone::Neutral); + void SetTitle(const std::string& title); + void SetValue(const std::string& value); + void SetFontSize(float size); + void SetTone(ActionTone tone); + void SetFocusHandler(std::function handler); + void onFocusGained() override; + void onFocusLost() override; + + private: + void UpdateChrome(bool focused); + brls::Label* title_; + brls::Label* value_; + ActionTone tone_; + std::function focus_handler_; +}; + +std::string StreamSummary(const StreamSettings& settings); +std::string ConfiguredLocation(const std::string& region); + +class NextStreamSummaryView final : public brls::Box +{ + public: + explicit NextStreamSummaryView(const StreamSettings& settings); + void Update(const StreamSettings& settings); + + private: + brls::Label* heading_; + brls::Label* summary_; + brls::Label* detail_; +}; + +} diff --git a/app/src/webrtc/session.cpp b/app/src/webrtc/session.cpp index 178bd2a1..84a063bb 100644 --- a/app/src/webrtc/session.cpp +++ b/app/src/webrtc/session.cpp @@ -86,19 +86,20 @@ WebRtcSession::WebRtcSession( const std::string& session_id, const std::string& media_ip, int media_port, - const std::vector& ice_servers) + const std::vector& ice_servers, + const opennow::StreamSettings& settings) : signaling_url_(signaling_url), jwt_token_(jwt_token), session_id_(session_id), media_ip_(media_ip), media_port_(media_port), ice_servers_(ice_servers), - settings_(opennow::LoadStreamSettings()), + settings_(settings), peer_name_(MakePeerName()) { opennow::SetStreamDiagnosticsEnabled(settings_.debug_diagnostics); peer_connection_set_diagnostics_enabled(settings_.debug_diagnostics ? 1 : 0); - renderer_ = std::make_unique(); + renderer_ = std::make_unique(settings_.image_quality_mode); audio_ = std::make_unique(); audio_->configure(settings_.audio_volume, settings_.audio_buffer_ms); @@ -107,14 +108,14 @@ WebRtcSession::WebRtcSession( auto_safe_mode_used_ = previous_nvdec_crash; const bool force_software = settings_.video_backend == "Software" || previous_nvdec_crash; - decoder_ = std::make_unique(); + decoder_ = std::make_unique(settings_.image_quality_mode); decoder_setup_result_ = decoder_->setup( VIDEO_FORMAT_H264, settings_.width, settings_.height, settings_.fps, nullptr, force_software ? VIDEO_DECODER_FORCE_SOFTWARE : VIDEO_DECODER_PREFER_HARDWARE); if (decoder_setup_result_ != 0 && !force_software) { decoder_->cleanup(); - decoder_ = std::make_unique(); + decoder_ = std::make_unique(settings_.image_quality_mode); decoder_setup_result_ = decoder_->setup( VIDEO_FORMAT_H264, settings_.width, settings_.height, settings_.fps, nullptr, VIDEO_DECODER_FORCE_SOFTWARE); diff --git a/app/src/webrtc_session.hpp b/app/src/webrtc_session.hpp index 82202258..0a160615 100644 --- a/app/src/webrtc_session.hpp +++ b/app/src/webrtc_session.hpp @@ -68,7 +68,8 @@ class WebRtcSession { const std::string& session_id, const std::string& media_ip, int media_port, - const std::vector& ice_servers); + const std::vector& ice_servers, + const opennow::StreamSettings& settings); ~WebRtcSession(); void start(); diff --git a/resources/font/IBMPlexMono-Medium.ttf b/resources/font/IBMPlexMono-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..33c546f68b6007a45a3f10e845523abb2db25399 GIT binary patch literal 136704 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

}=SxJ{;v+oIfVl4|7yS%VGI$ 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 literal 0 HcmV?d00001 diff --git a/resources/font/Nunito-OFL.txt b/resources/font/Nunito-OFL.txt new file mode 100644 index 00000000..c8210f08 --- /dev/null +++ b/resources/font/Nunito-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2014 The Nunito Project Authors (https://github.com/googlefonts/nunito) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/resources/font/Nunito-SemiBold.ttf b/resources/font/Nunito-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..395f2538427d6835a1de60e14f321f482b710e18 GIT binary patch literal 132292 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 Ylf=V8S_mPePc6ZXQlVraVF>^K0T{*9LjV8( literal 0 HcmV?d00001 diff --git a/resources/font/OpenNOW-CJK-OFL.txt b/resources/font/OpenNOW-CJK-OFL.txt new file mode 100644 index 00000000..1c9f4328 --- /dev/null +++ b/resources/font/OpenNOW-CJK-OFL.txt @@ -0,0 +1,93 @@ +Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source' + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/resources/font/OpenNOW-CJK.ttf b/resources/font/OpenNOW-CJK.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1803e512b6098977353baa052e55e12ec0d7331e GIT binary patch literal 2312664 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

    +fbEY2r)Q1rn_Hf_>C;2lXQ(yc5 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�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 z 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

    |1V7?dUkvqGsFvdsfU?JE9v;Wl|)(_r~_j- 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

    {>rP;kzSdD;vd;fD6ODf> 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

    koSnip(<@vS+sR&-d}mU!UR$#- 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

    (TSoi2LCM<>e)h^8ja(DrIr6SRa;2 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

    O1NC3u$~Z=!fSDF6 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

    1?@5wU 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

    +E5^@9R%5wWJLa6A{%#6Rz#yLFaazOT-`xk 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%0APbnfb@Yo> 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 bP(d+lNHaHUfW$0n00000NkvXXu0mjfoJHG2 literal 9252 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 = AVCOL_SPC_BT709; assert(av_frame_get_buffer(frame, 32) == 0); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); for (const auto range : {AVCOL_RANGE_MPEG, AVCOL_RANGE_JPEG, AVCOL_RANGE_MPEG}) { frame->color_range = range; deko_test::completed = deko_test::submitted; diff --git a/tests/deko_renderer_quality_snapshot_test.cpp b/tests/deko_renderer_quality_snapshot_test.cpp new file mode 100644 index 00000000..8a83791b --- /dev/null +++ b/tests/deko_renderer_quality_snapshot_test.cpp @@ -0,0 +1,31 @@ +#include "deko_renderer_under_test.hpp" + +#include + +int main() +{ + for (const std::string mode : {"Original", "Clarity", "Adaptive"}) + { + deko_test::reset(); + AVFrame* frame = av_frame_alloc(); + assert(frame); + frame->format = AV_PIX_FMT_YUV420P; + frame->width = 64; + frame->height = 32; + assert(av_frame_get_buffer(frame, 32) == 0); + const auto expected = opennow::video::ResolveQualityTuning(mode); + { + DKVideoRenderer renderer(mode); + for (const int screen_width : {1280, 1920, 1280}) + { + deko_test::completed = deko_test::submitted; + renderer.drawLatest(nullptr, screen_width, screen_width * 9 / 16, frame, 0, 1); + assert(deko_test::last_transform[22] == expected.denoise_strength); + assert(deko_test::last_transform[23] == expected.sharpen_strength); + } + } + av_frame_free(&frame); + assert(deko_test::Memory::live.empty() && deko_test::descriptors.empty()); + } + std::cout << "Deko3D quality snapshot through screen reconfiguration: PASS\n"; +} diff --git a/tests/deko_renderer_reconfiguration_test.cpp b/tests/deko_renderer_reconfiguration_test.cpp index 1e76fcb9..c48e5a81 100644 --- a/tests/deko_renderer_reconfiguration_test.cpp +++ b/tests/deko_renderer_reconfiguration_test.cpp @@ -67,7 +67,7 @@ void failure_sweep(bool hardware) auto resized = hardware ? hardware_frame(32, 32) : software_frame(32, 32); int initialization_allocations = 0; { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); draw(renderer, resized); initialization_allocations = allocation; assert(draws == 1); @@ -75,7 +75,7 @@ void failure_sweep(bool hardware) for (int failure = 1; failure <= initialization_allocations; ++failure) { reset(); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); fail_at = failure; draw(renderer, resized); assert(draws == 0 && submissions == 0); @@ -89,7 +89,7 @@ void failure_sweep(bool hardware) reset(); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); draw(renderer, initial); const size_t active_memory = Memory::live.size(); fail_at = allocation + failure; @@ -115,7 +115,7 @@ void resize_retirement_and_screen() auto second = software_frame(32, 32, AV_PIX_FMT_NV12); auto third = software_frame(32, 64); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); draw(renderer, first, 0); draw(renderer, first, 0); const auto first_fence = submitted; @@ -154,7 +154,7 @@ void backend_retirement() auto software = software_frame(64, 32); auto hardware = hardware_frame(64, 32); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); draw(renderer, hardware, 1); const auto hardware_fence = submitted; hardware.reset(); @@ -184,7 +184,7 @@ void bounded_frame_updates() reset(); auto software = software_frame(64, 32); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); draw(renderer, software, 1); const int attempts = allocation; for (uint64_t generation = 2; generation <= 30; ++generation) @@ -197,7 +197,7 @@ void bounded_frame_updates() } reset(); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); for (uint64_t generation = 1; generation <= 30; ++generation) { auto hardware = hardware_frame(64, 32); draw(renderer, hardware, generation); @@ -220,7 +220,7 @@ void allocation_retry() reset(); auto frame = software_frame(64, 32); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); fail_at = 3; draw(renderer, frame); assert(draws == 0); @@ -246,7 +246,7 @@ void hardware_mapping_allocation_exception() reset(); auto initial = hardware_frame(64, 32); { - DKVideoRenderer renderer; + DKVideoRenderer renderer("Adaptive"); draw(renderer, initial); auto next = hardware_frame(64, 32); fail_at = allocation + 1; diff --git a/tests/ffmpeg_decode_integration_test.cpp b/tests/ffmpeg_decode_integration_test.cpp index 02f9b889..10b5b350 100644 --- a/tests/ffmpeg_decode_integration_test.cpp +++ b/tests/ffmpeg_decode_integration_test.cpp @@ -65,7 +65,7 @@ static void decode_stream(FFmpegVideoDecoder& decoder, const char* path, int main(int argc, char** argv) { assert(argc == 3); - FFmpegVideoDecoder decoder; + FFmpegVideoDecoder decoder("Adaptive"); assert(decoder.setup(VIDEO_FORMAT_H264, 64, 32, 60, nullptr, VIDEO_DECODER_FORCE_SOFTWARE) == 0); assert(!decoder.uses_hardware_frames()); diff --git a/tests/ffmpeg_packet_ownership_test.cpp b/tests/ffmpeg_packet_ownership_test.cpp index 0167bc1e..f87ffb9c 100644 --- a/tests/ffmpeg_packet_ownership_test.cpp +++ b/tests/ffmpeg_packet_ownership_test.cpp @@ -60,7 +60,7 @@ int __wrap_avcodec_receive_frame(AVCodecContext*, AVFrame*) int main() { - FFmpegVideoDecoder decoder; + FFmpegVideoDecoder decoder("Adaptive"); assert(decoder.setup(VIDEO_FORMAT_H264, 16, 16, 60, nullptr, VIDEO_DECODER_FORCE_SOFTWARE) == 0); uint8_t input[] = {0x55}; diff --git a/tests/ffmpeg_video_decoder_test.cpp b/tests/ffmpeg_video_decoder_test.cpp index 2e12feab..1a467645 100644 --- a/tests/ffmpeg_video_decoder_test.cpp +++ b/tests/ffmpeg_video_decoder_test.cpp @@ -126,7 +126,7 @@ int main(int argc, char** argv) if (scenario == "eof") receive_error = AVERROR_EOF; - FFmpegVideoDecoder decoder; + FFmpegVideoDecoder decoder("Adaptive"); const int result = decoder.setup( VIDEO_FORMAT_H264, 16, 16, 60, nullptr, VIDEO_DECODER_FORCE_SOFTWARE); if (packet_allocation_failure || array_allocation_failure || frame_allocation_failure >= 0) { diff --git a/tests/library_timetable_policy_test.cpp b/tests/library_timetable_policy_test.cpp new file mode 100644 index 00000000..b6ca708a --- /dev/null +++ b/tests/library_timetable_policy_test.cpp @@ -0,0 +1,32 @@ +#include "library_timetable_policy.hpp" + +#include +#include + +int main() +{ + using namespace std::chrono; + using opennow::library::DateBucket; + using opennow::library::PresentTimestamp; + const auto now = sys_days{year{2026} / October / 2} + hours{12}; + assert(PresentTimestamp("2026-10-02T00:00:00Z", now).bucket == DateBucket::Today); + assert(PresentTimestamp("2026-10-02T11:59:59.999Z", now).label == "11:59"); + assert(PresentTimestamp("2026-10-01T23:59:59Z", now).bucket == DateBucket::ThisWeek); + assert(PresentTimestamp("2026-09-28T00:00:00Z", now).label == "Mon"); + assert(PresentTimestamp("2026-09-27T23:59:59Z", now).bucket == DateBucket::Earlier); + assert(PresentTimestamp("2025-10-02T09:15:00Z", now).label == "2025-10-02"); + assert(PresentTimestamp("", now).bucket == DateBucket::Unplayed); + for (const auto* text : {"2026-10-02T12:00:01Z", "2026-10-02T12:00:00.001Z", + "2026-02-29T09:00:00Z", "2026-13-01T00:00:00Z", "2026-04-31T00:00:00Z", + "2026-10-02T24:00:00Z", "2026-10-02T10:60:00Z", "2026-10-02T10:00:60Z", + "2026-10-02T10:00:00", "2026-10-02T10:00:00+00:00", "2026-10-02T10:00:00.Z", + "2026-10-02T10:00:00.1234567890Z", "2026-10-02T10:00:00.aZ", + "2026-10-02T10:00:00Zextra", "unknown", "0000-01-01T00:00:00Z"}) + assert(PresentTimestamp(text, now).bucket == DateBucket::Unknown); + assert(PresentTimestamp("2024-02-29T09:00:00Z", now).bucket == DateBucket::Earlier); + assert(PresentTimestamp("2026-10-02T12:00:00.000000000Z", now).bucket == DateBucket::Today); + const auto midnight = sys_days{year{2026} / October / 5}; + assert(PresentTimestamp("2026-10-04T23:59:59Z", midnight).bucket == DateBucket::Earlier); + assert(PresentTimestamp("2026-10-05T00:00:00Z", midnight).bucket == DateBucket::Today); + assert(PresentTimestamp("2026-10-05T00:00:00.1Z", midnight).bucket == DateBucket::Unknown); +} diff --git a/tests/settings_tab_equality_test.cpp b/tests/settings_tab_equality_test.cpp new file mode 100644 index 00000000..30d72550 --- /dev/null +++ b/tests/settings_tab_equality_test.cpp @@ -0,0 +1,42 @@ +#include "stream_settings.hpp" + +#include + +int main() +{ + const opennow::StreamSettings saved; + assert(saved == saved); + + const auto check = [&saved](auto member, auto replacement) { + auto draft = saved; + draft.*member = replacement; + assert(draft != saved); + assert(saved != draft); + draft.*member = saved.*member; + assert(draft == saved); + }; + using Settings = opennow::StreamSettings; + check(&Settings::preset_id, "custom"); + check(&Settings::label, "Custom"); + check(&Settings::width, 1920); + check(&Settings::height, 1080); + check(&Settings::fps, 30); + check(&Settings::bitrate_kbps, 12500); + check(&Settings::codec, "H265"); + check(&Settings::region, "https://example.invalid/region"); + check(&Settings::audio_enabled, false); + check(&Settings::audio_volume, 1000); + check(&Settings::audio_buffer_ms, 80); + check(&Settings::video_backend, "Software"); + check(&Settings::debug_diagnostics, true); + check(&Settings::stats_overlay_enabled, true); + check(&Settings::game_language, "fr_FR"); + check(&Settings::persist_game_settings, false); + check(&Settings::controller_layout, "Switch"); + check(&Settings::image_quality_mode, "Original"); + check(&Settings::interface_language, "zh-CN"); + check(&Settings::community_proxy_enabled, true); + check(&Settings::community_proxy_url, "https://example.invalid/proxy"); + for (int threshold : {5, 20, 50}) + check(&Settings::queue_notify_threshold, threshold); +} diff --git a/tests/ui_font_assets_test.py b/tests/ui_font_assets_test.py new file mode 100644 index 00000000..55da0b35 --- /dev/null +++ b/tests/ui_font_assets_test.py @@ -0,0 +1,76 @@ +from pathlib import Path +import struct + + +def tables(path): + data = path.read_bytes() + count = struct.unpack_from(">H", data, 4)[0] + result = {} + for index in range(count): + tag, _, offset, size = struct.unpack_from(">4sIII", data, 12 + index * 16) + result[tag] = data[offset:offset + size] + return result + + +def has_glyph(font, codepoint): + cmap = font[b"cmap"] + count = struct.unpack_from(">H", cmap, 2)[0] + for index in range(count): + _, _, offset = struct.unpack_from(">HHI", cmap, 4 + index * 8) + format_id = struct.unpack_from(">H", cmap, offset)[0] + if format_id == 12: + groups = struct.unpack_from(">I", cmap, offset + 12)[0] + for group in range(groups): + start, end, glyph = struct.unpack_from(">III", cmap, offset + 16 + group * 12) + if start <= codepoint <= end and glyph + codepoint - start != 0: + return True + if format_id != 4 or codepoint > 0xFFFF: + continue + segments = struct.unpack_from(">H", cmap, offset + 6)[0] // 2 + ends = offset + 14 + starts = ends + segments * 2 + 2 + deltas = starts + segments * 2 + ranges = deltas + segments * 2 + for segment in range(segments): + end = struct.unpack_from(">H", cmap, ends + segment * 2)[0] + start = struct.unpack_from(">H", cmap, starts + segment * 2)[0] + if not start <= codepoint <= end: + continue + delta = struct.unpack_from(">h", cmap, deltas + segment * 2)[0] + distance = struct.unpack_from(">H", cmap, ranges + segment * 2)[0] + if distance == 0: + glyph = (codepoint + delta) & 0xFFFF + else: + address = ranges + segment * 2 + distance + (codepoint - start) * 2 + glyph = struct.unpack_from(">H", cmap, address)[0] + if glyph: + glyph = (glyph + delta) & 0xFFFF + if glyph: + return True + return False + + +root = Path(__file__).resolve().parents[1] / "resources" / "font" +for style, weight in (("Medium", 500), ("SemiBold", 600), ("Bold", 700), ("ExtraBold", 800)): + font = tables(root / f"Nunito-{style}.ttf") + assert b"fvar" not in font, f"Nunito {style} must be static for NanoVG" + assert struct.unpack_from(">H", font[b"OS/2"], 4)[0] == weight + for character in "OpenNOWéЖїŁ": + assert has_glyph(font, ord(character)), f"Nunito {style} lacks {character}" + print(f"PASS Nunito {style}: static weight {weight}, Latin/Cyrillic glyphs") + +mono = tables(root / "IBMPlexMono-Medium.ttf") +assert b"fvar" not in mono +assert struct.unpack_from(">H", mono[b"OS/2"], 4)[0] == 500 +assert all(has_glyph(mono, ord(character)) for character in "0123456789./:%") +print("PASS IBM Plex Mono Medium: static weight 500, metric glyphs") + +fallback = tables(root / "OpenNOW-CJK.ttf") +assert b"fvar" not in fallback +assert struct.unpack_from(">H", fallback[b"OS/2"], 4)[0] == 500 +assert all(has_glyph(fallback, ord(character)) for character in "玩家设置游戏") +print("PASS bundled fallback: Chinese UI glyphs") + +for name in ("Nunito-OFL.txt", "IBMPlexMono-OFL.txt", "OpenNOW-CJK-OFL.txt"): + assert "SIL OPEN FONT LICENSE" in (root / name).read_text() +print("PASS bundled font licenses") diff --git a/tests/webrtc_input_handshake_test.cpp b/tests/webrtc_input_handshake_test.cpp index 5a0ee07a..bca42192 100644 --- a/tests/webrtc_input_handshake_test.cpp +++ b/tests/webrtc_input_handshake_test.cpp @@ -67,7 +67,8 @@ uint64_t NowUs() { return 0x0102030405060708ULL; } } WebRtcSession::WebRtcSession(const std::string&, const std::string&, const std::string&, - const std::string&, int, const std::vector&) {} + const std::string&, int, const std::vector&, + const opennow::StreamSettings&) {} WebRtcSession::~WebRtcSession() = default; SignalingClient::~SignalingClient() = default; WebSocketClient::~WebSocketClient() = default; @@ -86,7 +87,7 @@ static void RunScenario(const std::string& scenario) { open_attempts = 0; input_logs.clear(); channel_label[0] = 'i'; - WebRtcSession session("", "", "", "", 0, {}); + WebRtcSession session("", "", "", "", 0, {}, {}); session.pc_ = reinterpret_cast(&session); session.on_datachannel_open(); session.datachannel_open_requested_ = true; From 6219c06a53949646312ebb2e1fd37c8eaca70573 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:06:05 +0000 Subject: [PATCH 04/23] Recover queue lifecycle and live stream overlay implementation --- app/src/StreamView.cpp | 12 +- app/src/StreamView.hpp | 11 +- app/src/cloud_launch_internal.hpp | 12 + app/src/queue_view.cpp | 236 ++++++++++++++++ app/src/queue_view.hpp | 42 +++ app/src/stream_launch.cpp | 17 ++ app/src/stream_overlay_view.cpp | 186 ++++++++++++ app/src/stream_overlay_view.hpp | 72 +++++ app/src/stream_view_overlay.cpp | 364 +++++------------------- app/src/ui_helpers.cpp | 453 +++++++++--------------------- 10 files changed, 787 insertions(+), 618 deletions(-) create mode 100644 app/src/cloud_launch_internal.hpp create mode 100644 app/src/queue_view.cpp create mode 100644 app/src/queue_view.hpp create mode 100644 app/src/stream_launch.cpp create mode 100644 app/src/stream_overlay_view.cpp create mode 100644 app/src/stream_overlay_view.hpp diff --git a/app/src/StreamView.cpp b/app/src/StreamView.cpp index 13b9aad0..ebdb488e 100644 --- a/app/src/StreamView.cpp +++ b/app/src/StreamView.cpp @@ -31,12 +31,12 @@ StreamView::StreamView( const std::vector& ice_servers, const opennow::GfnClient& client, const opennow::AuthSession& auth, - const std::string& game_title) + const std::string& game_title, + const opennow::StreamSettings& stream_settings) : client_(client) , auth_(auth) , cloud_session_id_(session_id) , game_title_(game_title) { - const auto stream_settings = opennow::LoadStreamSettings(); debug_diagnostics_ = stream_settings.debug_diagnostics; stats_overlay_enabled_ = stream_settings.stats_overlay_enabled; stream_codec_ = stream_settings.codec; @@ -66,7 +66,8 @@ StreamView::StreamView( session_id, media_ip, media_port, - ice_servers); + ice_servers, + stream_settings); session_->start(); network_monitor_.start(); RefreshNetworkInfo(stream_started_at_); @@ -414,7 +415,8 @@ brls::View* StreamView::create( const std::vector& ice_servers, const opennow::GfnClient& client, const opennow::AuthSession& auth, - const std::string& game_title) { + const std::string& game_title, + const opennow::StreamSettings& settings) { return new StreamView(signaling_url, jwt_token, session_id, media_ip, media_port, - ice_servers, client, auth, game_title); + ice_servers, client, auth, game_title, settings); } diff --git a/app/src/StreamView.hpp b/app/src/StreamView.hpp index 5aa5fd8b..76773f93 100644 --- a/app/src/StreamView.hpp +++ b/app/src/StreamView.hpp @@ -8,6 +8,8 @@ #include "nte_credentials.hpp" #include "stream_end_policy.hpp" #include "stream_overlay_policy.hpp" +#include "stream_overlay_view.hpp" +#include "stream_settings.hpp" #include "webrtc_session.hpp" #include @@ -33,7 +35,8 @@ class StreamView : public brls::Box { const std::vector& ice_servers, const opennow::GfnClient& client, const opennow::AuthSession& auth, - const std::string& game_title); + const std::string& game_title, + const opennow::StreamSettings& settings); ~StreamView() override; void draw(NVGcontext* vg, float x, float y, float width, float height, brls::Style style, brls::FrameContext* ctx) override; @@ -49,7 +52,8 @@ class StreamView : public brls::Box { const std::vector& ice_servers, const opennow::GfnClient& client, const opennow::AuthSession& auth, - const std::string& game_title); + const std::string& game_title, + const opennow::StreamSettings& settings); private: void ExitStream(); @@ -141,6 +145,9 @@ class StreamView : public brls::Box { bool debug_diagnostics_ = false; bool stats_overlay_enabled_ = false; bool stream_overlay_visible_ = false; + std::unique_ptr stream_overlay_view_; + std::chrono::steady_clock::time_point stream_overlay_next_sample_ {}; + std::int64_t stream_overlay_elapsed_seconds_ = -1; bool stream_overlay_b_was_down_ = false; bool overlay_chord_latched_ = false; opennow::input::OverlayChordState overlay_chord_state_; diff --git a/app/src/cloud_launch_internal.hpp b/app/src/cloud_launch_internal.hpp new file mode 100644 index 00000000..75540069 --- /dev/null +++ b/app/src/cloud_launch_internal.hpp @@ -0,0 +1,12 @@ +#pragma once + +#include "gfn_client.hpp" +#include "stream_settings.hpp" +#include + +namespace opennow +{ +void PresentCloudStream(const SessionInfo& info, const GfnClient& client, + const AuthSession& auth, const std::string& title, + const StreamSettings& settings); +} diff --git a/app/src/queue_view.cpp b/app/src/queue_view.cpp new file mode 100644 index 00000000..b22e48ff --- /dev/null +++ b/app/src/queue_view.cpp @@ -0,0 +1,236 @@ +#include "queue_view.hpp" +#include "localization.hpp" +#include "ui_theme.hpp" + +#include +#include + +namespace opennow +{ +namespace +{ + +class QueuePositionLabel final : public brls::Label +{ + public: + QueuePositionLabel() { font = ui::Font(ui::FontRole::Display); } + void setText(const std::string& value) override + { + value_ = value; + brls::Label::setText(value); + } + void draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style, brls::FrameContext*) override + { + nvgSave(vg); + nvgIntersectScissor(vg, x, y, width, height); + nvgFontFaceId(vg, ui::Font(ui::FontRole::Display)); + nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); + const bool known = !value_.empty() && value_.front() >= '0' && value_.front() <= '9'; + const size_t count = known ? value_.size() : 1; + const float card_width = known ? std::min(150.0f, (width - 12.0f * static_cast(count - 1)) / static_cast(count)) : std::min(340.0f, width); + for (size_t index = 0; index < count; ++index) + { + const float card_x = x + static_cast(index) * (card_width + 12); + nvgBeginPath(vg); + nvgRoundedRect(vg, card_x, y, card_width, height, 12); + nvgFillColor(vg, ui::Raised()); + nvgFill(vg); + nvgStrokeWidth(vg, 1); + nvgStrokeColor(vg, ui::Rule()); + nvgStroke(vg); + nvgBeginPath(vg); + nvgRect(vg, card_x, y + height * 0.5f, card_width, 1); + nvgFillColor(vg, ui::Rule()); + nvgFill(vg); + nvgFontSize(vg, known ? std::min(112.0f, card_width) : 58.0f); + if (!known) + { + const float text_width = nvgTextBounds(vg, 0, 0, value_.c_str(), nullptr, nullptr); + if (text_width > card_width - 24) + nvgFontSize(vg, 58.0f * (card_width - 24) / text_width); + } + nvgFillColor(vg, ui::Text()); + const char digit[] = {value_[index], '\0'}; + nvgText(vg, card_x + card_width * 0.5f, y + height * 0.5f, + known ? digit : value_.c_str(), nullptr); + } + nvgRestore(vg); + } + + private: + std::string value_; +}; + +} + +QueueView::QueueView(const QueueDisplayState& state, const StreamSettings& settings, + std::function minimize, std::function cancel) + : brls::Box(brls::Axis::COLUMN) +{ + setId("queue/root"); + setBackgroundColor(ui::Ground()); + auto* header = new brls::Box(brls::Axis::ROW); + header->setHeight(76); + header->setShrink(0); + header->setPadding(0, 40, 0, 40); + header->setAlignItems(brls::AlignItems::CENTER); + header->setLineBottom(1); + header->setLineColor(ui::Rule()); + auto* logo = new brls::Image(); + logo->setWidth(62); + logo->setHeight(38); + logo->setScalingType(brls::ImageScalingType::FIT); + logo->setImageFromRes("img/opennow-logo-mark.png"); + logo->setMarginRight(10); + header->addView(logo); + auto* brand = ui::MakeLabel("OpenNOW", 22, ui::Text(), ui::FontRole::Heading); + brand->setGrow(1); + header->addView(brand); + phase_ = ui::MakeLabel(state.status, 16, ui::Muted()); + phase_->setId("queue/phase"); + phase_->setMaxWidth(600); + phase_->setSingleLine(true); + header->addView(phase_); + addView(header); + + auto* content = new brls::Box(brls::Axis::ROW); + content->setGrow(1); + content->setPadding(34, 40, 26, 40); + auto* left = new brls::Box(brls::Axis::COLUMN); + left->setGrow(1); + left->setShrink(1); + left->setMarginRight(64); + left->addView(ui::MakeLabel(Tr("Position in queue"), 15, ui::Green(), ui::FontRole::Medium)); + game_ = ui::MakeLabel(state.game_title, 29, ui::Text(), ui::FontRole::Heading); + game_->setId("queue/game"); + game_->setSingleLine(true); + game_->setMarginTop(6); + game_->setMarginBottom(20); + left->addView(game_); + auto* counter = new brls::Box(brls::Axis::COLUMN); + counter->setHeight(170); + counter->setWidthPercentage(100); + counter->setJustifyContent(brls::JustifyContent::CENTER); + position_ = new QueuePositionLabel(); + position_->setWidthPercentage(100); + position_->setHeight(170); + position_->setId("queue/position"); + position_->setSingleLine(true); + counter->addView(position_); + left->addView(counter); + status_ = ui::MakeLabel("", 25, ui::Text(), ui::FontRole::Heading); + status_->setId("queue/status"); + status_->setSingleLine(true); + status_->setMarginTop(20); + left->addView(status_); + detail_ = ui::MakeLabel("", 18, ui::Muted()); + detail_->setId("queue/detail"); + auto* detail_scroll = new brls::ScrollingFrame(); + detail_scroll->setId("queue/detail-scroll"); + detail_scroll->setGrow(1); + detail_scroll->setMarginTop(6); + detail_scroll->setContentView(detail_); + left->addView(detail_scroll); + content->addView(left); + + auto* right = new brls::Box(brls::Axis::COLUMN); + right->setWidth(480); + right->setShrink(0); + auto* steps = new brls::Box(brls::Axis::ROW); + steps->setHeight(70); + steps->setMarginTop(8); + const char* names[] = {"Queue", "Setup", "Ready"}; + for (size_t index = 0; index < steps_.size(); ++index) + { + auto* column = new brls::Box(brls::Axis::COLUMN); + column->setGrow(1); + column->setMarginRight(index == 2 ? 0 : 8); + column->setLineTop(5); + column->setLineColor(ui::Rule()); + steps_[index] = ui::MakeLabel(Tr(names[index]), 16, ui::Muted()); + steps_[index]->setId("queue/step/" + std::to_string(index)); + steps_[index]->setMarginTop(10); + column->addView(steps_[index]); + steps->addView(column); + } + right->addView(steps); + auto add_summary = [right](const std::string& id, const std::string& title, const std::string& value) { + auto* row = new brls::Box(brls::Axis::ROW); + row->setHeight(46); + row->setAlignItems(brls::AlignItems::CENTER); + row->setLineBottom(1); + row->setLineColor(ui::Rule()); + auto* label = ui::MakeLabel(Tr(title), 16, ui::Muted()); + label->setGrow(1); + row->addView(label); + auto* detail = ui::MakeLabel(value, 17, ui::Text(), ui::FontRole::Medium); + detail->setId(id); + detail->setMaxWidthPercentage(76); + detail->setSingleLine(true); + row->addView(detail); + right->addView(row); + }; + add_summary("queue/region", "Location", ui::ConfiguredLocation(settings.region)); + add_summary("queue/stream-summary", "Stream", ui::StreamSummary(settings)); + add_summary("queue/reminder", "Reminder", Tr("At position") + " " + std::to_string(settings.queue_notify_threshold)); + auto* summary = new ui::NextStreamSummaryView(settings); + summary->setId("queue/next-stream"); + summary->setMarginTop(16); + right->addView(summary); + auto* minimize_row = new ui::ActionRow(Tr("Minimize and browse"), Tr("Queue keeps running"), + [minimize](brls::View*) { minimize(); return true; }); + minimize_row->setId("queue/minimize"); + minimize_row->setMarginTop(22); + right->addView(minimize_row); + minimize_ = minimize_row; + auto* cancel_row = new ui::ActionRow(Tr("Cancel session"), "", + [cancel](brls::View*) { cancel(); return true; }, ui::ActionTone::Destructive); + cancel_row->setId("queue/cancel"); + cancel_row->setMarginTop(12); + right->addView(cancel_row); + cancel_ = cancel_row; + content->addView(right); + addView(content); + auto* footer = new brls::Box(brls::Axis::ROW); + footer->setHeight(60); + footer->setShrink(0); + footer->setPadding(0, 40, 0, 40); + footer->setAlignItems(brls::AlignItems::CENTER); + footer->setLineTop(1); + footer->setLineColor(ui::Rule()); + auto* select = ui::MakeLabel(Tr("A Select Up / Down Choose"), 16, ui::Muted()); + select->setGrow(1); + footer->addView(select); + footer->addView(ui::MakeLabel(Tr("Minus + Plus Reopen queue after minimizing"), 16, ui::Muted())); + addView(footer); + registerAction(Tr("Minimize"), brls::BUTTON_B, + [minimize](brls::View*) { minimize(); return true; }, true); + setLastFocusedView(minimize_row); + Update(state); +} + +void QueueView::Update(const QueueDisplayState& state) +{ + game_->setText(state.game_title); + phase_->setText(Tr(state.status)); + status_->setText(Tr(state.status)); + status_->setTextColor(state.failed ? ui::Danger() : ui::Text()); + detail_->setText(Tr(state.detail)); + minimize_->SetTitle(Tr(state.failed ? "Back to game" : "Minimize and browse")); + minimize_->SetValue(state.failed ? "" : Tr("Queue keeps running")); + cancel_->SetTitle(Tr(state.failed ? "Close" : "Cancel session")); + const std::string position = state.position >= 0 + ? (state.position < 10 ? "0" : "") + std::to_string(state.position) : Tr("Unknown"); + position_->setText(position); + position_->setFontSize(state.position < 0 ? 62 : std::min(112.0f, 480.0f / static_cast(position.size()))); + const int step = state.stage < 2 ? 0 : state.stage == 2 ? 1 : 2; + for (size_t index = 0; index < steps_.size(); ++index) + { + const auto color = !state.failed && static_cast(index) <= step ? ui::Green() : ui::Muted(); + steps_[index]->setTextColor(color); + steps_[index]->getParent()->setLineColor(!state.failed && static_cast(index) <= step ? ui::Green() : ui::Rule()); + } +} + +} diff --git a/app/src/queue_view.hpp b/app/src/queue_view.hpp new file mode 100644 index 00000000..b89a6061 --- /dev/null +++ b/app/src/queue_view.hpp @@ -0,0 +1,42 @@ +#pragma once + +#include "stream_settings.hpp" +#include +#include +#include +#include + +namespace opennow +{ + +namespace ui { class ActionRow; } + +struct QueueDisplayState +{ + std::string game_title; + std::string status; + std::string detail; + int position = -1; + int stage = 0; + bool failed = false; +}; + +class QueueView final : public brls::Box +{ + public: + QueueView(const QueueDisplayState& state, const StreamSettings& settings, + std::function minimize, std::function cancel); + void Update(const QueueDisplayState& state); + + private: + brls::Label* game_; + brls::Label* status_; + brls::Label* position_; + brls::Label* detail_; + brls::Label* phase_; + ui::ActionRow* minimize_; + ui::ActionRow* cancel_; + std::array steps_ {}; +}; + +} diff --git a/app/src/stream_launch.cpp b/app/src/stream_launch.cpp new file mode 100644 index 00000000..e6ae9dd1 --- /dev/null +++ b/app/src/stream_launch.cpp @@ -0,0 +1,17 @@ +#include "cloud_launch_internal.hpp" +#include "StreamView.hpp" +#include + +namespace opennow +{ +void PresentCloudStream(const SessionInfo& info, const GfnClient& client, + const AuthSession& auth, const std::string& title, + const StreamSettings& settings) +{ + const std::string& token = auth.tokens.id_token.empty() + ? auth.tokens.access_token : auth.tokens.id_token; + brls::Application::pushActivity(new brls::Activity(StreamView::create( + info.signaling_url, token, info.session_id, info.media_ip, info.media_port, + info.ice_servers, client, auth, title, settings))); +} +} diff --git a/app/src/stream_overlay_view.cpp b/app/src/stream_overlay_view.cpp new file mode 100644 index 00000000..7dc06c18 --- /dev/null +++ b/app/src/stream_overlay_view.cpp @@ -0,0 +1,186 @@ +#include "stream_overlay_view.hpp" +#include "localization.hpp" +#include "ui_theme.hpp" + +#include +#include +#include + +namespace opennow +{ + +StreamOverlayDisplay FormatStreamOverlay(const StreamOverlaySample& sample) +{ + StreamOverlayDisplay display; + display.game_title = sample.game_title.empty() ? Tr("GeForce NOW session") : sample.game_title; + display.provider = sample.provider.empty() ? "GeForce NOW" : sample.provider; + display.connection = Tr(sample.peer_connected ? "Connected" : sample.signaling_connected ? "Negotiating" : "Connecting"); + display.peer_connected = sample.peer_connected; + display.wifi_warning = sample.wifi_warning; + display.nte_session = sample.nte_session; + char number[96]; + std::snprintf(number, sizeof(number), "%.0f", sample.presented_fps); + display.metrics[0] = number; + std::snprintf(number, sizeof(number), "%.1f", sample.bitrate_mbps); + display.metrics[1] = number; + display.metrics[2] = sample.rtt_ms < 0 ? Tr("Unknown") : std::to_string(sample.rtt_ms); + const auto packets = sample.packets_received + sample.sequence_gaps; + if (packets > 0) { + std::snprintf(number, sizeof(number), "%.2f", static_cast(sample.sequence_gaps) * 100.0 / static_cast(packets)); + display.metrics[3] = number; + } else { + display.metrics[3] = Tr("Unknown"); + } + display.details[0] = sample.width > 0 && sample.height > 0 + ? std::to_string(sample.width) + "×" + std::to_string(sample.height) : Tr("Unknown"); + std::snprintf(number, sizeof(number), "%.0f / %.0f / %.0f", sample.incoming_fps, sample.decoded_fps, sample.presented_fps); + display.details[1] = number; + std::snprintf(number, sizeof(number), "%.1f ms", static_cast(sample.decode_us_p95) / 1000.0); + display.details[2] = number; + std::snprintf(number, sizeof(number), "%.1f ms", static_cast(sample.render_us_p95) / 1000.0); + display.details[3] = number; + display.details[4] = std::to_string(sample.queue_size) + " / " + std::to_string(sample.queue_high_water); + display.details[5] = sample.network.empty() ? Tr("Unknown") : sample.network; + display.details[6] = (sample.codec.empty() ? Tr("Unknown") : sample.codec) + " / " + (sample.location.empty() ? Tr("Auto") : sample.location); + display.details[7] = std::to_string(sample.dropped_frames); + display.details[8] = std::to_string(sample.nack_requests); + display.details[9] = std::to_string(sample.late_packets_dropped); + return display; +} + +void SetStreamOverlayElapsed(StreamOverlayDisplay& display, std::uint64_t seconds) +{ + char elapsed[48]; + std::snprintf(elapsed, sizeof(elapsed), "%llu:%02llu", static_cast(seconds / 60), static_cast(seconds % 60)); + display.elapsed = elapsed; +} + +StreamOverlayView::StreamOverlayView() +{ + setId("stream-overlay/root"); + setFocusable(true); + setHideHighlightBackground(true); + setHideHighlightBorder(true); + logo_.setImageFromRes("img/opennow-logo-mark.png"); + for (size_t index = 0; index < fonts_.size(); ++index) + fonts_[index] = ui::Font(static_cast(index)); +} + +void StreamOverlayView::Update(const StreamOverlaySample& sample) +{ + std::string elapsed = std::move(display_.elapsed); + display_ = FormatStreamOverlay(sample); + display_.elapsed = std::move(elapsed); +} + +void StreamOverlayView::UpdateElapsed(std::uint64_t seconds) +{ + SetStreamOverlayElapsed(display_, seconds); +} + +void StreamOverlayView::draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style, brls::FrameContext*) +{ + nvgSave(vg); + nvgTranslate(vg, x, y); + nvgScale(vg, width / 1280.0f, height / 720.0f); + auto panel = [vg](float px, float py, float w, float h) { + nvgBeginPath(vg); + nvgRoundedRect(vg, px, py, w, h, 12); + nvgFillColor(vg, ui::Raised()); + nvgFill(vg); + nvgStrokeWidth(vg, 1); + nvgStrokeColor(vg, ui::Rule()); + nvgStroke(vg); + }; + auto text = [vg, this](float tx, float ty, const char* copy, float size, NVGcolor color, + ui::FontRole font = ui::FontRole::Body, int align = NVG_ALIGN_LEFT) { + nvgFontFaceId(vg, fonts_[static_cast(font)]); + nvgFontSize(vg, size); + nvgFillColor(vg, color); + nvgTextAlign(vg, align | NVG_ALIGN_MIDDLE); + nvgText(vg, tx, ty, copy, nullptr); + }; + nvgBeginPath(vg); + nvgRect(vg, 0, 0, 1280, 720); + nvgFillColor(vg, nvgRGBA(11, 12, 14, 242)); + nvgFill(vg); + if (logo_.getTexture() > 0) { + const float mark_height = 48.0f * logo_.getOriginalImageHeight() / logo_.getOriginalImageWidth(); + const float mark_y = 44.0f - mark_height * 0.5f; + nvgBeginPath(vg); + nvgRect(vg, 40, mark_y, 48, mark_height); + nvgFillPaint(vg, nvgImagePattern(vg, 40, mark_y, 48, mark_height, 0, logo_.getTexture(), 1)); + nvgFill(vg); + } + text(98, 44, "OpenNOW · Stream status", 15, ui::Muted(), ui::FontRole::Medium); + nvgFontFaceId(vg, fonts_[static_cast(ui::FontRole::Heading)]); + nvgFontSize(vg, 29); + const bool long_title = nvgTextBounds(vg, 0, 0, display_.game_title.c_str(), nullptr, nullptr) > 860; + nvgSave(vg); + nvgScissor(vg, 40, 66, long_title ? 818 : 860, 48); + text(40, 88, display_.game_title.c_str(), 29, ui::Text(), ui::FontRole::Heading); + nvgRestore(vg); + if (long_title) + text(870, 88, "…", 29, ui::Text(), ui::FontRole::Heading); + panel(940, 70, 300, 36); + text(1090, 88, display_.connection.c_str(), 17, display_.peer_connected ? ui::Green() : ui::Muted(), ui::FontRole::Medium, NVG_ALIGN_CENTER); + nvgSave(vg); + nvgScissor(vg, 40, 108, 1100, 28); + text(40, 124, display_.provider.c_str(), 17, ui::Muted()); + nvgRestore(vg); + text(1240, 124, display_.elapsed.c_str(), 17, ui::Muted(), ui::FontRole::Medium, NVG_ALIGN_RIGHT); + + static constexpr const char* metric_labels[] = {"Display FPS", "Bitrate", "Ping", "Packet loss"}; + static constexpr const char* units[] = {"fps", "Mbps", "ms", "%"}; + for (size_t index = 0; index < 4; ++index) + { + const float mx = 40 + static_cast(index) * 303.75f; + panel(mx, 160, 288.75f, 116); + text(mx + 18, 185, metric_labels[index], 16, ui::Muted()); + text(mx + 18, 224, display_.metrics[index].c_str(), display_.metrics[index].size() > 6 ? 29 : 38, ui::Text(), ui::FontRole::Display); + nvgFontFaceId(vg, fonts_[static_cast(ui::FontRole::Display)]); + nvgFontSize(vg, display_.metrics[index].size() > 6 ? 29 : 38); + const float value_width = nvgTextBounds(vg, 0, 0, display_.metrics[index].c_str(), nullptr, nullptr); + text(mx + 26 + value_width, 228, units[index], 16, ui::Muted()); + text(mx + 18, 254, index == 0 ? "Presented frames" : index == 1 ? "Incoming video" : index == 2 ? "Round-trip time" : "Sequence gaps / total", 13, ui::Muted()); + } + panel(40, 296, 730, 344); + panel(794, 296, 446, 344); + text(60, 324, "Stream details", 18, ui::Text(), ui::FontRole::Heading); + text(814, 324, "Controller shortcuts", 18, ui::Text(), ui::FontRole::Heading); + static constexpr const char* detail_labels[] = { + "Resolution", "FPS in / decode / display", "Decode latency p95", "Render latency p95", "Decoder queue / high-water", + "Network", "Codec / configured location", "Dropped video frames", "NACK recovery requests", "Late packets dropped"}; + for (size_t index = 0; index < 10; ++index) + { + const size_t column = index / 5; + const float dx = 60 + static_cast(column) * 354; + const float dy = 366 + static_cast(index % 5) * 48; + text(dx, dy, detail_labels[index], 14, ui::Muted()); + nvgSave(vg); + nvgScissor(vg, dx, dy + 8, 330, 24); + text(dx, dy + 24, display_.details[index].c_str(), 16, ui::Text(), ui::FontRole::Mono); + nvgRestore(vg); + } + static constexpr const char* keys[] = {"Minus + Plus", "Minus + Y", "Keyboard strip", "B", "ZL + ZR + −", "Hold +", "Touch", "L + X"}; + static constexpr const char* actions[] = {"Open or close this menu", "On-screen keyboard", "Esc, Win and Windows shortcuts", "Close menu or keyboard", "Exit the stream", "Xbox Guide button", "Remote pointer", "NTE auto-login"}; + for (size_t index = 0; index < (display_.nte_session ? 8u : 7u); ++index) + { + const float sy = 358 + static_cast(index) * 32; + panel(814, sy - 12, 120, 28); + text(874, sy + 2, keys[index], 14, ui::Text(), ui::FontRole::Medium, NVG_ALIGN_CENTER); + text(948, sy + 2, actions[index], 16, ui::Muted()); + } + if (display_.wifi_warning) + text(814, 615, "2.4 GHz Wi-Fi · Use 5 GHz or Ethernet", 14, ui::Danger(), ui::FontRole::Medium); + nvgBeginPath(vg); + nvgRect(vg, 0, 660, 1280, 1); + nvgFillColor(vg, ui::Rule()); + nvgFill(vg); + text(40, 690, "Menu controls stay on your Switch and are not sent to the game.", 16, ui::Muted()); + text(1240, 690, "B Close menu", 17, ui::Text(), ui::FontRole::Medium, NVG_ALIGN_RIGHT); + nvgRestore(vg); +} + +} diff --git a/app/src/stream_overlay_view.hpp b/app/src/stream_overlay_view.hpp new file mode 100644 index 00000000..539aaad5 --- /dev/null +++ b/app/src/stream_overlay_view.hpp @@ -0,0 +1,72 @@ +#pragma once + +#include +#include +#include +#include + +namespace opennow +{ + +struct StreamOverlaySample +{ + std::string game_title; + std::string provider; + std::string codec; + std::string location; + std::string network; + float incoming_fps = 0; + float decoded_fps = 0; + float presented_fps = 0; + float bitrate_mbps = 0; + int rtt_ms = -1; + int width = 0; + int height = 0; + std::uint64_t decode_us_p95 = 0; + std::uint64_t render_us_p95 = 0; + std::uint64_t queue_size = 0; + std::uint64_t queue_high_water = 0; + std::uint64_t packets_received = 0; + std::uint64_t sequence_gaps = 0; + std::uint64_t late_packets_dropped = 0; + std::uint64_t dropped_frames = 0; + std::uint64_t nack_requests = 0; + bool peer_connected = false; + bool signaling_connected = false; + bool wifi_warning = false; + bool nte_session = false; +}; + +struct StreamOverlayDisplay +{ + std::string game_title; + std::string provider; + std::string connection; + std::array metrics; + std::array details; + std::string elapsed; + bool peer_connected = false; + bool wifi_warning = false; + bool nte_session = false; +}; + +StreamOverlayDisplay FormatStreamOverlay(const StreamOverlaySample& sample); +void SetStreamOverlayElapsed(StreamOverlayDisplay& display, std::uint64_t seconds); + +class StreamOverlayView final : public brls::View +{ + public: + StreamOverlayView(); + void Update(const StreamOverlaySample& sample); + void UpdateElapsed(std::uint64_t seconds); + const StreamOverlayDisplay& Display() const { return display_; } + void draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style style, brls::FrameContext* ctx) override; + + private: + brls::Image logo_; + std::array fonts_ {}; + StreamOverlayDisplay display_; +}; + +} diff --git a/app/src/stream_view_overlay.cpp b/app/src/stream_view_overlay.cpp index 71e478c1..46e15644 100644 --- a/app/src/stream_view_overlay.cpp +++ b/app/src/stream_view_overlay.cpp @@ -1,4 +1,5 @@ #include "StreamView.hpp" +#include "ui_theme.hpp" #include #include @@ -11,7 +12,7 @@ void StreamView::DrawDebugOverlay(NVGcontext* vg, float x, float y, float width) std::string debug_text = session_->get_debug_info(); nvgFontSize(vg, 24.0f); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgFillColor(vg, nvgRGB(255, 255, 255)); nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_TOP); nvgTextBox(vg, x + 50.0f, y + 50.0f, width - 100.0f, debug_text.c_str(), nullptr); @@ -76,10 +77,10 @@ void StreamView::DrawPreparingStream( nvgFillColor(vg, nvgRGBA(16, 18, 22, 248)); nvgFill(vg); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); nvgFontSize(vg, 14.0f); - nvgFillColor(vg, nvgRGB(77, 218, 130)); + nvgFillColor(vg, opennow::ui::Green()); nvgText(vg, panel_x + 42.0f, panel_y + 45.0f, "NOW LOADING", nullptr); nvgFontSize(vg, 28.0f); nvgFillColor(vg, nvgRGB(241, 245, 247)); @@ -99,7 +100,7 @@ void StreamView::DrawPreparingStream( nvgFill(vg); nvgBeginPath(vg); nvgRect(vg, first_x, rail_y - 2.0f, gap * std::min(stage, 2), 4.0f); - nvgFillColor(vg, nvgRGB(77, 218, 130)); + nvgFillColor(vg, opennow::ui::Green()); nvgFill(vg); const float pulse = 0.5f + 0.5f * static_cast(std::sin(seconds * 3.1)); @@ -113,12 +114,12 @@ void StreamView::DrawPreparingStream( { nvgBeginPath(vg); nvgCircle(vg, cx, rail_y, 29.0f + pulse * 3.0f); - nvgFillColor(vg, nvgRGBA(77, 218, 130, 22 + static_cast(pulse * 24.0f))); + nvgFillColor(vg, nvgRGBA(118, 232, 58, 22 + static_cast(pulse * 24.0f))); nvgFill(vg); } nvgBeginPath(vg); nvgCircle(vg, cx, rail_y, 22.0f); - nvgFillColor(vg, complete || active ? nvgRGB(77, 218, 130) : nvgRGB(24, 28, 33)); + nvgFillColor(vg, complete || active ? opennow::ui::Green() : nvgRGB(24, 28, 33)); nvgFill(vg); nvgStrokeWidth(vg, 2.0f); nvgStrokeColor(vg, complete || active ? nvgRGB(108, 235, 153) : nvgRGB(43, 48, 55)); @@ -145,13 +146,13 @@ void StreamView::DrawPreparingStream( nvgArc(vg, spinner_x, spinner_y, 19.0f, angle, angle + kPi * 1.42f, NVG_CW); nvgStrokeWidth(vg, 5.0f); nvgLineCap(vg, NVG_ROUND); - nvgStrokeColor(vg, nvgRGB(77, 218, 130)); + nvgStrokeColor(vg, opennow::ui::Green()); nvgStroke(vg); const float head_angle = angle + kPi * 1.42f; nvgBeginPath(vg); nvgCircle(vg, spinner_x + std::cos(head_angle) * 19.0f, spinner_y + std::sin(head_angle) * 19.0f, 3.4f); - nvgFillColor(vg, nvgRGB(123, 242, 166)); + nvgFillColor(vg, opennow::ui::Green()); nvgFill(vg); nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); @@ -219,11 +220,11 @@ void StreamView::DrawPerformanceOverlay(NVGcontext* vg, float x, float y) { nvgBeginPath(vg); nvgRoundedRect(vg, box_x + 6.0f, box_y + 7.0f, 4.0f, 32.0f, 2.0f); - nvgFillColor(vg, nvgRGB(55, 220, 125)); + nvgFillColor(vg, opennow::ui::Green()); nvgFill(vg); nvgFontSize(vg, 18.0f); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgFillColor(vg, nvgRGB(245, 250, 247)); nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); nvgText(vg, box_x + 20.0f, box_y + 23.0f, text, nullptr); @@ -269,11 +270,11 @@ void StreamView::DrawControllerNotice( nvgBeginPath(vg); nvgRoundedRect(vg, box_x, box_y, 6.0f, box_height, 3.0f); - nvgFillColor(vg, nvgRGB(55, 220, 125)); + nvgFillColor(vg, opennow::ui::Green()); nvgFill(vg); nvgFontSize(vg, 21.0f); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgFillColor(vg, nvgRGB(248, 252, 249)); nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); nvgText( @@ -324,7 +325,7 @@ void StreamView::DrawNetworkWarning( nvgFillColor(vg, nvgRGB(255, 184, 58)); nvgFill(vg); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); nvgFontSize(vg, 18.0f); nvgFillColor(vg, nvgRGB(252, 244, 224)); @@ -342,288 +343,55 @@ void StreamView::DrawStreamOverlay( { if (!stream_overlay_visible_) return; - - const VideoPerformanceCounters counters = previous_video_counters_; - const StreamTransportHealth health = - session_ ? session_->get_transport_health() : StreamTransportHealth {}; - const StreamNetworkCounters network = network_counters_; - const bool wifi_warning = - opennow::network::ShouldWarnForStreaming(network_info_.wifi_band); - - nvgBeginPath(vg); - nvgRect(vg, x, y, width, height); - nvgFillColor(vg, nvgRGBA(2, 5, 7, 190)); - nvgFill(vg); - - const float margin_x = std::clamp(width * 0.0265f, 22.0f, 40.0f); - const float margin_y = std::clamp(height * 0.033f, 18.0f, 30.0f); - const float panel_x = x + margin_x; - const float panel_y = y + margin_y; - const float panel_width = width - margin_x * 2.0f; - const float panel_height = height - margin_y * 2.0f; - nvgBeginPath(vg); - nvgRoundedRect(vg, panel_x, panel_y, panel_width, panel_height, 18.0f); - nvgFillColor(vg, nvgRGBA(12, 16, 19, 248)); - nvgFill(vg); - nvgStrokeWidth(vg, 1.5f); - nvgStrokeColor(vg, nvgRGBA(103, 118, 124, 82)); - nvgStroke(vg); - - const float padding = 30.0f; - const float header_bottom = panel_y + 105.0f; - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, nvgRGB(77, 218, 130)); - nvgText(vg, panel_x + padding, panel_y + 23.0f, "OPENNOW / STREAM STATUS", nullptr); - nvgFontSize(vg, 25.0f); - nvgFillColor(vg, nvgRGB(244, 248, 246)); - nvgText(vg, panel_x + padding, panel_y + 54.0f, - game_title_.empty() ? "GeForce NOW session" : game_title_.c_str(), nullptr); - nvgFontSize(vg, 14.0f); - nvgFillColor(vg, nvgRGB(142, 153, 160)); - const std::string provider = - auth_.provider.display_name.empty() ? "GeForce NOW" : auth_.provider.display_name; - nvgText(vg, panel_x + padding, panel_y + 80.0f, - (provider + " cloud session").c_str(), nullptr); - - const std::string connection_status = - health.peer_completed ? "CONNECTED" : "CONNECTING"; - const float status_width = health.peer_completed ? 112.0f : 122.0f; - const float status_x = panel_x + panel_width - padding - status_width; - nvgBeginPath(vg); - nvgRoundedRect(vg, status_x, panel_y + 24.0f, status_width, 30.0f, 15.0f); - nvgFillColor(vg, health.peer_completed - ? nvgRGBA(77, 218, 130, 25) - : nvgRGBA(255, 184, 58, 25)); - nvgFill(vg); - nvgStrokeWidth(vg, 1.0f); - nvgStrokeColor(vg, health.peer_completed - ? nvgRGBA(77, 218, 130, 95) - : nvgRGBA(255, 184, 58, 95)); - nvgStroke(vg); - nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, health.peer_completed - ? nvgRGB(114, 232, 157) - : nvgRGB(255, 198, 91)); - nvgText(vg, status_x + status_width * 0.5f, panel_y + 39.0f, - connection_status.c_str(), nullptr); - - nvgTextAlign(vg, NVG_ALIGN_RIGHT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 13.0f); - nvgFillColor(vg, nvgRGB(151, 161, 166)); - nvgText(vg, panel_x + panel_width - padding, panel_y + 79.0f, - "B Close menu", nullptr); - - nvgBeginPath(vg); - nvgRect(vg, panel_x + padding, header_bottom, panel_width - padding * 2.0f, 1.0f); - nvgFillColor(vg, nvgRGBA(151, 164, 170, 35)); - nvgFill(vg); - - const float content_top = header_bottom + 24.0f; - const float divider_x = panel_x + panel_width * 0.625f; - const float left_x = panel_x + padding; - const float left_width = divider_x - left_x - 26.0f; - const float right_x = divider_x + 28.0f; - const float right_edge = panel_x + panel_width - padding; - - nvgBeginPath(vg); - nvgRect(vg, divider_x, content_top, 1.0f, - panel_y + panel_height - padding - content_top); - nvgFillColor(vg, nvgRGBA(151, 164, 170, 35)); - nvgFill(vg); - - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 13.0f); - nvgFillColor(vg, nvgRGB(172, 183, 187)); - nvgText(vg, left_x, content_top, "LIVE PERFORMANCE", nullptr); - - const float metric_top = content_top + 20.0f; - const float metric_gap = 8.0f; - const float metric_width = (left_width - metric_gap * 3.0f) * 0.25f; - const float metric_height = 76.0f; - auto draw_metric = [vg, metric_top, metric_width, metric_height]( - float metric_x, const char* label, - const std::string& value, bool caution) { - nvgBeginPath(vg); - nvgRoundedRect(vg, metric_x, metric_top, metric_width, metric_height, 10.0f); - nvgFillColor(vg, nvgRGBA(24, 30, 33, 225)); - nvgFill(vg); - nvgStrokeWidth(vg, 1.0f); - nvgStrokeColor(vg, caution - ? nvgRGBA(255, 184, 58, 80) - : nvgRGBA(151, 164, 170, 28)); - nvgStroke(vg); - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, nvgRGB(132, 144, 150)); - nvgText(vg, metric_x + 13.0f, metric_top + 21.0f, label, nullptr); - nvgFontSize(vg, 23.0f); - nvgFillColor(vg, caution ? nvgRGB(255, 198, 91) : nvgRGB(240, 246, 242)); - nvgText(vg, metric_x + 13.0f, metric_top + 51.0f, value.c_str(), nullptr); - }; - - char number[96]; - std::snprintf(number, sizeof(number), "%.0f", presented_fps_); - draw_metric(left_x, "DISPLAY FPS", number, false); - std::snprintf(number, sizeof(number), "%.1f Mbps", stream_bitrate_mbps_); - draw_metric(left_x + (metric_width + metric_gap), "BITRATE", number, false); - const std::string ping = - network_rtt_ms_ >= 0 ? std::to_string(network_rtt_ms_) + " ms" : "-- ms"; - draw_metric(left_x + (metric_width + metric_gap) * 2.0f, "PING", ping, - network_rtt_ms_ >= 80); - - const std::uint64_t packet_total = - static_cast(network.packets_received) + network.sequence_gaps; - const double packet_loss = packet_total > 0 - ? static_cast(network.sequence_gaps) * 100.0 / - static_cast(packet_total) - : 0.0; - std::snprintf(number, sizeof(number), "%.2f%%", packet_loss); - draw_metric(left_x + (metric_width + metric_gap) * 3.0f, "PACKET LOSS", number, - packet_loss >= 1.0); - - const float details_title_y = metric_top + metric_height + 24.0f; - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 13.0f); - nvgFillColor(vg, nvgRGB(172, 183, 187)); - nvgText(vg, left_x, details_title_y, "STREAM DETAILS", nullptr); - - const float details_top = details_title_y + 20.0f; - const float detail_gap = 26.0f; - const float detail_width = (left_width - detail_gap) * 0.5f; - auto draw_detail = [vg, details_top, detail_width]( - float column_x, int row, const std::string& label, - const std::string& value, bool caution = false) { - const float row_y = details_top + row * 36.0f; - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 13.0f); - nvgFillColor(vg, nvgRGB(132, 144, 150)); - nvgText(vg, column_x, row_y + 13.0f, label.c_str(), nullptr); - nvgTextAlign(vg, NVG_ALIGN_RIGHT | NVG_ALIGN_MIDDLE); - nvgFillColor(vg, caution ? nvgRGB(255, 198, 91) : nvgRGB(225, 232, 228)); - nvgText(vg, column_x + detail_width, row_y + 13.0f, value.c_str(), nullptr); - nvgBeginPath(vg); - nvgRect(vg, column_x, row_y + 30.0f, detail_width, 1.0f); - nvgFillColor(vg, nvgRGBA(151, 164, 170, 24)); - nvgFill(vg); - }; - - const std::string resolution = session_ - ? std::to_string(session_->stream_width()) + " × " + - std::to_string(session_->stream_height()) - : "--"; - draw_detail(left_x, 0, "Resolution", resolution); - std::snprintf(number, sizeof(number), "%.0f / %.0f / %.0f", - incoming_fps_, decoded_fps_, presented_fps_); - draw_detail(left_x, 1, "FPS in / decode / display", number); - draw_detail(left_x, 2, "Decode latency p95", - std::to_string(counters.decode_us_p95 / 1000) + " ms"); - draw_detail(left_x, 3, "Render latency p95", - std::to_string(counters.render_us_p95 / 1000) + " ms"); - draw_detail(left_x, 4, "Decoder queue", - std::to_string(counters.decode_queue_size) + " / " + - std::to_string(counters.decode_queue_high_water) + " high"); - draw_detail(left_x, 5, "Codec / location", - stream_codec_ + " / " + stream_region_); - - const float second_column_x = left_x + detail_width + detail_gap; - std::string network_connection = "Unknown"; - if (network_info_.type == opennow::NetworkConnectionType::Ethernet) - network_connection = "Ethernet"; - else if (network_info_.type == opennow::NetworkConnectionType::Wifi) - network_connection = opennow::network::WifiBandLabel(network_info_.wifi_band); - draw_detail(second_column_x, 0, "Network", network_connection, wifi_warning); - std::snprintf(number, sizeof(number), "%.2f%% · %u late", - packet_loss, network.late_packets_dropped); - draw_detail(second_column_x, 1, "Packet loss", number, packet_loss >= 1.0); - draw_detail(second_column_x, 2, "Dropped video frames", - std::to_string(network.access_units_dropped), - network.access_units_dropped > 0); - draw_detail(second_column_x, 3, "NACK recovery requests", - std::to_string(network.nack_requests)); - draw_detail(second_column_x, 4, "Connection", - health.peer_completed ? "Connected" : "Negotiating"); - const auto elapsed = std::chrono::duration_cast( - now - stream_started_at_).count(); - std::snprintf(number, sizeof(number), "%lld:%02lld", - static_cast(elapsed / 60), - static_cast(elapsed % 60)); - draw_detail(second_column_x, 5, "Session time", number); - - float right_y = content_top; - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 13.0f); - nvgFillColor(vg, nvgRGB(172, 183, 187)); - nvgText(vg, right_x, right_y, "CONTROLLER SHORTCUTS", nullptr); - right_y += 27.0f; - - if (wifi_warning) { - const float warning_height = 62.0f; - nvgBeginPath(vg); - nvgRoundedRect(vg, right_x, right_y, right_edge - right_x, - warning_height, 10.0f); - nvgFillColor(vg, nvgRGBA(255, 184, 58, 16)); - nvgFill(vg); - nvgStrokeWidth(vg, 1.0f); - nvgStrokeColor(vg, nvgRGBA(255, 184, 58, 75)); - nvgStroke(vg); - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 15.0f); - nvgFillColor(vg, nvgRGB(255, 205, 108)); - nvgText(vg, right_x + 14.0f, right_y + 20.0f, - "2.4 GHz Wi-Fi detected", nullptr); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, nvgRGB(190, 194, 196)); - nvgText(vg, right_x + 14.0f, right_y + 43.0f, - "Use 5 GHz or Ethernet for smoother streaming.", nullptr); - right_y += warning_height + 13.0f; + if (!stream_overlay_view_) + stream_overlay_view_ = std::make_unique(); + if (now >= stream_overlay_next_sample_) + { + const auto health = session_ ? session_->get_transport_health() : StreamTransportHealth {}; + const auto& counters = previous_video_counters_; + const auto& network = network_counters_; + opennow::StreamOverlaySample sample; + sample.game_title = game_title_; + sample.provider = auth_.provider.display_name; + sample.codec = stream_codec_; + sample.location = stream_region_; + if (!network_info_.connected) + sample.network = "Disconnected"; + else if (network_info_.type == opennow::NetworkConnectionType::Ethernet) + sample.network = "Ethernet"; + else if (network_info_.type == opennow::NetworkConnectionType::Wifi) + sample.network = opennow::network::WifiBandLabel(network_info_.wifi_band); + sample.incoming_fps = incoming_fps_; + sample.decoded_fps = decoded_fps_; + sample.presented_fps = presented_fps_; + sample.bitrate_mbps = stream_bitrate_mbps_; + sample.rtt_ms = network_rtt_ms_; + sample.width = session_ ? session_->stream_width() : 0; + sample.height = session_ ? session_->stream_height() : 0; + sample.decode_us_p95 = counters.decode_us_p95; + sample.render_us_p95 = counters.render_us_p95; + sample.queue_size = counters.decode_queue_size; + sample.queue_high_water = counters.decode_queue_high_water; + sample.packets_received = network.packets_received; + sample.sequence_gaps = network.sequence_gaps; + sample.late_packets_dropped = network.late_packets_dropped; + sample.dropped_frames = network.access_units_dropped; + sample.nack_requests = network.nack_requests; + sample.peer_connected = health.peer_completed; + sample.signaling_connected = health.signaling_connected; + sample.wifi_warning = opennow::network::ShouldWarnForStreaming(network_info_.wifi_band); + sample.nte_session = is_nte_session_; + stream_overlay_view_->Update(sample); + stream_overlay_next_sample_ = now + std::chrono::milliseconds(750); } - - auto draw_shortcut = [vg, right_x]( - float& row_y, const char* keys, const char* action, - bool emphasized = false) { - const float key_width = 132.0f; - nvgBeginPath(vg); - nvgRoundedRect(vg, right_x, row_y, key_width, 30.0f, 7.0f); - nvgFillColor(vg, emphasized - ? nvgRGBA(77, 218, 130, 22) - : nvgRGBA(31, 38, 42, 230)); - nvgFill(vg); - nvgStrokeWidth(vg, 1.0f); - nvgStrokeColor(vg, emphasized - ? nvgRGBA(77, 218, 130, 85) - : nvgRGBA(140, 154, 161, 65)); - nvgStroke(vg); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, emphasized - ? nvgRGB(122, 235, 164) - : nvgRGB(231, 237, 233)); - nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); - nvgText(vg, right_x + key_width * 0.5f, row_y + 15.0f, keys, nullptr); - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 13.0f); - nvgFillColor(vg, nvgRGB(188, 198, 202)); - nvgText(vg, right_x + key_width + 15.0f, row_y + 15.0f, action, nullptr); - row_y += 42.0f; - }; - - draw_shortcut(right_y, "MINUS + PLUS", "Open or close this menu", true); - draw_shortcut(right_y, "MINUS + Y", "Open the on-screen keyboard"); - draw_shortcut(right_y, "KEYBOARD STRIP", "Tap Esc, Win or Windows shortcuts"); - draw_shortcut(right_y, "B", "Close menu or keyboard"); - draw_shortcut(right_y, "ZL + ZR + MINUS", "Exit the stream"); - draw_shortcut(right_y, "HOLD PLUS", "Press the Xbox Guide button"); - draw_shortcut(right_y, "TOUCH", "Move and click the remote pointer"); - if (is_nte_session_) - draw_shortcut(right_y, "L + X", "Start NTE auto-login"); - - nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, nvgRGB(103, 116, 122)); - nvgText(vg, right_x, panel_y + panel_height - 26.0f, - "Menu controls stay on your Switch and are not sent to the game.", nullptr); + const auto elapsed = std::chrono::duration_cast(now - stream_started_at_).count(); + if (elapsed != stream_overlay_elapsed_seconds_) + { + stream_overlay_elapsed_seconds_ = elapsed; + stream_overlay_view_->UpdateElapsed(static_cast(std::max(0, elapsed))); + } + stream_overlay_view_->draw(vg, x, y, width, height, + brls::Application::getStyle(), nullptr); } void StreamView::DrawNteAutoLoginStatus( @@ -651,9 +419,9 @@ void StreamView::DrawNteAutoLoginStatus( nvgFill(vg); nvgBeginPath(vg); nvgRoundedRect(vg, box_x, box_y, 6.0f, box_height, 3.0f); - nvgFillColor(vg, nvgRGB(55, 220, 125)); + nvgFillColor(vg, opennow::ui::Green()); nvgFill(vg); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgFontSize(vg, 19.0f); nvgFillColor(vg, nvgRGB(246, 250, 248)); nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); @@ -814,7 +582,7 @@ void StreamView::DrawStreamEndNotice( nvgRoundedRect(vg, box_x, box_y, 7.0f, box_height, 3.5f); nvgFillColor(vg, nvgRGB(255, 91, 91)); nvgFill(vg); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); nvgFontSize(vg, 23.0f); nvgFillColor(vg, nvgRGB(252, 246, 246)); @@ -869,7 +637,7 @@ void StreamView::DrawSessionLimitNotice( nvgFill(vg); nvgFontSize(vg, prominent ? 22.0f : 21.0f); - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); + nvgFontFaceId(vg, opennow::ui::Font(opennow::ui::FontRole::Body)); nvgFillColor(vg, nvgRGB(250, 252, 250)); nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); nvgText(vg, box_x + box_width * 0.5f, box_y + box_height * 0.5f, text.c_str(), nullptr); diff --git a/app/src/ui_helpers.cpp b/app/src/ui_helpers.cpp index a5b58394..f511fc39 100644 --- a/app/src/ui_helpers.cpp +++ b/app/src/ui_helpers.cpp @@ -1,95 +1,141 @@ #include "ui_helpers.hpp" #include "app_state.hpp" -#include "cover_image_cache.hpp" +#include "queue_view.hpp" +#include "cloud_launch_internal.hpp" #include "cloud_launch_state.hpp" #include "play_history.hpp" #include "session_error_policy.hpp" #include "localization.hpp" #include "network_utils.hpp" #include +#ifdef __SWITCH__ #include -#include +#endif #include -#include #include #include +#include #include -#include "StreamView.hpp" namespace opennow { namespace { -class LaunchAnimationView; +class QueueActivity; struct QueueSessionState { CloudLaunchState launch; GfnClient client; AuthSession auth; + StreamSettings settings; std::string game_title; std::string title = "Checking your NVIDIA account"; std::string detail = "Validating the saved session before requesting a cloud rig."; int stage = 0; int position = -1; - float progress = 0.08f; bool minimized = false; bool notified = false; - brls::Dialog* dialog = nullptr; - LaunchAnimationView* animation = nullptr; - brls::Label* stage_label = nullptr; - brls::Label* detail_label = nullptr; + QueueActivity* activity = nullptr; + QueueView* view = nullptr; }; std::shared_ptr active_queue; void CancelQueue(const std::shared_ptr& state); -class QueueDialog final : public brls::Dialog +class QueueActivity final : public brls::Activity { public: - QueueDialog(brls::Box* content, std::shared_ptr state) - : brls::Dialog(content), state_(std::move(state)) + explicit QueueActivity(std::shared_ptr state) + : state_(std::move(state)) { - state_->dialog = this; + auto* view = new QueueView(Display(), state_->settings, + [this] { Dismiss(); }, + [this] { CancelQueue(state_); Dismiss(); }); + state_->view = view; + state_->activity = this; + state_->minimized = false; } - ~QueueDialog() override + brls::View* createContentView() override { return state_->view; } + + ~QueueActivity() override { + StopDismissWatch(); Detach(); } - void dismiss(std::function callback = [] {}) override + void willDisappear(bool reset_state = false) override { - Detach(); - brls::Dialog::dismiss(std::move(callback)); + if (reset_state) + Detach(); + brls::Activity::willDisappear(reset_state); } - void AddCancelButton(const std::string& label) + void onResume() override { - addButton(label, [] {}); - button2->registerClickAction([this](brls::View*) { - CancelQueue(state_); - dismiss(); - return true; + if (!dismiss_pending_ || dismiss_watch_) + return; + dismiss_watch_ = brls::Application::getRunLoopEvent()->subscribe([this] { + const auto stack = brls::Application::getActivitiesStack(); + if (stack.empty() || stack.back() != this || !dismiss_pending_) + return; + dismiss_pending_ = false; + brls::sync([state = state_] { + if (state->activity) + state->activity->Dismiss(); + }); }); } + void onPause() override { StopDismissWatch(); } + + void Dismiss(std::function callback = [] {}) + { + StopDismissWatch(); + const auto stack = brls::Application::getActivitiesStack(); + if (!stack.empty() && stack.back() != this) + { + dismiss_pending_ = true; + state_->view = nullptr; + callback(); + return; + } + dismiss_pending_ = false; + Detach(); + brls::Application::popActivity(brls::TransitionAnimation::NONE, std::move(callback)); + } + + QueueDisplayState Display() const + { + return {state_->game_title, state_->title, state_->detail, + state_->position, state_->stage, !state_->launch.running()}; + } + private: + void StopDismissWatch() + { + if (!dismiss_watch_) + return; + brls::Application::getRunLoopEvent()->unsubscribe(*dismiss_watch_); + dismiss_watch_.reset(); + } + void Detach() { - if (state_->dialog != this) + if (state_->activity != this) return; - state_->dialog = nullptr; - state_->animation = nullptr; - state_->stage_label = nullptr; - state_->detail_label = nullptr; + state_->activity = nullptr; + state_->view = nullptr; state_->minimized = state_->launch.running(); } std::shared_ptr state_; + bool dismiss_pending_ = false; + std::optional dismiss_watch_; }; void FinishQueue(const std::shared_ptr& state) @@ -114,136 +160,11 @@ void CancelQueue(const std::shared_ptr& state) } } -class LaunchAnimationView final : public brls::View +void UpdateQueue(const std::shared_ptr& state) { - public: - LaunchAnimationView() - { - setWidth(620); - setHeight(168); - } - - void SetState(int source_stage, float progress) - { - visual_stage_ = source_stage <= 1 ? 0 : (source_stage == 2 ? 1 : 2); - progress_ = std::clamp(progress, 0.04f, 0.98f); - invalidate(); - } - - void draw(NVGcontext* vg, float x, float y, float width, float height, - brls::Style style, brls::FrameContext* ctx) override - { - (void)style; - (void)ctx; - constexpr float kPi = 3.14159265358979323846f; - const double seconds = std::chrono::duration( - std::chrono::steady_clock::now().time_since_epoch()).count(); - const float pulse = 0.5f + 0.5f * static_cast(std::sin(seconds * 3.2)); - static constexpr const char* kLabels[] = {"Queue", "Setup", "Ready"}; - const float rail_y = y + 42.0f; - const float first_x = x + 76.0f; - const float gap = (width - 152.0f) * 0.5f; - - nvgBeginPath(vg); - nvgRect(vg, first_x, rail_y - 2.0f, gap * 2.0f, 4.0f); - nvgFillColor(vg, nvgRGB(38, 42, 48)); - nvgFill(vg); - - float completed_width = visual_stage_ * gap; - if (visual_stage_ < 2) - completed_width += gap * std::clamp((progress_ - visual_stage_ * 0.32f) / 0.64f, 0.0f, 0.90f); - else - completed_width = gap * 2.0f; - nvgBeginPath(vg); - nvgRect(vg, first_x, rail_y - 2.0f, completed_width, 4.0f); - nvgFillColor(vg, nvgRGB(77, 218, 130)); - nvgFill(vg); - - nvgFontFaceId(vg, brls::Application::getFont(brls::FONT_REGULAR)); - nvgTextAlign(vg, NVG_ALIGN_CENTER | NVG_ALIGN_MIDDLE); - for (int i = 0; i < 3; ++i) - { - const float cx = first_x + gap * i; - const bool complete = i < visual_stage_; - const bool active = i == visual_stage_; - if (active) - { - nvgBeginPath(vg); - nvgCircle(vg, cx, rail_y, 29.0f + pulse * 3.0f); - nvgFillColor(vg, nvgRGBA(77, 218, 130, 25 + static_cast(pulse * 22.0f))); - nvgFill(vg); - } - nvgBeginPath(vg); - nvgCircle(vg, cx, rail_y, 22.0f); - nvgFillColor(vg, complete || active ? nvgRGB(77, 218, 130) : nvgRGB(24, 28, 33)); - nvgFill(vg); - nvgStrokeWidth(vg, 2.0f); - nvgStrokeColor(vg, complete || active ? nvgRGB(123, 242, 166) : nvgRGB(43, 48, 55)); - nvgStroke(vg); - - nvgFontSize(vg, 17.0f); - nvgFillColor(vg, complete || active ? nvgRGB(8, 35, 22) : nvgRGB(95, 101, 111)); - const std::string number = std::to_string(i + 1); - nvgText(vg, cx, rail_y, number.c_str(), nullptr); - nvgFontSize(vg, 12.0f); - nvgFillColor(vg, complete || active ? nvgRGB(228, 235, 232) : nvgRGB(91, 96, 105)); - nvgText(vg, cx, rail_y + 42.0f, kLabels[i], nullptr); - } - - const float spinner_x = x + width * 0.5f; - const float spinner_y = y + 137.0f; - const float angle = static_cast( - std::fmod(seconds * 3.0, static_cast(kPi) * 2.0)); - nvgBeginPath(vg); - nvgCircle(vg, spinner_x, spinner_y, 18.0f); - nvgStrokeWidth(vg, 5.0f); - nvgStrokeColor(vg, nvgRGB(35, 43, 48)); - nvgStroke(vg); - nvgBeginPath(vg); - nvgArc(vg, spinner_x, spinner_y, 18.0f, angle, - angle + kPi * 1.42f, NVG_CW); - nvgStrokeWidth(vg, 5.0f); - nvgLineCap(vg, NVG_ROUND); - nvgStrokeColor(vg, nvgRGB(77, 218, 130)); - nvgStroke(vg); - const float head_angle = angle + kPi * 1.42f; - nvgBeginPath(vg); - nvgCircle(vg, spinner_x + std::cos(head_angle) * 18.0f, - spinner_y + std::sin(head_angle) * 18.0f, 3.2f); - nvgFillColor(vg, nvgRGB(118, 234, 241)); - nvgFill(vg); - } - - private: - float progress_ = 0.08f; - int visual_stage_ = 0; -}; - -void SetLaunchProgress( - LaunchAnimationView* animation, - brls::Label* stage_label, - brls::Label* detail_label, - int stage, - const std::string& title, - const std::string& detail, - float progress) -{ - if (animation) - animation->SetState(stage, progress); - if (stage_label) - { - stage_label->setText(Tr(title)); - const bool queue_position = title.rfind("Position in queue:", 0) == 0; - stage_label->setFontSize(queue_position ? 36 : 27); - stage_label->setTextColor(queue_position - ? nvgRGB(77, 218, 130) - : nvgRGB(238, 242, 245)); - } - if (detail_label) - { - detail_label->setText(Tr(detail)); - detail_label->setFontSize(title.rfind("Position in queue:", 0) == 0 ? 18 : 16); - } + if (state->view) + state->view->Update({state->game_title, state->title, state->detail, + state->position, state->stage, !state->launch.running()}); } std::string SessionStatusText(const SessionInfo& info) @@ -288,33 +209,9 @@ bool IsQueueMinimized() void RestoreMinimizedQueueDialog() { auto state = active_queue; - if (!state || !state->launch.running() || !state->minimized || state->dialog) + if (!state || !state->launch.running() || !state->minimized || state->activity) return; - - auto* box = new brls::Box(brls::Axis::COLUMN); - box->setWidth(520); - box->setPadding(24, 24, 24, 24); - box->setBackgroundColor(nvgRGB(24, 28, 33)); - auto* game = new brls::Label(); - game->setText(state->game_title); - game->setFontSize(20); - game->setTextColor(nvgRGB(245, 248, 250)); - game->setMarginBottom(10); - box->addView(game); - state->stage_label = new brls::Label(); - state->stage_label->setMarginBottom(8); - box->addView(state->stage_label); - state->detail_label = new brls::Label(); - state->detail_label->setTextColor(nvgRGB(151, 159, 170)); - state->detail_label->setMarginBottom(12); - box->addView(state->detail_label); - SetLaunchProgress(nullptr, state->stage_label, state->detail_label, - state->stage, state->title, state->detail, state->progress); - auto* dialog = new QueueDialog(box, state); - dialog->addButton(Tr("Stay in queue"), [] {}); - dialog->AddCancelButton(Tr("Cancel queue")); - dialog->setCancelable(true); - dialog->open(); + brls::Application::pushActivity(new QueueActivity(state)); } void ShowDialog(const std::string& title, const std::string& body) @@ -349,72 +246,7 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, return; } - auto* box = new brls::Box(brls::Axis::COLUMN); - box->setWidth(720); - box->setPadding(24, 36, 18, 36); - box->setAlignItems(brls::AlignItems::CENTER); - box->setBackgroundColor(nvgRGBA(0, 0, 0, 0)); - - auto* game_header = new brls::Box(brls::Axis::ROW); - game_header->setWidth(620); - game_header->setHeight(96); - game_header->setAlignItems(brls::AlignItems::CENTER); - game_header->setMarginBottom(6); - - auto* cover = new CachedImage(); - cover->setWidth(82); - cover->setHeight(82); - cover->setCornerRadius(12); - cover->setScalingType(brls::ImageScalingType::FILL); - cover->setMarginRight(20); - SetCachedCoverImage(cover, image_url); - game_header->addView(cover); - - auto* game_copy = new brls::Box(brls::Axis::COLUMN); - game_copy->setGrow(1.0f); - auto* eyebrow = new brls::Label(); - eyebrow->setText(Tr("Now loading")); - eyebrow->setFontSize(13); - eyebrow->setTextColor(nvgRGB(77, 218, 130)); - eyebrow->setMarginBottom(5); - game_copy->addView(eyebrow); - auto* heading = new brls::Label(); - heading->setText(title); - heading->setFontSize(27); - heading->setTextColor(nvgRGB(245, 248, 250)); - heading->setMarginBottom(5); - game_copy->addView(heading); - auto* store_label = new brls::Label(); - store_label->setText(launch_store.empty() ? "GeForce NOW" : launch_store); - store_label->setFontSize(14); - store_label->setTextColor(nvgRGB(145, 151, 162)); - game_copy->addView(store_label); - game_header->addView(game_copy); - box->addView(game_header); - - auto* animation = new LaunchAnimationView(); - animation->setMarginBottom(0); - box->addView(animation); - - auto* stage_label = new brls::Label(); - stage_label->setText(Tr("Checking your NVIDIA account")); - stage_label->setFontSize(27); - stage_label->setTextColor(nvgRGB(238, 242, 245)); - stage_label->setHorizontalAlign(brls::HorizontalAlign::CENTER); - stage_label->setMarginBottom(6); - box->addView(stage_label); - - auto* detail_label = new brls::Label(); - detail_label->setText(Tr("Validating the saved session before requesting a cloud rig.")); - detail_label->setFontSize(16); - detail_label->setTextColor(nvgRGB(151, 159, 170)); - detail_label->setHorizontalAlign(brls::HorizontalAlign::CENTER); - detail_label->setMarginBottom(4); - box->addView(detail_label); - - SetLaunchProgress(animation, stage_label, detail_label, 0, - "Checking your NVIDIA account", - "Validating the saved session before requesting a cloud rig.", 0.08f); + (void)image_url; GfnClient bg_client = client; AuthSession bg_auth = auth; @@ -426,21 +258,11 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, auto launch_state = std::make_shared(); launch_state->client = client; launch_state->auth = auth; + launch_state->settings = LoadStreamSettings(); launch_state->game_title = title; - launch_state->animation = animation; - launch_state->stage_label = stage_label; - launch_state->detail_label = detail_label; - auto* dialog = new QueueDialog(box, launch_state); - dialog->setCancelable(false); active_queue = launch_state; const auto account_generation = AppState::Instance().session_generation(); - - dialog->addButton(Tr("Minimize - browse"), [launch_state]() { - if (launch_state->launch.running()) - brls::Application::notify(Tr("Queue minimized. Tap the Queue chip to return.")); - }); - dialog->AddCancelButton(Tr("Cancel session")); - dialog->open(); + brls::Application::pushActivity(new QueueActivity(launch_state)); #ifdef __SWITCH__ brls::Application::getPlatform()->disableScreenDimming(true); #endif @@ -448,26 +270,24 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, brls::async([bg_client, bg_auth, bg_app_id, bg_store, bg_internal_title, bg_history_game_id, launch_state, account_generation]() mutable { auto post_progress = [launch_state, account_generation]( - int stage, std::string title, std::string detail, float progress, int position = -1) { + int stage, std::string title, std::string detail, int position = -1) { brls::sync([launch_state, account_generation, stage, - title = std::move(title), detail = std::move(detail), progress, position]() { + title = std::move(title), detail = std::move(detail), position]() { if (!launch_state->launch.running()) return; if (!AppState::Instance().IsCurrentSession(account_generation)) { - if (launch_state->dialog) - launch_state->dialog->dismiss(); + if (launch_state->activity) + launch_state->activity->Dismiss(); CancelQueue(launch_state); return; } launch_state->stage = stage; launch_state->title = title; launch_state->detail = detail; - launch_state->progress = progress; launch_state->position = position; - SetLaunchProgress(launch_state->animation, launch_state->stage_label, launch_state->detail_label, - stage, title, detail, progress); + UpdateQueue(launch_state); if (launch_state->minimized && !launch_state->notified && position > 0 && - position <= LoadStreamSettings().queue_notify_threshold) { + position <= launch_state->settings.queue_notify_threshold) { launch_state->notified = true; brls::Application::notify(Tr("Queue almost ready. Tap the Queue chip to return.")); } @@ -477,14 +297,14 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, if (!launch_state->launch.running()) return; post_progress(0, "Checking your NVIDIA account", - "Renewing authorization and checking previous sessions.", 0.10f); + "Renewing authorization and checking previous sessions."); bg_client.CleanupStaleCloudSession(bg_auth); if (!launch_state->launch.running()) return; post_progress(1, "Requesting a cloud rig", - "GeForce NOW is allocating hardware for your game.", 0.24f); + "GeForce NOW is allocating hardware for your game."); SessionInfo info = bg_client.StartSession( - bg_auth, bg_app_id, bg_store, bg_internal_title); + bg_auth, bg_app_id, launch_state->settings, bg_store, bg_internal_title); if (!launch_state->launch.Adopt(info.session_id)) { try { bg_client.StopSession(bg_auth, info.session_id); } catch (...) {} return; @@ -501,15 +321,24 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, throw std::runtime_error("NVIDIA returned an unknown session status for too long."); } - const float queue_progress = info.status == 0 ? 0.34f : 0.48f; std::string queue_title; std::string queue_detail; - if (info.queue_position > 0) + if (info.app_patching) + { + queue_title = "Updating the game"; + queue_detail = SessionStatusText(info); + } + else if (info.status == 6) { - queue_title = "Position in queue: " + std::to_string(info.queue_position); - queue_detail = info.status == 0 + queue_title = "Waiting for NVIDIA confirmation"; + queue_detail = SessionStatusText(info); + } + else if (info.queue_position > 0) + { + queue_title = info.status == 0 ? "Waiting for an available cloud rig" : "Preparing your cloud rig"; + queue_detail = "Your game starts automatically when the rig is ready."; } else if (info.status == 0) { @@ -518,10 +347,10 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, } else { - queue_title = info.app_patching ? "Updating the game" : "Preparing your cloud rig"; + queue_title = info.status < 0 ? "Waiting for cloud session status" : "Preparing your cloud rig"; queue_detail = SessionStatusText(info); } - post_progress(1, queue_title, queue_detail, queue_progress, info.queue_position); + post_progress(info.status == 0 ? 1 : 2, queue_title, queue_detail, info.queue_position > 0 ? info.queue_position : -1); std::this_thread::sleep_for(std::chrono::seconds(5)); if (!launch_state->launch.running()) return; @@ -533,20 +362,20 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, } post_progress(2, "Connecting to the streaming server", - "The rig is ready. Configuring the secure network path.", 0.72f); + "The rig is ready. Configuring the secure network path."); brls::sync([=]() { if (!launch_state->launch.running()) return; if (!AppState::Instance().IsCurrentSession(account_generation)) { - if (launch_state->dialog) - launch_state->dialog->dismiss(); + if (launch_state->activity) + launch_state->activity->Dismiss(); CancelQueue(launch_state); return; } try { - SetLaunchProgress(launch_state->animation, launch_state->stage_label, - launch_state->detail_label, 3, - "Starting the video stream", - "Negotiating WebRTC and waiting for the first clean frame.", 0.86f); + launch_state->stage = 3; + launch_state->title = "Starting the video stream"; + launch_state->detail = "Negotiating WebRTC and waiting for the first clean frame."; + UpdateQueue(launch_state); auto& app_state = AppState::Instance(); if (app_state.IsCurrentSession(account_generation)) @@ -560,21 +389,26 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, brls::Logger::info("Media endpoint: {}:{}", info.media_ip, info.media_port); brls::Logger::info("ICE servers: {}", info.ice_servers.size()); - std::string jwt_token = bg_auth.tokens.id_token.empty() ? bg_auth.tokens.access_token : bg_auth.tokens.id_token; - if (launch_state->dialog) - launch_state->dialog->dismiss(); - FinishQueue(launch_state); - brls::Application::pushActivity(new brls::Activity(StreamView::create( - info.signaling_url, - jwt_token, - info.session_id, - info.media_ip, - info.media_port, - info.ice_servers, - bg_client, - bg_auth, - bg_internal_title))); - launch_state->launch.TransferToStream(); + auto handoff = [=] { + if (!launch_state->launch.running()) + return; + if (!AppState::Instance().IsCurrentSession(account_generation)) { + CancelQueue(launch_state); + return; + } + try { + FinishQueue(launch_state); + PresentCloudStream(info, bg_client, bg_auth, bg_internal_title, launch_state->settings); + launch_state->launch.TransferToStream(); + } catch (const std::exception& e) { + CancelQueue(launch_state); + ShowError("Stream startup failed", e.what()); + } + }; + if (launch_state->activity) + launch_state->activity->Dismiss(handoff); + else + handoff(); } catch (const std::exception& e) { CancelQueue(launch_state); ShowError("Stream startup failed", e.what()); @@ -590,19 +424,12 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, brls::sync([=]() { if (!launch_state->launch.running()) return; CancelQueue(launch_state); - if (launch_state->animation) - launch_state->animation->SetState(0, 0.04f); - if (launch_state->stage_label) { - launch_state->stage_label->setText(Tr(error.title)); - launch_state->stage_label->setFontSize(24); - launch_state->stage_label->setTextColor(nvgRGB(255, 125, 132)); - launch_state->detail_label->setFontSize(17); - launch_state->detail_label->setText( - Tr(error.body) + "\n\n" + Tr("Press B to return to the game page.")); - launch_state->dialog->setCancelable(true); - } else { + launch_state->title = error.title; + launch_state->detail = error.body + "\n\n" + Tr("Press B to return to the game page."); + if (launch_state->view) + UpdateQueue(launch_state); + else brls::Application::notify(Tr(error.title) + ": " + Tr(error.body)); - } }); } }); From 3eeb445933ea792a69938f975ec4e286cf17d048 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:12:41 +0000 Subject: [PATCH 05/23] Refresh retained shell tabs after interface language changes --- app/src/main_tabs_view.cpp | 6 +++--- app/src/top_bar_frame.cpp | 6 ++++++ app/src/top_bar_frame.hpp | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/src/main_tabs_view.cpp b/app/src/main_tabs_view.cpp index 4fd7f8b8..5e1ba08d 100644 --- a/app/src/main_tabs_view.cpp +++ b/app/src/main_tabs_view.cpp @@ -43,9 +43,9 @@ MainTabsView::MainTabsView() else state.MarkSessionLoaded(); } - addTab(Tr("Store"), []() { return new CatalogTab(); }); - addTab(Tr("Library"), []() { return new LibraryTab(); }); - addTab(Tr("Settings"), []() { return new SettingsTab(); }); + addTab("Store", []() { return new CatalogTab(); }); + addTab("Library", []() { return new LibraryTab(); }); + addTab("Settings", []() { return new SettingsTab(); }); focusTab(1); last_auth_check_ = std::chrono::steady_clock::now(); } diff --git a/app/src/top_bar_frame.cpp b/app/src/top_bar_frame.cpp index 9d5fe035..440a85a8 100644 --- a/app/src/top_bar_frame.cpp +++ b/app/src/top_bar_frame.cpp @@ -479,6 +479,12 @@ void TopBarFrame::SelectTab(int index) void TopBarFrame::UpdateStatusBar(bool force) { + if (displayed_language_ != GetInterfaceLanguage()) + { + displayed_language_ = GetInterfaceLanguage(); + for (auto& tab : tabs_) + tab.header_label->setText(Tr(tab.label)); + } if (!account_name_label_ || !account_detail_label_) return; diff --git a/app/src/top_bar_frame.hpp b/app/src/top_bar_frame.hpp index 81890e9c..0169c33d 100644 --- a/app/src/top_bar_frame.hpp +++ b/app/src/top_bar_frame.hpp @@ -44,6 +44,7 @@ class TopBarFrame : public brls::Box brls::Label* account_detail_label_; std::string displayed_avatar_url_; std::string displayed_status_; + std::string displayed_language_; std::chrono::steady_clock::time_point last_status_update_ {}; struct TabInfo { From b072ba1c75d0ce0d7d9f693ea409e2b3d61e6301 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:20:32 +0000 Subject: [PATCH 06/23] Restore configured server labels in the live stream overlay --- app/src/stream_view_overlay.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/stream_view_overlay.cpp b/app/src/stream_view_overlay.cpp index 46e15644..d37ea654 100644 --- a/app/src/stream_view_overlay.cpp +++ b/app/src/stream_view_overlay.cpp @@ -354,7 +354,7 @@ void StreamView::DrawStreamOverlay( sample.game_title = game_title_; sample.provider = auth_.provider.display_name; sample.codec = stream_codec_; - sample.location = stream_region_; + sample.location = opennow::ui::ConfiguredLocation(stream_region_); if (!network_info_.connected) sample.network = "Disconnected"; else if (network_info_.type == opennow::NetworkConnectionType::Ethernet) From cc916b0d4484f1665d79a5d6429d4d9c45c6fbb6 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 19:31:03 +0000 Subject: [PATCH 07/23] Verify real language-save refresh and per-image preview identity --- tests/ui_layout/ui_layout.cpp | 83 ++++++++++++++++++++++++-- tests/ui_layout/ui_layout_fixtures.hpp | 4 ++ tests/ui_layout/ui_layout_stubs.cpp | 6 +- 3 files changed, 87 insertions(+), 6 deletions(-) diff --git a/tests/ui_layout/ui_layout.cpp b/tests/ui_layout/ui_layout.cpp index bbcbe86d..94e48a5b 100644 --- a/tests/ui_layout/ui_layout.cpp +++ b/tests/ui_layout/ui_layout.cpp @@ -1,5 +1,6 @@ #include "app_state.hpp" #include "catalog_tab.hpp" +#include "cover_image_cache.hpp" #include "game_card_view.hpp" #include "game_detail_view.hpp" #include "library_tab.hpp" @@ -249,6 +250,48 @@ void CheckFonts(brls::View* root) Check(std::isfinite(measured) && measured > 100 && bounds[3] > bounds[1], "actual font chain measures mixed Latin/Cyrillic/Chinese text"); } } +void CheckTabLanguage(brls::View* root) +{ + Check(Text(Required(root, "shell-tabs")) == opennow::Tr("Store") + "\n" + + opennow::Tr("Library") + "\n" + opennow::Tr("Settings") + "\n", + "all three retained shell tab labels reflect current interface language"); +} +void SaveLanguageThroughSettings(brls::View* root, const std::string& language) +{ + auto* frame = dynamic_cast(root); + if (!frame) throw std::runtime_error("Language regression requires production shell"); + frame->focusTab(2); Pump(); + Activate(Required(root, "settings/category/app")); + Activate(Action(root, "App language")); + Check(dynamic_cast(CurrentRoot()) != nullptr, "actual App language opens native selector"); + const auto& options = opennow::InterfaceLanguageOptions(); + const auto current = std::find_if(options.begin(), options.end(), [](const auto& option) { + return option.code == opennow::GetInterfaceLanguage(); + }); + const auto target = std::find_if(options.begin(), options.end(), [&](const auto& option) { return option.code == language; }); + if (current == options.end() || target == options.end()) throw std::runtime_error("Unsupported language regression fixture"); + const auto difference = target - current; + for (int index = 0; index < std::abs(difference); ++index) + Key(difference > 0 ? brls::BUTTON_NAV_DOWN : brls::BUTTON_NAV_UP); + Key(brls::BUTTON_A); Key(brls::BUTTON_X); + Check(opennow::LoadStreamSettings().interface_language == language && opennow::GetInterfaceLanguage() == language, + "actual Settings selector and X Save persist and apply interface language"); + CheckTabLanguage(root); + frame->focusTab(1); Pump(); + for (const auto& [id, key] : std::array, 3> {{ + {"library-search", "Search"}, {"library-filter", "All"}, {"library-sort", "Last Added"}}}) + std::printf("LOCALE language=%s id=%s actual=[%s] expected=[%s]\n", + language.c_str(), id, Text(Required(root, id)).c_str(), opennow::Tr(key).c_str()); + std::printf("LOCALE language=%s heading_expected=[%s] heading_present=%d\n", language.c_str(), + opennow::Tr("My Library").c_str(), Text(root).find(opennow::Tr("My Library")) != std::string::npos); + Check(Text(root).find(opennow::Tr("My Library")) != std::string::npos && + Text(Required(root, "library-search")).find(opennow::Tr("Search")) != std::string::npos && + Text(Required(root, "library-filter")).find(opennow::Tr("All")) != std::string::npos && + Text(Required(root, "library-sort")).find(opennow::Tr("Last Added")) != std::string::npos, + "retained Library heading and controls refresh after actual language Save"); + Check(Text(Required(root, "library-preview-title")).find(ui_fixture::Library().front().title) != std::string::npos, + "retained Library preserves selected game identity across language Save"); +} void Screenshot(const std::string& path) { const int width = brls::Application::windowWidth, height = brls::Application::windowHeight; @@ -317,13 +360,32 @@ void LibraryChecks(brls::View* root, bool guest, bool empty) } Until([] { return ui_fixture::Snapshot().library_requests > 0; }, "real Library fetch callback reached fixture"); auto* preview = Required(root, "library-preview-title"); + opennow::CachedImage* preview_image = nullptr; + Walk(preview->getParent(), [&](brls::View* view) { + if (auto* image = dynamic_cast(view)) preview_image = image; + }); + Check(preview_image != nullptr, "actual Library preview has a native cover image"); + auto check_preview_cover = [&](const std::string& url) { + const auto calls = ui_fixture::Snapshot(); + const auto request = std::find_if(calls.cover_requests.rbegin(), calls.cover_requests.rend(), + [&](const ui_fixture::CoverCall& call) { return call.image == preview_image; }); + Check(request != calls.cover_requests.rend() && request->url == url, + "actual Library preview cover identity matches selected game at image boundary"); + }; auto* row = Required(root, "library-row-fixture-1000"); brls::Application::giveFocus(row); Pump(); Check(Text(preview).find(ui_fixture::Library().front().title) != std::string::npos, "focused Library game identity updates actual preview title"); - Check(ui_fixture::Snapshot().cover_urls.back() == ui_fixture::Library().front().image_url, "focused Library identity requests that game's actual cover URL at external image boundary"); + check_preview_cover(ui_fixture::Library().front().image_url); Key(brls::BUTTON_NAV_DOWN); Check(brls::Application::getCurrentFocus() != row, "Library down moves to another selectable row"); Check(Text(preview).find(ui_fixture::Library().front().title) == std::string::npos, "Library preview follows changed focus identity"); + const auto* selected_row = brls::Application::getCurrentFocus(); + const auto games = ui_fixture::Library(); + const auto selected = std::find_if(games.begin(), games.end(), [&](const opennow::GameInfo& game) { + return selected_row == root->getView("library-row-" + game.uuid); + }); + Check(selected != games.end(), "native focused Library row maps to actual fixture identity"); + if (selected != games.end()) check_preview_cover(selected->image_url); Activate(Required(root, "library-sort")); Check(Text(Required(root, "library-sort")).find(opennow::Tr("Last Added")) != std::string::npos, "Library sort callback cycles to actual Last Added feed order"); Tap(Required(root, "library-filter")); @@ -349,6 +411,17 @@ void LibraryChecks(brls::View* root, bool guest, bool empty) Check(root->getView("catalog") != nullptr, "real L action switches to Store"); Key(brls::BUTTON_RB); Check(root->getView("library") && root->getView("library-row-fixture-1000"), "real R action returns to live Library with page identity"); + brls::Application::giveFocus(Required(root, "library-row-fixture-1000")); Pump(); + const auto original_language = opennow::GetInterfaceLanguage(); + const auto before_language = ui_fixture::Snapshot(); + SaveLanguageThroughSettings(root, original_language == "ru" ? "en" : "ru"); + SaveLanguageThroughSettings(root, original_language); + const auto after_language = ui_fixture::Snapshot(); + Check(after_language.library_requests == before_language.library_requests && + after_language.catalog_requests == before_language.catalog_requests && + after_language.public_requests == before_language.public_requests && + after_language.region_requests == before_language.region_requests, + "actual language Save and retained-tab refresh cause no new feed or region requests"); } void SettingsChecks(brls::View* root, const std::string& capture) { @@ -559,9 +632,9 @@ int main(int argc, char** argv) if (!guest) state.SetSession(session); else state.MarkSessionLoaded(); state.SetLibraryGames(ui_fixture::Library()); auto* frame = new opennow::TopBarFrame(); - frame->addTab(opennow::Tr("Store"), [] { return new opennow::CatalogTab(); }); - frame->addTab(opennow::Tr("Library"), [] { return new opennow::LibraryTab(); }); - frame->addTab(opennow::Tr("Settings"), [] { return new opennow::SettingsTab(); }); + frame->addTab("Store", [] { return new opennow::CatalogTab(); }); + frame->addTab("Library", [] { return new opennow::LibraryTab(); }); + frame->addTab("Settings", [] { return new opennow::SettingsTab(); }); frame->focusTab(scenario == "store" || scenario == "empty-store" ? 0 : scenario == "settings" ? 2 : 1); brls::Application::pushActivity(new brls::Activity(frame)); Pump(); int width, height, viewport[4] {}; SDL_GL_GetDrawableSize(SDL_GL_GetCurrentWindow(), &width, &height); glGetIntegerv(GL_VIEWPORT, viewport); @@ -584,7 +657,7 @@ int main(int argc, char** argv) Check(opennow::ui::StreamSummary(fractional).find("12 Mbps") != std::string::npos, "configured stream summary preserves integer 12000 kbps"); if (scenario == "store" || scenario == "empty-store") StoreChecks(frame, empty, guest); else if (scenario == "settings") SettingsChecks(frame, capture); - else if (scenario == "queue") QueueChecks(session, capture); + else if (scenario == "queue") { DrainToasts(); QueueChecks(session, capture); } else if (scenario == "overlay") OverlayChecks(); else if (scenario == "detail") { diff --git a/tests/ui_layout/ui_layout_fixtures.hpp b/tests/ui_layout/ui_layout_fixtures.hpp index e8099c8f..2b857b51 100644 --- a/tests/ui_layout/ui_layout_fixtures.hpp +++ b/tests/ui_layout/ui_layout_fixtures.hpp @@ -7,9 +7,12 @@ #include #include +namespace opennow { class CachedImage; } + namespace ui_fixture { struct LaunchCall { std::string user_id, app_id, title, store; }; +struct CoverCall { const opennow::CachedImage* image; std::string url; }; struct Calls { int library_requests = 0; @@ -22,6 +25,7 @@ struct Calls std::vector launches; std::vector shortcuts; std::vector saved_variants, cover_urls, stopped_sessions; + std::vector cover_requests; std::vector handed_off_sessions, played_ids, notifications; std::vector start_settings, handoff_settings; }; diff --git a/tests/ui_layout/ui_layout_stubs.cpp b/tests/ui_layout/ui_layout_stubs.cpp index 933562d0..698daa1b 100644 --- a/tests/ui_layout/ui_layout_stubs.cpp +++ b/tests/ui_layout/ui_layout_stubs.cpp @@ -107,7 +107,11 @@ void CachedImage::draw(NVGcontext* vg, float x, float y, float width, float heig { brls::Image::draw(vg, x, y, width, height, style, ctx); } void SetCachedCoverImage(CachedImage* image, const std::string& url) { - { std::lock_guard lock(fixture_mutex); calls.cover_urls.push_back(url); } + { + std::lock_guard lock(fixture_mutex); + calls.cover_urls.push_back(url); + calls.cover_requests.push_back({image, url}); + } image->setImageFromRes("img/opennow-logo-mark.png"); } void SetCachedAvatarImage(CachedImage*, const std::string&) {} From 3689244224c177d4644e2cfc8dad1660da548f87 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 21:00:31 +0000 Subject: [PATCH 08/23] Fix clipped captions, focus borders and scrolling content --- app/src/catalog_tab.cpp | 14 +++++-- app/src/game_detail_view.cpp | 5 ++- app/src/library_row_view.cpp | 3 +- app/src/library_tab.cpp | 34 +++++++++++------ app/src/queue_view.cpp | 2 +- app/src/settings_tab.cpp | 4 +- app/src/stream_overlay_view.cpp | 2 +- app/src/top_bar_frame.cpp | 2 +- app/src/ui_theme.cpp | 43 +++++++++++++++++++++- app/src/ui_theme.hpp | 8 ++++ resources/img/opennow-logo-mark-small.png | Bin 0 -> 12278 bytes scripts/build-ui-logo.py | 14 +++++++ scripts/verify-nro-assets.py | 3 +- 13 files changed, 109 insertions(+), 25 deletions(-) create mode 100644 resources/img/opennow-logo-mark-small.png create mode 100644 scripts/build-ui-logo.py diff --git a/app/src/catalog_tab.cpp b/app/src/catalog_tab.cpp index 07cced02..c1fc3d3a 100644 --- a/app/src/catalog_tab.cpp +++ b/app/src/catalog_tab.cpp @@ -68,7 +68,7 @@ CatalogTab::CatalogTab() : brls::Box(brls::Axis::COLUMN) { setId("catalog"); - setPadding(10, 40, 10, 40); + setPadding(10, 36, 10, 36); setBackgroundColor(ui::Ground()); interface_language_ = GetInterfaceLanguage(); @@ -82,7 +82,10 @@ CatalogTab::CatalogTab() more_button_->setId("catalog-more"); search_button_->setStyle(&brls::BUTTONSTYLE_HIGHLIGHT); toolbar_buttons_ = {search_button_, filter_button_, sort_button_, more_button_}; - addView(ui::MakeGameBrowserHeader("Store", toolbar_buttons_)); + auto* header = ui::MakeGameBrowserHeader("Store", toolbar_buttons_); + header->setMarginLeft(4); + header->setMarginRight(4); + addView(header); search_button_->registerClickAction([this](brls::View*) { return RunUiAction("catalog.search.button", [this]() { BeginSearch(); }); @@ -102,15 +105,18 @@ CatalogTab::CatalogTab() status_label_->setFontSize(14); status_label_->setWidthPercentage(100); status_label_->setMaxHeight(64); + status_label_->setMarginLeft(4); + status_label_->setMarginRight(4); addView(status_label_); - scrolling_frame_ = new brls::ScrollingFrame(); + scrolling_frame_ = new ui::FadingScrollFrame(); scrolling_frame_->setGrow(1.0f); + scrolling_frame_->setScrollingIndicatorVisible(false); scrolling_frame_->setScrollingBehavior(brls::ScrollingBehavior::CENTERED); list_container_ = new brls::Box(brls::Axis::COLUMN); list_container_->setId("catalog-list"); - list_container_->setPadding(0, 0, 32, 0); + list_container_->setPadding(4, 4, 32, 4); scrolling_frame_->setContentView(list_container_); addView(scrolling_frame_); diff --git a/app/src/game_detail_view.cpp b/app/src/game_detail_view.cpp index 82697771..4b099b15 100644 --- a/app/src/game_detail_view.cpp +++ b/app/src/game_detail_view.cpp @@ -158,7 +158,7 @@ GameDetailView::GameDetailView(const GfnClient& client, GameDetailData data) logo->setHeight(32); logo->setShrink(0); logo->setMarginRight(28); - logo->setImageFromRes("img/opennow-logo-mark.png"); + logo->setImageFromRes("img/opennow-logo-mark-small.png"); header->addView(logo); auto* route = ui::MakeLabel(Tr(data_.owned ? "Library" : "Store") + " /", 18, ui::Muted()); route->setSingleLine(true); @@ -219,8 +219,9 @@ GameDetailView::GameDetailView(const GfnClient& client, GameDetailData data) description->setSingleLine(false); auto* description_frame = new brls::ScrollingFrame(); description_frame->setId("detail/description"); - description_frame->setHeight(76); + description_frame->setHeight(72); description_frame->setShrink(0); + description_frame->setScrollingIndicatorVisible(false); description_frame->setMarginBottom(20); description_frame->setContentView(description); left->addView(description_frame); diff --git a/app/src/library_row_view.cpp b/app/src/library_row_view.cpp index 20f6c478..93a019e7 100644 --- a/app/src/library_row_view.cpp +++ b/app/src/library_row_view.cpp @@ -6,6 +6,7 @@ #include +#include #include namespace opennow @@ -63,7 +64,7 @@ LibraryRowView::LibraryRowView(LibraryRowDisplay display, std::function addView(text); prompt_ = ui::MakeLabel("A " + Tr("Open"), 14, ui::Green(), ui::FontRole::Medium); - prompt_->setWidth(72); + prompt_->setWidth(std::max(72.0f, ui::TextWidth("A " + Tr("Open"), 14, ui::FontRole::Medium) + 4)); prompt_->setMarginLeft(12); prompt_->setSingleLine(true); prompt_->setShrink(0); diff --git a/app/src/library_tab.cpp b/app/src/library_tab.cpp index 79827b27..8caefe0a 100644 --- a/app/src/library_tab.cpp +++ b/app/src/library_tab.cpp @@ -28,6 +28,12 @@ constexpr std::array kStoreFilters = {"All", "Steam", "Epic", "U constexpr std::array kLibrarySortModes = { "Last Played", "Last Added", "A-Z", "Store"}; +void SetToolbarCaption(ui::ActionRow* control, const std::string& text) +{ + control->SetTitle(text); + control->setWidth(ui::TextWidth(text, 14, ui::FontRole::Medium) + 16); +} + brls::Label* MakeParagraph(const std::string& text, float bottom_margin = 16.0f, float font_size = 18.0f) { auto* label = ui::MakeLabel(Tr(text), font_size, ui::Muted()); @@ -107,18 +113,18 @@ LibraryTab::LibraryTab() std::function action) { auto* control = new ui::ActionRow(text, {}, std::move(action)); control->setId(id); - control->setWidth(width); + control->setWidth(width > 0 ? width : ui::TextWidth(text, 14, ui::FontRole::Medium) + 16); control->setHeight(38); control->setPadding(0, 8, 0, 8); return control; }; - search_button_ = make_control("library-search", "Y " + Tr("Search"), 88, + search_button_ = make_control("library-search", "Y " + Tr("Search"), 0, [this](brls::View*) { return RunUiAction("library.search.button", [this] { BeginSearch(); }); }); - filter_button_ = make_control("library-filter", "ZL " + Tr("All"), 100, + filter_button_ = make_control("library-filter", "ZL " + Tr("All"), 0, [this](brls::View*) { return RunUiAction("library.filter.button", [this] { CycleStoreFilter(); }); }); - sort_button_ = make_control("library-sort", "ZR " + Tr("Last Played"), 124, + sort_button_ = make_control("library-sort", "ZR " + Tr("Last Played"), 0, [this](brls::View*) { return RunUiAction("library.sort.button", [this] { CycleSortMode(); }); }); - more_button_ = make_control("library-more", "X " + Tr("More"), 96, + more_button_ = make_control("library-more", "X " + Tr("More"), 0, [this](brls::View*) { return RunUiAction("library.more.button", [this] { LoadMoreOrRefresh(); }); }); toolbar_buttons_ = {search_button_, filter_button_, sort_button_, more_button_}; for (auto* control : {search_button_, filter_button_, sort_button_, more_button_}) @@ -131,8 +137,10 @@ LibraryTab::LibraryTab() toolbar->setShrink(0); toolbar->setAlignItems(brls::AlignItems::CENTER); toolbar->setMarginBottom(4); - heading_->setMarginRight(12); - toolbar->addView(heading_); + heading_->setGrow(0); + heading_->setMarginBottom(8); + timetable->addView(heading_); + toolbar->setMarginBottom(8); for (size_t i = 0; i < toolbar_buttons_.size(); ++i) { toolbar_buttons_[i]->setMarginRight(i + 1 < toolbar_buttons_.size() ? 8 : 0); @@ -148,8 +156,9 @@ LibraryTab::LibraryTab() status_label_->setMaxHeight(60); timetable->addView(status_label_); - scrolling_frame_ = new brls::ScrollingFrame(); + scrolling_frame_ = new ui::FadingScrollFrame(); scrolling_frame_->setGrow(1.0f); + scrolling_frame_->setScrollingIndicatorVisible(false); scrolling_frame_->setScrollingBehavior(brls::ScrollingBehavior::CENTERED); list_container_ = new brls::Box(brls::Axis::COLUMN); @@ -402,9 +411,10 @@ void LibraryTab::RebuildList() previous_button_->SetValue({}); heading_->setText(Tr("My Library")); selection_label_->setText(Tr("Now selected")); - search_button_->SetTitle("Y " + Tr("Search")); - filter_button_->SetTitle("ZL " + Tr(kStoreFilters[store_filter_index_])); - sort_button_->SetTitle("ZR " + Tr(kLibrarySortModes[sort_mode_index_])); + SetToolbarCaption(search_button_, "Y " + Tr("Search")); + SetToolbarCaption(filter_button_, "ZL " + Tr(kStoreFilters[store_filter_index_])); + SetToolbarCaption(sort_button_, "ZR " + Tr(kLibrarySortModes[sort_mode_index_])); + SetToolbarCaption(more_button_, "X " + Tr("More")); const auto& state = AppState::Instance(); if (!state.HasSession()) @@ -459,7 +469,7 @@ void LibraryTab::RebuildList() UpdateSessionUi(); next_button_->SetTitle(Tr(page_end < filtered_count_ ? "Next page" : "Refresh library")); previous_button_->SetValue(page_index_ > 0 ? std::to_string(page_index_) : ""); - more_button_->SetTitle("X " + Tr(page_end < filtered_count_ ? "More" : "Refresh")); + SetToolbarCaption(more_button_, "X " + Tr(page_end < filtered_count_ ? "More" : "Refresh")); if (filtered_indices.empty()) { diff --git a/app/src/queue_view.cpp b/app/src/queue_view.cpp index b22e48ff..eecd7980 100644 --- a/app/src/queue_view.cpp +++ b/app/src/queue_view.cpp @@ -81,7 +81,7 @@ QueueView::QueueView(const QueueDisplayState& state, const StreamSettings& setti logo->setWidth(62); logo->setHeight(38); logo->setScalingType(brls::ImageScalingType::FIT); - logo->setImageFromRes("img/opennow-logo-mark.png"); + logo->setImageFromRes("img/opennow-logo-mark-small.png"); logo->setMarginRight(10); header->addView(logo); auto* brand = ui::MakeLabel("OpenNOW", 22, ui::Text(), ui::FontRole::Heading); diff --git a/app/src/settings_tab.cpp b/app/src/settings_tab.cpp index 634ad36e..e1d605e5 100644 --- a/app/src/settings_tab.cpp +++ b/app/src/settings_tab.cpp @@ -150,9 +150,10 @@ SettingsTab::SettingsTab() scrolling_frame_->setGrow(1.0f); scrolling_frame_->setMinHeight(0); scrolling_frame_->setId("settings/options"); + scrolling_frame_->setScrollingIndicatorVisible(false); scrolling_frame_->setScrollingBehavior(brls::ScrollingBehavior::CENTERED); content_container_ = new brls::Box(brls::Axis::COLUMN); - content_container_->setPadding(4, 0, 12, 0); + content_container_->setPadding(4, 4, 12, 4); scrolling_frame_->setContentView(content_container_); content_shell->addView(scrolling_frame_); body->addView(content_shell); @@ -162,6 +163,7 @@ SettingsTab::SettingsTab() help_scroll->setWidth(332); help_scroll->setShrink(0); help_scroll->setMinHeight(0); + help_scroll->setScrollingIndicatorVisible(false); auto* help = new brls::Box(brls::Axis::COLUMN); help->setId("settings/help"); help->setPadding(4, 0, 12, 0); diff --git a/app/src/stream_overlay_view.cpp b/app/src/stream_overlay_view.cpp index 7dc06c18..b0cd07af 100644 --- a/app/src/stream_overlay_view.cpp +++ b/app/src/stream_overlay_view.cpp @@ -61,7 +61,7 @@ StreamOverlayView::StreamOverlayView() setFocusable(true); setHideHighlightBackground(true); setHideHighlightBorder(true); - logo_.setImageFromRes("img/opennow-logo-mark.png"); + logo_.setImageFromRes("img/opennow-logo-mark-small.png"); for (size_t index = 0; index < fonts_.size(); ++index) fonts_[index] = ui::Font(static_cast(index)); } diff --git a/app/src/top_bar_frame.cpp b/app/src/top_bar_frame.cpp index 440a85a8..41050801 100644 --- a/app/src/top_bar_frame.cpp +++ b/app/src/top_bar_frame.cpp @@ -169,7 +169,7 @@ TopBarFrame::TopBarFrame() brand_mark->setHeight(40); brand_mark->setMarginRight(10); brand_mark->setScalingType(brls::ImageScalingType::FIT); - brand_mark->setImageFromRes("img/opennow-logo-mark.png"); + brand_mark->setImageFromRes("img/opennow-logo-mark-small.png"); brand->addView(brand_mark); auto* brand_name = new ui::StyledLabel(ui::FontRole::Display); diff --git a/app/src/ui_theme.cpp b/app/src/ui_theme.cpp index 01893787..19abbc88 100644 --- a/app/src/ui_theme.cpp +++ b/app/src/ui_theme.cpp @@ -6,7 +6,9 @@ #include #include +#include #include +#include #include #include #include @@ -84,6 +86,7 @@ int Font(FontRole role) StyledLabel::StyledLabel(FontRole role) { font = Font(role); + setAutoAnimate(false); } brls::Label* MakeLabel(const std::string& text, float size, NVGcolor color, FontRole role) @@ -96,6 +99,37 @@ brls::Label* MakeLabel(const std::string& text, float size, NVGcolor color, Font return label; } +float TextWidth(const std::string& text, float size, FontRole role) +{ + auto* vg = brls::Application::getNVGContext(); + nvgSave(vg); + nvgFontFaceId(vg, Font(role)); + nvgFontSize(vg, size); + nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_TOP); + float bounds[4] {}; + const float advance = nvgTextBounds(vg, 0, 0, text.c_str(), nullptr, bounds); + nvgRestore(vg); + return std::ceil(std::max(advance, bounds[2]) - std::min(0.0f, bounds[0])); +} + +void FadingScrollFrame::draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style style, brls::FrameContext* ctx) +{ + brls::ScrollingFrame::draw(vg, x, y, width, height, style, ctx); + if (getContentHeight() - getContentOffsetY() <= height + 0.5f) + return; + nvgSave(vg); + nvgBeginPath(vg); + nvgRect(vg, x, y + height - 40, width, 40); + const auto ground = Ground(); + auto transparent = ground; + transparent.a = 0; + nvgFillPaint(vg, nvgLinearGradient(vg, x, y + height - 40, x, y + height, + transparent, ground)); + nvgFill(vg); + nvgRestore(vg); +} + ActionRow::ActionRow(std::string title, std::string value, std::function activate, ActionTone tone) : brls::Box(brls::Axis::ROW), tone_(tone) @@ -113,12 +147,15 @@ ActionRow::ActionRow(std::string title, std::string value, title_ = MakeLabel(title, 18, Text(), FontRole::Medium); title_->setGrow(1); title_->setShrink(1); + title_->setMinWidth(0); title_->setSingleLine(true); addView(title_); value_ = MakeLabel(value, 16, Muted()); value_->setMaxWidthPercentage(45); + value_->setShrink(1); value_->setMarginLeft(16); value_->setSingleLine(true); + value_->setVisibility(value.empty() ? brls::Visibility::GONE : brls::Visibility::VISIBLE); addView(value_); registerClickAction(std::move(activate)); addGestureRecognizer(new brls::TapGestureRecognizer(this)); @@ -131,7 +168,11 @@ void ActionRow::SetTitle(const std::string& title) title_->setText(title); updateActionHint(brls::BUTTON_A, title); } -void ActionRow::SetValue(const std::string& value) { value_->setText(value); } +void ActionRow::SetValue(const std::string& value) +{ + value_->setText(value); + value_->setVisibility(value.empty() ? brls::Visibility::GONE : brls::Visibility::VISIBLE); +} void ActionRow::SetFontSize(float size) { title_->setFontSize(size); } void ActionRow::SetTone(ActionTone tone) { diff --git a/app/src/ui_theme.hpp b/app/src/ui_theme.hpp index 24f8fb1c..8b1a72a2 100644 --- a/app/src/ui_theme.hpp +++ b/app/src/ui_theme.hpp @@ -32,6 +32,14 @@ class StyledLabel final : public brls::Label brls::Label* MakeLabel(const std::string& text, float size = 18, NVGcolor color = Text(), FontRole role = FontRole::Body); +float TextWidth(const std::string& text, float size, FontRole role); + +class FadingScrollFrame final : public brls::ScrollingFrame +{ + public: + void draw(NVGcontext* vg, float x, float y, float width, float height, + brls::Style style, brls::FrameContext* ctx) override; +}; class ActionRow : public brls::Box { diff --git a/resources/img/opennow-logo-mark-small.png b/resources/img/opennow-logo-mark-small.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2324d278c32599c891c6cbf4c609156ea5559e GIT binary patch literal 12278 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 QX#fBK07*qoM6N<$f)Zss2><{9 literal 0 HcmV?d00001 diff --git a/scripts/build-ui-logo.py b/scripts/build-ui-logo.py new file mode 100644 index 00000000..9ee4901d --- /dev/null +++ b/scripts/build-ui-logo.py @@ -0,0 +1,14 @@ +from pathlib import Path + +from PIL import Image + + +root = Path(__file__).resolve().parents[1] +source = root / "resources/img/opennow-logo-mark.png" +target = root / "resources/img/opennow-logo-mark-small.png" +with Image.open(source) as image: + height = round(image.height * 128 / image.width) + image.convert("RGBA").resize((128, height), Image.Resampling.LANCZOS).save( + target, optimize=True + ) +print(f"Generated {target.relative_to(root)}: 128x{height}") diff --git a/scripts/verify-nro-assets.py b/scripts/verify-nro-assets.py index d2e98fd5..dbbe39e7 100644 --- a/scripts/verify-nro-assets.py +++ b/scripts/verify-nro-assets.py @@ -40,9 +40,10 @@ def directory_path(entry): expected = sorted((resources / "font").glob("*")) expected.append(resources / "img" / "opennow-logo-mark.png") + expected.append(resources / "img" / "opennow-logo-mark-small.png") for asset in expected: if not asset.is_file(): - continue + raise ValueError(f"Required bundled UI asset missing: {asset}") path = asset.relative_to(resources).as_posix() if entries.get(path) != asset.read_bytes(): raise ValueError(f"NRO asset missing or stale: {path}") From e380f278ee9db7525c35f43a8d7bfd6e9cc9800c Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Fri, 2 Oct 2026 21:41:02 +0000 Subject: [PATCH 09/23] Verify rendered captions, glyph bounds and scroll viewport clearance --- tests/ui_layout/CMakeLists.txt | 1 + tests/ui_layout/README.md | 14 ++ tests/ui_layout/run.sh | 2 + tests/ui_layout/ui_layout.cpp | 246 ++++++++++++++++++++++++- tests/ui_layout/ui_layout_fixtures.hpp | 11 ++ tests/ui_layout/ui_layout_stubs.cpp | 39 ++++ 6 files changed, 312 insertions(+), 1 deletion(-) diff --git a/tests/ui_layout/CMakeLists.txt b/tests/ui_layout/CMakeLists.txt index 450dc086..c788886a 100644 --- a/tests/ui_layout/CMakeLists.txt +++ b/tests/ui_layout/CMakeLists.txt @@ -45,3 +45,4 @@ target_include_directories(ui_layout PRIVATE "${ROOT}/app/src") target_link_libraries(ui_layout PRIVATE borealis PkgConfig::JANSSON) target_compile_definitions(ui_layout PRIVATE OPENNOW_UI_SOURCE_ROOT="${ROOT}") target_link_options(ui_layout PRIVATE "-Wl,--wrap=_ZN4brls11Application6notifyERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE") +target_link_options(ui_layout PRIVATE "-Wl,--wrap=nvgText" "-Wl,--wrap=nvgTextWithCursor") diff --git a/tests/ui_layout/README.md b/tests/ui_layout/README.md index 99c5d772..09185f84 100644 --- a/tests/ui_layout/README.md +++ b/tests/ui_layout/README.md @@ -52,6 +52,20 @@ failures do not stop subsequent cases, and any failure makes the runner nonzero. in 1200-pixel rows. Absolute art is not a flow sibling, and scrolling content may exceed its viewport. Two-pixel Yoga containment tolerance does not relax exact card dimensions. +- Actual NanoVG glyph bounds and font measurements for fixed Library captions + in every 4-sort × 6-filter combination; row title/value containment inside + content padding; focused Settings rows inside their scissor viewport; and no + visible scrollbar over cards, labels or focus borders. Library/Store long + game titles must use complete static ellipses, with identical cropped native + framebuffer pixels before and after the native scroll timer. The test-link + NanoVG observers forward every draw to the real implementation. Geometry-only + passes do not establish readable text or visual acceptance. + Bearings are measured at the recorded NanoVG transform and raster origin with + the label's font quality. Fontstash rounds glyph quads to physical pixels, so + only the label's own ink boundary allows one physical pixel (`1/windowScale`). + Draw-anchor tolerance remains 0.5 logical pixels; full-caption fit, padded-row + containment, no overlap, ancestor-scissor bounds and static-title pixel + stability are unchanged. - Public Borealis controller dispatch, real focus routing, hit-testing and START/END gestures, actual SDL IME text-input/submission, Library focus-preview identity, filter/sort/search, bounded fifteen-row local pages with previous diff --git a/tests/ui_layout/run.sh b/tests/ui_layout/run.sh index 4fc768d6..3f11838f 100644 --- a/tests/ui_layout/run.sh +++ b/tests/ui_layout/run.sh @@ -31,6 +31,8 @@ capture_case() { if [[ -f "$output/$name.ppm.restored.ppm" ]]; then convert "$output/$name.ppm.restored.ppm" "$output/$name.ppm.restored.png"; fi find "$output" -maxdepth 1 -name "$name.ppm.settings-*.ppm" -print0 | while IFS= read -r -d '' path; do convert "$path" "${path%.ppm}.png"; done + find "$output" -maxdepth 1 -name "$name.ppm.*-title-*.ppm" -print0 | + while IFS= read -r -d '' path; do convert "$path" "${path%.ppm}.png"; done } for width in 1280 1920; do for language in en zh-CN es ru it fr pl uk; do diff --git a/tests/ui_layout/ui_layout.cpp b/tests/ui_layout/ui_layout.cpp index 94e48a5b..485ba39e 100644 --- a/tests/ui_layout/ui_layout.cpp +++ b/tests/ui_layout/ui_layout.cpp @@ -36,6 +36,8 @@ namespace { int failures = 0; +std::string capture_path; +void Screenshot(const std::string& path); void Check(bool passed, const std::string& message) { std::printf("%s %s\n", passed ? "PASS" : "FAIL", message.c_str()); @@ -250,6 +252,218 @@ void CheckFonts(brls::View* root) Check(std::isfinite(measured) && measured > 100 && bounds[3] > bounds[1], "actual font chain measures mixed Latin/Cyrillic/Chinese text"); } } +struct GlyphMetrics { float width, left_bearing, right_overhang; }; +GlyphMetrics MeasureGlyphs(brls::Label* label, const std::string& text, const ui_fixture::TextDraw* draw = nullptr) +{ + auto* vg = brls::Application::getNVGContext(); + nvgSave(vg); + nvgFontFaceId(vg, label->getFont()); + nvgFontSize(vg, label->getFontSize()); + nvgFontQuality(vg, label->getFontQuality()); + nvgTextLineHeight(vg, label->getLineHeight()); + nvgTextAlign(vg, NVG_ALIGN_LEFT | NVG_ALIGN_MIDDLE); + if (draw) + { + nvgResetTransform(vg); + const auto& transform = draw->transform; + nvgTransform(vg, transform[0], transform[1], transform[2], transform[3], transform[4], transform[5]); + } + const float x = draw ? draw->raw_x : 0, y = draw ? draw->raw_y : 0; + float bounds[4] {}; + const float advance = nvgTextBounds(vg, x, y, text.c_str(), nullptr, bounds); + nvgRestore(vg); + return {bounds[2] - bounds[0], std::min(0.0f, bounds[0] - x), std::max(0.0f, bounds[2] - x - advance)}; +} +float GlyphWidth(brls::Label* label) { return MeasureGlyphs(label, label->getFullText()).width; } +std::vector CaptureText() +{ + ui_fixture::BeginTextCapture(); + Pump(1); + return ui_fixture::EndTextCapture(); +} +void CheckPaintedLabel(brls::Label* label, const std::vector& draws, + const std::string& name, bool require_ellipsis = false, + const brls::Rect* row_bounds = nullptr, const brls::Rect* scissor_bounds = nullptr) +{ + const auto full = label->getFullText(); + if (full.empty()) return; + const auto frame = label->getFrame(); + bool found = false; + for (const auto& draw : draws) + { + const bool ellipsis = draw.text.ends_with("…"); + const bool identity = draw.text == full || + (ellipsis && full.starts_with(draw.text.substr(0, draw.text.size() - std::string("…").size()))); + if (!identity || std::abs(draw.y - frame.getMidY()) > 1 || + draw.bounds[2] < frame.getMinX() || draw.bounds[0] > frame.getMaxX()) continue; + found = true; + const auto glyphs = MeasureGlyphs(label, draw.text, &draw); + std::printf("GLYPHS %s text=[%s] ink=%.2f,%.2f,%.2f,%.2f frame=%.2f,%.2f,%.2f,%.2f scrolling=%d\n", + name.c_str(), draw.text.c_str(), draw.bounds[0], draw.bounds[1], draw.bounds[2], draw.bounds[3], + frame.getMinX(), frame.getMinY(), frame.getMaxX(), frame.getMaxY(), draw.scrolling_path); + Check(!draw.scrolling_path, name + " paints static text, not a scissored marquee"); + Check(std::abs(draw.x - frame.getMinX()) <= 0.5f, name + " native text anchor remains at allocated label origin"); + const float raster_pixel = 1.0f / brls::Application::windowScale; + Check(draw.bounds[0] >= frame.getMinX() + glyphs.left_bearing - raster_pixel && + draw.bounds[2] <= frame.getMaxX() + glyphs.right_overhang + raster_pixel, + name + " painted glyphs fit label width with actual measured bearings"); + std::printf("BEARINGS %s anchor=%.2f expected=%.2f left=%.2f right=%.2f raster_pixel=%.5f\n", + name.c_str(), draw.x, frame.getMinX(), glyphs.left_bearing, glyphs.right_overhang, raster_pixel); + for (const auto* bounds : {row_bounds, scissor_bounds}) + if (bounds) Check(draw.bounds[0] >= bounds->getMinX() - 0.5f && draw.bounds[2] <= bounds->getMaxX() + 0.5f && + draw.bounds[1] >= bounds->getMinY() - 0.5f && draw.bounds[3] <= bounds->getMaxY() + 0.5f, + name + " actual glyph ink remains inside row and scissor bounds"); + Check(draw.bounds[1] >= frame.getMinY() - 1 && draw.bounds[3] <= frame.getMaxY() + 1, + name + " actual painted glyphs fit allocated label height"); + if (require_ellipsis) Check(ellipsis, name + " overflowing game identity has a complete static ellipsis"); + } + Check(found, name + " observed actual NanoVG text draw"); +} +void CheckActionRow(opennow::ui::ActionRow* row, const std::vector& draws, + const std::string& name, bool full_caption = false) +{ + const auto frame = row->getFrame(); + const float left = frame.getMinX() + YGNodeLayoutGetPadding(row->getYGNode(), YGEdgeLeft); + const float right = frame.getMaxX() - YGNodeLayoutGetPadding(row->getYGNode(), YGEdgeRight); + float previous_right = left; + brls::Rect scissor; + bool has_scissor = false; + auto* parent = row->hasParent() ? row->getParent() : nullptr; + while (parent) + { + if (auto* viewport = dynamic_cast(parent)) + { + scissor = viewport->getFrame(); + has_scissor = true; + break; + } + parent = parent->hasParent() ? parent->getParent() : nullptr; + } + for (auto* child : row->getChildren()) + { + auto* label = dynamic_cast(child); + if (!label || label->getVisibility() != brls::Visibility::VISIBLE || label->getFullText().empty()) continue; + const auto label_frame = label->getFrame(); + Check(label_frame.getMinX() >= left - 0.5f && label_frame.getMaxX() <= right + 0.5f, + name + " title/value label stays inside row content padding"); + Check(label_frame.getMinX() >= previous_right - 0.5f, name + " title and value do not overlap"); + previous_right = label_frame.getMaxX(); + const float required = GlyphWidth(label); + std::printf("CAPTION %s text=[%s] font=%d size=%.1f glyph_width=%.2f available=%.2f\n", + name.c_str(), label->getFullText().c_str(), label->getFont(), label->getFontSize(), required, label_frame.getWidth()); + if (full_caption) Check(required <= label_frame.getWidth() + 0.5f, name + " complete fixed caption fits measured content width"); + CheckPaintedLabel(label, draws, name, false, &frame, has_scissor ? &scissor : nullptr); + } +} +void CheckVisibleActionRows(brls::View* root, const std::string& name) +{ + const auto draws = CaptureText(); + Walk(root, [&](brls::View* view) { + auto* row = dynamic_cast(view); + if (!row) return; + const auto frame = row->getFrame(); + auto* parent = row->hasParent() ? row->getParent() : nullptr; + while (parent) + { + if (auto* viewport = dynamic_cast(parent)) + { + const auto bounds = viewport->getFrame(); + if (frame.getMinY() < bounds.getMinY() || frame.getMaxY() > bounds.getMaxY()) return; + } + parent = parent->hasParent() ? parent->getParent() : nullptr; + } + auto title = Text(row); + std::replace(title.begin(), title.end(), '\n', ' '); + CheckActionRow(row, draws, name + "/" + title); + }); +} +void CheckLibraryToolbar(brls::View* root) +{ + const auto draws = CaptureText(); + for (const char* id : {"library-search", "library-filter", "library-sort", "library-more", "library-previous", "library-next"}) + { + auto* row = dynamic_cast(Required(root, id)); + if (!row) throw std::runtime_error("Library toolbar is not a production ActionRow"); + CheckActionRow(row, draws, id, true); + } +} +void CheckStaticGameTitle(brls::View* owner, brls::Label* title, const std::string& name) +{ + Check(title != nullptr, name + " native title label exists"); + if (!title) throw std::runtime_error("Missing production game title label"); + brls::Application::giveFocus(owner); Pump(); DrainToasts(); + const bool overflow = GlyphWidth(title) > title->getWidth() + 1; + Check(overflow, name + " fixture genuinely exceeds native title width"); + CheckPaintedLabel(title, CaptureText(), name + "/focused", overflow); + auto read_title_pixels = [&] { + const auto frame = title->getFrame(); + const float scale = brls::Application::windowScale; + const int x = std::lround(frame.getMinX() * scale), width = std::lround(frame.getWidth() * scale); + const int y = brls::Application::windowHeight - std::lround(frame.getMaxY() * scale), height = std::lround(frame.getHeight() * scale); + std::vector pixels(width * height * 3); + glReadBuffer(GL_BACK); glPixelStorei(GL_PACK_ALIGNMENT, 1); + glReadPixels(x, y, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels.data()); + return pixels; + }; + const auto first_pixels = read_title_pixels(); + const std::string title_name = name.starts_with("library") ? "library" : "store"; + Screenshot(capture_path + "." + title_name + "-title-focused.ppm"); + const auto deadline = std::chrono::steady_clock::now() + std::chrono::milliseconds(2200); + while (std::chrono::steady_clock::now() < deadline) Pump(1); + CheckPaintedLabel(title, CaptureText(), name + "/after-scroll-timer", overflow); + Check(first_pixels == read_title_pixels(), name + " title framebuffer pixels remain unchanged after native scroll timer"); + Screenshot(capture_path + "." + title_name + "-title-after-scroll-timer.ppm"); +} +float CheckScrollDecorations(brls::ScrollingFrame* viewport, const std::string& name) +{ + float reserved_right = 0; + for (auto* child : viewport->getChildren()) + { + if (!child->isDetached() || child->getWidth() != 4 || child->getAlpha() <= 0.001f) continue; + reserved_right = std::max(reserved_right, viewport->getFrame().getMaxX() - child->getFrame().getMinX()); + } + Check(reserved_right == 0, name + " has no visible scrollbar over art, labels or focus border"); + return reserved_right; +} +void CheckFocusedScrollInsets(brls::View* focused, const std::string& name) +{ + auto* parent = focused->hasParent() ? focused->getParent() : nullptr; + while (parent && !dynamic_cast(parent)) parent = parent->hasParent() ? parent->getParent() : nullptr; + auto* viewport = dynamic_cast(parent); + Check(viewport != nullptr, name + " is inside a native scrolling viewport"); + if (!viewport) throw std::runtime_error("Missing native scrolling ancestor"); + const auto bounds = viewport->getFrame(), frame = focused->getFrame(); + const float reserved = CheckScrollDecorations(viewport, name); + Check(frame.getMinX() - 4 >= bounds.getMinX() - 0.5f && frame.getMaxX() + 4 <= bounds.getMaxX() - reserved + 0.5f, + name + " complete focus border fits horizontally inside scrolling viewport"); +} +void CheckSettingsActionRows(brls::View* root, const std::string& category) +{ + auto* viewport = dynamic_cast(Required(root, "settings/options")); + if (!viewport) throw std::runtime_error("Missing production settings scissor viewport"); + std::vector rows; + Walk(viewport, [&](brls::View* view) { if (auto* row = dynamic_cast(view)) rows.push_back(row); }); + Check(!rows.empty(), "Settings category contains production action rows: " + category); + auto* original_focus = brls::Application::getCurrentFocus(); + const auto bounds = viewport->getFrame(); + for (auto* row : rows) + { + brls::Application::giveFocus(row); Pump(16); + const auto frame = row->getFrame(); + auto title = Text(row); + std::replace(title.begin(), title.end(), '\n', ' '); + const auto name = "settings/" + category + "/" + title; + const float scrollbar_reservation = CheckScrollDecorations(viewport, name); + Check(brls::Application::getCurrentFocus() == row, name + " actual row owns focus"); + Check(frame.getMinX() - 4 >= bounds.getMinX() - 0.5f, name + " focus border has left scissor inset"); + Check(frame.getMaxX() + 4 <= bounds.getMaxX() - scrollbar_reservation + 0.5f, + name + " focus border clears actual right scissor and scrollbar reservation"); + Check(frame.getMinY() - 4 >= bounds.getMinY() - 0.5f && frame.getMaxY() + 4 <= bounds.getMaxY() + 0.5f, + name + " focused row and border fit vertical scissor viewport"); + CheckActionRow(row, CaptureText(), name); + } + if (original_focus) { brls::Application::giveFocus(original_focus); Pump(); } +} void CheckTabLanguage(brls::View* root) { Check(Text(Required(root, "shell-tabs")) == opennow::Tr("Store") + "\n" + @@ -314,6 +528,8 @@ void StoreChecks(brls::View* root, bool empty, bool guest) Walk(root, [&](brls::View* view) { if (auto* card = dynamic_cast(view)) cards.push_back(card); }); if (empty) { Check(cards.empty(), "empty real Store feed creates no game cards"); return; } Check(cards.size() == 15, "production Store page retains fifteen games"); + CheckStaticGameTitle(cards.front(), dynamic_cast(cards.front()->getView("catalog-card-title")), "store/game-title"); + CheckFocusedScrollInsets(cards.front(), "store/first-column"); for (size_t index = 0; index < cards.size(); ++index) { const auto rect = cards[index]->getFrame(); @@ -327,6 +543,7 @@ void StoreChecks(brls::View* root, bool empty, bool guest) Check(brls::Application::getCurrentFocus() == cards[9], "real Store down navigation preserves fifth column"); Key(brls::BUTTON_NAV_UP); Check(brls::Application::getCurrentFocus() == cards[4], "real Store up navigation returns to fifth column"); + CheckFocusedScrollInsets(cards[4], "store/fifth-column"); brls::Application::giveFocus(Required(root, "catalog-filter")); Key(brls::BUTTON_LT); Check(Text(root).find("Epic\n") == std::string::npos, "Store Steam filter removes Epic cards"); for (int index = 0; index < 5; ++index) Key(brls::BUTTON_LT); @@ -353,6 +570,7 @@ void StoreChecks(brls::View* root, bool empty, bool guest) } void LibraryChecks(brls::View* root, bool guest, bool empty) { + CheckLibraryToolbar(root); if (guest || empty) { Check(Text(root).find(ui_fixture::Library().empty() ? "Fixture game" : ui_fixture::Library().front().title) == std::string::npos, "guest or empty library has no fabricated games"); @@ -373,6 +591,13 @@ void LibraryChecks(brls::View* root, bool guest, bool empty) "actual Library preview cover identity matches selected game at image boundary"); }; auto* row = Required(root, "library-row-fixture-1000"); + brls::Label* game_title = nullptr; + Walk(row, [&](brls::View* view) { + if (auto* label = dynamic_cast(view); label && label->getFullText() == ui_fixture::Library().front().title) + game_title = label; + }); + CheckStaticGameTitle(row, game_title, "library/game-title"); + CheckFocusedScrollInsets(row, "library/selected-row"); brls::Application::giveFocus(row); Pump(); Check(Text(preview).find(ui_fixture::Library().front().title) != std::string::npos, "focused Library game identity updates actual preview title"); check_preview_cover(ui_fixture::Library().front().image_url); @@ -422,10 +647,24 @@ void LibraryChecks(brls::View* root, bool guest, bool empty) after_language.public_requests == before_language.public_requests && after_language.region_requests == before_language.region_requests, "actual language Save and retained-tab refresh cause no new feed or region requests"); + const int before_caption_cycles = ui_fixture::Snapshot().library_requests; + for (int sort = 0; sort < 4; ++sort) + { + for (int filter = 0; filter < 6; ++filter) + { + CheckLibraryToolbar(root); + Key(brls::BUTTON_LT); + } + Key(brls::BUTTON_RT); + } + Check(ui_fixture::Snapshot().library_requests == before_caption_cycles, "all native toolbar caption states remain local without feed requests"); + CheckLibraryToolbar(root); + brls::Application::giveFocus(Required(root, "library-row-fixture-1000")); Pump(); } void SettingsChecks(brls::View* root, const std::string& capture) { auto capture_category = [&](const std::string& category) { + CheckSettingsActionRows(root, category); CheckChildren(dynamic_cast(root), "settings-" + category); CheckFonts(root); DrainToasts(); Screenshot(capture + ".settings-" + category + ".ppm"); }; @@ -450,6 +689,7 @@ void SettingsChecks(brls::View* root, const std::string& capture) } void DetailChecks(opennow::GameDetailView* root) { + CheckVisibleActionRows(root, "detail/actions"); auto* description = dynamic_cast(Required(root, "detail/description")); Check(description && description->getChildren().front()->getHeight() > description->getHeight(), "actual production description overflows bounded scroll viewport"); brls::Application::giveFocus(Required(root, "detail/play")); Pump(); Key(brls::BUTTON_NAV_UP); @@ -496,6 +736,7 @@ void DetailChecks(opennow::GameDetailView* root) opennow::AppState::Instance().ActivateSession(auth); Pump(48); Check(ui_fixture::Snapshot().launches.size() == guarded_starts, "account change between selection and deferred dismiss prevents stale-account launch"); Key(brls::BUTTON_B); + description->setContentOffsetY(0, false); Pump(); } void QueueChecks(const opennow::AuthSession& session, const std::string& capture) @@ -504,7 +745,8 @@ void QueueChecks(const opennow::AuthSession& session, const std::string& capture opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1000", "Native queue fixture", "Steam", "Native queue fixture", "fixture-1000", "fixture://cover/1000"); Until([] { return opennow::GetCurrentQueuePosition() == 123; }, "real queue worker publishes actual three-digit position"); Check(Text(Required(CurrentRoot(), "queue/position")).find("123") != std::string::npos, "native queue displays all three position digits"); - CheckChildren(dynamic_cast(CurrentRoot()), "queue"); CheckFonts(CurrentRoot()); Screenshot(capture + ".queue.ppm"); + CheckChildren(dynamic_cast(CurrentRoot()), "queue"); CheckFonts(CurrentRoot()); + CheckVisibleActionRows(CurrentRoot(), "queue/actions"); Screenshot(capture + ".queue.ppm"); Tap(Required(CurrentRoot(), "queue/minimize")); Check(opennow::IsQueueMinimized(), "actual Minimize dismisses UI without canceling worker"); const auto original = opennow::LoadStreamSettings(); @@ -608,6 +850,7 @@ int main(int argc, char** argv) { const std::string language = argc > 1 ? argv[1] : "en", account = argc > 2 ? argv[2] : "Player"; const std::string capture = argc > 3 ? argv[3] : "native.ppm", scenario = argc > 5 ? argv[5] : "library"; + capture_path = capture; const int physical_width = argc > 4 ? std::stoi(argv[4]) : 1280; const bool guest = account == "guest", empty = scenario == "empty" || scenario == "empty-store"; ui_fixture::Reset(capture + ".storage", empty); @@ -649,6 +892,7 @@ int main(int argc, char** argv) if (auto* label = dynamic_cast(view)) Check(label->isSingleLine() && label->getHeight() <= 20, "production tab label stays on one line"); }); CheckFonts(frame); + CheckVisibleActionRows(frame, "initial-actions"); opennow::StreamSettings fractional; fractional.bitrate_kbps = 12345; Check(opennow::ui::StreamSummary(fractional).find("12.345") != std::string::npos, "configured stream summary preserves 12345 kbps"); fractional.bitrate_kbps = 12500; diff --git a/tests/ui_layout/ui_layout_fixtures.hpp b/tests/ui_layout/ui_layout_fixtures.hpp index 2b857b51..066a373c 100644 --- a/tests/ui_layout/ui_layout_fixtures.hpp +++ b/tests/ui_layout/ui_layout_fixtures.hpp @@ -6,6 +6,7 @@ #include #include +#include namespace opennow { class CachedImage; } @@ -13,6 +14,14 @@ namespace ui_fixture { struct LaunchCall { std::string user_id, app_id, title, store; }; struct CoverCall { const opennow::CachedImage* image; std::string url; }; +struct TextDraw +{ + std::string text; + std::array bounds; + std::array transform; + float x, y, raw_x, raw_y; + bool scrolling_path; +}; struct Calls { int library_requests = 0; @@ -38,4 +47,6 @@ void SetSessionMode(SessionMode mode); void ReleaseStart(); void ClearLauncherPreference(); void RecordNotification(const std::string& text); +void BeginTextCapture(); +std::vector EndTextCapture(); } diff --git a/tests/ui_layout/ui_layout_stubs.cpp b/tests/ui_layout/ui_layout_stubs.cpp index 698daa1b..bcfb3a0e 100644 --- a/tests/ui_layout/ui_layout_stubs.cpp +++ b/tests/ui_layout/ui_layout_stubs.cpp @@ -26,6 +26,30 @@ std::string storage, saved_variant; ui_fixture::SessionMode session_mode = ui_fixture::SessionMode::Ready; std::condition_variable start_gate; bool start_released = false; +bool capture_text = false; +std::vector text_draws; + +void RecordTextDraw(NVGcontext* vg, float x, float y, const char* text, const char* end, bool scrolling_path) +{ + if (!capture_text || !text || text == end || !*text) return; + float bounds[4] {}, transform[6] {}; + nvgTextBounds(vg, x, y, text, end, bounds); + nvgCurrentTransform(vg, transform); + ui_fixture::TextDraw draw; + draw.text = end ? std::string(text, end) : std::string(text); + std::copy(std::begin(transform), std::end(transform), draw.transform.begin()); + draw.raw_x = x; + draw.raw_y = y; + const float scale = brls::Application::windowScale; + nvgTransformPoint(&draw.bounds[0], &draw.bounds[1], transform, bounds[0], bounds[1]); + nvgTransformPoint(&draw.bounds[2], &draw.bounds[3], transform, bounds[2], bounds[3]); + nvgTransformPoint(&draw.x, &draw.y, transform, x, y); + for (auto& value : draw.bounds) value /= scale; + draw.x /= scale; + draw.y /= scale; + draw.scrolling_path = scrolling_path; + text_draws.push_back(std::move(draw)); +} } namespace ui_fixture @@ -84,6 +108,21 @@ void SetSessionMode(SessionMode mode) { std::lock_guard lock(fixture_mutex); ses void ReleaseStart() { { std::lock_guard lock(fixture_mutex); start_released = true; } start_gate.notify_all(); } void ClearLauncherPreference() { std::lock_guard lock(fixture_mutex); saved_variant.clear(); } void RecordNotification(const std::string& text) { std::lock_guard lock(fixture_mutex); calls.notifications.push_back(text); } +void BeginTextCapture() { text_draws.clear(); capture_text = true; } +std::vector EndTextCapture() { capture_text = false; return std::move(text_draws); } +} + +extern "C" float __real_nvgText(NVGcontext*, float, float, const char*, const char*); +extern "C" float __wrap_nvgText(NVGcontext* vg, float x, float y, const char* text, const char* end) +{ + RecordTextDraw(vg, x, y, text, end, true); + return __real_nvgText(vg, x, y, text, end); +} +extern "C" float __real_nvgTextWithCursor(NVGcontext*, float, float, const char*, const char*, int); +extern "C" float __wrap_nvgTextWithCursor(NVGcontext* vg, float x, float y, const char* text, const char* end, int cursor) +{ + RecordTextDraw(vg, x, y, text, end, false); + return __real_nvgTextWithCursor(vg, x, y, text, end, cursor); } extern "C" void RealNotify(const std::string& text) From 7450cb6041f95fa60cbec03754e4e2fd06d42362 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 08:50:05 +0000 Subject: [PATCH 10/23] Show number cards only during the active queue phase --- app/src/queue_view.cpp | 21 ++++++++++++++------- app/src/queue_view.hpp | 2 ++ app/src/ui_helpers.cpp | 2 +- tests/ui_layout/ui_layout.cpp | 27 +++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/app/src/queue_view.cpp b/app/src/queue_view.cpp index eecd7980..1c552743 100644 --- a/app/src/queue_view.cpp +++ b/app/src/queue_view.cpp @@ -101,24 +101,26 @@ QueueView::QueueView(const QueueDisplayState& state, const StreamSettings& setti left->setGrow(1); left->setShrink(1); left->setMarginRight(64); - left->addView(ui::MakeLabel(Tr("Position in queue"), 15, ui::Green(), ui::FontRole::Medium)); + position_heading_ = ui::MakeLabel(Tr("Position in queue"), 15, ui::Green(), ui::FontRole::Medium); + position_heading_->setId("queue/position-heading"); + left->addView(position_heading_); game_ = ui::MakeLabel(state.game_title, 29, ui::Text(), ui::FontRole::Heading); game_->setId("queue/game"); game_->setSingleLine(true); game_->setMarginTop(6); game_->setMarginBottom(20); left->addView(game_); - auto* counter = new brls::Box(brls::Axis::COLUMN); - counter->setHeight(170); - counter->setWidthPercentage(100); - counter->setJustifyContent(brls::JustifyContent::CENTER); + counter_ = new brls::Box(brls::Axis::COLUMN); + counter_->setHeight(170); + counter_->setWidthPercentage(100); + counter_->setJustifyContent(brls::JustifyContent::CENTER); position_ = new QueuePositionLabel(); position_->setWidthPercentage(100); position_->setHeight(170); position_->setId("queue/position"); position_->setSingleLine(true); - counter->addView(position_); - left->addView(counter); + counter_->addView(position_); + left->addView(counter_); status_ = ui::MakeLabel("", 25, ui::Text(), ui::FontRole::Heading); status_->setId("queue/status"); status_->setSingleLine(true); @@ -212,6 +214,11 @@ QueueView::QueueView(const QueueDisplayState& state, const StreamSettings& setti void QueueView::Update(const QueueDisplayState& state) { + const bool show_position = state.stage == 1 && state.position >= 0 && !state.failed; + counter_->setVisibility(show_position ? brls::Visibility::VISIBLE : brls::Visibility::GONE); + position_heading_->setVisibility(show_position ? brls::Visibility::VISIBLE : brls::Visibility::GONE); + game_->setMarginTop(show_position ? 6 : 0); + status_->setMarginTop(show_position ? 20 : 0); game_->setText(state.game_title); phase_->setText(Tr(state.status)); status_->setText(Tr(state.status)); diff --git a/app/src/queue_view.hpp b/app/src/queue_view.hpp index b89a6061..f66e2df4 100644 --- a/app/src/queue_view.hpp +++ b/app/src/queue_view.hpp @@ -32,6 +32,8 @@ class QueueView final : public brls::Box brls::Label* game_; brls::Label* status_; brls::Label* position_; + brls::Label* position_heading_; + brls::Box* counter_; brls::Label* detail_; brls::Label* phase_; ui::ActionRow* minimize_; diff --git a/app/src/ui_helpers.cpp b/app/src/ui_helpers.cpp index f511fc39..2cc45e5f 100644 --- a/app/src/ui_helpers.cpp +++ b/app/src/ui_helpers.cpp @@ -350,7 +350,7 @@ void BeginLaunchSessionDialog(const GfnClient& client, const AuthSession& auth, queue_title = info.status < 0 ? "Waiting for cloud session status" : "Preparing your cloud rig"; queue_detail = SessionStatusText(info); } - post_progress(info.status == 0 ? 1 : 2, queue_title, queue_detail, info.queue_position > 0 ? info.queue_position : -1); + post_progress(info.status == 0 && !info.app_patching ? 1 : 2, queue_title, queue_detail, info.queue_position > 0 ? info.queue_position : -1); std::this_thread::sleep_for(std::chrono::seconds(5)); if (!launch_state->launch.running()) return; diff --git a/tests/ui_layout/ui_layout.cpp b/tests/ui_layout/ui_layout.cpp index 485ba39e..07b589ab 100644 --- a/tests/ui_layout/ui_layout.cpp +++ b/tests/ui_layout/ui_layout.cpp @@ -741,6 +741,31 @@ void DetailChecks(opennow::GameDetailView* root) void QueueChecks(const opennow::AuthSession& session, const std::string& capture) { + opennow::QueueDisplayState presentation {"Queue presentation fixture", "Checking your NVIDIA account", "Waiting for authorization", 123, 0, false}; + auto* presentation_view = new opennow::QueueView(presentation, opennow::LoadStreamSettings(), [] {}, [] {}); + brls::Application::pushActivity(new brls::Activity(presentation_view)); Pump(); + for (int stage : {0, 1, 2, 3}) + { + presentation.stage = stage; + presentation.status = stage == 0 ? "Checking your NVIDIA account" : stage == 1 ? "Waiting in queue..." : stage == 2 ? "Preparing your cloud rig" : "Starting the video stream"; + presentation_view->Update(presentation); Pump(); + const auto expected = stage == 1 ? brls::Visibility::VISIBLE : brls::Visibility::GONE; + Check(Required(presentation_view, "queue/position")->getParent()->getVisibility() == expected, + "queue number cards only occupy space during the actual queue phase"); + Check(Required(presentation_view, "queue/position-heading")->getVisibility() == expected, + "position-in-queue heading is only visible with the actual number cards"); + CheckChildren(presentation_view, "queue-presentation-" + std::to_string(stage)); + Screenshot(capture + ".phase-" + std::to_string(stage) + ".ppm"); + } + presentation.stage = 1; presentation.position = -1; + presentation_view->Update(presentation); Pump(); + Check(Required(presentation_view, "queue/position")->getParent()->getVisibility() == brls::Visibility::GONE, + "unknown queue position has no placeholder number card"); + presentation.position = 123; presentation.failed = true; + presentation_view->Update(presentation); Pump(); + Check(Required(presentation_view, "queue/position")->getParent()->getVisibility() == brls::Visibility::GONE, + "failed session hides stale queue number cards"); + brls::Application::popActivity(brls::TransitionAnimation::NONE); Pump(); ui_fixture::SetSessionMode(ui_fixture::SessionMode::Waiting); opennow::LaunchSessionDialog(opennow::GfnClient(), session, "1000", "Native queue fixture", "Steam", "Native queue fixture", "fixture-1000", "fixture://cover/1000"); Until([] { return opennow::GetCurrentQueuePosition() == 123; }, "real queue worker publishes actual three-digit position"); @@ -789,6 +814,8 @@ void QueueChecks(const opennow::AuthSession& session, const std::string& capture else if (mode == ui_fixture::SessionMode::Confirmation) Check(Text(CurrentRoot()).find(opennow::Tr("Waiting for NVIDIA session ads or confirmation...")) != std::string::npos, "actual confirmation state takes priority over positive queue position"); else { CheckChildren(dynamic_cast(CurrentRoot()), "queue-failure"); Check(opennow::GetCurrentQueuePosition() == -1, "actual failed queue relinquishes running ownership"); } + Check(Required(CurrentRoot(), "queue/position")->getParent()->getVisibility() == brls::Visibility::GONE, + "unknown, patching, confirmation and failure states never render queue number cards"); Activate(Required(CurrentRoot(), "queue/cancel")); } ui_fixture::SetSessionMode(ui_fixture::SessionMode::BlockStart); From 5cc353b7de491ca5097b0be92f1bcd133b0dbdb4 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 22:09:14 +0000 Subject: [PATCH 11/23] Retire the Zortos community proxy and use direct NVIDIA requests --- app/src/gfn/catalog.cpp | 30 +++----- app/src/gfn/cloud_session.cpp | 17 ++--- app/src/gfn/cloud_session_internal.hpp | 1 - app/src/gfn/cloud_session_protocol.cpp | 4 +- app/src/gfn/community_proxy.cpp | 88 ----------------------- app/src/gfn_client.hpp | 1 - app/src/settings_tab.cpp | 7 -- app/src/settings_tab.hpp | 3 - app/src/settings_tab_actions.cpp | 63 ---------------- app/src/settings_tab_pages.cpp | 16 ----- app/src/stream_settings.cpp | 15 +--- scripts/test-host.sh | 1 + tests/community_proxy_retirement_test.cpp | 45 ++++++++++++ tests/ui_layout/ui_layout.cpp | 2 + tests/ui_layout/ui_layout_stubs.cpp | 1 - 15 files changed, 68 insertions(+), 226 deletions(-) delete mode 100644 app/src/gfn/community_proxy.cpp create mode 100644 tests/community_proxy_retirement_test.cpp diff --git a/app/src/gfn/catalog.cpp b/app/src/gfn/catalog.cpp index 2c968177..418d7edb 100644 --- a/app/src/gfn/catalog.cpp +++ b/app/src/gfn/catalog.cpp @@ -1,6 +1,5 @@ #include "internal.hpp" -#include "../community_proxy_policy.hpp" #include "../play_history.hpp" #include "../server_location_policy.hpp" #include "../stream_settings.hpp" @@ -272,8 +271,7 @@ std::string BuildLibraryUrl(const std::string& vpc_id, bool with_library_time) std::string ResolveVpcId( const HttpClient& http_client, - const AuthSession& session, - const std::string& proxy_url) + const AuthSession& session) { const StreamSettings settings = LoadStreamSettings(); const std::string streaming_base_url = server_location::ResolveStreamingBaseUrl( @@ -284,8 +282,7 @@ std::string ResolveVpcId( const HttpResponse response = http_client.Get( streaming_base_url + "v2/serverInfo", GfnClient::kUserAgent, - BuildGfnLcarsHeaders(ResolveSessionJwt(session), "NATIVE", "NVIDIA-CLASSIC", true), - proxy_url); + BuildGfnLcarsHeaders(ResolveSessionJwt(session), "NATIVE", "NVIDIA-CLASSIC", true)); if (response.status_code != 200) return "GFN-PC"; @@ -568,12 +565,10 @@ std::vector GfnClient::FetchLoginProviders() const std::vector GfnClient::FetchPublicGames() const { - const std::string proxy_url = community_proxy::EnabledUrl(LoadStreamSettings()); const HttpResponse response = http_client_.Get( kPublicCatalogEndpoint, kUserAgent, - {"Accept: application/json"}, - proxy_url); + {"Accept: application/json"}); if (response.status_code != 200) { @@ -623,15 +618,14 @@ CatalogPage GfnClient::FetchCatalogPage( { session = RecoverSavedSession(session); std::string jwt_token = ResolveSessionJwt(session); - const std::string proxy_url = community_proxy::EnabledUrl(LoadStreamSettings()); - const std::string vpc_id = ResolveVpcId(http_client_, session, proxy_url); + const std::string vpc_id = ResolveVpcId(http_client_, session); HttpResponse response = http_client_.Post( kGraphQlEndpoint, kUserAgent, BuildGraphQlPostHeaders(jwt_token), BuildCatalogRequestBody(vpc_id, search_query, cursor), - proxy_url, {.max_body_bytes = kCatalogPageBytes}); + {}, {.max_body_bytes = kCatalogPageBytes}); if (response.status_code == 401) { @@ -642,7 +636,7 @@ CatalogPage GfnClient::FetchCatalogPage( kUserAgent, BuildGraphQlPostHeaders(jwt_token), BuildCatalogRequestBody(vpc_id, search_query, cursor), - proxy_url, {.max_body_bytes = kCatalogPageBytes}); + {}, {.max_body_bytes = kCatalogPageBytes}); } if (response.status_code != 200) @@ -658,14 +652,12 @@ std::vector GfnClient::FetchLibraryGames(AuthSession& session) const { session = RecoverSavedSession(session); std::string jwt_token = ResolveSessionJwt(session); - const std::string proxy_url = community_proxy::EnabledUrl(LoadStreamSettings()); - const std::string vpc_id = ResolveVpcId(http_client_, session, proxy_url); + const std::string vpc_id = ResolveVpcId(http_client_, session); HttpResponse response = http_client_.Get( BuildLibraryUrl(vpc_id, true), kUserAgent, - BuildGraphQlHeaders(jwt_token), - proxy_url); + BuildGraphQlHeaders(jwt_token)); if (response.status_code == 401) { @@ -674,8 +666,7 @@ std::vector GfnClient::FetchLibraryGames(AuthSession& session) const response = http_client_.Get( BuildLibraryUrl(vpc_id, true), kUserAgent, - BuildGraphQlHeaders(jwt_token), - proxy_url); + BuildGraphQlHeaders(jwt_token)); } if (response.status_code != 200) @@ -683,8 +674,7 @@ std::vector GfnClient::FetchLibraryGames(AuthSession& session) const response = http_client_.Get( BuildLibraryUrl(vpc_id, false), kUserAgent, - BuildGraphQlHeaders(jwt_token), - proxy_url); + BuildGraphQlHeaders(jwt_token)); } if (response.status_code != 200) diff --git a/app/src/gfn/cloud_session.cpp b/app/src/gfn/cloud_session.cpp index 676936ab..a87f0d55 100644 --- a/app/src/gfn/cloud_session.cpp +++ b/app/src/gfn/cloud_session.cpp @@ -1,6 +1,5 @@ #include "cloud_session_internal.hpp" -#include "../community_proxy_policy.hpp" #include "../server_location_policy.hpp" #include @@ -23,7 +22,6 @@ SessionInfo GfnClient::StartSession(AuthSession& session, const std::string& lau const std::string device_id = GenerateDeviceId(); const std::string sub_session_id = GenerateUuid(); - const std::string proxy_url = community_proxy::EnabledUrl(stream_settings); std::string automatic_region_url; std::string automatic_region_trace; if (server_location::IsAutomatic(stream_settings.region)) @@ -95,7 +93,6 @@ SessionInfo GfnClient::StartSession(AuthSession& session, const std::string& lau http_client_, streaming_base_url, headers, - proxy_url, stream_settings); network_test_trace = network_test_session_id.empty() ? "unavailable; launch will use regional endpoint without a test ID" @@ -132,14 +129,14 @@ SessionInfo GfnClient::StartSession(AuthSession& session, const std::string& lau AppendSessionTraceLog("START headers:\n" + HeadersForTrace(headers)); AppendSessionTraceLog("START request body:\n" + JsonForTrace(body)); - HttpResponse response = http_client_.Post(url, kUserAgent, headers, body, proxy_url); + HttpResponse response = http_client_.Post(url, kUserAgent, headers, body); if (response.status_code == 401) { session = ForceRefreshSavedSession(session); jwt_token = ResolveSessionJwt(session); headers[0] = "Authorization: GFNJWT " + jwt_token; AppendSessionTraceLog("START authorization rejected; refreshed token and retrying once"); - response = http_client_.Post(url, kUserAgent, headers, body, proxy_url); + response = http_client_.Post(url, kUserAgent, headers, body); } AppendSessionTraceLog("START response HTTP " + std::to_string(response.status_code)); AppendSessionTraceLog("START response body:\n" + JsonForTrace(response.body)); @@ -223,7 +220,6 @@ SessionInfo GfnClient::PollSession(AuthSession& session, const std::string& sess session = EnsureFreshSavedSession(session); std::string jwt_token = ResolveSessionJwt(session); const std::string device_id = GenerateDeviceId(); - const std::string proxy_url = community_proxy::EnabledUrl(LoadStreamSettings()); std::string streaming_base_url = LoadActiveCloudSessionStreamingBaseUrl(session, session_id); if (streaming_base_url.empty()) @@ -247,14 +243,14 @@ SessionInfo GfnClient::PollSession(AuthSession& session, const std::string& sess AppendSessionTraceLog("POLL url=" + url); AppendSessionTraceLog("POLL headers:\n" + HeadersForTrace(headers)); - HttpResponse response = http_client_.Get(url, kUserAgent, headers, proxy_url); + HttpResponse response = http_client_.Get(url, kUserAgent, headers); if (response.status_code == 401) { session = ForceRefreshSavedSession(session); jwt_token = ResolveSessionJwt(session); headers[0] = "Authorization: GFNJWT " + jwt_token; AppendSessionTraceLog("POLL authorization rejected; refreshed token and retrying once"); - response = http_client_.Get(url, kUserAgent, headers, proxy_url); + response = http_client_.Get(url, kUserAgent, headers); } AppendSessionTraceLog("POLL response HTTP " + std::to_string(response.status_code)); AppendSessionTraceLog("POLL response body:\n" + JsonForTrace(response.body)); @@ -336,7 +332,6 @@ void GfnClient::StopSession(AuthSession& session, const std::string& session_id) session = EnsureFreshSavedSession(session); std::string jwt_token = ResolveSessionJwt(session); const std::string device_id = GenerateDeviceId(); - const std::string proxy_url = community_proxy::EnabledUrl(LoadStreamSettings()); std::string streaming_base_url = LoadActiveCloudSessionStreamingBaseUrl(session, session_id); if (streaming_base_url.empty()) @@ -361,7 +356,7 @@ void GfnClient::StopSession(AuthSession& session, const std::string& session_id) AppendSessionTraceLog("STOP url=" + url); AppendSessionTraceLog("STOP headers:\n" + HeadersForTrace(headers)); HttpResponse response = http_client_.Request( - "DELETE", url, kUserAgent, headers, {}, proxy_url); + "DELETE", url, kUserAgent, headers); if (response.status_code == 401) { session = ForceRefreshSavedSession(session); @@ -369,7 +364,7 @@ void GfnClient::StopSession(AuthSession& session, const std::string& session_id) headers[0] = "Authorization: GFNJWT " + jwt_token; AppendSessionTraceLog("STOP authorization rejected; refreshed token and retrying once"); response = http_client_.Request( - "DELETE", url, kUserAgent, headers, {}, proxy_url); + "DELETE", url, kUserAgent, headers); } AppendSessionTraceLog("STOP response HTTP " + std::to_string(response.status_code)); AppendSessionTraceLog("STOP response body:\n" + JsonForTrace(response.body)); diff --git a/app/src/gfn/cloud_session_internal.hpp b/app/src/gfn/cloud_session_internal.hpp index e3f6831d..f0db79b8 100644 --- a/app/src/gfn/cloud_session_internal.hpp +++ b/app/src/gfn/cloud_session_internal.hpp @@ -45,7 +45,6 @@ std::string CreateNetworkTestSession( const HttpClient& http_client, const std::string& streaming_base_url, const std::vector& headers, - const std::string& proxy_url, const StreamSettings& stream_settings); int ParseSessionStatus(json_t* status); diff --git a/app/src/gfn/cloud_session_protocol.cpp b/app/src/gfn/cloud_session_protocol.cpp index 3ff47b34..48451104 100644 --- a/app/src/gfn/cloud_session_protocol.cpp +++ b/app/src/gfn/cloud_session_protocol.cpp @@ -426,7 +426,6 @@ std::string CreateNetworkTestSession( const HttpClient& http_client, const std::string& streaming_base_url, const std::vector& headers, - const std::string& proxy_url, const StreamSettings& stream_settings) { JsonPtr root(json_object(), &json_decref); @@ -444,8 +443,7 @@ std::string CreateNetworkTestSession( streaming_base_url + "v2/nettestsession", GfnClient::kUserAgent, headers, - DumpJson(root.get()), - proxy_url); + DumpJson(root.get())); if (response.status_code < 200 || response.status_code >= 300) return {}; diff --git a/app/src/gfn/community_proxy.cpp b/app/src/gfn/community_proxy.cpp deleted file mode 100644 index ef197114..00000000 --- a/app/src/gfn/community_proxy.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "internal.hpp" - -#include "../app_version.hpp" -#include "../community_proxy_policy.hpp" -#include "../device_identity_policy.hpp" - -#include -#include -#include - -namespace opennow -{ -using namespace gfn::detail; - -namespace -{ - -std::string CommunityProxyClientId() -{ - const std::string path = GetAppHome() + "/community_proxy_client_id.txt"; - const std::string stored = Trim(ReadTextFile(path)); - if (device_identity::IsCanonicalUuid(stored)) - return stored; - - const std::string device_id = GenerateDeviceId(); - if (device_identity::IsCanonicalUuid(device_id)) - return device_id; - - const std::string generated = GenerateUuid(); - WriteTextFileAtomically(path, generated); - return generated; -} - -} // namespace - -std::string GfnClient::ProvisionCommunityProxy() const -{ - JsonPtr request(json_object(), &json_decref); - json_object_set_new(request.get(), "clientId", json_string(CommunityProxyClientId().c_str())); - const std::string body = DumpJson(request.get()); - - const HttpResponse response = http_client_.Post( - std::string(community_proxy::kProvisionUrl), - "OpenNOW-Switch/" + std::string(kAppVersion), - {"Accept: application/json", "Content-Type: application/json"}, - body); - - JsonPtr payload(nullptr, &json_decref); - try - { - payload = LoadJson(response.body); - } - catch (const std::exception&) - { - if (response.status_code >= 200 && response.status_code < 300) - throw std::runtime_error("Community proxy returned an invalid response"); - } - - if (response.status_code < 200 || response.status_code >= 300) - { - const std::string detail = payload ? GetString(payload.get(), "message") : ""; - throw std::runtime_error( - detail.empty() - ? "Community proxy activation failed with HTTP " + - std::to_string(response.status_code) - : detail); - } - - std::string proxy_url = GetString(payload.get(), "proxyUrl"); - if (proxy_url.empty()) - { - const std::string username = GetString(payload.get(), "username"); - const std::string password = GetString(payload.get(), "password"); - if (!username.empty() && !password.empty()) - { - proxy_url = "http://" + UrlEncode(username) + ":" + UrlEncode(password) + "@" + - std::string(community_proxy::kHost) + ":" + - std::string(community_proxy::kPort); - } - } - - proxy_url = community_proxy::NormalizeUrl(proxy_url); - if (!community_proxy::IsCommunityProxyUrl(proxy_url)) - throw std::runtime_error("Community proxy returned an invalid endpoint"); - return proxy_url; -} - -} // namespace opennow diff --git a/app/src/gfn_client.hpp b/app/src/gfn_client.hpp index baa5b64e..82b84ec1 100644 --- a/app/src/gfn_client.hpp +++ b/app/src/gfn_client.hpp @@ -31,7 +31,6 @@ class GfnClient std::vector FetchStreamRegions(AuthSession& session) const; std::vector MeasureStreamRegionLatencies( std::vector regions) const; - std::string ProvisionCommunityProxy() const; AuthSession LoginWithQrCode( const LoginProvider& provider, diff --git a/app/src/settings_tab.cpp b/app/src/settings_tab.cpp index e1d605e5..72d5e935 100644 --- a/app/src/settings_tab.cpp +++ b/app/src/settings_tab.cpp @@ -452,11 +452,6 @@ void SettingsTab::MarkDirty() bool SettingsTab::SaveChanges(brls::View* view) { (void)view; - if (community_proxy_provisioning_) - { - brls::Application::notify(Tr("Connecting...")); - return true; - } if (!settings_loaded_ || !dirty_) { brls::Application::notify("Settings are already up to date"); @@ -491,8 +486,6 @@ bool SettingsTab::SaveChanges(brls::View* view) bool SettingsTab::RevertChanges(brls::View* view) { (void)view; - ++proxy_request_generation_; - community_proxy_provisioning_ = false; draft_settings_ = saved_settings_; dirty_ = false; RefreshSummary(); diff --git a/app/src/settings_tab.hpp b/app/src/settings_tab.hpp index 6dac88a3..6a2e03df 100644 --- a/app/src/settings_tab.hpp +++ b/app/src/settings_tab.hpp @@ -91,7 +91,6 @@ class SettingsTab : public brls::Box bool SwitchSavedAccount(brls::View* view); bool BeginLogin(brls::View* view); bool ClearCoverCache(brls::View* view); - bool ToggleCommunityProxy(brls::View* view); bool ChooseGameLanguage(brls::View* view); bool TogglePersistGameSettings(brls::View* view); bool ToggleControllerLayout(brls::View* view); @@ -132,8 +131,6 @@ class SettingsTab : public brls::Box StreamSettings draft_settings_; bool settings_loaded_ = false; bool dirty_ = false; - bool community_proxy_provisioning_ = false; - std::uint64_t proxy_request_generation_ = 0; std::shared_ptr alive_ = std::make_shared(true); brls::Label* cover_cache_files_ = nullptr; brls::Label* cover_cache_bytes_ = nullptr; diff --git a/app/src/settings_tab_actions.cpp b/app/src/settings_tab_actions.cpp index ee7418f8..8773a0ac 100644 --- a/app/src/settings_tab_actions.cpp +++ b/app/src/settings_tab_actions.cpp @@ -374,69 +374,6 @@ bool SettingsTab::RefreshServerLocations(brls::View* view) return true; } -bool SettingsTab::ToggleCommunityProxy(brls::View* view) -{ - (void)view; - if (community_proxy_provisioning_) - return true; - - if (draft_settings_.community_proxy_enabled) - { - draft_settings_.community_proxy_enabled = false; - MarkDirty(); - return true; - } - - const auto alive = alive_; - auto* dialog = new brls::Dialog( - "The Zortos community proxy is optional, shared and may be rate-limited or " - "unavailable. It only routes NVIDIA catalog and session requests; streaming " - "traffic stays direct."); - dialog->addButton("Enable proxy", [this, alive]() { - if (!alive->load()) - return; - const auto generation = ++proxy_request_generation_; - community_proxy_provisioning_ = true; - UpdateOptionValues(); - brls::Application::notify("Activating community proxy..."); - - GfnClient client = client_; - brls::async([this, alive, generation, client]() mutable { - if (!alive->load()) - return; - try - { - std::string proxy_url = client.ProvisionCommunityProxy(); - brls::sync([this, alive, generation, proxy_url = std::move(proxy_url)]() mutable { - if (!alive->load() || generation != proxy_request_generation_) - return; - draft_settings_.community_proxy_url = std::move(proxy_url); - draft_settings_.community_proxy_enabled = true; - community_proxy_provisioning_ = false; - MarkDirty(); - UpdateOptionValues(); - brls::Application::notify( - "Community proxy ready; press X to save"); - }); - } - catch (const std::exception& ex) - { - const std::string message = ex.what(); - brls::sync([this, alive, generation, message] { - if (!alive->load() || generation != proxy_request_generation_) - return; - community_proxy_provisioning_ = false; - UpdateOptionValues(); - ShowError("Community Proxy Failed", message); - }); - } - }, false); - }); - dialog->addButton("Cancel", [] {}); - dialog->open(); - return true; -} - bool SettingsTab::CycleImageQuality(brls::View* view) { (void)view; diff --git a/app/src/settings_tab_pages.cpp b/app/src/settings_tab_pages.cpp index 1d402f5b..635bd7d5 100644 --- a/app/src/settings_tab_pages.cpp +++ b/app/src/settings_tab_pages.cpp @@ -122,22 +122,6 @@ void SettingsTab::BuildStreamPage() [this](brls::View* view) { return CycleImageQuality(view); })); content_container_->addView(video); - auto* connection = MakeSection( - "Connection", - "Optional routing for NVIDIA catalog, session creation and queue requests."); - connection->addView(MakeOptionRow( - "Zortos community proxy", - "Streaming, signaling and account authentication always stay direct.", - [this] { - if (community_proxy_provisioning_) - return std::string("Connecting..."); - return draft_settings_.community_proxy_enabled - ? std::string("Enabled") - : std::string("Disabled"); - }, - [this](brls::View* view) { return ToggleCommunityProxy(view); })); - content_container_->addView(connection); - } void SettingsTab::BuildPreferencesPage() diff --git a/app/src/stream_settings.cpp b/app/src/stream_settings.cpp index 103b8d4b..89c98325 100644 --- a/app/src/stream_settings.cpp +++ b/app/src/stream_settings.cpp @@ -1,7 +1,6 @@ #include "stream_settings.hpp" #include "app_paths.hpp" #include "atomic_file_replace.hpp" -#include "community_proxy_policy.hpp" #include "localization.hpp" #include "server_location_policy.hpp" @@ -150,14 +149,8 @@ StreamSettings Sanitize(StreamSettings settings) if (!IsSupportedInterfaceLanguage(settings.interface_language)) settings.interface_language = "en"; - if (!settings.community_proxy_url.empty() && - !community_proxy::IsCommunityProxyUrl(settings.community_proxy_url)) - { - settings.community_proxy_enabled = false; - settings.community_proxy_url.clear(); - } - if (settings.community_proxy_enabled && settings.community_proxy_url.empty()) - settings.community_proxy_enabled = false; + settings.community_proxy_enabled = false; + settings.community_proxy_url.clear(); return settings; } @@ -385,9 +378,7 @@ std::string FormatStreamSettings(const StreamSettings& settings) " | Controls: " + settings.controller_layout + " | Motion quality: " + settings.image_quality_mode + " | Stats overlay: " + - (settings.stats_overlay_enabled ? "On" : "Off") + - " | Community proxy: " + - (settings.community_proxy_enabled ? "On" : "Off"); + (settings.stats_overlay_enabled ? "On" : "Off"); } diff --git a/scripts/test-host.sh b/scripts/test-host.sh index 9259e1fb..aa9ddb68 100644 --- a/scripts/test-host.sh +++ b/scripts/test-host.sh @@ -35,6 +35,7 @@ run_cpp localization app/src/localization.cpp run_cpp nte_credentials app/src/nte_credentials.cpp run_cpp play_history_policy app/src/play_history.cpp -ljansson run_cpp stream_settings_persistence app/src/stream_settings.cpp app/src/localization.cpp -ljansson +run_cpp community_proxy_retirement app/src/stream_settings.cpp app/src/localization.cpp -ljansson run_cpp queue_notify_settings app/src/stream_settings.cpp app/src/localization.cpp -ljansson run_cpp app_state_session_generation app/src/app_state.cpp run_cpp auth_client_token_refresh -ffunction-sections -fdata-sections -Wl,--gc-sections \ diff --git a/tests/community_proxy_retirement_test.cpp b/tests/community_proxy_retirement_test.cpp new file mode 100644 index 00000000..66c0c06c --- /dev/null +++ b/tests/community_proxy_retirement_test.cpp @@ -0,0 +1,45 @@ +#include "app_paths.hpp" +#include "stream_settings.hpp" + +#include +#include +#include +#include +#include + +namespace +{ +std::string home; +} + +namespace opennow +{ +const std::string& AppHomePath() { return home; } +void PrepareAppStorage() { std::filesystem::create_directories(home); } +} + +int main() +{ + std::string pattern = (std::filesystem::temp_directory_path() / "opennow-retired-proxy-XXXXXX").string(); + char* directory = mkdtemp(pattern.data()); + assert(directory); + home = directory; + for (const std::string suffix : {"", ".bak"}) + { + std::filesystem::remove(home + "/stream_settings.json"); + std::ofstream file(home + "/stream_settings.json" + suffix); + file << R"({"community_proxy_enabled":true,"community_proxy_url":"http://legacy-client:legacy-pass@opennow-proxy-tcp.zortos.me:3128","fps":30,"interface_language":"ru","queue_notify_threshold":20})"; + file.close(); + const auto settings = opennow::LoadStreamSettings(); + assert(!settings.community_proxy_enabled && settings.community_proxy_url.empty()); + assert(settings.fps == 30 && settings.interface_language == "ru" && settings.queue_notify_threshold == 20); + } + auto settings = opennow::LoadStreamSettings(); + settings.community_proxy_enabled = true; + settings.community_proxy_url = "http://legacy-client:legacy-pass@217.76.50.166:3128"; + assert(opennow::SaveStreamSettings(settings)); + const auto saved = opennow::LoadStreamSettings(); + assert(!saved.community_proxy_enabled && saved.community_proxy_url.empty()); + assert(saved.fps == 30 && saved.interface_language == "ru" && saved.queue_notify_threshold == 20); + std::filesystem::remove_all(home); +} diff --git a/tests/ui_layout/ui_layout.cpp b/tests/ui_layout/ui_layout.cpp index 07b589ab..49952c55 100644 --- a/tests/ui_layout/ui_layout.cpp +++ b/tests/ui_layout/ui_layout.cpp @@ -670,6 +670,8 @@ void SettingsChecks(brls::View* root, const std::string& capture) }; capture_category("account"); Activate(Required(root, "settings/category/stream")); + Check(root->getView("settings/option/zortos-community-proxy") == nullptr, + "retired community proxy is absent from the Stream settings page"); auto* bitrate = Action(root, "Bitrate"); Activate(bitrate); Key(brls::BUTTON_X); Check(opennow::LoadStreamSettings().bitrate_kbps == 16000, "real A bitrate cycle and X Save persist 16 Mbps"); Activate(bitrate); Key(brls::BUTTON_Y); Key(brls::BUTTON_X); diff --git a/tests/ui_layout/ui_layout_stubs.cpp b/tests/ui_layout/ui_layout_stubs.cpp index bcfb3a0e..65d7397b 100644 --- a/tests/ui_layout/ui_layout_stubs.cpp +++ b/tests/ui_layout/ui_layout_stubs.cpp @@ -197,7 +197,6 @@ std::vector GfnClient::MeasureStreamRegionLatencies(std::vector&, const std::function&) const { throw std::runtime_error("Native fixture does not authorize an NVIDIA account"); } From d83d54b3ba4fb9e7a2a6569798f1afa6f29234da Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 22:14:35 +0000 Subject: [PATCH 12/23] Advertise the bounded SCTP receive limit in SDP --- extern/libpeer/src/sdp.c | 3 ++- scripts/test-streaming-host.sh | 1 + tests/sdp_sctp_message_limit_test.c | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 tests/sdp_sctp_message_limit_test.c diff --git a/extern/libpeer/src/sdp.c b/extern/libpeer/src/sdp.c index b7661a4c..01cbd1fe 100644 --- a/extern/libpeer/src/sdp.c +++ b/extern/libpeer/src/sdp.c @@ -2,6 +2,7 @@ #include #include "sdp.h" +#include "sctp.h" int sdp_append(char* sdp, const char* format, ...) { va_list argptr; @@ -74,7 +75,7 @@ void sdp_append_datachannel(char* sdp) { sdp_append(sdp, "c=IN IP4 0.0.0.0"); sdp_append(sdp, "a=mid:datachannel"); sdp_append(sdp, "a=sctp-port:5000"); - sdp_append(sdp, "a=max-message-size:262144"); + sdp_append(sdp, "a=max-message-size:%u", (unsigned)SCTP_MAX_MESSAGE_SIZE); } void sdp_create(char* sdp, int b_video, int b_audio, int b_datachannel) { diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index dad2ca0e..8af6edd7 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -98,6 +98,7 @@ run_c rtp_reorder extern/libpeer/src/rtp.c run_c rtcp_nack extern/libpeer/src/rtcp.c run_c rtcp_receiver_report extern/libpeer/src/rtcp.c run_c sctp_socket_address -Iextern/libpeer/third_party/usrsctp/usrsctplib +run_c sdp_sctp_message_limit extern/libpeer/src/sdp.c run_c peer_rtcp_receive "${sections[@]}" -Wno-unused-but-set-variable \ -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c run_c dtls_nonblocking_read "${sections[@]}" -Wno-unused-parameter -Wno-empty-body \ diff --git a/tests/sdp_sctp_message_limit_test.c b/tests/sdp_sctp_message_limit_test.c new file mode 100644 index 00000000..75e1c8b1 --- /dev/null +++ b/tests/sdp_sctp_message_limit_test.c @@ -0,0 +1,18 @@ +#include "sctp.h" +#include "sdp.h" + +#include +#include +#include + +int main(void) { + char sdp[CONFIG_SDP_BUFFER_SIZE] = {0}; + sdp_create(sdp, 1, 1, 1); + sdp_append_datachannel(sdp); + const char* attribute = strstr(sdp, "a=max-message-size:"); + assert(attribute != NULL); + const unsigned long advertised = strtoul(attribute + strlen("a=max-message-size:"), NULL, 10); + assert(advertised == SCTP_MAX_MESSAGE_SIZE); + assert(advertised <= SCTP_RECEIVE_BUFFER_SIZE); + return 0; +} From 96b3f49ca045fc3707b658609fc0ea4756b0b0c3 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 22:16:33 +0000 Subject: [PATCH 13/23] Keep fresh video alive across advisory network-status changes --- app/src/StreamView.cpp | 26 ++++++++++ app/src/StreamView.hpp | 1 + app/src/stream_end_policy.hpp | 9 ++++ app/src/stream_view_overlay.cpp | 4 +- scripts/test-streaming-host.sh | 1 + tests/stream_network_evidence_test.cpp | 68 ++++++++++++++++++++++++++ 6 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 tests/stream_network_evidence_test.cpp diff --git a/app/src/StreamView.cpp b/app/src/StreamView.cpp index ebdb488e..fee4ec92 100644 --- a/app/src/StreamView.cpp +++ b/app/src/StreamView.cpp @@ -83,6 +83,7 @@ StreamView::StreamView( } StreamView::~StreamView() { + RecordLifecycleEvent("destroy"); network_monitor_.request_stop(); opennow::SetSensitiveInputLoggingSuppressed(false); std::fill(nte_credentials_.password.begin(), nte_credentials_.password.end(), '\0'); @@ -124,6 +125,7 @@ void StreamView::onFocusLost() { void StreamView::ExitStream() { if (exit_requested_) return; + RecordLifecycleEvent("exit"); exit_requested_ = true; network_monitor_.request_stop(); if (session_) @@ -140,6 +142,30 @@ void StreamView::ExitStream() { } } +void StreamView::RecordLifecycleEvent(const char* event) { + if (!debug_diagnostics_ || !session_) + return; + + const auto elapsed = std::chrono::duration_cast( + std::chrono::steady_clock::now() - stream_started_at_).count(); + const auto network = network_monitor_.snapshot(); + const auto health = session_->get_transport_health(); + const auto video = session_->get_video_performance(); + session_->record_ui_event( + std::string("stream_lifecycle event=") + event + + " reason=" + std::to_string(static_cast(stream_end_reason_)) + + " elapsedMs=" + std::to_string(elapsed) + + " internetConnected=" + std::to_string(network.internet_connected) + + " peerCompleted=" + std::to_string(health.peer_completed) + + " peerTerminal=" + std::to_string(static_cast(health.peer_terminal)) + + " signalingConnected=" + std::to_string(health.signaling_connected) + + " videoStarted=" + std::to_string(health.video_started) + + " accessUnitIdleMs=" + std::to_string(health.video_idle.count()) + + " accessUnits=" + std::to_string(video.access_units) + + " decodedFrames=" + std::to_string(video.decoded_frames) + + " presentedFrames=" + std::to_string(video.presented_frames)); +} + void StreamView::StopCloudSessionAsync() { if (cloud_stop_requested_ || cloud_session_id_.empty()) return; diff --git a/app/src/StreamView.hpp b/app/src/StreamView.hpp index 76773f93..2c6627dc 100644 --- a/app/src/StreamView.hpp +++ b/app/src/StreamView.hpp @@ -58,6 +58,7 @@ class StreamView : public brls::Box { private: void ExitStream(); void StopCloudSessionAsync(); + void RecordLifecycleEvent(const char* event); void DrawDebugOverlay(NVGcontext* vg, float x, float y, float width); void DrawPreparingStream(NVGcontext* vg, float x, float y, float width, float height); void UpdatePerformanceCounter(); diff --git a/app/src/stream_end_policy.hpp b/app/src/stream_end_policy.hpp index 5162ea97..3dc6a9ba 100644 --- a/app/src/stream_end_policy.hpp +++ b/app/src/stream_end_policy.hpp @@ -36,6 +36,15 @@ struct StreamEndSignals std::chrono::milliseconds video_idle {0}; }; +inline bool HasStreamNetworkConnection( + bool internet_connected, + bool video_started, + std::chrono::milliseconds video_idle) +{ + return internet_connected || + (video_started && video_idle < std::chrono::seconds(3)); +} + inline StreamEndReason DetectStreamEnd(const StreamEndSignals& signals) { constexpr auto kFreeLimit = std::chrono::hours(1); diff --git a/app/src/stream_view_overlay.cpp b/app/src/stream_view_overlay.cpp index d37ea654..78d1d8cc 100644 --- a/app/src/stream_view_overlay.cpp +++ b/app/src/stream_view_overlay.cpp @@ -468,6 +468,7 @@ void StreamView::BeginStreamEnd( return; stream_end_reason_ = reason; + RecordLifecycleEvent("end"); network_monitor_.request_stop(); stream_end_started_at_ = now; stream_auto_exit_at_ = now + std::chrono::seconds(15); @@ -519,7 +520,8 @@ void StreamView::UpdateStreamEndState(std::chrono::steady_clock::time_point now) signals.free_tier = free_tier_session_; signals.session_elapsed = std::chrono::duration_cast( now - stream_started_at_); - signals.internet_connected = internet_connected_; + signals.internet_connected = opennow::HasStreamNetworkConnection( + internet_connected_, health.video_started, health.video_idle); signals.peer_completed = health.peer_completed; signals.peer_terminal = health.peer_terminal; signals.signaling_connected = health.signaling_connected; diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index 8af6edd7..113217ef 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -42,6 +42,7 @@ for name in audio_latency_policy audio_playback_timeline audio_rtp_utils control done run_cpp network_monitor app/src/network_monitor.cpp app/src/network_utils.cpp +run_cpp stream_network_evidence run_cpp diagnostic_writer app/src/webrtc/diagnostic_writer.cpp crypto=() for name in sha1 base64 platform_util constant_time; do diff --git a/tests/stream_network_evidence_test.cpp b/tests/stream_network_evidence_test.cpp new file mode 100644 index 00000000..63864cd7 --- /dev/null +++ b/tests/stream_network_evidence_test.cpp @@ -0,0 +1,68 @@ +#include "stream_end_policy.hpp" + +#include +#include + +using namespace std::chrono_literals; + +int main() +{ + using namespace opennow; + StreamEndSignals signals; + signals.peer_completed = true; + signals.video_started = true; + + const auto detect = [&](bool internet_connected) { + signals.internet_connected = HasStreamNetworkConnection( + internet_connected, signals.video_started, signals.video_idle); + return DetectStreamEnd(signals); + }; + + for (const auto idle : {0ms, 16ms, 1000ms, 2000ms, 2999ms}) + { + signals.video_idle = idle; + assert(detect(false) == StreamEndReason::None); + } + + signals.video_idle = 3000ms; + assert(detect(false) == StreamEndReason::NetworkLost); + assert(detect(true) == StreamEndReason::None); + + signals.video_idle = 0ms; + for (int sample = 0; sample < 30; ++sample) + assert(detect(false) == StreamEndReason::None); + assert(detect(true) == StreamEndReason::None); + + signals.peer_terminal = PeerTerminalKind::Failed; + assert(detect(false) == StreamEndReason::ServerDisconnected); + signals.peer_terminal = PeerTerminalKind::Disconnected; + assert(detect(false) == StreamEndReason::ServerDisconnected); + signals.peer_terminal = PeerTerminalKind::Closed; + assert(detect(false) == StreamEndReason::StreamEnded); + signals.peer_terminal = PeerTerminalKind::None; + + signals.signaling_connected = false; + signals.video_idle = 7999ms; + assert(detect(true) == StreamEndReason::None); + signals.video_idle = 8000ms; + assert(detect(true) == StreamEndReason::ServerDisconnected); + signals.signaling_connected = true; + signals.video_idle = 14999ms; + assert(detect(true) == StreamEndReason::None); + signals.video_idle = 15000ms; + assert(detect(true) == StreamEndReason::VideoTimedOut); + + signals.video_idle = 0ms; + signals.free_tier = true; + signals.session_elapsed = 1h; + assert(detect(false) == StreamEndReason::FreeSessionEnded); + + signals = {}; + assert(detect(false) == StreamEndReason::None); + signals.peer_completed = true; + assert(detect(false) == StreamEndReason::NetworkLost); + assert(detect(true) == StreamEndReason::None); + signals.peer_completed = false; + signals.peer_terminal = PeerTerminalKind::Failed; + assert(detect(true) == StreamEndReason::ConnectionFailed); +} From 794d9ca277ddfa1295745686925b1ff83799e08f Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 22:19:20 +0000 Subject: [PATCH 14/23] Count published video frames even when a later decode step fails --- app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp | 3 +- app/src/webrtc/media.cpp | 14 +- scripts/test-streaming-host.sh | 2 + ...un_webrtc_decode_output_accounting_test.sh | 20 +++ .../webrtc_decode_output_accounting_test.cpp | 137 ++++++++++++++++++ 5 files changed, 170 insertions(+), 6 deletions(-) create mode 100644 tests/run_webrtc_decode_output_accounting_test.sh create mode 100644 tests/webrtc_decode_output_accounting_test.cpp diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp index e2827a73..db21fcdb 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.hpp @@ -16,6 +16,7 @@ class FFmpegVideoDecoder : public IFFmpegVideoDecoder { int capabilities() const override; VideoDecodeStats* video_decode_stats() override; bool uses_hardware_frames() const override { return m_uses_hardware_frames; } + uint64_t decoded_frame_count() const { return m_frames_out; } private: std::string image_quality_mode_; @@ -32,7 +33,7 @@ class FFmpegVideoDecoder : public IFFmpegVideoDecoder { int m_stream_fps = 0; int m_frames_in = 0; - int m_frames_out = 0; + uint64_t m_frames_out = 0; int m_corrupt_frames_dropped = 0; int m_current_frame = 0, m_next_frame = 0; uint32_t m_last_frame = 0; diff --git a/app/src/webrtc/media.cpp b/app/src/webrtc/media.cpp index 8f10fe60..ac318211 100644 --- a/app/src/webrtc/media.cpp +++ b/app/src/webrtc/media.cpp @@ -53,15 +53,18 @@ void WebRtcSession::decoder_loop() { if (reset_decoder && decoder_ && !decoder_->uses_hardware_frames()) decoder_->reset_stream(); - const int decoded = decoder_ + const uint64_t frames_before = decoder_ ? decoder_->decoded_frame_count() : 0; + const int decode_result = decoder_ ? decoder_->submit_decode_unit(unit.data.data(), static_cast(unit.data.size()), unit.rtp_timestamp) : -1; + const int decoded_frames = decoder_ + ? static_cast(decoder_->decoded_frame_count() - frames_before) : 0; const uint64_t decode_us = static_cast( std::chrono::duration_cast( std::chrono::steady_clock::now() - decode_started_at).count()); { std::lock_guard lock(decoder_queue_mutex_); - if (decoder_recovery_.complete(unit.generation, decoded >= 0) == + if (decoder_recovery_.complete(unit.generation, decode_result >= 0) == opennow::webrtc::DecodeRecoveryState::Completion::Failed) { decoder_queue_drops_ += static_cast(decoder_queue_.size()); clear_decoder_queue_locked(); @@ -72,9 +75,9 @@ void WebRtcSession::decoder_loop() { AtomicMax(decode_us_max_, decode_us); const int access_unit_count = packets_received_.load(); - if (decoded > 0) { + if (decoded_frames > 0) { last_decoded_frame_at_us_.store(NowUs(), std::memory_order_release); - const int frame_count = frames_decoded_.fetch_add(decoded) + decoded; + const int frame_count = frames_decoded_.fetch_add(decoded_frames) + decoded_frames; if (!first_decoded_frame_logged_) { first_decoded_frame_logged_ = true; AppendStreamLog("DECODE first_frame frames=" + std::to_string(frame_count) + @@ -84,7 +87,8 @@ void WebRtcSession::decoder_loop() { " accessUnits=" + std::to_string(access_unit_count)); last_logged_frame_count_.store(frame_count, std::memory_order_relaxed); } - } else if (decoded < 0) { + } + if (decode_result < 0) { const int error_count = decode_errors_.fetch_add(1) + 1; if (error_count <= 5 || error_count - last_logged_decode_error_count_.load(std::memory_order_relaxed) >= 20) { diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index 113217ef..ab30db53 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -62,6 +62,8 @@ run_cpp webrtc_input_handshake -Iextern/libpeer/src \ -Iextern/borealis/library/include/borealis/extern/nanovg "${sections[@]}" \ app/src/webrtc/input.cpp -ljansson run_cpp av_frame_queue -Itests/stream_stubs app/src/stream/ffmpeg/AVFrameHolder.cpp -lavcodec -lavutil +bash tests/run_webrtc_decode_output_accounting_test.sh +printf 'PASS webrtc_decode_output_accounting\n' run_cpp gpu_frame_queue -lavutil python3 tests/run_deko_renderer_reconfiguration_test.py printf 'PASS deko_renderer_reconfiguration\n' diff --git a/tests/run_webrtc_decode_output_accounting_test.sh b/tests/run_webrtc_decode_output_accounting_test.sh new file mode 100644 index 00000000..2621127c --- /dev/null +++ b/tests/run_webrtc_decode_output_accounting_test.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "$(dirname "$0")/.." +out="$(mktemp -d)" +trap 'rm -rf "$out"' EXIT +cxxflags=(-std=c++20 -Wall -Wextra -Werror -pthread -g -O1 + -fno-omit-frame-pointer -ffunction-sections -fdata-sections + -Iapp/src -Itests/stream_stubs -Iextern/libpeer/src + -Iextern/libpeer/third_party/mbedtls/include + -Iextern/borealis/library/include/borealis/extern/nanovg) +if [[ -n "${OPENNOW_SANITIZERS:-}" ]]; then + cxxflags+=("-fsanitize=$OPENNOW_SANITIZERS") +fi +"${CXX:-g++}" "${cxxflags[@]}" tests/webrtc_decode_output_accounting_test.cpp \ + app/src/webrtc/media.cpp app/src/webrtc/shared.cpp \ + app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp app/src/stream/ffmpeg/AVFrameHolder.cpp \ + -Wl,--gc-sections,--wrap=avcodec_send_packet,--wrap=avcodec_receive_frame \ + -lavcodec -lavutil -ljansson -o "$out/test" +"$out/test" diff --git a/tests/webrtc_decode_output_accounting_test.cpp b/tests/webrtc_decode_output_accounting_test.cpp new file mode 100644 index 00000000..181b78ff --- /dev/null +++ b/tests/webrtc_decode_output_accounting_test.cpp @@ -0,0 +1,137 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define private public +#include "webrtc_session.hpp" +#undef private +#include "webrtc/internal.hpp" +#include "webrtc/startup_timeout_policy.hpp" +#include "stream/ffmpeg/AVFrameHolder.hpp" + +#include +#include + +namespace { +std::deque send_results; +std::deque receive_results; +WebRtcSession* active_session = nullptr; +int64_t next_pts = 90000; +} + +extern "C" { +int peer_init() { return 0; } +void peer_deinit() {} + +int __wrap_avcodec_send_packet(AVCodecContext*, const AVPacket*) +{ + assert(!send_results.empty()); + const int result = send_results.front(); + send_results.pop_front(); + if (send_results.empty() && receive_results.empty()) + active_session->decoder_running_.store(false); + return result; +} + +int __wrap_avcodec_receive_frame(AVCodecContext*, AVFrame* frame) +{ + assert(!receive_results.empty()); + const int result = receive_results.front(); + receive_results.pop_front(); + if (send_results.empty() && receive_results.empty()) + active_session->decoder_running_.store(false); + if (result < 0) + return result; + frame->format = AV_PIX_FMT_YUV420P; + frame->width = 16; + frame->height = 16; + frame->pts = next_pts; + next_pts += 1500; + assert(av_frame_get_buffer(frame, 0) == 0); + return 0; +} +} + +namespace opennow::webrtc::internal { +void AppendStreamLog(const std::string&) {} +} + +WebRtcSession::WebRtcSession(const std::string&, const std::string&, const std::string&, + const std::string&, int, const std::vector&, + const opennow::StreamSettings&) {} +WebRtcSession::~WebRtcSession() +{ + if (decoder_) + decoder_->cleanup(); +} +SignalingClient::~SignalingClient() = default; +WebSocketClient::~WebSocketClient() = default; +struct AudioPipeline::Impl {}; +AudioPipeline::~AudioPipeline() = default; + +static void run_worker(WebRtcSession& session, std::deque sends, + std::deque receives, bool queue_following_frame) +{ + send_results = std::move(sends); + receive_results = std::move(receives); + active_session = &session; + session.decoder_running_.store(true); + const uint8_t idr[] = {0, 0, 0, 1, 0x65}; + session.enqueue_decode_unit(idr, sizeof(idr), 90000); + if (queue_following_frame) + session.enqueue_decode_unit(idr, sizeof(idr), 91500); + session.decoder_loop(); + assert(send_results.empty() && receive_results.empty()); +} + +static void check_partial_output(std::deque sends, std::deque receives) +{ + WebRtcSession session("", "", "", "", 0, {}, {}); + session.decoder_ = std::make_unique("Adaptive"); + assert(session.decoder_->setup(VIDEO_FORMAT_H264, 16, 16, 60, nullptr, + VIDEO_DECODER_FORCE_SOFTWARE) == 0); + run_worker(session, std::move(sends), std::move(receives), true); + bool published = false; + AVFrameHolder::instance().get([&](AVFrame* frame, uint64_t generation, bool reused) { + assert(frame->buf[0] && generation == 1 && !reused); + published = true; + }); + assert(published); + assert(session.frames_decoded_.load() == 1); + assert(opennow::webrtc::DetectStartupTimeout( + true, session.frames_decoded_.load() > 0, std::chrono::seconds(15), + std::chrono::seconds(15)) == opennow::webrtc::StartupTimeout::None); + assert(session.last_decoded_frame_at_us_.load() > 0); + assert(session.decode_errors_.load() == 1); + assert(session.decoder_recovery_.waiting_for_idr()); + assert(session.decoder_recovery_.take_keyframe_request()); + assert(session.decoder_queue_.empty() && session.decoder_queue_drops_.load() == 1); + + run_worker(session, {0}, {AVERROR(EAGAIN)}, false); + assert(session.frames_decoded_.load() == 1); + assert(session.decode_errors_.load() == 1); + assert(!session.decoder_recovery_.waiting_for_idr()); + + run_worker(session, {AVERROR(EAGAIN), 0}, {0, AVERROR(EAGAIN), 0, AVERROR(EAGAIN)}, false); + assert(session.frames_decoded_.load() == 3); + assert(session.decode_errors_.load() == 1); + assert(!session.decoder_recovery_.waiting_for_idr()); +} + +int main() +{ + check_partial_output({0}, {0, AVERROR_INVALIDDATA}); + check_partial_output({AVERROR(EAGAIN)}, {0, AVERROR_INVALIDDATA}); + check_partial_output({AVERROR(EAGAIN), AVERROR_INVALIDDATA}, {0, AVERROR(EAGAIN)}); + std::puts("Decode output accounting and recovery: PASS"); +} From aec68ff9dd1476810c0010b1405dbddf67c628ba Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 22:31:00 +0000 Subject: [PATCH 15/23] Keep video progressing while audio output re-primes --- app/src/stream/audio/AudioPipeline.cpp | 4 + app/src/stream/audio/AudioPipeline.hpp | 1 + app/src/webrtc/media.cpp | 2 +- scripts/test-streaming-host.sh | 2 + tests/audio_video_underrun_test.cpp | 210 +++++++++++++++++++++++++ tests/run_audio_video_underrun_test.sh | 19 +++ 6 files changed, 237 insertions(+), 1 deletion(-) create mode 100644 tests/audio_video_underrun_test.cpp create mode 100644 tests/run_audio_video_underrun_test.sh diff --git a/app/src/stream/audio/AudioPipeline.cpp b/app/src/stream/audio/AudioPipeline.cpp index 6b6198c0..9ed2273a 100644 --- a/app/src/stream/audio/AudioPipeline.cpp +++ b/app/src/stream/audio/AudioPipeline.cpp @@ -804,6 +804,10 @@ void AudioPipeline::set_sender_report(uint32_t ssrc, uint64_t ntp_us, uint32_t r " rtp=" + std::to_string(rtp_timestamp)); } +bool AudioPipeline::is_playing() const { + return impl_->output_started.load(std::memory_order_acquire); +} + int64_t AudioPipeline::playback_ntp_us() const { if (!impl_->output_ready.load()) return -1; diff --git a/app/src/stream/audio/AudioPipeline.hpp b/app/src/stream/audio/AudioPipeline.hpp index 26522dd0..ee707c96 100644 --- a/app/src/stream/audio/AudioPipeline.hpp +++ b/app/src/stream/audio/AudioPipeline.hpp @@ -19,6 +19,7 @@ class AudioPipeline { void submit(const PeerAudioPacket& packet); void set_sender_report(uint32_t ssrc, uint64_t ntp_us, uint32_t rtp_timestamp); std::string debug_info() const; + bool is_playing() const; int64_t playback_ntp_us() const; private: diff --git a/app/src/webrtc/media.cpp b/app/src/webrtc/media.cpp index ac318211..8e13c56e 100644 --- a/app/src/webrtc/media.cpp +++ b/app/src/webrtc/media.cpp @@ -381,7 +381,7 @@ void WebRtcSession::on_rtp_sender_report(uint32_t ssrc, uint64_t ntp_us, uint32_ int64_t WebRtcSession::video_target_rtp_timestamp() const { std::lock_guard lock(peer_mutex_); - if (!audio_ || !have_video_sender_report_) + if (!audio_ || !audio_->is_playing() || !have_video_sender_report_) return AV_NOPTS_VALUE; const int64_t audio_ntp = audio_->playback_ntp_us(); if (audio_ntp < 0) diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index ab30db53..fe3e7c37 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -72,6 +72,8 @@ printf 'PASS deko_renderer_color_range\n' python3 tests/run_deko_renderer_reconfiguration_test.py deko_renderer_quality_snapshot_test.cpp printf 'PASS deko_renderer_quality_snapshot\n' run_cpp audio_pipeline -Itests/stream_stubs -Iextern/libpeer/src app/src/stream/audio/AudioPipeline.cpp +bash tests/run_audio_video_underrun_test.sh +printf 'PASS audio_video_underrun\n' for scenario in timeline ssrc red; do "$out/audio_pipeline" "$scenario" printf 'PASS audio_pipeline/%s\n' "$scenario" diff --git a/tests/audio_video_underrun_test.cpp b/tests/audio_video_underrun_test.cpp new file mode 100644 index 00000000..b4a0e061 --- /dev/null +++ b/tests/audio_video_underrun_test.cpp @@ -0,0 +1,210 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define private public +#include "webrtc_session.hpp" +#undef private +#include "stream/ffmpeg/AVFrameHolder.hpp" + +#define main existing_audio_pipeline_test_main +#include "audio_pipeline_test.cpp" +#undef main + +extern "C" { +int peer_init() { return 0; } +void peer_deinit() {} +} + +WebRtcSession::WebRtcSession(const std::string&, const std::string&, const std::string&, + const std::string&, int, const std::vector&, + const opennow::StreamSettings&) {} +WebRtcSession::~WebRtcSession() = default; +SignalingClient::~SignalingClient() = default; +WebSocketClient::~WebSocketClient() = default; +FFmpegVideoDecoder::~FFmpegVideoDecoder() = default; +int FFmpegVideoDecoder::setup(int, int, int, int, void*, int) { return 0; } +void FFmpegVideoDecoder::cleanup() {} +int FFmpegVideoDecoder::submit_decode_unit(uint8_t*, int, int64_t) { return 0; } +int FFmpegVideoDecoder::capabilities() const { return 0; } +VideoDecodeStats* FFmpegVideoDecoder::video_decode_stats() { return nullptr; } + +namespace { + +template +void wait_until(Predicate predicate) +{ + const auto deadline = std::chrono::steady_clock::now() + std::chrono::seconds(2); + while (!predicate()) { + assert(std::chrono::steady_clock::now() < deadline); + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + } +} + +void send_audio(AudioPipeline& pipeline, uint32_t ssrc, uint16_t sequence, uint32_t timestamp) +{ + uint8_t payload[] = {0xf0, static_cast(sequence)}; + PeerAudioPacket packet {}; + packet.data = payload; + packet.size = sizeof(payload); + packet.timestamp = timestamp; + packet.ssrc = ssrc; + packet.sequence = sequence; + packet.payload_type = 111; + pipeline.submit(packet); +} + +void push_video(AVFrameQueue& frames, int64_t pts) +{ + AVFrame* frame = av_frame_alloc(); + assert(frame); + frame->format = AV_PIX_FMT_YUV420P; + frame->width = 16; + frame->height = 16; + frame->pts = pts; + assert(av_frame_get_buffer(frame, 0) == 0); + frames.push(frame); + av_frame_free(&frame); + assert(frames.size() <= 3); +} + +void check_video_progress(WebRtcSession& session, AVFrameQueue& frames, int64_t& pts) +{ + int presented = 0; + const size_t holds_before = frames.getTimingHoldStat(); + const size_t drops_before = frames.getOverflowDropStat(); + for (int i = 0; i < 180; ++i) { + pts += 1500; + push_video(frames, pts); + bool reused = false; + uint64_t generation = 0; + const auto* frame = frames.pop(reused, generation, session.video_target_rtp_timestamp()); + assert(frame); + if (!reused) { + assert(frame->pts == pts); + ++presented; + } + } + std::printf("Audio unavailable: new_video_frames=180 presented=%d held=%zu overflow_drops=%zu\n", + presented, frames.getTimingHoldStat() - holds_before, + frames.getOverflowDropStat() - drops_before); + std::fflush(stdout); + assert(presented == 180); + assert(frames.getTimingHoldStat() == holds_before); + assert(frames.getOverflowDropStat() == drops_before); + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); +} + +void drain_audio(AudioPipeline& pipeline, int underrun) +{ + { + std::lock_guard lock(mutex); + assert(output.size() <= 5); + release_output = true; + } + await([underrun] { return stops == underrun; }); + wait_until([&] { return !pipeline.is_playing(); }); + { + std::lock_guard lock(mutex); + assert(output.empty()); + release_output = false; + } +} + +} + +int main() +{ + WebRtcSession session("", "", "", "", 0, {}, {}); + session.audio_ = std::make_unique(); + auto& audio = *session.audio_; + audio.configure(1200, 30); + session.have_video_sender_report_ = true; + session.video_sr_ntp_us_ = 1000000; + session.video_sr_rtp_timestamp_ = 90000; + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + assert(audio.start()); + send_audio(audio, 1, 0, 0); + send_audio(audio, 1, 1, 480); + audio.set_sender_report(1, 1000000, 0); + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + { + std::lock_guard lock(mutex); + assert(starts == 0); + } + send_audio(audio, 1, 2, 960); + await([] { return starts == 1; }); + wait_until([&] { return session.video_target_rtp_timestamp() != AV_NOPTS_VALUE; }); + + AVFrameQueue frames; + int64_t pts = 92700; + push_video(frames, pts); + bool reused = false; + uint64_t generation = 0; + assert(frames.pop(reused, generation)->pts == pts && !reused); + drain_audio(audio, 1); + assert(audio.playback_ntp_us() == 1030000); + check_video_progress(session, frames, pts); + + send_audio(audio, 1, 3, 145440); + send_audio(audio, 1, 4, 145920); + await([] { return output.size() == 2; }); + { + std::lock_guard lock(mutex); + assert(starts == 1); + } + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + send_audio(audio, 1, 5, 146400); + await([] { return starts == 2; }); + wait_until([&] { return session.video_target_rtp_timestamp() != AV_NOPTS_VALUE; }); + const auto resumed_target = session.video_target_rtp_timestamp(); + assert(resumed_target >= pts && resumed_target <= pts + 2700); + push_video(frames, pts + 90000); + assert(frames.pop(reused, generation, resumed_target)->pts == pts && reused); + assert(frames.size() == 1); + frames.cleanup(); + push_video(frames, pts); + assert(frames.pop(reused, generation)->pts == pts && !reused); + + send_audio(audio, 2, 0, 0); + send_audio(audio, 2, 1, 480); + audio.set_sender_report(2, 6000000, 0); + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + check_video_progress(session, frames, pts); + send_audio(audio, 2, 2, 960); + wait_until([] { + std::lock_guard lock(mutex); + return decoded_sequences.size() == 9 && reclaim_queries >= 1; + }); + { + std::lock_guard lock(mutex); + assert(output.size() == 5); + } + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + drain_audio(audio, 2); + assert(audio.playback_ntp_us() == 6020000); + check_video_progress(session, frames, pts); + + send_audio(audio, 2, 3, 146880); + send_audio(audio, 2, 4, 147360); + await([] { return output.size() == 2; }); + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + send_audio(audio, 2, 5, 147840); + await([] { return starts == 3; }); + wait_until([&] { return session.video_target_rtp_timestamp() != AV_NOPTS_VALUE; }); + assert(audio.playback_ntp_us() >= 9060000); + audio.stop(); + assert(session.video_target_rtp_timestamp() == AV_NOPTS_VALUE); + check_video_progress(session, frames, pts); + std::puts("Audio underrun, video progress and synchronized resume: PASS"); +} diff --git a/tests/run_audio_video_underrun_test.sh b/tests/run_audio_video_underrun_test.sh new file mode 100644 index 00000000..0f1418aa --- /dev/null +++ b/tests/run_audio_video_underrun_test.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "$(dirname "$0")/.." +out="$(mktemp -d)" +trap 'rm -rf "$out"' EXIT +cxxflags=(-std=c++20 -Wall -Wextra -Werror -pthread -g -O1 + -fno-omit-frame-pointer -ffunction-sections -fdata-sections + -Iapp/src -Itests/stream_stubs -Iextern/libpeer/src + -Iextern/libpeer/third_party/mbedtls/include + -Iextern/borealis/library/include/borealis/extern/nanovg) +if [[ -n "${OPENNOW_SANITIZERS:-}" ]]; then + cxxflags+=("-fsanitize=$OPENNOW_SANITIZERS") +fi +"${CXX:-g++}" "${cxxflags[@]}" tests/audio_video_underrun_test.cpp \ + app/src/webrtc/media.cpp app/src/stream/audio/AudioPipeline.cpp \ + app/src/stream/ffmpeg/AVFrameHolder.cpp \ + -Wl,--gc-sections -lavcodec -lavutil -ljansson -o "$out/test" +"$out/test" From e26b66ddc182108c2330753ee294e4235c7a8ed7 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Sat, 3 Oct 2026 23:15:51 +0000 Subject: [PATCH 16/23] Preserve SCTP connect results across diagnostic logging --- app/src/webrtc/session.cpp | 7 +++ extern/libpeer/src/peer_connection.c | 64 ++++++--------------- extern/libpeer/src/peer_connection.h | 1 + extern/libpeer/src/sctp.c | 80 ++++++++++++++++----------- extern/libpeer/src/sctp.h | 1 + scripts/test-streaming-host.sh | 7 +++ tests/peer_diagnostic_callback_test.c | 46 +++++++++++++++ tests/run_sctp_reliability_test.sh | 9 ++- tests/sctp_diagnostic_connect_test.c | 28 ++++++++++ tests/sctp_setup_diagnostic_test.c | 71 ++++++++++++++++++++++++ 10 files changed, 234 insertions(+), 80 deletions(-) create mode 100644 tests/peer_diagnostic_callback_test.c create mode 100644 tests/sctp_diagnostic_connect_test.c create mode 100644 tests/sctp_setup_diagnostic_test.c diff --git a/app/src/webrtc/session.cpp b/app/src/webrtc/session.cpp index 84a063bb..d8273f4f 100644 --- a/app/src/webrtc/session.cpp +++ b/app/src/webrtc/session.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -98,6 +99,12 @@ WebRtcSession::WebRtcSession( peer_name_(MakePeerName()) { opennow::SetStreamDiagnosticsEnabled(settings_.debug_diagnostics); + peer_connection_set_diagnostic_callback([](const char* message) { + AppendStreamLog(message); + if (StartsWith(message, "SCTP ") || std::strstr(message, "sctp") || + std::strstr(message, "dtls") || std::strstr(message, "transport_completed")) + AppendInputLog(message); + }); peer_connection_set_diagnostics_enabled(settings_.debug_diagnostics ? 1 : 0); renderer_ = std::make_unique(settings_.image_quality_mode); audio_ = std::make_unique(); diff --git a/extern/libpeer/src/peer_connection.c b/extern/libpeer/src/peer_connection.c index 5a391813..6bda3faf 100644 --- a/extern/libpeer/src/peer_connection.c +++ b/extern/libpeer/src/peer_connection.c @@ -1,6 +1,8 @@ +#include #include #include #include +#include #include #include #include @@ -78,7 +80,14 @@ struct PeerConnection { static int peer_connection_send_rtcp_nack(PeerConnection* pc, uint32_t ssrc, uint16_t packet_id, uint16_t bitmask); -static int peer_connection_diagnostics_enabled; +static atomic_int peer_connection_diagnostics_enabled; +typedef void (*PeerDiagnosticCallback)(const char*); +static _Atomic(PeerDiagnosticCallback) peer_diagnostic_callback; + +void peer_connection_set_diagnostic_callback(void (*callback)(const char*)) { + atomic_store(&peer_diagnostic_callback, callback); + sctp_set_diagnostic_callback(callback); +} void peer_connection_set_diagnostics_enabled(int enabled) { peer_connection_diagnostics_enabled = enabled != 0; @@ -88,54 +97,17 @@ void peer_connection_set_diagnostics_enabled(int enabled) { static void peer_connection_diag_log(const char* fmt, ...) { if (!peer_connection_diagnostics_enabled) return; - FILE* file = fopen("sdmc:/switch/OpenNOWSwitch/signaling.log", "a"); - FILE* trace = fopen("sdmc:/switch/OpenNOWSwitch/stream_trace.log", "a"); - const int input_relevant = strstr(fmt, "sctp") != NULL || - strstr(fmt, "dtls") != NULL || - strstr(fmt, "transport_completed") != NULL; - FILE* input = input_relevant ? fopen("sdmc:/switch/OpenNOWSwitch/input.log", "a") : NULL; - - if (file) { - fputs("LIBPEER ", file); - } - if (trace) { - fputs("LIBPEER ", trace); - } - if (input) { - fputs("LIBPEER ", input); - } - + PeerDiagnosticCallback callback = atomic_load(&peer_diagnostic_callback); + if (!callback) + return; + const int saved_errno = errno; + char message[2048] = "LIBPEER "; va_list args; va_start(args, fmt); - if (file) { - va_list copy; - va_copy(copy, args); - vfprintf(file, fmt, copy); - va_end(copy); - } - if (trace) { - va_list copy; - va_copy(copy, args); - vfprintf(trace, fmt, copy); - va_end(copy); - } - if (input) { - vfprintf(input, fmt, args); - } + vsnprintf(message + 8, sizeof(message) - 8, fmt, args); va_end(args); - - if (file) { - fputc('\n', file); - fclose(file); - } - if (trace) { - fputc('\n', trace); - fclose(trace); - } - if (input) { - fputc('\n', input); - fclose(input); - } + callback(message); + errno = saved_errno; } static int peer_connection_video_packet_buffered(const RtpDecoder* decoder, diff --git a/extern/libpeer/src/peer_connection.h b/extern/libpeer/src/peer_connection.h index 8f8cedbe..439d7eac 100644 --- a/extern/libpeer/src/peer_connection.h +++ b/extern/libpeer/src/peer_connection.h @@ -129,6 +129,7 @@ void* peer_connection_get_sctp(PeerConnection* pc); PeerConnection* peer_connection_create(PeerConfiguration* config); void peer_connection_set_diagnostics_enabled(int enabled); +void peer_connection_set_diagnostic_callback(void (*callback)(const char*)); void peer_connection_destroy(PeerConnection* pc); diff --git a/extern/libpeer/src/sctp.c b/extern/libpeer/src/sctp.c index b3ae37b5..b5bfc3c3 100644 --- a/extern/libpeer/src/sctp.c +++ b/extern/libpeer/src/sctp.c @@ -24,6 +24,12 @@ _Static_assert(sizeof(((struct sockaddr_conn*)0)->sconn_family) == #endif static atomic_int sctp_diagnostics_enabled; +typedef void (*SctpDiagnosticCallback)(const char*); +static _Atomic(SctpDiagnosticCallback) sctp_diagnostic_callback; + +void sctp_set_diagnostic_callback(void (*callback)(const char*)) { + atomic_store(&sctp_diagnostic_callback, callback); +} #if CONFIG_USE_USRSCTP static unsigned sctp_runtime_users; static int sctp_runtime_initialized; @@ -62,36 +68,17 @@ void sctp_set_diagnostics_enabled(int enabled) { static void sctp_diag_log(const char* fmt, ...) { if (!sctp_diagnostics_enabled) return; - FILE* file = fopen("sdmc:/switch/OpenNOWSwitch/signaling.log", "a"); - FILE* trace = fopen("sdmc:/switch/OpenNOWSwitch/stream_trace.log", "a"); - FILE* input = fopen("sdmc:/switch/OpenNOWSwitch/input.log", "a"); + SctpDiagnosticCallback callback = atomic_load(&sctp_diagnostic_callback); + if (!callback) + return; + const int saved_errno = errno; + char message[2048] = "SCTP "; va_list args; va_start(args, fmt); - if (file) { - fputs("SCTP ", file); - va_list copy; - va_copy(copy, args); - vfprintf(file, fmt, copy); - va_end(copy); - fputc('\n', file); - fclose(file); - } - if (input) { - fputs("SCTP ", input); - va_list copy; - va_copy(copy, args); - vfprintf(input, fmt, copy); - va_end(copy); - fputc('\n', input); - fclose(input); - } - if (trace) { - fputs("SCTP ", trace); - vfprintf(trace, fmt, args); - fputc('\n', trace); - fclose(trace); - } + vsnprintf(message + 5, sizeof(message) - 5, fmt, args); va_end(args); + callback(message); + errno = saved_errno; } #if CONFIG_USE_USRSCTP @@ -916,7 +903,11 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { #if CONFIG_USE_USRSCTP pthread_mutex_lock(&sctp_runtime_mutex); if (!sctp || !dtls_srtp || !sctp_runtime_initialized || sctp->sock) { + const int initialized = sctp_runtime_initialized; + const int socket_present = sctp && sctp->sock != NULL; pthread_mutex_unlock(&sctp_runtime_mutex); + sctp_diag_log("create_failed step=runtime initialized=%d context=%d dtls=%d socket=%d errno=%d", + initialized, sctp != NULL, dtls_srtp != NULL, socket_present, EINVAL); errno = EINVAL; return -1; } @@ -928,6 +919,8 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { sctp->message_buf = NULL; sctp->transport = NULL; pthread_mutex_unlock(&sctp_runtime_mutex); + sctp_diag_log("create_failed step=allocation errno=%d", ENOMEM); + errno = ENOMEM; return -1; } sctp->message_len = 0; @@ -949,6 +942,8 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { sctp_incoming_data_cb, NULL, 0, sctp); if (!sock) { + const int socket_errno = errno; + sctp_diag_log("create_failed step=socket errno=%d", socket_errno); LOGE("usrsctp_socket failed"); usrsctp_deregister_address(sctp); free(sctp->message_buf); @@ -957,10 +952,12 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { sctp->transport = NULL; sctp->dtls_srtp = NULL; pthread_mutex_unlock(&sctp_runtime_mutex); + errno = socket_errno; return -1; } sctp->sock = sock; + const char* setup_step = "nonblocking"; do { if (usrsctp_set_non_blocking(sock, 1) < 0) { LOGE("usrsctp_set_non_blocking failed"); @@ -970,20 +967,27 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { struct linger lopt; lopt.l_onoff = 1; lopt.l_linger = 0; + setup_step = "linger"; if (usrsctp_setsockopt(sock, SOL_SOCKET, SO_LINGER, &lopt, sizeof(lopt)) < 0) break; const int send_buffer = SCTP_SEND_BUFFER_SIZE; const int receive_buffer = SCTP_RECEIVE_BUFFER_SIZE; const int interleave = 0; - if (usrsctp_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer, sizeof(send_buffer)) < 0 || - usrsctp_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &receive_buffer, sizeof(receive_buffer)) < 0 || - usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_FRAGMENT_INTERLEAVE, &interleave, sizeof(interleave)) < 0) + setup_step = "send_buffer"; + if (usrsctp_setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &send_buffer, sizeof(send_buffer)) < 0) + break; + setup_step = "receive_buffer"; + if (usrsctp_setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &receive_buffer, sizeof(receive_buffer)) < 0) + break; + setup_step = "fragment_interleave"; + if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_FRAGMENT_INTERLEAVE, &interleave, sizeof(interleave)) < 0) break; struct sctp_paddrparams peer_param = {0}; peer_param.spp_address.ss_family = AF_CONN; peer_param.spp_flags = SPP_PMTUD_DISABLE; peer_param.spp_pathmtu = SCTP_MTU - 12; + setup_step = "path_mtu"; if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, &peer_param, sizeof(peer_param)) < 0) break; @@ -991,16 +995,19 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { rto.srto_initial = 200; rto.srto_min = 100; rto.srto_max = 1000; + setup_step = "retransmission_timeout"; if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_RTOINFO, &rto, sizeof(rto)) < 0) break; struct sctp_assoc_value av; av.assoc_id = SCTP_ALL_ASSOC; av.assoc_value = SCTP_ENABLE_RESET_STREAM_REQ | SCTP_ENABLE_CHANGE_ASSOC_REQ; + setup_step = "stream_reset"; if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_ENABLE_STREAM_RESET, &av, sizeof(av)) < 0) break; uint32_t nodelay = 1; + setup_step = "nodelay"; if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_NODELAY, &nodelay, sizeof(nodelay)) < 0) break; @@ -1009,6 +1016,7 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { event.se_assoc_id = SCTP_ALL_ASSOC; event.se_on = 1; event.se_type = SCTP_ASSOC_CHANGE; + setup_step = "association_events"; if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_EVENT, &event, sizeof(event)) < 0) break; @@ -1016,6 +1024,7 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { memset(&init_msg, 0, sizeof init_msg); init_msg.sinit_num_ostreams = 300; init_msg.sinit_max_instreams = 300; + setup_step = "initial_streams"; if (usrsctp_setsockopt(sock, IPPROTO_SCTP, SCTP_INITMSG, &init_msg, sizeof init_msg) < 0) break; @@ -1027,6 +1036,7 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { sconn.sconn_family = AF_CONN; sconn.sconn_port = htons(sctp->local_port); sconn.sconn_addr = (void*)sctp; + setup_step = "bind"; ret = usrsctp_bind(sock, (struct sockaddr*)&sconn, sizeof(sconn)); sctp_diag_log("bind ret=%d errno=%d localPort=%d", ret, ret < 0 ? errno : 0, sctp->local_port); if (ret < 0) @@ -1041,11 +1051,14 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { rconn.sconn_family = AF_CONN; rconn.sconn_port = htons(sctp->remote_port); rconn.sconn_addr = (void*)sctp; + setup_step = "connect"; ret = usrsctp_connect(sock, (struct sockaddr*)&rconn, sizeof(struct sockaddr_conn)); - sctp_diag_log("connect ret=%d errno=%d remotePort=%d", ret, ret < 0 ? errno : 0, sctp->remote_port); + const int connect_errno = errno; + sctp_diag_log("connect ret=%d errno=%d remotePort=%d", ret, ret < 0 ? connect_errno : 0, sctp->remote_port); - if (ret < 0 && errno != EINPROGRESS) { + if (ret < 0 && connect_errno != EINPROGRESS) { LOGE("connect error"); + errno = connect_errno; break; } @@ -1053,9 +1066,12 @@ int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp) { } while (0); + const int setup_errno = errno; pthread_mutex_unlock(&sctp_runtime_mutex); if (ret < 0) { + sctp_diag_log("create_failed step=%s errno=%d", setup_step, setup_errno); sctp_destroy_association(sctp); + errno = setup_errno; return -1; } diff --git a/extern/libpeer/src/sctp.h b/extern/libpeer/src/sctp.h index f0bf1ad7..4932e87a 100644 --- a/extern/libpeer/src/sctp.h +++ b/extern/libpeer/src/sctp.h @@ -189,6 +189,7 @@ typedef struct Sctp { int sctp_create_association(Sctp* sctp, DtlsSrtp* dtls_srtp); void sctp_set_diagnostics_enabled(int enabled); +void sctp_set_diagnostic_callback(void (*callback)(const char*)); void sctp_destroy_association(Sctp* sctp); diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index fe3e7c37..d25b6699 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -104,6 +104,9 @@ run_c rtcp_nack extern/libpeer/src/rtcp.c run_c rtcp_receiver_report extern/libpeer/src/rtcp.c run_c sctp_socket_address -Iextern/libpeer/third_party/usrsctp/usrsctplib run_c sdp_sctp_message_limit extern/libpeer/src/sdp.c +run_c peer_diagnostic_callback "${sections[@]}" -Wno-unused-but-set-variable \ + -Iextern/libpeer/third_party/mbedtls/include \ + -Iextern/libpeer/third_party/usrsctp/usrsctplib -pthread run_c peer_rtcp_receive "${sections[@]}" -Wno-unused-but-set-variable \ -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c run_c dtls_nonblocking_read "${sections[@]}" -Wno-unused-parameter -Wno-empty-body \ @@ -118,3 +121,7 @@ run_c agent_socket_poll "${sections[@]}" run_cpp peer_runtime -Iextern/libpeer/src "$out/peer_runtime.o" -lsrtp2 SCTP_TEST_SANITIZERS="${OPENNOW_SANITIZERS:-}" bash tests/run_sctp_reliability_test.sh printf 'PASS sctp_reliability\n' +SCTP_TEST_SANITIZERS="${OPENNOW_SANITIZERS:-}" bash tests/run_sctp_reliability_test.sh sctp_setup_diagnostic_test.c +printf 'PASS sctp_setup_diagnostic\n' +SCTP_TEST_SANITIZERS="${OPENNOW_SANITIZERS:-}" bash tests/run_sctp_reliability_test.sh sctp_diagnostic_connect_test.c +printf 'PASS sctp_diagnostic_connect\n' diff --git a/tests/peer_diagnostic_callback_test.c b/tests/peer_diagnostic_callback_test.c new file mode 100644 index 00000000..2251061c --- /dev/null +++ b/tests/peer_diagnostic_callback_test.c @@ -0,0 +1,46 @@ +#include "../extern/libpeer/src/peer_connection.c" +#include "../extern/libpeer/src/sctp.c" + +#include + +static unsigned calls; +static char recorded[2048]; + +static void record(const char* message) { + assert(strlen(message) < sizeof(recorded)); + strcpy(recorded, message); + calls++; + errno = ERANGE; +} + +int main(void) { + peer_connection_set_diagnostic_callback(record); + peer_connection_set_diagnostics_enabled(0); + peer_connection_diag_log("hidden"); + sctp_diag_log("hidden"); + assert(calls == 0); + + peer_connection_set_diagnostics_enabled(1); + errno = EINPROGRESS; + peer_connection_diag_log("sctp_create_done ret=%d", -1); + assert(calls == 1 && strcmp(recorded, "LIBPEER sctp_create_done ret=-1") == 0); + assert(errno == EINPROGRESS); + errno = EINPROGRESS; + sctp_diag_log("create_failed step=%s errno=%d", "send_buffer", 22); + assert(calls == 2 && strcmp(recorded, "SCTP create_failed step=send_buffer errno=22") == 0); + assert(errno == EINPROGRESS); + + char long_message[4096]; + memset(long_message, 'x', sizeof(long_message) - 1); + long_message[sizeof(long_message) - 1] = 0; + peer_connection_diag_log("%s", long_message); + assert(calls == 3 && strlen(recorded) == sizeof(recorded) - 1); + sctp_diag_log("%s", long_message); + assert(calls == 4 && strlen(recorded) == sizeof(recorded) - 1); + + peer_connection_set_diagnostic_callback(NULL); + peer_connection_diag_log("no sink"); + sctp_diag_log("no sink"); + assert(calls == 4); + return 0; +} diff --git a/tests/run_sctp_reliability_test.sh b/tests/run_sctp_reliability_test.sh index d023e89e..37dff0a9 100644 --- a/tests/run_sctp_reliability_test.sh +++ b/tests/run_sctp_reliability_test.sh @@ -18,6 +18,11 @@ for name in ("user_malloc.h", "user_socketvar.h"): PY flags=(-g -fno-omit-frame-pointer) +test_source="${1:-sctp_reliability_test.c}" +link_flags=() +if [[ "$test_source" == sctp_setup_diagnostic_test.c ]]; then + link_flags+=(-Wl,--wrap=usrsctp_setsockopt,--wrap=usrsctp_connect) +fi if [[ -n "${SCTP_TEST_SANITIZERS:-}" ]]; then flags+=("-fsanitize=$SCTP_TEST_SANITIZERS") fi @@ -30,7 +35,7 @@ cmake --build "$work/build" -j "${SCTP_TEST_JOBS:-4}" "${CC:-cc}" -std=gnu11 -Wall -Wextra -Werror "${flags[@]}" \ -DCONFIG_USE_USRSCTP=1 \ -I"$root/extern/libpeer/src" -I"$work/usrsctp/usrsctplib" \ - "$root/tests/sctp_reliability_test.c" "$root/extern/libpeer/src/sctp.c" \ - "$work/build/usrsctplib/libusrsctp.a" -pthread -Wl,--wrap=gettimeofday \ + "$root/tests/$test_source" "$root/extern/libpeer/src/sctp.c" \ + "$work/build/usrsctplib/libusrsctp.a" -pthread -Wl,--wrap=gettimeofday "${link_flags[@]}" \ -o "$work/sctp_reliability_test" "$work/sctp_reliability_test" diff --git a/tests/sctp_diagnostic_connect_test.c b/tests/sctp_diagnostic_connect_test.c new file mode 100644 index 00000000..118cb97d --- /dev/null +++ b/tests/sctp_diagnostic_connect_test.c @@ -0,0 +1,28 @@ +#define main existing_sctp_reliability_main +#include "sctp_reliability_test.c" +#undef main + +static unsigned diagnostics; + +static void failing_log_sink(const char* message) { + assert(message && *message); + diagnostics++; + errno = ENOENT; +} + +int main(void) { + owner = pthread_self(); + sctp_usrsctp_init(); + sctp_set_diagnostic_callback(failing_log_sink); + sctp_set_diagnostics_enabled(1); + create_pair(); + assert(opened == 2); + assert(diagnostics > 0); + assert(send_message(0, 0, 42, 32) == 32); + pump(); + assert(delivered == 1 && deliveries[0].value == 42); + destroy_pair(); + sctp_usrsctp_deinit(); + puts("SCTP connects and transfers with a failing diagnostic sink: PASS"); + return 0; +} diff --git a/tests/sctp_setup_diagnostic_test.c b/tests/sctp_setup_diagnostic_test.c new file mode 100644 index 00000000..ec523c14 --- /dev/null +++ b/tests/sctp_setup_diagnostic_test.c @@ -0,0 +1,71 @@ +#define main existing_sctp_reliability_main +#include "sctp_reliability_test.c" +#undef main + +static int failing_option; +static int failing_connect; +static char last_diagnostic[2048]; + +int __real_usrsctp_setsockopt(struct socket*, int, int, const void*, socklen_t); +int __wrap_usrsctp_setsockopt(struct socket* socket, int level, int option, + const void* value, socklen_t size) { + if (option == failing_option) { + errno = EINVAL; + return -1; + } + return __real_usrsctp_setsockopt(socket, level, option, value, size); +} + +int __real_usrsctp_connect(struct socket*, struct sockaddr*, socklen_t); +int __wrap_usrsctp_connect(struct socket* socket, struct sockaddr* address, socklen_t size) { + if (failing_connect) { + errno = ECONNREFUSED; + return -1; + } + return __real_usrsctp_connect(socket, address, size); +} + +static void diagnostic(const char* message) { + if (strstr(message, "create_failed")) { + assert(strlen(message) < sizeof(last_diagnostic)); + strcpy(last_diagnostic, message); + } +} + +int main(void) { + owner = pthread_self(); + sctp_set_diagnostic_callback(diagnostic); + sctp_set_diagnostics_enabled(1); + const struct { int option; const char* stage; } cases[] = { + {SO_LINGER, "linger"}, {SO_SNDBUF, "send_buffer"}, {SO_RCVBUF, "receive_buffer"}, + {SCTP_FRAGMENT_INTERLEAVE, "fragment_interleave"}, {SCTP_PEER_ADDR_PARAMS, "path_mtu"}, + {SCTP_RTOINFO, "retransmission_timeout"}, {SCTP_ENABLE_STREAM_RESET, "stream_reset"}, + {SCTP_NODELAY, "nodelay"}, {SCTP_EVENT, "association_events"}, {SCTP_INITMSG, "initial_streams"}, + }; + for (size_t i = 0; i < sizeof(cases) / sizeof(cases[0]); ++i) { + sctp_usrsctp_init(); + memset(&endpoints[0], 0, sizeof(endpoints[0])); + last_diagnostic[0] = 0; + failing_option = cases[i].option; + assert(sctp_create_association(&endpoints[0], &transports[0]) == -1); + assert(errno == EINVAL); + char expected[128]; + snprintf(expected, sizeof(expected), "SCTP create_failed step=%s errno=%d", cases[i].stage, EINVAL); + assert(strcmp(last_diagnostic, expected) == 0); + assert(!endpoints[0].sock && !endpoints[0].transport && !endpoints[0].message_buf); + sctp_usrsctp_deinit(); + } + sctp_usrsctp_init(); + failing_option = 0; + failing_connect = 1; + memset(&endpoints[0], 0, sizeof(endpoints[0])); + assert(sctp_create_association(&endpoints[0], &transports[0]) == -1); + assert(errno == ECONNREFUSED); + char expected[128]; + snprintf(expected, sizeof(expected), "SCTP create_failed step=connect errno=%d", ECONNREFUSED); + assert(strcmp(last_diagnostic, expected) == 0); + assert(!endpoints[0].sock && !endpoints[0].transport && !endpoints[0].message_buf); + sctp_usrsctp_deinit(); + puts("SCTP setup failure diagnostics and cleanup: PASS"); + return 0; +} From 47413b0daa8c416a78b73f4ffb22cc18b85a7120 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 11:29:50 +0000 Subject: [PATCH 17/23] Send ICE consent checks after the stream connects libpeer stopped sending STUN Binding requests once ICE nominated a pair, so a connected stream sent nothing on the ICE path that refreshes the server's consent and NAT binding. Send a non-nominating, authenticated Binding request every 2.5 s on the selected pair, with a fresh transaction ID each time, and record send/response counts in the opt-in diagnostics. --- extern/libpeer/src/agent.c | 34 ++++++- extern/libpeer/src/agent.h | 6 ++ extern/libpeer/src/config.h | 4 + extern/libpeer/src/peer_connection.c | 10 ++ scripts/test-streaming-host.sh | 8 ++ tests/agent_consent_test.c | 135 +++++++++++++++++++++++++++ tests/peer_dtls_loop_test.c | 6 ++ 7 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 tests/agent_consent_test.c diff --git a/extern/libpeer/src/agent.c b/extern/libpeer/src/agent.c index 13e74124..e8f3fc39 100644 --- a/extern/libpeer/src/agent.c +++ b/extern/libpeer/src/agent.c @@ -27,6 +27,10 @@ void agent_clear_candidates(Agent* agent) { agent->nominated_pair = NULL; agent->last_binding_request_sent_ms = 0; agent->smoothed_binding_rtt_ms = 0; + agent->last_consent_request_ms = 0; + agent->consent_attempts = 0; + agent->consent_requests_sent = 0; + agent->binding_responses_received = 0; } int agent_create(Agent* agent) { @@ -327,17 +331,20 @@ static void agent_create_binding_response(Agent* agent, StunMessage* msg, Addres stun_msg_finish(msg, STUN_CREDENTIAL_SHORT_TERM, agent->local_upwd, strlen(agent->local_upwd)); } -static void agent_create_binding_request(Agent* agent, StunMessage* msg) { +static void agent_create_binding_request(Agent* agent, StunMessage* msg, int nominate, uint32_t sequence) { uint64_t tie_breaker = 0; // always be controlled // send binding request stun_msg_create(msg, STUN_CLASS_REQUEST | STUN_METHOD_BINDING); + if (sequence != 0) + ((StunHeader*)msg->buf)->transaction_id[2] = htonl(sequence); char username[584]; memset(username, 0, sizeof(username)); snprintf(username, sizeof(username), "%s:%s", agent->remote_ufrag, agent->local_ufrag); stun_msg_write_attr(msg, STUN_ATTR_TYPE_USERNAME, strlen(username), username); stun_msg_write_attr(msg, STUN_ATTR_TYPE_PRIORITY, 4, (char*)&agent->nominated_pair->priority); if (agent->mode == AGENT_MODE_CONTROLLING) { - stun_msg_write_attr(msg, STUN_ATTR_TYPE_USE_CANDIDATE, 0, NULL); + if (nominate) + stun_msg_write_attr(msg, STUN_ATTR_TYPE_USE_CANDIDATE, 0, NULL); stun_msg_write_attr(msg, STUN_ATTR_TYPE_ICE_CONTROLLING, 8, (char*)&tie_breaker); } else { stun_msg_write_attr(msg, STUN_ATTR_TYPE_ICE_CONTROLLED, 8, (char*)&tie_breaker); @@ -379,6 +386,7 @@ void agent_process_stun_response(Agent* agent, StunMessage* stun_msg) { } agent->last_binding_request_sent_ms = 0; } + agent->binding_responses_received++; agent->nominated_pair->state = ICE_CANDIDATE_STATE_SUCCEEDED; agent->binding_request_time = now_ms; } @@ -533,7 +541,7 @@ int agent_connectivity_check(Agent* agent) { if (agent->nominated_pair->conncheck % AGENT_CONNCHECK_PERIOD == 0) { addr_to_string(&agent->nominated_pair->remote->addr, addr_string, sizeof(addr_string)); LOGD("send binding request to remote ip: %s, port: %d", addr_string, agent->nominated_pair->remote->addr.port); - agent_create_binding_request(agent, &msg); + agent_create_binding_request(agent, &msg, 1, 0); if (agent_socket_send( agent, &agent->nominated_pair->remote->addr, msg.buf, msg.size) >= 0) { agent->last_binding_request_sent_ms = ports_get_epoch_time(); @@ -550,6 +558,26 @@ int agent_connectivity_check(Agent* agent) { return -1; } +int agent_maybe_send_consent_request(Agent* agent, uint32_t now_ms) { + StunMessage msg; + + if (!agent->selected_pair || !agent->selected_pair->remote) + return 0; + if (agent->consent_attempts > 0 && + (uint32_t)(now_ms - agent->last_consent_request_ms) < CONFIG_ICE_CONSENT_INTERVAL_MS) + return 0; + + agent->consent_attempts++; + agent->last_consent_request_ms = now_ms; + memset(&msg, 0, sizeof(msg)); + agent_create_binding_request(agent, &msg, 0, agent->consent_attempts); + if (agent_socket_send(agent, &agent->selected_pair->remote->addr, msg.buf, msg.size) < 0) + return -1; + agent->consent_requests_sent++; + agent->last_binding_request_sent_ms = now_ms; + return 1; +} + int agent_select_candidate_pair(Agent* agent) { int i; for (i = 0; i < agent->candidate_pairs_num; i++) { diff --git a/extern/libpeer/src/agent.h b/extern/libpeer/src/agent.h index 26a3ef52..3fcee127 100644 --- a/extern/libpeer/src/agent.h +++ b/extern/libpeer/src/agent.h @@ -61,6 +61,10 @@ struct Agent { uint64_t binding_request_time; uint32_t last_binding_request_sent_ms; uint32_t smoothed_binding_rtt_ms; + uint32_t last_consent_request_ms; + uint32_t consent_attempts; + uint32_t consent_requests_sent; + uint32_t binding_responses_received; AgentState state; AgentMode mode; @@ -102,6 +106,8 @@ int agent_fail_nominated_remote(Agent* agent); int agent_connectivity_check(Agent* agent); +int agent_maybe_send_consent_request(Agent* agent, uint32_t now_ms); + void agent_clear_candidates(Agent* agent); int agent_create(Agent* agent); diff --git a/extern/libpeer/src/config.h b/extern/libpeer/src/config.h index c655d386..2db8f8ba 100644 --- a/extern/libpeer/src/config.h +++ b/extern/libpeer/src/config.h @@ -53,6 +53,10 @@ #define CONFIG_KEEPALIVE_TIMEOUT 10000 #endif +#ifndef CONFIG_ICE_CONSENT_INTERVAL_MS +#define CONFIG_ICE_CONSENT_INTERVAL_MS 2500 +#endif + #ifndef CONFIG_AUDIO_DURATION #define CONFIG_AUDIO_DURATION 20 #endif diff --git a/extern/libpeer/src/peer_connection.c b/extern/libpeer/src/peer_connection.c index 6bda3faf..6d8dee4d 100644 --- a/extern/libpeer/src/peer_connection.c +++ b/extern/libpeer/src/peer_connection.c @@ -839,6 +839,16 @@ int peer_connection_loop(PeerConnection* pc) { LOGI("binding request timeout; keeping completed transport alive"); pc->agent.binding_request_time = ports_get_epoch_time(); } + int consent_ret = agent_maybe_send_consent_request(&pc->agent, ports_get_epoch_time()); + if (consent_ret != 0 && + (pc->agent.consent_attempts <= 3 || pc->agent.consent_attempts % 24 == 0 || consent_ret < 0)) { + peer_connection_diag_log("ice_consent ret=%d attempts=%" PRIu32 " sent=%" PRIu32 " responses=%" PRIu32 " rttMs=%" PRIu32, + consent_ret, + pc->agent.consent_attempts, + pc->agent.consent_requests_sent, + pc->agent.binding_responses_received, + pc->agent.smoothed_binding_rtt_ms); + } rtp_decoder_poll(&pc->vrtp_decoder); peer_connection_maybe_send_receiver_report(pc); diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index d25b6699..89741873 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -116,6 +116,14 @@ run_c peer_dtls_receive "${sections[@]}" -Wno-unused-but-set-variable \ run_c peer_dtls_loop "${sections[@]}" -Wno-unused-but-set-variable \ -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c run_c agent_socket_poll "${sections[@]}" +stun_deps=() +for source in extern/libpeer/src/{stun,utils,address}.c \ + extern/libpeer/third_party/mbedtls/library/{md,md5,sha1,sha256,sha512,ripemd160,platform_util,constant_time}.c; do + object="$out/stun_dep_$(basename "$source" .c).o" + "$cc" "${cflags[@]}" -w -Iextern/libpeer/third_party/mbedtls/include "${sections[@]}" -c "$source" -o "$object" + stun_deps+=("$object") +done +run_c agent_consent "${sections[@]}" -Iextern/libpeer/third_party/mbedtls/include "${stun_deps[@]}" "$cc" "${cflags[@]}" -Iextern/libpeer/third_party/mbedtls/include \ -c extern/libpeer/src/peer.c -o "$out/peer_runtime.o" run_cpp peer_runtime -Iextern/libpeer/src "$out/peer_runtime.o" -lsrtp2 diff --git a/tests/agent_consent_test.c b/tests/agent_consent_test.c new file mode 100644 index 00000000..6ff71790 --- /dev/null +++ b/tests/agent_consent_test.c @@ -0,0 +1,135 @@ +#include + +#include "../extern/libpeer/src/agent.c" + +static uint32_t now_ms; +static int send_calls; +static int send_result; +static uint8_t sent[1400]; +static int sent_size; + +uint32_t ports_get_epoch_time(void) { + return now_ms; +} + +int udp_socket_sendto(UdpSocket* socket, Address* addr, const uint8_t* buf, int len) { + assert(socket->fd == 3); + assert(addr->port == 5004); + assert(len <= (int)sizeof(sent)); + send_calls++; + memcpy(sent, buf, len); + sent_size = len; + return send_result < 0 ? send_result : len; +} + +static StunMessage parse_sent(void) { + StunMessage msg; + memset(&msg, 0, sizeof(msg)); + memcpy(msg.buf, sent, sent_size); + msg.size = sent_size; + stun_parse_msg_buf(&msg); + return msg; +} + +static int has_attribute(uint16_t wanted) { + size_t offset = sizeof(StunHeader); + while (offset + sizeof(StunAttribute) <= (size_t)sent_size) { + StunAttribute* attr = (StunAttribute*)(sent + offset); + if (ntohs(attr->type) == wanted) + return 1; + offset += sizeof(StunAttribute) + ((ntohs(attr->length) + 3) & ~3u); + } + return 0; +} + +static void respond_to_last_request(Agent* agent) { + StunMessage request = parse_sent(); + StunMessage response; + memset(&response, 0, sizeof(response)); + stun_msg_create(&response, STUN_CLASS_RESPONSE | STUN_METHOD_BINDING); + memcpy(((StunHeader*)response.buf)->transaction_id, + ((StunHeader*)request.buf)->transaction_id, + sizeof(((StunHeader*)request.buf)->transaction_id)); + stun_msg_finish(&response, STUN_CREDENTIAL_SHORT_TERM, agent->remote_upwd, + strlen(agent->remote_upwd)); + stun_parse_msg_buf(&response); + agent_process_stun_response(agent, &response); +} + +int main(void) { + Agent agent = {0}; + IceCandidate remote = {0}; + IceCandidatePair pair = {0}; + uint32_t first_transaction[3]; + + agent.udp_sockets[0].fd = 3; + agent.udp_sockets[1].fd = -1; + agent.mode = AGENT_MODE_CONTROLLING; + strcpy(agent.local_ufrag, "loc1"); + strcpy(agent.local_upwd, "local-password-0123456789"); + strcpy(agent.remote_ufrag, "2efecf37"); + strcpy(agent.remote_upwd, "26b335b899a84ffab9aaf38ddad1e2b4"); + remote.addr.family = AF_INET; + remote.addr.port = 5004; + pair.remote = &remote; + pair.priority = 0x6e7f1eff; + pair.state = ICE_CANDIDATE_STATE_SUCCEEDED; + + assert(agent_maybe_send_consent_request(&agent, 0) == 0); + assert(send_calls == 0); + + agent.nominated_pair = &pair; + agent.selected_pair = &pair; + now_ms = 1000; + assert(agent_maybe_send_consent_request(&agent, now_ms) == 1); + assert(send_calls == 1); + StunMessage first = parse_sent(); + assert(first.stunclass == STUN_CLASS_REQUEST); + assert(first.stunmethod == STUN_METHOD_BINDING); + assert(stun_msg_is_valid(sent, sent_size, agent.remote_upwd) == 0); + assert(has_attribute(STUN_ATTR_TYPE_ICE_CONTROLLING)); + assert(has_attribute(STUN_ATTR_TYPE_PRIORITY)); + assert(!has_attribute(STUN_ATTR_TYPE_USE_CANDIDATE)); + memcpy(first_transaction, ((StunHeader*)sent)->transaction_id, sizeof(first_transaction)); + + now_ms = 1000 + CONFIG_ICE_CONSENT_INTERVAL_MS - 1; + assert(agent_maybe_send_consent_request(&agent, now_ms) == 0); + assert(send_calls == 1); + + now_ms = 1040; + respond_to_last_request(&agent); + assert(agent.binding_responses_received == 1); + assert(agent.smoothed_binding_rtt_ms == 40); + assert(agent.binding_request_time == 1040); + + now_ms = 1000 + CONFIG_ICE_CONSENT_INTERVAL_MS; + assert(agent_maybe_send_consent_request(&agent, now_ms) == 1); + assert(send_calls == 2); + assert(stun_msg_is_valid(sent, sent_size, agent.remote_upwd) == 0); + assert(memcmp(first_transaction, ((StunHeader*)sent)->transaction_id, + sizeof(first_transaction)) != 0); + + send_result = -1; + now_ms += CONFIG_ICE_CONSENT_INTERVAL_MS; + assert(agent_maybe_send_consent_request(&agent, now_ms) == -1); + assert(agent_maybe_send_consent_request(&agent, now_ms + 1) == 0); + assert(send_calls == 3); + assert(agent.consent_attempts == 3 && agent.consent_requests_sent == 2); + + send_result = 0; + now_ms += CONFIG_ICE_CONSENT_INTERVAL_MS; + assert(agent_maybe_send_consent_request(&agent, now_ms) == 1); + assert(agent.consent_requests_sent == 3); + + agent.mode = AGENT_MODE_CONTROLLED; + now_ms += CONFIG_ICE_CONSENT_INTERVAL_MS; + assert(agent_maybe_send_consent_request(&agent, now_ms) == 1); + assert(has_attribute(STUN_ATTR_TYPE_ICE_CONTROLLED)); + assert(!has_attribute(STUN_ATTR_TYPE_USE_CANDIDATE)); + + agent_clear_candidates(&agent); + assert(agent.consent_attempts == 0 && agent.consent_requests_sent == 0); + assert(agent.binding_responses_received == 0); + assert(agent_maybe_send_consent_request(&agent, now_ms) == 0); + return 0; +} diff --git a/tests/peer_dtls_loop_test.c b/tests/peer_dtls_loop_test.c index c90f04ea..890949a0 100644 --- a/tests/peer_dtls_loop_test.c +++ b/tests/peer_dtls_loop_test.c @@ -99,6 +99,10 @@ int addr_to_string(const Address* address, char* buffer, size_t size) { int agent_select_candidate_pair(Agent* agent) { (void)agent; abort(); } int agent_connectivity_check(Agent* agent) { (void)agent; abort(); } int agent_fail_nominated_remote(Agent* agent) { (void)agent; abort(); } +static int consent_checks; +int agent_maybe_send_consent_request(Agent* agent, uint32_t now_ms) { + (void)agent; (void)now_ms; ++consent_checks; return 0; +} int dtls_srtp_handshake(DtlsSrtp* dtls, Address* address) { (void)dtls; (void)address; return next_handshake_result; } @@ -308,8 +312,10 @@ int main(void) { next_dtls_result = MBEDTLS_ERR_SSL_WANT_READ; assert(peer_connection_loop(peer) == 1); assert(dtls_reads == 5 && !peer->dtls_pending); + const int consent_checks_before_idle_loop = consent_checks; assert(peer_connection_loop(peer) == 0); assert(dtls_reads == 5 && socket_reads == 4); + assert(consent_checks == consent_checks_before_idle_loop + 1); memcpy(socket_packet, "\x80\x60\x00\x02\x00\x00\x00\x00\x00\x00\x00\x2a\x65\x80", 14); socket_size = 14; From f2612a7150cb60ea467d60e273ed2f3ac9daa365 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 17:54:50 +0000 Subject: [PATCH 18/23] Fix byte-swapped SCTP checksums in the Switch usrsctp build newlib does not define BYTE_ORDER under the strict C99 flags usrsctp uses, so sctp_crc32.c's '#if BYTE_ORDER == BIG_ENDIAN' compared two undefined macros, took the big-endian branch, and byte-swapped every CRC32c. The Switch and the GFN server then discarded each other's SCTP packets: the server's INIT was never answered, our INIT was never acknowledged, and the association failed with CANT_START about 8 s after connecting, ending the stream as a server disconnect. Fall back to the compiler's __BYTE_ORDER__ macros and fail the build when no byte order is available. A host test compiles the real file without libc byte-order macros and checks known CRC32c vectors. --- .../usrsctp/usrsctplib/netinet/sctp_crc32.c | 10 +++++++ scripts/test-streaming-host.sh | 2 ++ tests/run_usrsctp_crc32c_test.sh | 24 +++++++++++++++++ tests/usrsctp_crc32c_test.c | 26 +++++++++++++++++++ tests/usrsctp_no_byte_order.h | 5 ++++ 5 files changed, 67 insertions(+) create mode 100755 tests/run_usrsctp_crc32c_test.sh create mode 100644 tests/usrsctp_crc32c_test.c create mode 100644 tests/usrsctp_no_byte_order.h diff --git a/extern/libpeer/third_party/usrsctp/usrsctplib/netinet/sctp_crc32.c b/extern/libpeer/third_party/usrsctp/usrsctplib/netinet/sctp_crc32.c index 51b4e49d..94345490 100644 --- a/extern/libpeer/third_party/usrsctp/usrsctplib/netinet/sctp_crc32.c +++ b/extern/libpeer/third_party/usrsctp/usrsctplib/netinet/sctp_crc32.c @@ -56,6 +56,16 @@ __FBSDID("$FreeBSD$"); #include #endif +#if !defined(BYTE_ORDER) && defined(__BYTE_ORDER__) +#define BYTE_ORDER __BYTE_ORDER__ +#endif +#if !defined(BIG_ENDIAN) && defined(__ORDER_BIG_ENDIAN__) +#define BIG_ENDIAN __ORDER_BIG_ENDIAN__ +#endif +#if !defined(BYTE_ORDER) || !defined(BIG_ENDIAN) +#error "SCTP CRC32c requires BYTE_ORDER and BIG_ENDIAN" +#endif + #if !(defined(__FreeBSD__) && !defined(__Userspace__)) /** * diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index 89741873..240e5733 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -127,6 +127,8 @@ run_c agent_consent "${sections[@]}" -Iextern/libpeer/third_party/mbedtls/includ "$cc" "${cflags[@]}" -Iextern/libpeer/third_party/mbedtls/include \ -c extern/libpeer/src/peer.c -o "$out/peer_runtime.o" run_cpp peer_runtime -Iextern/libpeer/src "$out/peer_runtime.o" -lsrtp2 +SCTP_TEST_SANITIZERS="${OPENNOW_SANITIZERS:-}" bash tests/run_usrsctp_crc32c_test.sh +printf 'PASS usrsctp_crc32c\n' SCTP_TEST_SANITIZERS="${OPENNOW_SANITIZERS:-}" bash tests/run_sctp_reliability_test.sh printf 'PASS sctp_reliability\n' SCTP_TEST_SANITIZERS="${OPENNOW_SANITIZERS:-}" bash tests/run_sctp_reliability_test.sh sctp_setup_diagnostic_test.c diff --git a/tests/run_usrsctp_crc32c_test.sh b/tests/run_usrsctp_crc32c_test.sh new file mode 100755 index 00000000..68d5889c --- /dev/null +++ b/tests/run_usrsctp_crc32c_test.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -euo pipefail + +root=$(cd "$(dirname "$0")/.." && pwd) +work=$(mktemp -d) +trap 'rm -rf "$work"' EXIT + +cp -R "$root/extern/libpeer/third_party/usrsctp" "$work/usrsctp" +sed -i '/^#define __SWITCH__ 1$/d' "$work/usrsctp/usrsctplib/user_malloc.h" \ + "$work/usrsctp/usrsctplib/user_socketvar.h" + +flags=(-g -fno-omit-frame-pointer) +if [[ -n "${SCTP_TEST_SANITIZERS:-}" ]]; then + flags+=("-fsanitize=$SCTP_TEST_SANITIZERS") +fi + +"${CC:-cc}" -std=c99 "${flags[@]}" -include "$root/tests/usrsctp_no_byte_order.h" \ + -DINET -DHAVE_STDATOMIC_H -DHAVE_SYS_QUEUE_H -DSCTP_PROCESS_LEVEL_LOCKS \ + -DSCTP_SIMPLE_ALLOCATOR -D__Userspace__ -ffunction-sections -fdata-sections \ + -I"$work/usrsctp/usrsctplib" -c "$work/usrsctp/usrsctplib/netinet/sctp_crc32.c" \ + -o "$work/sctp_crc32.o" +"${CC:-cc}" -std=c11 -Wall -Wextra -Werror "${flags[@]}" "$root/tests/usrsctp_crc32c_test.c" \ + "$work/sctp_crc32.o" -Wl,--gc-sections -o "$work/usrsctp_crc32c_test" +"$work/usrsctp_crc32c_test" diff --git a/tests/usrsctp_crc32c_test.c b/tests/usrsctp_crc32c_test.c new file mode 100644 index 00000000..8a61e644 --- /dev/null +++ b/tests/usrsctp_crc32c_test.c @@ -0,0 +1,26 @@ +#include +#include +#include + +uint32_t calculate_crc32c(uint32_t crc32c, const unsigned char* buffer, unsigned int length); +uint32_t sctp_finalize_crc32c(uint32_t crc32c); + +static void assert_wire_checksum(const unsigned char* data, unsigned int length, uint32_t expected) { + const uint32_t stored = sctp_finalize_crc32c(calculate_crc32c(0xffffffff, data, length)); + unsigned char wire[4]; + memcpy(wire, &stored, sizeof(wire)); + assert(wire[0] == (expected & 0xff)); + assert(wire[1] == ((expected >> 8) & 0xff)); + assert(wire[2] == ((expected >> 16) & 0xff)); + assert(wire[3] == (expected >> 24)); +} + +int main(void) { + const unsigned char check[] = "123456789"; + unsigned char init[44] = {0x13, 0x88, 0x13, 0x88, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0x20}; + for (unsigned i = 16; i < sizeof(init); ++i) + init[i] = (unsigned char)(i - 16); + assert_wire_checksum(check, 9, 0xe3069283u); + assert_wire_checksum(init, sizeof(init), 0x3e2be4f4u); + return 0; +} diff --git a/tests/usrsctp_no_byte_order.h b/tests/usrsctp_no_byte_order.h new file mode 100644 index 00000000..2bf6116d --- /dev/null +++ b/tests/usrsctp_no_byte_order.h @@ -0,0 +1,5 @@ +#define _GNU_SOURCE +#include +#include +#undef BYTE_ORDER +#undef BIG_ENDIAN From aea9aa4ba40af1f3ad9e6ceda1a0232b89a49fb1 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 18:21:43 +0000 Subject: [PATCH 19/23] Stop requesting server-side resolution and bandwidth adaptation The Switch asked GFN for dynamicStreamingMode 3 in CloudMatch and the NVST answer, enabled DRC, and set the client-performance resolution control mask to 3. The official Windows client's final config and OpenNOW's WebRTC answer use dynamicStreamingMode 0, drc.enable 0 and cpmRtc.featureMask 0, and the official client never sends dynamicStreamingMode to CloudMatch. With software decoding near the frame budget, those controls let the server repeatedly lower the stream resolution, which shows up as periodic blur. Disable DRC and client-performance resolution changes, pin the minimum resolution at 100%, stop requesting bandwidth-saving mode, and record the hardware decoder setup result when NVDEC falls back to software. --- app/src/gfn/cloud_session_protocol.cpp | 1 - app/src/webrtc/nvst_sdp.cpp | 9 ++++++--- app/src/webrtc/session.cpp | 2 ++ app/src/webrtc_session.hpp | 1 + tests/cloud_session_protocol_test.cpp | 2 +- tests/nvst_sdp_test.cpp | 12 ++++++------ 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/app/src/gfn/cloud_session_protocol.cpp b/app/src/gfn/cloud_session_protocol.cpp index 48451104..72efa289 100644 --- a/app/src/gfn/cloud_session_protocol.cpp +++ b/app/src/gfn/cloud_session_protocol.cpp @@ -393,7 +393,6 @@ std::string BuildSessionBody( json_object_set_new(features, "maxBitrateKbps", json_integer(stream_settings.bitrate_kbps)); json_object_set_new(features, "codec", json_integer(1)); json_object_set_new(features, "vsync", json_false()); - json_object_set_new(features, "dynamicStreamingMode", json_integer(3)); json_object_set_new(features, "audioChannelCount", json_integer(2)); json_object_set_new(req, "requestedStreamingFeatures", features); diff --git a/app/src/webrtc/nvst_sdp.cpp b/app/src/webrtc/nvst_sdp.cpp index 8d1160fc..88af8a6d 100644 --- a/app/src/webrtc/nvst_sdp.cpp +++ b/app/src/webrtc/nvst_sdp.cpp @@ -60,9 +60,9 @@ std::string BuildNvstSdp( "a=vqos.fec.repairMinPercent:" + std::to_string(tuning.fec_repair_min_percent), "a=vqos.fec.repairPercent:" + std::to_string(tuning.fec_repair_percent), "a=vqos.fec.repairMaxPercent:" + std::to_string(tuning.fec_repair_max_percent), - "a=vqos.dynamicStreamingMode:3", + "a=vqos.dynamicStreamingMode:0", "a=vqos.bllFec.enable:0", - "a=vqos.drc.enable:1", + "a=vqos.drc.enable:0", "a=video.dx9EnableNv12:1", "a=video.dx9EnableHdr:1", "a=vqos.qpg.enable:1", @@ -77,7 +77,10 @@ std::string BuildNvstSdp( "a=vqos.adjustStreamingFpsDuringOutOfFocus:1", "a=vqos.resControl.cpmRtc.ignoreOutOfFocusWindowState:1", "a=vqos.resControl.perfHistory.rtcIgnoreOutOfFocusWindowState:1", - "a=vqos.resControl.cpmRtc.featureMask:3", + "a=vqos.resControl.cpmRtc.featureMask:0", + "a=vqos.resControl.cpmRtc.enable:0", + "a=vqos.resControl.cpmRtc.minResolutionPercent:100", + "a=vqos.resControl.cpmRtc.resolutionChangeHoldonMs:999999", "a=packetPacing.numGroups:" + std::to_string(tuning.pacing_groups), "a=packetPacing.maxDelayUs:" + std::to_string(tuning.pacing_max_delay_us), "a=packetPacing.minNumPacketsFrame:10", diff --git a/app/src/webrtc/session.cpp b/app/src/webrtc/session.cpp index d8273f4f..9c51f48f 100644 --- a/app/src/webrtc/session.cpp +++ b/app/src/webrtc/session.cpp @@ -121,6 +121,7 @@ WebRtcSession::WebRtcSession( force_software ? VIDEO_DECODER_FORCE_SOFTWARE : VIDEO_DECODER_PREFER_HARDWARE); if (decoder_setup_result_ != 0 && !force_software) { + hardware_decoder_setup_result_ = decoder_setup_result_; decoder_->cleanup(); decoder_ = std::make_unique(settings_.image_quality_mode); decoder_setup_result_ = decoder_->setup( @@ -204,6 +205,7 @@ void WebRtcSession::start() { " fallback=" + std::to_string(decoder_fallback_used_ ? 1 : 0) + " crashSafeMode=" + std::to_string(auto_safe_mode_used_ ? 1 : 0) + " decoderSetup=" + std::to_string(decoder_setup_result_) + + " hardwareSetup=" + std::to_string(hardware_decoder_setup_result_) + " expectedFormat=" + std::string(decoder_ && decoder_->uses_hardware_frames() ? "NVTEGRA" : "YUV420P/NV12")); diff --git a/app/src/webrtc_session.hpp b/app/src/webrtc_session.hpp index 0a160615..078ecdcb 100644 --- a/app/src/webrtc_session.hpp +++ b/app/src/webrtc_session.hpp @@ -144,6 +144,7 @@ class WebRtcSession { std::atomic rendered_video_height_ {0}; std::unique_ptr audio_; int decoder_setup_result_ = -1; + int hardware_decoder_setup_result_ = 0; bool decoder_fallback_used_ = false; bool auto_safe_mode_used_ = false; bool nvdec_marker_owned_ = false; diff --git a/tests/cloud_session_protocol_test.cpp b/tests/cloud_session_protocol_test.cpp index 9f201cb0..1229d26c 100644 --- a/tests/cloud_session_protocol_test.cpp +++ b/tests/cloud_session_protocol_test.cpp @@ -28,7 +28,7 @@ int main() assert(json_integer_value(json_object_get(features, "maxBitrateKbps")) == 12000); assert(json_integer_value(json_object_get(features, "codec")) == 1); assert(json_is_false(json_object_get(features, "vsync"))); - assert(json_integer_value(json_object_get(features, "dynamicStreamingMode")) == 3); + assert(json_object_get(features, "dynamicStreamingMode") == nullptr); assert(json_integer_value(json_object_get(features, "audioChannelCount")) == 2); return 0; } diff --git a/tests/nvst_sdp_test.cpp b/tests/nvst_sdp_test.cpp index b9f2800d..dd9584f6 100644 --- a/tests/nvst_sdp_test.cpp +++ b/tests/nvst_sdp_test.cpp @@ -41,9 +41,12 @@ int main() "a=video.initialPeakBitrateKbps:4000", "a=vqos.bw.maximumBitrateKbps:12000", "a=vqos.bw.minimumBitrateKbps:4000", - "a=vqos.dynamicStreamingMode:3", - "a=vqos.drc.enable:1", - "a=vqos.resControl.cpmRtc.featureMask:3", + "a=vqos.dynamicStreamingMode:0", + "a=vqos.drc.enable:0", + "a=vqos.resControl.cpmRtc.featureMask:0", + "a=vqos.resControl.cpmRtc.enable:0", + "a=vqos.resControl.cpmRtc.minResolutionPercent:100", + "a=vqos.resControl.cpmRtc.resolutionChangeHoldonMs:999999", }) { assert(HasLine(sdp, line)); } @@ -57,9 +60,6 @@ int main() "vqos.grc.enable:", "vqos.dfc.enable:", "vqos.dfc.adjustResAndFps:", - "vqos.resControl.cpmRtc.enable:", - "vqos.resControl.cpmRtc.minResolutionPercent:", - "vqos.resControl.cpmRtc.resolutionChangeHoldonMs:", }) { assert(!HasAttribute(sdp, attribute)); } From db237b5a895a5cb8e290928ada48bfea69b1b1a0 Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 18:42:26 +0000 Subject: [PATCH 20/23] Start the stream at the requested bitrate Hardware logs show a clean network (one gap in 26k packets, two keyframes) but received video stuck near 3.5 Mbps for a full minute with 16 Mbps requested, matching the 4 Mbps initial bitrate. The server ramps from the initial value using delay feedback this WebRTC stack does not send, so the encoder stayed starved and visibly lost detail on motion. Advertise the requested bitrate as the initial and initial peak bitrate, log the offer's RTCP feedback, header extensions and NVST bitrate controls for diagnosis, and report the NVTEGRA device error code when hardware decoding falls back. --- app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp | 2 +- app/src/webrtc/negotiation.cpp | 19 +++++++++++++++++++ app/src/webrtc/nvst_sdp.cpp | 5 ++--- tests/nvst_sdp_test.cpp | 6 +++--- tests/stream_bitrate_pipeline_test.cpp | 2 +- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp index f4aec014..06be2a04 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp @@ -194,7 +194,7 @@ int FFmpegVideoDecoder::setup(int video_format, int width, int height, char error[512]; av_strerror(err, error, sizeof(error)); brls::Logger::error("FFmpeg: Error initializing hardware decoder - {}", error); - return -1; + return err; } m_decoder_context->hw_device_ctx = av_buffer_ref(hw_device_ctx); } else { diff --git a/app/src/webrtc/negotiation.cpp b/app/src/webrtc/negotiation.cpp index 7805dd1a..05d79f8a 100644 --- a/app/src/webrtc/negotiation.cpp +++ b/app/src/webrtc/negotiation.cpp @@ -722,6 +722,25 @@ void WebRtcSession::handle_signaling_message(const std::string& msg) { nvst_offer && json_is_string(nvst_offer) ? json_string_value(nvst_offer) : ""; if (!nvst_offer_sdp.empty()) AppendSdpSummary("OFFER NVST SDP", nvst_offer_sdp); + if (settings_.debug_diagnostics) { + int logged_attributes = 0; + for (const auto& line : SplitSdpLines(offer_sdp)) { + if (logged_attributes < 24 && + (StartsWith(line, "a=rtcp-fb:") || StartsWith(line, "a=extmap:"))) { + AppendStreamLog("SDP offer_feedback " + line); + logged_attributes++; + } + } + for (const auto& line : SplitSdpLines(nvst_offer_sdp)) { + if (logged_attributes < 72 && + (line.find("itrate") != std::string::npos || + StartsWith(line, "a=bwe.") || + line.find("drc.") != std::string::npos)) { + AppendStreamLog("SDP offer_nvst " + line); + logged_attributes++; + } + } + } server_ice_ufrag_ = ExtractSdpValue(offer_sdp, "a=ice-ufrag:"); const opennow::webrtc::RiInputCapabilities ri_caps = ParseRiInputCapabilities(offer_sdp); diff --git a/app/src/webrtc/nvst_sdp.cpp b/app/src/webrtc/nvst_sdp.cpp index 88af8a6d..d511bef3 100644 --- a/app/src/webrtc/nvst_sdp.cpp +++ b/app/src/webrtc/nvst_sdp.cpp @@ -42,7 +42,6 @@ std::string BuildNvstSdp( const std::string fingerprint = ExtractSdpValue(answer_sdp, "a=fingerprint:sha-256 "); const auto tuning = video::ResolveQualityTuning(settings.image_quality_mode); const int max_bitrate = std::max(kOfficialMinimumBitrateKbps, settings.bitrate_kbps); - const int initial_bitrate = std::max(kOfficialMinimumBitrateKbps, max_bitrate / 4); const std::vector lines = { "v=0", @@ -90,8 +89,8 @@ std::string BuildNvstSdp( "a=video.clientViewportWd:" + std::to_string(settings.width), "a=video.clientViewportHt:" + std::to_string(settings.height), "a=video.maxFPS:" + std::to_string(settings.fps), - "a=video.initialBitrateKbps:" + std::to_string(initial_bitrate), - "a=video.initialPeakBitrateKbps:" + std::to_string(initial_bitrate), + "a=video.initialBitrateKbps:" + std::to_string(max_bitrate), + "a=video.initialPeakBitrateKbps:" + std::to_string(max_bitrate), "a=vqos.bw.maximumBitrateKbps:" + std::to_string(max_bitrate), "a=vqos.bw.minimumBitrateKbps:" + std::to_string(kOfficialMinimumBitrateKbps), "a=video.maxNumReferenceFrames:4", diff --git a/tests/nvst_sdp_test.cpp b/tests/nvst_sdp_test.cpp index dd9584f6..11995603 100644 --- a/tests/nvst_sdp_test.cpp +++ b/tests/nvst_sdp_test.cpp @@ -37,8 +37,8 @@ int main() for (const auto& line : { "a=video.maxFPS:60", - "a=video.initialBitrateKbps:4000", - "a=video.initialPeakBitrateKbps:4000", + "a=video.initialBitrateKbps:12000", + "a=video.initialPeakBitrateKbps:12000", "a=vqos.bw.maximumBitrateKbps:12000", "a=vqos.bw.minimumBitrateKbps:4000", "a=vqos.dynamicStreamingMode:0", @@ -67,7 +67,7 @@ int main() settings.bitrate_kbps = 20000; const std::string quality_sdp = opennow::webrtc::BuildNvstSdp( answer, settings, opennow::webrtc::RiInputCapabilities {}); - assert(HasLine(quality_sdp, "a=video.initialBitrateKbps:5000")); + assert(HasLine(quality_sdp, "a=video.initialBitrateKbps:20000")); assert(HasLine(quality_sdp, "a=vqos.bw.maximumBitrateKbps:20000")); return 0; } diff --git a/tests/stream_bitrate_pipeline_test.cpp b/tests/stream_bitrate_pipeline_test.cpp index 12980d06..060ddfb0 100644 --- a/tests/stream_bitrate_pipeline_test.cpp +++ b/tests/stream_bitrate_pipeline_test.cpp @@ -43,7 +43,7 @@ void CheckNegotiatedSettings(const opennow::StreamSettings& settings) }; assert(has_line("a=vqos.bw.maximumBitrateKbps:" + std::to_string(settings.bitrate_kbps))); assert(has_line("a=vqos.bw.minimumBitrateKbps:4000")); - const std::string startup = std::to_string(std::max(4000, settings.bitrate_kbps / 4)); + const std::string startup = std::to_string(std::max(4000, settings.bitrate_kbps)); assert(has_line("a=video.initialBitrateKbps:" + startup)); assert(has_line("a=video.initialPeakBitrateKbps:" + startup)); assert(has_line("a=video.maxFPS:" + std::to_string(settings.fps))); From f791bd7ddbbf0f3baf60d006bde48d816a2922bf Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 18:55:55 +0000 Subject: [PATCH 21/23] Use the NVTEGRA hwaccel through the standard H.264 decoder The Switch FFmpeg build provides NVDEC as ff_h264_nvtegra_hwaccel, not as a decoder named h264_nvtegra, so avcodec_find_decoder_by_name() returned NULL, setup failed with -1 and every stream fell back to software decoding. Hardware logs show hardwareSetup=-1 and a 16 ms software decode p95 at 720p60. Select the H.264 decoder by codec ID and let the NVTEGRA hw_device_ctx attach the hwaccel, matching Moonlight-Switch. The existing NVDEC crash marker still falls back to software on the next launch if hardware decoding fails at runtime. --- app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp index 06be2a04..5c057554 100644 --- a/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp +++ b/app/src/stream/ffmpeg/FFmpegVideoDecoder.cpp @@ -125,14 +125,10 @@ int FFmpegVideoDecoder::setup(int video_format, int width, int height, } #else if (video_format & VIDEO_FORMAT_MASK_H264) { -#if defined(OPENNOW_ENABLE_NVDEC) - m_decoder = m_uses_hardware_frames - ? avcodec_find_decoder_by_name("h264_nvtegra") - : avcodec_find_decoder(AV_CODEC_ID_H264); -#else +#if !defined(OPENNOW_ENABLE_NVDEC) m_uses_hardware_frames = false; - m_decoder = avcodec_find_decoder(AV_CODEC_ID_H264); #endif + m_decoder = avcodec_find_decoder(AV_CODEC_ID_H264); } else if (video_format & VIDEO_FORMAT_MASK_H265) { m_decoder = avcodec_find_decoder(AV_CODEC_ID_HEVC); } else { From 4a4b4b36a61ee5fba2cc0e404f658d589648484c Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 19:27:15 +0000 Subject: [PATCH 22/23] Send transport-wide congestion control feedback The server offers transport-cc and the transport-wide sequence number extension, but the answer dropped both and libpeer never reported packet arrival times, so the sender's delay-based bandwidth estimator had no input and the stream stayed near 3.5 Mbps. Echo transport-cc and the offered extmap for video and audio, record microsecond arrival times per transport sequence number, and send RTCP transport feedback every 50 ms with bounded history. --- app/src/webrtc/negotiation.cpp | 29 ++- extern/libpeer/src/peer_connection.c | 36 ++++ extern/libpeer/src/ports.c | 11 + extern/libpeer/src/ports.h | 2 + extern/libpeer/src/twcc.c | 229 +++++++++++++++++++++ extern/libpeer/src/twcc.h | 36 ++++ scripts/test-streaming-host.sh | 5 +- tests/peer_dtls_loop_test.c | 1 + tests/peer_rtcp_receive_test.c | 52 +++++ tests/twcc_feedback_test.c | 290 +++++++++++++++++++++++++++ 10 files changed, 688 insertions(+), 3 deletions(-) create mode 100644 extern/libpeer/src/twcc.c create mode 100644 extern/libpeer/src/twcc.h create mode 100644 tests/twcc_feedback_test.c diff --git a/app/src/webrtc/negotiation.cpp b/app/src/webrtc/negotiation.cpp index 05d79f8a..f64265ed 100644 --- a/app/src/webrtc/negotiation.cpp +++ b/app/src/webrtc/negotiation.cpp @@ -142,12 +142,27 @@ std::vector FindRtcpFbForPayload(const std::vector& li std::vector feedback; const std::string prefix = "a=rtcp-fb:" + std::to_string(payload_type) + " "; for (const auto& line : lines) { - if (line == prefix + "nack" || line == prefix + "nack pli") + if (line == prefix + "nack" || line == prefix + "nack pli" || line == prefix + "transport-cc") feedback.push_back(line); } return feedback; } +std::string FindTransportCcExtmap(const std::vector& lines) +{ + static const std::string kUri = + "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"; + for (const auto& line : lines) { + if (!StartsWithString(line, "a=extmap:") || line.find(kUri) == std::string::npos) + continue; + const size_t id_end = line.find_first_of(" /", 9); + if (id_end == std::string::npos || id_end == 9) + continue; + return line.substr(0, id_end) + " " + kUri; + } + return ""; +} + int SelectOfferH264PayloadType(const std::string& offer_sdp) { const std::vector lines = SplitSdpLines(offer_sdp); @@ -345,6 +360,7 @@ std::string AdaptAnswerSdpToOffer( const std::vector offer_lines = SplitSdpLines(offer_sdp); const std::string offer_h264_fmtp = FindFmtpForPayload(offer_lines, h264_payload_type); const std::vector offer_h264_feedback = FindRtcpFbForPayload(offer_lines, h264_payload_type); + const std::string offer_transport_cc_extmap = FindTransportCcExtmap(offer_lines); std::string offer_audio_red_rtpmap; std::string offer_audio_red_fmtp; bool offer_in_audio = false; @@ -398,6 +414,14 @@ std::string AdaptAnswerSdpToOffer( if (!offer_audio_red_fmtp.empty()) out.push_back(offer_audio_red_fmtp); } + std::vector audio_payloads{"111"}; + if (!offer_audio_red_rtpmap.empty()) + audio_payloads.push_back("63"); + for (const auto& audio_payload : audio_payloads) { + const std::string feedback = "a=rtcp-fb:" + audio_payload + " transport-cc"; + if (std::find(offer_lines.begin(), offer_lines.end(), feedback) != offer_lines.end()) + out.push_back(feedback); + } audio_red_added = true; continue; } @@ -444,6 +468,9 @@ std::string AdaptAnswerSdpToOffer( continue; } + if ((in_video || in_audio) && line == "a=rtcp-mux" && !offer_transport_cc_extmap.empty()) + out.push_back(offer_transport_cc_extmap); + out.push_back(line); } diff --git a/extern/libpeer/src/peer_connection.c b/extern/libpeer/src/peer_connection.c index 6d8dee4d..5aa3ad41 100644 --- a/extern/libpeer/src/peer_connection.c +++ b/extern/libpeer/src/peer_connection.c @@ -17,6 +17,7 @@ #include "rtp.h" #include "sctp.h" #include "sdp.h" +#include "twcc.h" #define STATE_CHANGED(pc, curr_state) \ if (pc->state != curr_state) { \ @@ -63,6 +64,8 @@ struct PeerConnection { uint32_t video_nack_requests; uint32_t video_nack_packets_requested; RtcpReceiverStats video_receiver_stats; + TwccReceiver twcc; + uint32_t twcc_send_failures; int dtls_handshake_attempts; uint32_t dtls_handshake_started_ms; @@ -403,6 +406,30 @@ static void peer_connection_maybe_send_receiver_report(PeerConnection* pc) { rtcp_receiver_report_sent(&pc->video_receiver_stats, now_ms, success); } +static void peer_connection_maybe_send_transport_feedback(PeerConnection* pc) { + const uint64_t now_us = ports_get_monotonic_time_us(); + if (pc->state != PEER_CONNECTION_COMPLETED || !twcc_receiver_feedback_due(&pc->twcc, now_us)) + return; + for (int i = 0; i < 4; i++) { + uint8_t packet[TWCC_MAX_FEEDBACK_SIZE + 32]; + int size = twcc_receiver_build_feedback(&pc->twcc, pc->vrtp_encoder.ssrc, + packet, TWCC_MAX_FEEDBACK_SIZE); + if (size <= 0) + break; + if (dtls_srtp_encrypt_rctp_packet(&pc->dtls_srtp, packet, &size) != 0 || + agent_send(&pc->agent, packet, size) != size) { + pc->twcc_send_failures++; + break; + } + } + twcc_receiver_feedback_sent(&pc->twcc, now_us); + if (pc->twcc.feedback_sent <= 3 || pc->twcc.feedback_sent % 1200 == 0) { + peer_connection_diag_log("twcc_feedback sent=%" PRIu32 " recorded=%" PRIu32 " late=%" PRIu32 " failures=%" PRIu32, + pc->twcc.feedback_sent, pc->twcc.packets_recorded, + pc->twcc.late_packets, pc->twcc_send_failures); + } +} + const char* peer_connection_state_to_string(PeerConnectionState state) { switch (state) { case PEER_CONNECTION_NEW: @@ -708,6 +735,7 @@ int peer_connection_loop(PeerConnection* pc) { break; } if ((pc->agent_ret = agent_recv_nonblocking(&pc->agent, pc->agent_buf, sizeof(pc->agent_buf))) > 0) { + const uint64_t arrival_us = ports_get_monotonic_time_us(); packet_processed = 1; LOGD("agent_recv %d", pc->agent_ret); pc->completed_udp_packets++; @@ -768,6 +796,7 @@ int peer_connection_loop(PeerConnection* pc) { break; } + twcc_receiver_record(&pc->twcc, pc->agent_buf, pc->agent_ret, arrival_us); ssrc = rtp_get_ssrc(pc->agent_buf); RtpPacket* rtp = (RtpPacket*)pc->agent_buf; const int is_audio_payload = rtp->header.type == PT_PCMU || @@ -851,6 +880,7 @@ int peer_connection_loop(PeerConnection* pc) { } rtp_decoder_poll(&pc->vrtp_decoder); peer_connection_maybe_send_receiver_report(pc); + peer_connection_maybe_send_transport_feedback(pc); break; case PEER_CONNECTION_FAILED: @@ -900,6 +930,12 @@ void peer_connection_set_remote_description(PeerConnection* pc, const char* sdp, is_update = 1; } + const int twcc_extension_id = twcc_parse_extension_id(buf); + if (twcc_extension_id > 0 && pc->twcc.extension_id == 0) { + twcc_receiver_init(&pc->twcc, (uint8_t)twcc_extension_id); + peer_connection_diag_log("twcc_extension id=%d", twcc_extension_id); + } + if (strstr(buf, "m=video")) { ssrc = &pc->remote_vssrc; } else if (strstr(buf, "m=audio")) { diff --git a/extern/libpeer/src/ports.c b/extern/libpeer/src/ports.c index 0da4e47e..bf6ea145 100644 --- a/extern/libpeer/src/ports.c +++ b/extern/libpeer/src/ports.c @@ -169,6 +169,17 @@ uint32_t ports_get_monotonic_time(void) { #endif } +uint64_t ports_get_monotonic_time_us(void) { +#if CONFIG_USE_LWIP + return (uint64_t)sys_now() * 1000; +#else + struct timespec time; + if (clock_gettime(CLOCK_MONOTONIC, &time) != 0) + return 0; + return (uint64_t)time.tv_sec * 1000000 + (uint64_t)(time.tv_nsec / 1000); +#endif +} + void ports_sleep_ms(int ms) { #if CONFIG_USE_LWIP sys_msleep(ms); diff --git a/extern/libpeer/src/ports.h b/extern/libpeer/src/ports.h index 2b9f58ff..aebb05ba 100644 --- a/extern/libpeer/src/ports.h +++ b/extern/libpeer/src/ports.h @@ -14,6 +14,8 @@ uint32_t ports_get_epoch_time(); uint32_t ports_get_monotonic_time(void); +uint64_t ports_get_monotonic_time_us(void); + void ports_sleep_ms(int ms); #endif // PORTS_H_ diff --git a/extern/libpeer/src/twcc.c b/extern/libpeer/src/twcc.c new file mode 100644 index 00000000..54a0834c --- /dev/null +++ b/extern/libpeer/src/twcc.c @@ -0,0 +1,229 @@ +#include "twcc.h" + +#include +#include + +#define TWCC_HISTORY_MASK (TWCC_HISTORY_SIZE - 1) +#define TWCC_HEADER_SIZE 20 +#define TWCC_DELTA_TICK_US 250 +#define TWCC_REFERENCE_TICK_US 64000 + +_Static_assert((TWCC_HISTORY_SIZE & TWCC_HISTORY_MASK) == 0, "TWCC history must be a power of two"); + +static uint16_t twcc_read_u16(const uint8_t* data) { + return (uint16_t)(((uint16_t)data[0] << 8) | data[1]); +} + +static uint32_t twcc_read_u32(const uint8_t* data) { + return ((uint32_t)data[0] << 24) | ((uint32_t)data[1] << 16) | + ((uint32_t)data[2] << 8) | data[3]; +} + +static void twcc_write_u16(uint8_t* data, uint16_t value) { + data[0] = (uint8_t)(value >> 8); + data[1] = (uint8_t)value; +} + +static void twcc_write_u32(uint8_t* data, uint32_t value) { + data[0] = (uint8_t)(value >> 24); + data[1] = (uint8_t)(value >> 16); + data[2] = (uint8_t)(value >> 8); + data[3] = (uint8_t)value; +} + +int twcc_parse_extension_id(const char* sdp_line) { + static const char prefix[] = "a=extmap:"; + if (!sdp_line || strncmp(sdp_line, prefix, sizeof(prefix) - 1) != 0 || + !strstr(sdp_line, TWCC_EXTENSION_URI)) + return 0; + char* end = NULL; + const long id = strtol(sdp_line + sizeof(prefix) - 1, &end, 10); + if (end == sdp_line + sizeof(prefix) - 1 || (*end != ' ' && *end != '/')) + return 0; + return id >= 1 && id <= 255 && id != 15 ? (int)id : 0; +} + +int twcc_read_sequence(const uint8_t* packet, size_t size, uint8_t extension_id, uint16_t* sequence) { + if (!packet || extension_id == 0 || size < 12 || (packet[0] & 0xC0) != 0x80 || !(packet[0] & 0x10)) + return 0; + size_t pos = 12 + 4 * (size_t)(packet[0] & 0x0F); + if (pos + 4 > size) + return 0; + const uint16_t profile = twcc_read_u16(packet + pos); + const size_t end = pos + 4 + 4 * (size_t)twcc_read_u16(packet + pos + 2); + pos += 4; + if (end > size) + return 0; + + const int one_byte = profile == 0xBEDE; + if (!one_byte && (profile & 0xFFF0) != 0x1000) + return 0; + while (pos < end) { + if (packet[pos] == 0) { + pos++; + continue; + } + uint8_t id; + size_t length; + if (one_byte) { + id = packet[pos] >> 4; + length = (size_t)(packet[pos] & 0x0F) + 1; + if (id == 15) + return 0; + pos++; + } else { + if (pos + 2 > end) + return 0; + id = packet[pos]; + length = packet[pos + 1]; + pos += 2; + } + if (pos + length > end) + return 0; + if (id == extension_id) { + if (length != 2) + return 0; + *sequence = twcc_read_u16(packet + pos); + return 1; + } + pos += length; + } + return 0; +} + +void twcc_receiver_init(TwccReceiver* receiver, uint8_t extension_id) { + memset(receiver, 0, sizeof(*receiver)); + receiver->extension_id = extension_id; +} + +int twcc_receiver_record(TwccReceiver* receiver, const uint8_t* packet, size_t size, uint64_t arrival_us) { + uint16_t sequence; + if (!twcc_read_sequence(packet, size, receiver->extension_id, &sequence)) + return 0; + + if (!receiver->has_packets) { + receiver->next_sequence = (int64_t)sequence + 0x10000; + receiver->max_sequence = receiver->next_sequence - 1; + receiver->has_packets = 1; + } + const int64_t unwrapped = + receiver->max_sequence + (int16_t)(uint16_t)(sequence - (uint16_t)receiver->max_sequence); + if (unwrapped < receiver->next_sequence) { + receiver->late_packets++; + return 0; + } + if (unwrapped > receiver->max_sequence) { + int64_t clear_from = receiver->max_sequence + 1; + if (unwrapped - clear_from >= TWCC_HISTORY_SIZE) + clear_from = unwrapped - TWCC_HISTORY_SIZE + 1; + for (int64_t s = clear_from; s <= unwrapped; s++) + receiver->received[s & TWCC_HISTORY_MASK] = 0; + receiver->max_sequence = unwrapped; + if (receiver->max_sequence - receiver->next_sequence >= TWCC_HISTORY_SIZE) + receiver->next_sequence = receiver->max_sequence - TWCC_HISTORY_SIZE + 1; + } + + const size_t slot = (size_t)(unwrapped & TWCC_HISTORY_MASK); + if (receiver->received[slot]) + return 0; + receiver->received[slot] = 1; + receiver->arrival_us[slot] = arrival_us; + receiver->media_ssrc = twcc_read_u32(packet + 8); + receiver->packets_recorded++; + return 1; +} + +int twcc_receiver_feedback_due(const TwccReceiver* receiver, uint64_t now_us) { + return receiver->has_packets && receiver->next_sequence <= receiver->max_sequence && + now_us - receiver->last_feedback_us >= TWCC_FEEDBACK_INTERVAL_US; +} + +static size_t twcc_padded_size(size_t status_count, size_t delta_size) { + const size_t size = TWCC_HEADER_SIZE + ((status_count + 6) / 7) * 2 + delta_size; + return (size + 3) & ~(size_t)3; +} + +int twcc_receiver_build_feedback(TwccReceiver* receiver, uint32_t sender_ssrc, + uint8_t* packet, size_t capacity) { + if (!receiver->has_packets || receiver->next_sequence > receiver->max_sequence) + return 0; + if (capacity > TWCC_MAX_FEEDBACK_SIZE) + capacity = TWCC_MAX_FEEDBACK_SIZE; + if (capacity < twcc_padded_size(1, 2)) + return -1; + + const int64_t base = receiver->next_sequence; + int64_t first_received = base; + while (!receiver->received[first_received & TWCC_HISTORY_MASK]) + first_received++; + const uint64_t reference = receiver->arrival_us[first_received & TWCC_HISTORY_MASK] / + TWCC_REFERENCE_TICK_US; + int64_t last_us = (int64_t)(reference * TWCC_REFERENCE_TICK_US); + + uint8_t symbols[TWCC_HISTORY_SIZE]; + uint8_t deltas[TWCC_MAX_FEEDBACK_SIZE]; + size_t count = 0; + size_t delta_size = 0; + for (int64_t s = base; s <= receiver->max_sequence; s++) { + const size_t slot = (size_t)(s & TWCC_HISTORY_MASK); + uint8_t symbol = 0; + int64_t ticks = 0; + if (receiver->received[slot]) { + const int64_t elapsed = (int64_t)receiver->arrival_us[slot] - last_us; + ticks = elapsed >= 0 ? (elapsed + TWCC_DELTA_TICK_US / 2) / TWCC_DELTA_TICK_US + : -((-elapsed + TWCC_DELTA_TICK_US / 2) / TWCC_DELTA_TICK_US); + if (ticks < INT16_MIN || ticks > INT16_MAX) + break; + symbol = ticks >= 0 && ticks <= 255 ? 1 : 2; + } + if (twcc_padded_size(count + 1, delta_size + symbol) > capacity) + break; + symbols[count++] = symbol; + if (symbol == 1) { + deltas[delta_size++] = (uint8_t)ticks; + } else if (symbol == 2) { + twcc_write_u16(deltas + delta_size, (uint16_t)(int16_t)ticks); + delta_size += 2; + } + if (symbol) + last_us += ticks * TWCC_DELTA_TICK_US; + } + + const size_t unpadded = TWCC_HEADER_SIZE + ((count + 6) / 7) * 2 + delta_size; + const size_t total = twcc_padded_size(count, delta_size); + const size_t padding = total - unpadded; + packet[0] = (uint8_t)(0x80 | (padding ? 0x20 : 0) | 15); + packet[1] = 205; + twcc_write_u16(packet + 2, (uint16_t)(total / 4 - 1)); + twcc_write_u32(packet + 4, sender_ssrc); + twcc_write_u32(packet + 8, receiver->media_ssrc); + twcc_write_u16(packet + 12, (uint16_t)base); + twcc_write_u16(packet + 14, (uint16_t)count); + packet[16] = (uint8_t)(reference >> 16); + packet[17] = (uint8_t)(reference >> 8); + packet[18] = (uint8_t)reference; + packet[19] = receiver->feedback_count++; + + size_t pos = TWCC_HEADER_SIZE; + for (size_t first = 0; first < count; first += 7) { + uint16_t chunk = 0xC000; + for (size_t i = 0; i < 7 && first + i < count; i++) + chunk |= (uint16_t)(symbols[first + i] << (12 - 2 * i)); + twcc_write_u16(packet + pos, chunk); + pos += 2; + } + memcpy(packet + pos, deltas, delta_size); + pos += delta_size; + if (padding) { + memset(packet + pos, 0, padding); + packet[total - 1] = (uint8_t)padding; + } + + receiver->next_sequence = base + (int64_t)count; + return (int)total; +} + +void twcc_receiver_feedback_sent(TwccReceiver* receiver, uint64_t now_us) { + receiver->last_feedback_us = now_us; + receiver->feedback_sent++; +} diff --git a/extern/libpeer/src/twcc.h b/extern/libpeer/src/twcc.h new file mode 100644 index 00000000..e4b731a6 --- /dev/null +++ b/extern/libpeer/src/twcc.h @@ -0,0 +1,36 @@ +#ifndef TWCC_H_ +#define TWCC_H_ + +#include +#include + +#define TWCC_EXTENSION_URI "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01" +#define TWCC_HISTORY_SIZE 2048 +#define TWCC_FEEDBACK_INTERVAL_US 50000 +#define TWCC_MAX_FEEDBACK_SIZE 1200 + +typedef struct TwccReceiver { + uint8_t extension_id; + uint8_t feedback_count; + uint8_t has_packets; + uint32_t media_ssrc; + int64_t next_sequence; + int64_t max_sequence; + uint64_t last_feedback_us; + uint32_t packets_recorded; + uint32_t late_packets; + uint32_t feedback_sent; + uint64_t arrival_us[TWCC_HISTORY_SIZE]; + uint8_t received[TWCC_HISTORY_SIZE]; +} TwccReceiver; + +int twcc_parse_extension_id(const char* sdp_line); +int twcc_read_sequence(const uint8_t* packet, size_t size, uint8_t extension_id, uint16_t* sequence); +void twcc_receiver_init(TwccReceiver* receiver, uint8_t extension_id); +int twcc_receiver_record(TwccReceiver* receiver, const uint8_t* packet, size_t size, uint64_t arrival_us); +int twcc_receiver_feedback_due(const TwccReceiver* receiver, uint64_t now_us); +int twcc_receiver_build_feedback(TwccReceiver* receiver, uint32_t sender_ssrc, + uint8_t* packet, size_t capacity); +void twcc_receiver_feedback_sent(TwccReceiver* receiver, uint64_t now_us); + +#endif // TWCC_H_ diff --git a/scripts/test-streaming-host.sh b/scripts/test-streaming-host.sh index 240e5733..d0bfb8ff 100644 --- a/scripts/test-streaming-host.sh +++ b/scripts/test-streaming-host.sh @@ -102,19 +102,20 @@ run_c rtp_h264_assembly extern/libpeer/src/rtp.c run_c rtp_reorder extern/libpeer/src/rtp.c run_c rtcp_nack extern/libpeer/src/rtcp.c run_c rtcp_receiver_report extern/libpeer/src/rtcp.c +run_c twcc_feedback extern/libpeer/src/twcc.c run_c sctp_socket_address -Iextern/libpeer/third_party/usrsctp/usrsctplib run_c sdp_sctp_message_limit extern/libpeer/src/sdp.c run_c peer_diagnostic_callback "${sections[@]}" -Wno-unused-but-set-variable \ -Iextern/libpeer/third_party/mbedtls/include \ -Iextern/libpeer/third_party/usrsctp/usrsctplib -pthread run_c peer_rtcp_receive "${sections[@]}" -Wno-unused-but-set-variable \ - -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c + -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c extern/libpeer/src/twcc.c run_c dtls_nonblocking_read "${sections[@]}" -Wno-unused-parameter -Wno-empty-body \ -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/dtls_srtp.c run_c peer_dtls_receive "${sections[@]}" -Wno-unused-but-set-variable \ -Iextern/libpeer/third_party/mbedtls/include run_c peer_dtls_loop "${sections[@]}" -Wno-unused-but-set-variable \ - -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c + -Iextern/libpeer/third_party/mbedtls/include extern/libpeer/src/rtcp.c extern/libpeer/src/twcc.c run_c agent_socket_poll "${sections[@]}" stun_deps=() for source in extern/libpeer/src/{stun,utils,address}.c \ diff --git a/tests/peer_dtls_loop_test.c b/tests/peer_dtls_loop_test.c index 890949a0..4efc2aba 100644 --- a/tests/peer_dtls_loop_test.c +++ b/tests/peer_dtls_loop_test.c @@ -91,6 +91,7 @@ void sctp_onmessage(Sctp* sctp, void (*callback)(char*, size_t, void*, uint16_t) int sctp_is_connected(Sctp* sctp) { (void)sctp; return 1; } uint32_t ports_get_epoch_time(void) { return 1; } uint32_t ports_get_monotonic_time(void) { return 1; } +uint64_t ports_get_monotonic_time_us(void) { return 1; } int addr_to_string(const Address* address, char* buffer, size_t size) { (void)address; if (size) buffer[0] = 0; diff --git a/tests/peer_rtcp_receive_test.c b/tests/peer_rtcp_receive_test.c index 6ca0d8c9..ab2ea3ee 100644 --- a/tests/peer_rtcp_receive_test.c +++ b/tests/peer_rtcp_receive_test.c @@ -3,6 +3,7 @@ #include "../extern/libpeer/src/peer_connection.c" static uint32_t now_ms; +static uint64_t now_us; static int sender_reports; static int keyframe_requests; static int protect_calls; @@ -16,6 +17,10 @@ uint32_t ports_get_monotonic_time(void) { return now_ms; } +uint64_t ports_get_monotonic_time_us(void) { + return now_us; +} + int dtls_srtp_encrypt_rctp_packet(DtlsSrtp* dtls, uint8_t* packet, int* bytes) { (void)dtls; protect_calls++; @@ -128,6 +133,52 @@ static void sending_reports(PeerConnection* pc) { assert(protect_calls == 4 && send_calls == 3); } +static void transport_feedback(PeerConnection* pc) { + pc->state = PEER_CONNECTION_COMPLETED; + protect_result = 0; + send_result = 0; + const int sends = send_calls; + now_us = 1000000; + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends); + + twcc_receiver_init(&pc->twcc, 3); + uint8_t rtp[20] = {0x90, 96, 0, 1, 0, 0, 0, 0, 0, 0, 0, 42, + 0xBE, 0xDE, 0, 1, 0x31, 0x00, 0x07, 0}; + assert(twcc_receiver_record(&pc->twcc, rtp, sizeof(rtp), now_us)); + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends + 1); + assert(sent_size == 24 + 4); + assert(sent_packet[0] == 0xaf && sent_packet[1] == RTCP_RTPFB); + assert(sent_packet[7] == 1 && sent_packet[11] == 42); + assert(sent_packet[12] == 0 && sent_packet[13] == 7); + assert(sent_packet[14] == 0 && sent_packet[15] == 1); + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends + 1); + + rtp[18] = 8; + now_us += 10000; + assert(twcc_receiver_record(&pc->twcc, rtp, sizeof(rtp), now_us)); + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends + 1); + now_us += TWCC_FEEDBACK_INTERVAL_US; + send_result = -1; + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends + 2 && pc->twcc_send_failures == 1); + assert(sent_packet[13] == 8); + + send_result = 0; + rtp[18] = 9; + now_us += TWCC_FEEDBACK_INTERVAL_US; + assert(twcc_receiver_record(&pc->twcc, rtp, sizeof(rtp), now_us)); + pc->state = PEER_CONNECTION_DISCONNECTED; + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends + 2); + pc->state = PEER_CONNECTION_COMPLETED; + peer_connection_maybe_send_transport_feedback(pc); + assert(send_calls == sends + 3 && sent_packet[13] == 9); +} + int main(void) { PeerConnection pc = {0}; pc.remote_vssrc = 42; @@ -137,5 +188,6 @@ int main(void) { pc.config.on_request_keyframe = on_keyframe_request; incoming_validation(&pc); sending_reports(&pc); + transport_feedback(&pc); return 0; } diff --git a/tests/twcc_feedback_test.c b/tests/twcc_feedback_test.c new file mode 100644 index 00000000..07b0cf75 --- /dev/null +++ b/tests/twcc_feedback_test.c @@ -0,0 +1,290 @@ +#include "twcc.h" + +#include +#include +#include + +#define MEDIA_SSRC 0x11223344u +#define SENDER_SSRC 0xA1B2C3D4u + +typedef struct ParsedFeedback { + uint32_t sender_ssrc; + uint32_t media_ssrc; + uint16_t base_sequence; + uint16_t count; + int32_t reference; + uint8_t feedback_count; + uint8_t received[TWCC_HISTORY_SIZE]; + int64_t arrival_us[TWCC_HISTORY_SIZE]; +} ParsedFeedback; + +static uint16_t read_u16(const uint8_t* data) { + return (uint16_t)((data[0] << 8) | data[1]); +} + +static uint32_t read_u32(const uint8_t* data) { + return ((uint32_t)data[0] << 24) | ((uint32_t)data[1] << 16) | + ((uint32_t)data[2] << 8) | data[3]; +} + +static size_t rtp_one_byte(uint8_t* packet, uint8_t id, uint16_t sequence, int with_csrc) { + memset(packet, 0, 64); + packet[0] = (uint8_t)(0x90 | (with_csrc ? 1 : 0)); + packet[1] = 96; + packet[8] = (uint8_t)(MEDIA_SSRC >> 24); + packet[9] = (uint8_t)(MEDIA_SSRC >> 16); + packet[10] = (uint8_t)(MEDIA_SSRC >> 8); + packet[11] = (uint8_t)MEDIA_SSRC; + size_t pos = 12 + (with_csrc ? 4 : 0); + packet[pos++] = 0xBE; + packet[pos++] = 0xDE; + packet[pos++] = 0; + packet[pos++] = 2; + packet[pos++] = 0x72; + packet[pos++] = 1; + packet[pos++] = 2; + packet[pos++] = 3; + packet[pos++] = 0; + packet[pos++] = (uint8_t)((id << 4) | 1); + packet[pos++] = (uint8_t)(sequence >> 8); + packet[pos++] = (uint8_t)sequence; + packet[pos++] = 0x65; + return pos; +} + +static size_t rtp_two_byte(uint8_t* packet, uint8_t id, uint16_t sequence) { + memset(packet, 0, 64); + packet[0] = 0x90; + packet[1] = 96; + packet[8] = (uint8_t)(MEDIA_SSRC >> 24); + packet[9] = (uint8_t)(MEDIA_SSRC >> 16); + packet[10] = (uint8_t)(MEDIA_SSRC >> 8); + packet[11] = (uint8_t)MEDIA_SSRC; + size_t pos = 12; + packet[pos++] = 0x10; + packet[pos++] = 0x00; + packet[pos++] = 0; + packet[pos++] = 2; + packet[pos++] = 1; + packet[pos++] = 1; + packet[pos++] = 9; + packet[pos++] = id; + packet[pos++] = 2; + packet[pos++] = (uint8_t)(sequence >> 8); + packet[pos++] = (uint8_t)sequence; + packet[pos++] = 0; + return pos; +} + +static void parse_feedback(const uint8_t* packet, int size, ParsedFeedback* parsed) { + memset(parsed, 0, sizeof(*parsed)); + assert(size >= 20 && size % 4 == 0); + assert((packet[0] >> 6) == 2); + assert((packet[0] & 0x1F) == 15); + assert(packet[1] == 205); + assert((size_t)(read_u16(packet + 2) + 1) * 4 == (size_t)size); + int end = size; + if (packet[0] & 0x20) { + const uint8_t padding = packet[size - 1]; + assert(padding > 0 && padding < 4); + end -= padding; + } + + parsed->sender_ssrc = read_u32(packet + 4); + parsed->media_ssrc = read_u32(packet + 8); + parsed->base_sequence = read_u16(packet + 12); + parsed->count = read_u16(packet + 14); + parsed->reference = (int32_t)(((uint32_t)packet[16] << 16) | ((uint32_t)packet[17] << 8) | packet[18]); + parsed->feedback_count = packet[19]; + + uint8_t symbols[TWCC_HISTORY_SIZE]; + int pos = 20; + size_t decoded = 0; + while (decoded < parsed->count) { + assert(pos + 2 <= end); + const uint16_t chunk = read_u16(packet + pos); + pos += 2; + if (!(chunk & 0x8000)) { + const uint8_t symbol = (uint8_t)((chunk >> 13) & 3); + for (uint16_t i = 0; i < (chunk & 0x1FFF) && decoded < parsed->count; i++) + symbols[decoded++] = symbol; + } else if (chunk & 0x4000) { + for (int i = 0; i < 7 && decoded < parsed->count; i++) + symbols[decoded++] = (uint8_t)((chunk >> (12 - 2 * i)) & 3); + } else { + for (int i = 0; i < 14 && decoded < parsed->count; i++) + symbols[decoded++] = (uint8_t)((chunk >> (13 - i)) & 1); + } + } + + int64_t time_us = (int64_t)parsed->reference * 64000; + for (size_t i = 0; i < parsed->count; i++) { + if (symbols[i] == 0) + continue; + int32_t ticks; + if (symbols[i] == 1) { + assert(pos + 1 <= end); + ticks = packet[pos++]; + } else { + assert(symbols[i] == 2); + assert(pos + 2 <= end); + ticks = (int16_t)read_u16(packet + pos); + pos += 2; + } + time_us += (int64_t)ticks * 250; + parsed->received[i] = 1; + parsed->arrival_us[i] = time_us; + } + assert(pos == end); +} + +static void assert_arrival(const ParsedFeedback* parsed, size_t index, uint64_t expected_us) { + assert(parsed->received[index]); + const int64_t error = parsed->arrival_us[index] - (int64_t)expected_us; + assert(error >= -125 && error <= 125); +} + +static void sdp_extension_id(void) { + assert(twcc_parse_extension_id("a=extmap:3 " TWCC_EXTENSION_URI) == 3); + assert(twcc_parse_extension_id("a=extmap:5/recvonly " TWCC_EXTENSION_URI) == 5); + assert(twcc_parse_extension_id("a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing") == 0); + assert(twcc_parse_extension_id("a=extmap: " TWCC_EXTENSION_URI) == 0); + assert(twcc_parse_extension_id("a=rtcp-fb:96 transport-cc") == 0); +} + +static void header_extension_parsing(void) { + uint8_t packet[64]; + uint16_t sequence = 0; + size_t size = rtp_one_byte(packet, 3, 0xBEEF, 0); + assert(twcc_read_sequence(packet, size, 3, &sequence) && sequence == 0xBEEF); + assert(!twcc_read_sequence(packet, size, 4, &sequence)); + size = rtp_one_byte(packet, 3, 0x1234, 1); + assert(twcc_read_sequence(packet, size, 3, &sequence) && sequence == 0x1234); + assert(!twcc_read_sequence(packet, 20, 3, &sequence)); + size = rtp_two_byte(packet, 3, 0x0102); + assert(twcc_read_sequence(packet, size, 3, &sequence) && sequence == 0x0102); + packet[0] &= (uint8_t)~0x10; + assert(!twcc_read_sequence(packet, size, 3, &sequence)); +} + +static void loss_reorder_and_padding(void) { + static TwccReceiver receiver; + twcc_receiver_init(&receiver, 3); + uint8_t rtp[64]; + const uint64_t start_us = 10ull * 1000 * 1000 + 12345; + const uint16_t sequences[] = {65530, 65531, 65533, 65535, 65534, 0, 1, 3}; + const uint64_t offsets[] = {0, 1000, 2000, 2600, 2700, 90000, 90250, 91000}; + for (size_t i = 0; i < sizeof(sequences) / sizeof(sequences[0]); i++) { + const size_t size = rtp_one_byte(rtp, 3, sequences[i], 0); + assert(twcc_receiver_record(&receiver, rtp, size, start_us + offsets[i])); + } + assert(!twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, 1, 0), start_us + 95000)); + assert(!twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 4, 9, 0), start_us + 95000)); + + assert(twcc_receiver_feedback_due(&receiver, start_us + 91000)); + uint8_t packet[TWCC_MAX_FEEDBACK_SIZE]; + const int size = twcc_receiver_build_feedback(&receiver, SENDER_SSRC, packet, sizeof(packet)); + assert(size > 0); + twcc_receiver_feedback_sent(&receiver, start_us + 91000); + assert(!twcc_receiver_feedback_due(&receiver, start_us + 91000 + TWCC_FEEDBACK_INTERVAL_US)); + + ParsedFeedback parsed; + parse_feedback(packet, size, &parsed); + assert(parsed.sender_ssrc == SENDER_SSRC); + assert(parsed.media_ssrc == MEDIA_SSRC); + assert(parsed.base_sequence == 65530); + assert(parsed.count == 10); + assert(parsed.feedback_count == 0); + assert(parsed.reference == (int32_t)(start_us / 64000)); + assert_arrival(&parsed, 0, start_us); + assert_arrival(&parsed, 1, start_us + 1000); + assert(!parsed.received[2]); + assert_arrival(&parsed, 3, start_us + 2000); + assert_arrival(&parsed, 4, start_us + 2700); + assert_arrival(&parsed, 5, start_us + 2600); + assert_arrival(&parsed, 6, start_us + 90000); + assert_arrival(&parsed, 7, start_us + 90250); + assert(!parsed.received[8]); + assert_arrival(&parsed, 9, start_us + 91000); + + assert(twcc_receiver_build_feedback(&receiver, SENDER_SSRC, packet, sizeof(packet)) == 0); + assert(!twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, 2, 0), start_us + 96000)); + assert(receiver.late_packets == 1); + + assert(twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, 4, 0), start_us + 97000)); + const int next_size = twcc_receiver_build_feedback(&receiver, SENDER_SSRC, packet, sizeof(packet)); + parse_feedback(packet, next_size, &parsed); + assert(parsed.base_sequence == 4 && parsed.count == 1 && parsed.feedback_count == 1); + assert_arrival(&parsed, 0, start_us + 97000); +} + +static void large_gap_splits_feedback(void) { + static TwccReceiver receiver; + twcc_receiver_init(&receiver, 3); + uint8_t rtp[64]; + const uint64_t start_us = 5ull * 1000 * 1000; + assert(twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, 100, 0), start_us)); + assert(twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, 101, 0), start_us + 9000000)); + + uint8_t packet[TWCC_MAX_FEEDBACK_SIZE]; + ParsedFeedback parsed; + int size = twcc_receiver_build_feedback(&receiver, SENDER_SSRC, packet, sizeof(packet)); + parse_feedback(packet, size, &parsed); + assert(parsed.base_sequence == 100 && parsed.count == 1); + size = twcc_receiver_build_feedback(&receiver, SENDER_SSRC, packet, sizeof(packet)); + parse_feedback(packet, size, &parsed); + assert(parsed.base_sequence == 101 && parsed.count == 1); + assert_arrival(&parsed, 0, start_us + 9000000); +} + +static void bounded_history_and_size(void) { + static TwccReceiver receiver; + twcc_receiver_init(&receiver, 3); + uint8_t rtp[64]; + const uint64_t start_us = 1000000; + for (uint32_t i = 0; i < TWCC_HISTORY_SIZE + 500; i++) { + const uint16_t sequence = (uint16_t)(40000 + i); + assert(twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, sequence, 0), + start_us + (uint64_t)i * 300)); + } + assert(receiver.max_sequence - receiver.next_sequence + 1 == TWCC_HISTORY_SIZE); + + uint8_t packet[TWCC_MAX_FEEDBACK_SIZE]; + ParsedFeedback parsed; + size_t reported = 0; + uint16_t expected_base = (uint16_t)(40000 + 500); + int size; + while ((size = twcc_receiver_build_feedback(&receiver, SENDER_SSRC, packet, sizeof(packet))) > 0) { + assert(size <= TWCC_MAX_FEEDBACK_SIZE); + parse_feedback(packet, size, &parsed); + assert(parsed.base_sequence == expected_base); + for (size_t i = 0; i < parsed.count; i++) + assert_arrival(&parsed, i, start_us + (uint64_t)(500 + reported + i) * 300); + reported += parsed.count; + expected_base = (uint16_t)(expected_base + parsed.count); + } + assert(size == 0); + assert(reported == TWCC_HISTORY_SIZE); + + uint8_t tiny[16]; + assert(twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, expected_base, 0), start_us + 10000000)); + assert(twcc_receiver_build_feedback(&receiver, SENDER_SSRC, tiny, sizeof(tiny)) < 0); +} + +static void disabled_without_extension(void) { + static TwccReceiver receiver; + twcc_receiver_init(&receiver, 0); + uint8_t rtp[64]; + assert(!twcc_receiver_record(&receiver, rtp, rtp_one_byte(rtp, 3, 1, 0), 1000)); + assert(!twcc_receiver_feedback_due(&receiver, 1000000)); +} + +int main(void) { + sdp_extension_id(); + header_extension_parsing(); + loss_reorder_and_padding(); + large_gap_splits_feedback(); + bounded_history_and_size(); + disabled_without_extension(); + return 0; +} From fc0096c21b60c56cc52073ff83265756d6907c1a Mon Sep 17 00:00:00 2001 From: zortos293 <65777760+zortos293@users.noreply.github.com> Date: Wed, 14 Oct 2026 19:37:14 +0000 Subject: [PATCH 23/23] Recommend overclocking for full-rate streaming --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 35d792fd..c897f8da 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,10 @@ Install and setup guidance lives in the [OpenNOW documentation](https://opennow.zortos.me). Nintendo Switch installation requires custom firmware and Homebrew Menu. +> [!IMPORTANT] +> Overclock the Switch for the best streaming performance. At stock clocks the +> stream hovers between 45 and 50 FPS instead of a steady 60 FPS. + > [!NOTE] > The application currently retains the inherited `SwitchNOW.nro` filename and > `sdmc:/switch/SwitchNOW/` data directory for compatibility. Renaming either

    8s4+m1SyU3SNZ2PE>{pFL!8Uve-4Ill3QDQc%fqnM zzCsYE@fro}y8#?O=oU+FfDwggokP0ouDiAtp{&N(3$q2-HA`%AAVScZ5n!_51;B#HH^ggP#N`S`W(}>VkD8HWdrK6aLaF3+|0iGKCA)9fM$Z-Zy=$bu6{}Y?0 zzxKB*PpRZJ@nw=XT7>H2jv{qq__7<@IE`1s!jO}Q_$NRc08WjMKOm7*+Ace_ktI`c z=e~1+K4;!^-2_^@vijz2PD0*y%S9Kp(tn_2&fYeI6uw!O%(KR(a;$xvt22puL?#1; z|9arEENHS1mKSNRdi9u#Z`5(DyS}$4Ir_D2CQ#WU9f!X?2Ns81$qPhbiLVrn!2ztk zQed{X1N&nZW-zW^b>qr$fQ^BWd>$$&WW~&JK%78{HQXk{_yca~N_&Fgl%5qym`_|f zsinUQRcw%y%M?mP8-`DaLKz0(B5%OOY&4p)#3Ei+6bN8r^w-xN{S}CSy~b^(Pdwg&-+KT3^s~5fg#Kzj_IL|VEH1UfJe11H=FwsE*&YKzV9O1c%yjq`FFuw*f-0F~hc?oiiS{!OV0R5fzkUj4&*a?E z2d=^R^2Vt+U#(!L*0!l1X$>rF2*v{oYw_Na(hH7UxV>MYmti=jh{y?oCl%F=Z`iWl z>T=Xqha@17D^0d>e07tmb#Iv~L>CBiEw!CpSaV#m@XG>oGr za8Ma$f-7OzE;?UKWgbl?-+?r!8w1E7&?JvT5>FfjjQt zYn2>V+$FfY+CDhwEVU2z<&=-W|L{|%ES*J^MuBMAas{9Gez!m>t@L3OY;52_|4cR* z&_zaDG)Q$=Ufs6E7TA69h1>e%S{by}FlhkPcli?W$bn-Q8B6S)b!z4cqM4nZ@P=`d zI3QH_Ox@6O)lQhE0@dUz?&yCYZLY6TR;g;6e$jWl@8kgPqff>!yYiA~u}DCK_g=U! zip`z*z~mzN#bVg|$L5014#3`=$01eFfUibNN6`#B66;$H?Fgh;f-dF!mmP^POIh;l zvz0eapqR6ASB2=5Cv~4);+&)Hhh#WV?gZ+6J;~0s`TV|E`R2W6-KpDp>&^HoOH+C z1osNBV9yG#u>GeGrDHqm=eWgmuC6bj`xW`55$pnagv1?Xmq}Z;2 zcm1X{U2-Y3E-`6HLg2-Gar^B0Vl!kR;Fp{v$mpkS_PXkjSmdT)9H$CTG!ChU4v!d+ zQo5>R@yeJk9F&wv%PM|6Hdg-*_5)eRbu}cYYFM)a`XVL%Wvx_ z*6`YII&`;bW?zPu-FeRzn4{$_+_I3S z={A|2)6KSG@AWI((nhfhPqx3&{(NJ(GLQ)fNju2LM4t+D#>HH%j<0B%s`y)pePnW| zPQvHG>TR$oxJ`mjrL)64tJ?1}@&smnvD)H^JIu-Q628z%aV&w@y&-d2=@R*an|zk8 z4pW(_s~5k6%zoplon8!suXr*qEu(CRjD=2;O{Cx6ygCOfDjNLN+8!p z672m9iEs_m-ODFH=x)Bqpu)%sn2S8?YVxrfewVpsxFp71G9QJ)2t0uNFaVQ@nS0;aM~53wqa1)9=IrM^4tWK&1Wn0eX?xb>rZ@OrBC?dkC5l!^2~nhwZ>0xotVW^@p$wutX-*y%G9zL z04_QhvwUgUPMk2NpJXNn(YpCLDA*6II=<@GRrjtswN$V#9T5VUnOL32t(IbSB*Mh% zl?zz<88Qj@XmCyiD?!JODx{?e*}UZyOh>tdccXmuoS?&yNzTT*nc^vb+h;dxanmp9 zVo>{9i{#uck9#935Gs|r43tHR@puY5B~)@rA*S#v%PrIEgKRY!n44^fI5u4nFV^rY z_AWdj^hERm8{ZIi3$_J)+x#v=Q~jAAgM`e>e5{uKA!d~dBi3nfqhF_p|X6g<2ainE7}Ko1vY&$DusI&1Y${> ztEXNmu#nyOSEHm3HcE+vsstS=Wgx%Nn$1dy;%Msn|AWa;AwKX?~#i23? zZ;`T1MWWt&>xX?2wP9qz#xM?J9x@# z?H%kf@eMpfQ%fDfz#E`kxe@Twyr)$_hMr*hN{FmA4}wP5!29{;s_(9P1ic^z)<#2( zR^}xzSBI{h>3E=A8Zom$vI}sw!pgGz^)8!r{sqAh1A0{Oq?r61y{>crF60~-g;vPd z|9|{#0J_7gB+{_u>>`l(`p-M>tgkXmm2(taQ*~Kcz*9m}GQNs}jsPXrG7E%ozE$rP zhoYKdIS)D;C0=Po$_ThM2#!Nn6`qNxqskIRd6h@zvGaW} zWR%;U#ea9^dHlUIPY}n?yo#Sn8^q<)W**2Dl*Kn0oPDEZ6|3cB5sn!(;7sshjyrDj zbhW@dEl?r(CXUb(oYa^ak}A@~m4uToI*e5^gR1VJQxOhH1G4fcma5ZA%4aM*9akET zZ!o(0#?W8MMha&FBLylnY>vCq=;>}Q(x_q~DbL8I+<_sDslHmtH*#Sh>^ZwWE;lGM z2klA#>wL0kCAKct&CRHc3%&*T zVg;|nE_OKKJ>)lRAg_eCXFOXDUzFfz1&Isy%}-|h`;K4Vz|jdBPF}HtzO73gBKvuP zN84p?ZYR%$u~RKCymtXhDB@i3m!}2E`ctp1DS}_Le)agief5!A6Q-PNl?tQ2V<+t-R<>J3H(YBNHk)#7E_1bY3S~Cs*?(@GTl^@ zoN3XbuA;hW;*FF&?iTQkFe0e6xas@crTZ`0JE255EFk9PG6DzH@W!bP^N?)nq3iTb z7z^Yx{ahFHDry*(_xHmig|V( zsb}lR%q5Fh*tKy_6VJ7Ed4* zN?ck^w;L0a{&tA~=D;OrrsDLFqoYs#!~ehO+l8EXuxLKq6<~@#hoWQkArbz;Icav zY#FRATfB(AG-_ySHdY&3+CWBC4IvoqiX~Plm^2l!)Dh1W1z%>qbGZ`;k6gj9SDEAz zT_3?(e)4c>Xx}4%6bPSyO9R_E{~h4VJ;bFHXXW-+=oHw`uy<$$rkj$fRqZjHPq7^t zk`L4sWo`FRfO1L$gB>ZFlPOJVag99p{PVa zIRlV@8sI+efw=)K)N*BvltKrjpQ!7!A4p}_K;dxqnJ>GUjz^qmYLz!V)>M4>!62fdo^8td)j=2{&VL z*~Yka?P3HRUwF&xyI_0#I-d7%O6ug*a_zTP_;w#_1ly}WxRVp>E+_M858jIA(AIxaX4%o_AcKT?9nkgH;8@U z2pv4Se^SZp^a0i;j>Cv`>)f_Y2D>p+B^SaLlG4fvmv^*NCvuUBh8}F(WN6jcb?rlD zZAxWVXOv-oZ=)VePuI}>W(Am@0F0Efd1YGe#><+7P=&)BlPn}Aa2A_aeZd-GPi}25 zVNPtF%^G2vN!^egr!S$0VMp=Z5Lr}koi7kgOn!p8^hmH5nb>NkA$6dDpe$3wnCnBy zMLuJ-N0mz?Rd+=(#4)oa%F$5KO{?*VELL@92ER}^ z`pDNJLMPvU#a-FXJHHa**@V$sA0AM);W;O9LOOWQwJ|QluI69-(i%K)+5Ra7tgZlu z2pVEwjDq(0#f?UXp|)Bfbn(Tdm6I;dNdCgX7$*!!U|H8bsMpk}EUJtw?CSzw3oE?p zJAW0^2JA?ygR=VI_Kcr>k9Y-$>gUEf#H?5k&BPF#XL4Pedj?Jc9$a`@JJN!oc{4%WOU+E2zXhOp;>F!wGBYPgA%+(0RgWbSse;^ z6*@my9SV3p`e|G6;IV^KN)5VS1gBxl{chj*b@~d-NdNZY9-Pi*i!2-N+ijx&&D5{C zYUl!0&7QduF0}W{Pp)oU%&Pbn3uT(Uqyzjbig!N%gFM&2B5{ZXpjv>i(mDS1|4mFo zx5yAd(S;$D2Hi0HKv>)BwPn>hOsiCsT7~X&BUv?yWRNAINS3gnNT&P3NEY|)zO(_B zuAxX4DcP{6nyn=vg?R~^1?{9c`r3=dWHU_TnAKN>V3!YB5QGj!-OIN7|b z1c(gdhy-nGw?P;)ronPNlqgiO+U*(c(7?~-nQoZpKQD~M0=I(lx&E#lGKv&3Q+Yzke#PhrCdh(JPv7QvO(pp`HKgEhNg zFz)hI*Mm)!3`q&5?X3$Yz8VQRfVPY&>;<~~KdDec zhijE6M#9zdA%&Dc3JG9znKf=ecdKRYwi?|n-18S@DPMB8Sljf?J6xn*!!eB?9-!Zp z@g7{`Z!cKX53_^1s{mA(E?W3b@^wa~6(nCl0!(}sW62(QxS=#0nH))*4 zOhSS3(6Y+u67NW-R_La_FlYIa%Z4J{1QJj`1wOP6TAYP3j}hQN&x1wn2O|9KP=epL z>fu#CW~}QA+ANXC7ehB+?nqZsM}`8=giSQrQ}|URf*wP@L_b%}7`4puGP#8(#Ec|B z0}lw3mRuzB83lG3#^uQ&8&~m2A+Ge>Bf8!ZH$XTL?=ms- z>J4QO$4b{v{H9vzw}x#!9xmCmKLvJKvwwjob*$Z1!B&yct+RN0!ZQ~F zmZPC6O7Hvjw=s6Ydoal{@>4q>^tng6G(mOe(AFNFs7L~mw_I4S4Z`?rrX!u6Ms3W$=B7M)X($ijYb&;lE&t?zs*jw%wEE+Oq6nq39#SPDQO zm)qKc{aF#8wQx-wLqFTAtgKRpG*#7~t)hP}<#A0$o}{R;R2K9Qu$Mif66@-(Jbk)> zzLbu%7~(Loq|{6JEHp>N)*HaJ-zZS3q3fi9PVA4E0)-7!AJoV%G^9~tyau!mcEG#^ zQZEE=iahPP!ZY9{;Bg>^BBBkSJ$>@U-s1nRc)1dHg}D#j94Xc(H}-%M2-)pd!^>6UwB=#dZ`B}2GS_j1p_z8hW#z&(k5Mgza8ORCY#zvc%b<&RBcXxm83Xju5&5dH2et_9fz8WAE(JyG=_zs9#8jZITkV3+K}n*e3cY zez5mW`sKA(l=O7A)#*rsiLZ=RClh+$r=TzD8_c5?!ILh5AehQOV8*Y3`$^#EG}sEr z1_*F2iJ&s`ZE$2*KNg`c53jL~?P%esv}D7k9;{q0s*yx1b(CAIE_0L9@#Nuco+jsp z3-(MGYoe=fT4ZUd`K$WR5}SDXi84GdX=X_n+u zScYx4a=3utFJF2X8X#4~<}+6|D(j}YgPxh$Ayb*5 ze`XE66+b>pN2c(RAxzb8fA*aLV>+FTsn8B*sV^7`%5QI=EDoEnOXzSpu&d|?KceBw zGXU0iif935hni7LL0I3ao_vRyDQv^2slc?(&^ts7Xm}L=4g2_Im(bJOz%dI_Eq0!t z5eKXRallt$AH`2vuuHK&(mG7}1t><>a300ztiiuZ|GM&mJqsR4du8-89HoF5K(w2f>rr#xk%Zx1D-!i&NM6Y^%PU}EcGy>tTMtWg&*e_==pC5djh+J z-ZfqRi{rouD!%TQ)mV>2RH+@&+MR6Uz2IBS{$vg{L6gy1I%5 zVw~7s2)vi2b%|smrUphL@T-CWzx0L%%4D;PIz{MPAEe)S{Y|(hE2O^9fpAa$5&EH7 zk%qSLxz7;X;knOnsmMcB!xDcOdXJ2UVE9ydoZt^VLT`T~*CMEGxAPJyh2KrpktM$W zg>CKpc^fXzN}_e1BH;7bD?tWvfxh~;B4L?i?Dz!GMY*F#vcgvkvsaA@E&Rz7a~Aw4 z{eHy-dp85v#dl0CECgw~L|0R-2&$5`_+zkYlLWoRqtgCwUQ@{f<=W7J6T{h3T<|#k zx9^Afupv44^^fnJUVP~$AL$l_@BQr|xN|e858W*eyLIy28vsR+5rY7n73h1EAb)Bu9eyxhlFQj!>q@qi;x zJyxr@gCK=$7@wBubuz4DK--%2u+?gQax?up-})MhXdEn6fr-yvp4KHrO>$n@^kMTeeaCV0=CTO1Vf6Js-r>$ z#YPAc_QZ^&bo_?RV9MnBEBZ>P?o!5-!-oFpS$Yw_e1@)=#J`=W`|gt<`oqawanUyV z*>RbT<1Y2`Wl}CKES0h}WnQ+`=e4q9)vBlZ>@y2tw0S17Za9@PjAJEzhMHt`LWwTK-~8xR+tfBQ84LdF6Q5Vi+UW+&`(Q&IxA8-zeAYSi*lAI374 zj&|s|u(n8@=~zf}=-1$c5FYv{KJJ*46fCGal&eB?PyBd`~$jEV^#^ z^<~a2&z=MVx1{`zUmd{4Is{5#k=Q2!5j-!wzxwcj#SknuWqIefZ7u&d{p;w?#WgPI zG@FOkto6TPQN_w+C5B=ATe)xIcVnNE*>Fjj0spx-9i+qD8HnQN2ti7zuLALnaQ zV{~W;kGEp0UD-okKJ1E7WxBbl(twlX>J6kY7^~DQcok83nIfJjc9!%y1J-se{kJ+@ zO)42z!5|n{<`0zyWVfYBlg%n>5rI}KD9*g`i(kW`IAJ#V$G`F$44!M))+f z>`9q9$|VPy$kXwdc*4k(!MULSpVeXm#wnCfUw%sX5$oKp3Z7cduH3!RMc>{%P*Thu6F=XhSn4%Bi>!<1L7y$=dBjalHe0A$c;Aqo_#yk9ErdE6ivpBl+0Rn-Y=_TS*zuvP>enEI&aMp5A|-yn5kW zW0E+{03w*}k2BVU?L?x#*j~9L<=T8v2F7<_2q7&ub|k)bR|g^HRczZd@s~D zHmbY^OM6rWjEf>(G3;ycxP(<%r^X}TDiypsM;(6Q=L}2(l#3DttW>@|Z(&&ZzyQnH zeDZKmVBwqkrYF7Fe2dzt;faGHwp68iz+i3#>5(qF+^f-Pa27$@9VGONF_T4A;>}pb zYnp)uZ-LV99`N5QIS-O3+=7-GopY82C%$}^D-RU8`Z8EZ$p-h1-loL~E)H6aFm;n4 zqUVXBA`KVxsYv1=x|B=3+Dy4RQXC^y-C*Gc6Y5A%n1&sfuV4c$Pd8zI9+s3a86NnzCy>rd9Zm|&Sx9U zygry{R0|cN@71EAw+0w`!*|i2M0V}m;2|wM`^5ZQfd0&@NmheATQUua)Yoxt?nC?r zS^bfnevU%HcCFtt(%&ypu)p<>8?#cCghk-8hzvAW*nFzvrI265 z)f;(5CbclTF{Y~8wb6@n1;P&%&cSY@*3>%;1&?I52{Rn=Q~k*GZAq2i?5 z|1y?s|6wzJ%`XmJMBgw@lsYXvCO_;-zLNehx_kFVFJkj@qf=>EsBfBp2QH0Lqw*tEEG>^i7$l;r&7P~mj?yfZTcrl6r8 zDxB^3<*Vt)IR3k*pKhk_!a^k@S(CYcIKpPPaX9qr{f3%UBC6tPw5aYZ4ajfJkS425 z+zRg4itV7E`Vd9&GH}Pw5M9t**FcOya_lJgMG|B%I97zZ1<-$jKryZ)wh};KT3-LR0cj2(%54%0x zlQ}flGmL9D{p{3NHz#C4w@}NjtkKjTyziC&@du^lvamc#uQ&HywHX9@gyz+#{INlz z^1xa3IT|NHf=DROw?Y!nU=8^y9mYhL&W4eEM!8%Of_e~0f~^91ucNS3l*FIUg(r!< zXD-B!jg3J8e$ftZqjS@ND^~MEtM9+0NJ~y%HdL;mKgN$u)6oh1E5H2ZFR=EW*&eL( zt=vy)WTB9}4wxFBbnfntOJFpcZw@57AE2N7>tDff*x|)KOf-NQ@&VdcGmt)$QNb6= z2;=4Vexe>0`l1*GQR!(06x6=zpGi=4%b>J0fCIuji4jc+Z{` zWi4?^ngCyOfUhutuXtwpM5O=EREaeH$g+D2!z1|q@|U~}(xjF+t?*?s zq88^=D}^IP$`;HED8}B*y$q6Tn=$p|B)yS1bY>rR>9ja7a&i+u8T|Rndz@sq57N!7 zF{nd%({6m<4Ba@1zffD7dKyG`9ujxlTBol88&~tRI!J*^A+mn6jx^eAq7Jd$X@zg- zwf}V*j#vdp{34-*pCKVUFU)?Vp*&r+qu`j}Siht*$9zXfDy2}44%Z7x+7m2Lnyjj`@pt=RuS2=I5zx@<6{I9m&X+vWJEUVxu^ zjUiq4#02EJd#34z@muf_PVRQBF{7)I)Qb}z3~?eILms)95IQAnZNQe?wYv79UdzaA zDZm!I(#hW1w0an`!iU$?#Phf7FNHDzZWq~8VCXz9b3#MD7+{MWWQM35D4fAB&5I~6<3;pFRu^6Y#N8+v!3lOw)M0Xn*_D>dYVsA zA~vNNMoZ|qj(0IO(KB12#i{}C9J_8~F_R7SxT&sycV_i~DP-tdJqwM8uTImBaiXb- zlnKxtg<`S%>v~gjqt>EpYQ3$wS<4;XRwERWKum>Ib_CAjM%HDyy_d{dKqyb!wLt$7 zY7REXYJP)$mz2Q3V~4Q;R#|ARGU`abAz71%Dv(7=yn&!!er+w3c5r8aoZ8?!d;X8_ zLMn~ce0m*Xam~gIkmk?`a6hH zJMoJr=H?tR0}bMwRePWV zg_pb>qY3Os)1tueiH%^<(5I1`ZS!*)e%YvircuzEd;(AEQaj%_Otr~7+}f5iDa%pomLy+3fe}f5tA@v&k!P@Ewy2^8xyUFjDbPD610q zPjlbEIk^wP&NOf?KZ9NoIu|XxmIT;YH@ukD@Mh3+Sc-s*o61`g9+sBD@*XHi8ISMu z7b%xrB79h3lrf)!oPR>t!%zVI1M8~QR|p!YDE(G1NA9t(6)L{N&ObSb@uUWqmK4Ku zt&ro1o1HPcih8+KH?%*?vkJTR^wDGQz4x~c($Svcn1%6-g&R)E+%_)cFRmA`Z0i$E z_;mwsIn-&5Ta)?Z7Wd@zsFMpYn}73WKlb}w@4WQ&X*SVSCouA|LlU`g)BSJf9v2;a z`@Wc{gde=+CG!B#i2fDby=#LPC~~%``8hxRADg;5u5_yaEBHRs5BLxw1Zn_22i~a= zHDhpUS!Pyr>;KNy;80hRg~Disy-b#;6E7D?EO22AZpVClevq1h0wQRC1d6G?p*-xi z?npNiQzyr>p!L!{F-h;iFPoyHjn1Ntx7qu~V*+u{9`B(58n{Vj9d_%WRXy>Ujqr2~@kd#N%uz5Z5$hy7JfEzT3 zQekKIXdN(sngn|OC#^TqR~yYd4hs{NAdx99m?~1ty@#+fwK3}Op$dY@c$psGQVI#_ zRbFm=rGhxCS&Z_>YGT8gvzI2543=sCV%O)mjPs8jH;x@fY_r)bXue?U?_y3}Lys6yA7yASpjWgQ% zJ^J;x-v$eEz?b_ZyoG!-SP%K5e@V}1nWcdmlgsT@Fbp(!gO-34GZuwbix>3CzBGBq zzKN@Ir!RpG(mx}ZMYU8vTu(X(8hR!qef&YcVap&(sp9smF2(xk&-&=c+W5A{DwsKq zCXC!fh0N#V$N3KL%UDzM_Z#tNvNYY^+kqX=u2HStsY`d^wl8A_}EqMHO^V@4-H$2_{~D6BOFeDWLKM@!V3- zyg=Mvrtn+hwh>6wGw(O7?tJ%#wS-}@}*-&?}m0upPW8eS&A10(`jx*rqfnavN zWfO9<%^r`L9jQ{%yozhTnZ>)laZNShYV>c|8YRS>vUQ`m-;a*opUr0Qug%aUlbB^v zSh@E0Js`ux-Ez%PC|Mp@SeUd{m`B$y;D2iW9{rw@qU<)FgjHUtl$H7_izNzPE2WZi zvCXwI8^G7l+%Z}+^!rw8h+_iUrkasj1g19z{oWa#G&JTwA)Fxggg`DSz}n= z4PD{A_?6Ri=@?O;Af-HvvXcaxC%B_wtO4{E-o{p&{Qa#uW^_2&yf?|AA3K@SR#jJ_ zj+mA!ar=E9>2c_Y+3g6hhpeuRe(%X=;rllNQ1>cyG4cRuULP?93NH|cd;VML$`C-7 zgj(_(ixuujv`}xHO%r~(Sy0lEVjHPsgPH5A5j#vEAY`;YiM2O8S%=-dLi4SII`LKX8yYLI>_oF*^tVb}XZG7Ea;4fA!=%2ZjRVn<= z-1o5$Y3}U*Ay>Cyu~$W!EtGNgVk8-fFwCa`Jj=TgAk3+mk#89(1-t%{xo*vii=~gpuVVV*9E)Eux(~_T4h(&9{)TB zswfLdqOcVUe|8BZ;4yM=j{^9@MZ>Z1{d!;q1aSmLfO5_-lMzFOy%Yx-t|J%%Tr!vj zYCJ%O3crdL;DXO%Gb@7}N z?Qle^u_HoJox~;W7MjT1{1TdD7$u`??mkEeMBJU%5Bd{f->BSF-_x+M z8^~|XlU0^xb#_w<_P^F`9n|4}OOaNGxJlx2o)(2P-Rh76yMwB`xPq^g75latVO5pb zGhkF`J8bk7^gkbZ{2L9MdgBtlLB|#N(tXD=q{VI%wTT?CdG~A4>ApG*Dhx(T!|~W!$e|-EEJy;D-~Y=9DZYt!b>v zy7yk+&oz?W$2ScRhK@hFu^1fpx(6->)P|k=w;8CWMPe7pHQCJE2?4ZlL<*xxf%#z> zxUeX@KCU}DC^56fSb9J%KaT9)4UGmsE+^N|`{<8?it1X1)xhFF=c!7Q=D{kpenx82)jh#$lo2L^3J)Cs)Yv z3jhA^7##<@4u+{gXfW8vR=|Qp*yn1rONz0SIMU#P9<`^rQufuTzNS)ADUQ{&MFML_ z^_9BeHT2ajq`f`OF$gL%7M`z49SaGPf3!?WprKx}{fg%M!_uH%S}hHgKT)l#tJl}*o0@S8{TFa{>q;my-#j+I*7rw` zHkDMBs#6*KySX1?@8v#)*QbEj_cGL+1Vl8{nGP_b9DU4ST|NT>&t41#C6m6Qy#)n= zUtv@dLn#0p78C3MSaHJHmhz07Ikw6OJd z%v5PgNvcID`lPXI$Y+jiFUL-H!oGNQjVfGvOjbXe;YbCn<_)b1y1IpQb)=zZhFUx> zXj*y6BrTm0B3CAQXjtxezD9v=Jdi4Y$cRq@-NnAx9yxL!C-+tk9m|1+nix=QI+Rj2R= zbGLyNe2lOTptn6wn3uu;BAJJvHPj3datc%enDayqFbY4=K8WS_wz6zU$#_QC%3Oe$ z5LyN4W?q=|yw?Zy2K;fMe#PF!o}?2h6do$kD*2t+VzEWf)&Xb3AS{AUjde#L3yk$v zh##-AwwZjgppX7vT*K{HF@ZJ&7lXD2scx0)6!iXj($SLO=*h~ond^`0ydYncJO&G0X-MMR?=7p~u|&uW90e$B%BF8?n$&cPL9ZS+)cF`>4V%>yWvjFPiTd7{>&a z>+U%KF^04KhLK>rJh-r7(iSt1FKocqwEwH^Qrh)~#aa{d3V=7xA+5f0r6W};fYs!r zz#UE54jDB`wMCVV8!RcMM%zF?M1T6-AKYBGz9S|^un|>K)pe+bZ?@WnEn>UF2Ipgk zq~ismpLuO+$lU$FylG%GqClq_)&F@O-Z?s6@RXuUVS_mt2o{mZiYN|~m@)V$>+Fo~ z{K$g~Fj&=+Mf0yO^b6#&N)ImPXaj6+@!=M!!_4jE8g2AnyJT@aTchI}%Kxb881?g1 zN={&`OULOl46Lgp&63DWH(l4lw>MRT@kVQm+;~{#bCFTf>3s$3YI&>?S9SJw`{^GT zt$Z#ECgz~RVLxs#*43(Q+Dv0iUa{512DL`}EWXA!(yD^SIH@05hz{zT4$iy8B|_u) z)@uL}*aL_FG(2pm{Gs2CDk2eC4Qyuu=5-!N;X~{H9w1R590ehk1!ddnCH2C*-7??^ z>LTSEe@NKu+`b=J7=ll%-~$zmFUqh-Pc{FnnQy6!!=aT|>$$F^#A<>8 zaf9_9%vX1NEk4%ya2LL+KMw56Zk#QQ6!jPffVpU3)kRW_%1Wl$FJ+Pyz>g!2a8_!d}FB==1?OZ+y+xk+*>}%-Q7$%+8|(303-20zCGQSYCS}F*1^;?}pD5*8snR~O zOj8+^gvH@Xn4?c0UMz{bHtfF~Adtk&b@N3ka{AJNu$ulSe%S;a8pgfLpT{lL#3Pb& zNqL-L*I!C+bAF|{8Jm+=uC?&ZTwQ<4PnwK^a>`=Ky&sqQ{IVK(An^05vBq*Mf=So_ zlQiB$fAHjw@g49vR?xlB_oV`)$wZY4%oeDE?a+5a*ohG6j`?Yq0A#Om;Hx)-helZc z*_W+cDs`5_6&xQz_Ss9nU-&nAJLgmgsFpq}H!Jv}=f6BgVON3n_{eQTLl>49p(iRy zt@W7drCw=9hk_$^6D6n;S|!Z@B+^;DD0k+AtTeuDnkAF*hSrsf#4%@2ld@XT(2Y2? z|20VAna(@tKQH=(K1r!0(BKybrD1s)R@~J^2*L|aiFLJ~ez*q;@VUi>L(lUj_xP2@UuMOKR;}Uo*5edU^09_@6W@>3d-4VTKRq}>d!Bo zWFh3?RB7!cyS%BA&4;d-;+T_bzPh1E&7V0s3=Q{x;unw6r9;;Mok!nZYj8Ab^^kk>SMkBSK0;W)iUg2-TR}Og7UEP3^F|i( zj)QTSjDuhjASUNo`Mu~DtiZ~*H5j$Gr7rF{uH}4xiyKfkL)2!N41+2gH{3T+Z(5h& zTF9!&n;H#s^+1~BWTwB;jbSWO3{r4XA#{yk6QzsCBa68tSp=()dGyEd;~Ut6bSwRC z8|Ch<4p|hukEK#)rMf{?;<<_F zawnXzxjad^Xqmv2$9O#V3?94r=G^=EAbefi+-KN>y6oyw*t=1_ zcF;&$2=$rMzCkvKZL#%`3c$K}?1~|-qwUCiv7VaVU26~z2}|1cj&MxE-pzG3va2Mp zVbN1F#XHgTfe7|xJj}^B#zeGvFkfK>7P}9 z<+>~5T)B)DJ$T8%iWj?2Trh2c32uGg`u+55B~VtqPNBd>l6tenEZCmlTW!L6AuN7S zym`$nkV>IO%46Wl5SpO|#2Rg8MXo+S?t$tVi0TFVVmuhYn<$NEA|3K%OJ~hG*X8BS zx8U*!KJi+w}VN{{J{MK>Y9{;>Y*${62V3D89c$)Wazt zhwg-Qy8hP@p zA7$SG-&S?~&wWpO@4aP7-dmRUUa}=y%a&K{I6GtmnUGBuA)5dpWDy8q1Ok-3687Gu zKwD-@ODXh6p)Iu0<$vyzvt@S6!y3+Bu- z$GV%zi%c}0h@=W(-^Ji6&u1bjsAB`NoND%t=jlMVgCHs|fsQ$7g@K_m**lSjOMmS{ zsrRM?n^D|VX3UhqMcP|5Oay@!Da6nQtdq#oSz|9&OcCj3e zK%0@T;TRg4jaXb{Y^>E+8XBA7uGFB_Afg?;;(_&jFxD^B`_{JtCrJn|}$je~u43olLY2jDIGjd7T0c3;x&+UP8 zC0#zkPGHPC8LgO>9~ZuthDFA|M>+vO1wAit50N!Ia`YH(zPG=>D8|p}@pDY#+E$14 zwLhU#utWLqgJEDU0IX$I%4!{m&#{&Y)Ldxod>qvG6ho52&udd>-nLp|;%&S$H#@6g z?P}d({Fz85KAWK?LM9`qxWzo+C9p1)Lndd5u}K-cMg>q@ORYuL0sHNy;Qut zWawLN#Xyr*;u6SEEq)qaDLQ&=n#@Su@I3C%(pXare6Xi&DT$>G6rxr|w%8QTq_ zEP2Mws}f6V8(A4ejK@-5BkLS+lS7rohqVGy!7CIKBn=*jVH<$ONOi&U7KRMpBx z{AdUGjv4^xK(UVRsn!(diR;8UMUSHPjtAPQFWc{^Dy^Ckpzcb%MX~ZEE=h?b>o~p} zN$}?a{G~MmcJRn^<)9WgBiGQVDb}`9rA%;NlnbL;Ft#=?AG-}TRhm3)O+84*9)hap zPjF8SZYUDxRXtjyI>uf<=J9Uy2y#9U>ll-aG+di*z1Y-U4Akud@w@Yiljhatxpr0#`M zlLtKL1r~F=-f8H-`#aykhdW+>JfS2yu&~j(V)2L-?zy-Ik^h)4! zTXvt-tf{PmqqBguy+RY=ykrNO-2Svi6`>)Kd(Y%Cr2Zgf`$Rr7Gpofo(Q#BRt?rP{ zw#PXDkY_UE!OisafkapQ8{oZWf*@imbv!XeLTyhhT}D)F5x>PTJhQ$bTfR$TA0*A$4wIdVl!R}OkWul6d+uTZ{eks)QDsUD_heaN6LUS^@k$OE;%{Br&w){s9jd8fgGC&0jfqLmI*k z89PVN=>|iQr<FiQRTT6`|a%Dxa&!@k(TsxBbhU^n z5yml-I^9G|&wYbtG20PfLjs;Y$W?jlJm?dcoig?pUG^DXB4%F_f7fsA&ta?8ysYli zkl(JWR)yYywSwUiGzVYbk5=E2zI8@6q#{7TcZE|;g(a$WOkbY&O2xN0@m+L!mw z_o{jL8Gk;q6+pFfQAMsoo-b3$3h?#+Jb8L&?MQ2(OqM4WIZNBNREk|5d6Ob53)s!iJ^jvTlx}r5aKf5GzI3bxPb;v0G+xIbdtlv2}fY_mM7#;d;QClgOr%l2kyG^Y}Agn7Llk%nyx z80y!*p@CgE0Z_Tk;H#P{rvuZ|$&=D$ZmG*YTA?HR%79|ZV~L%7j>Xo5mP<5xyt$1b zY=#-$&&BxpFTQ@Ft+2PVS|x;WG-ZBSjSb$R>&N@(>zH^wK9fVpWdzzGOWQ_L)Voxa zNk@(gRzH(y0N_kKY4&yMhcLGc$}AZ3%)-CP2&x?XFxQF9{f2UFqts$bJUAKg(H3Sw zw=%Qf4AYlDyU;b!Z$gD+>C1|`x{as>FDAQ1Ld8la$IG?-wMOog7VuSy+uEo%4aRz% zMc3>zdqO6o%3F5mCpZr*7zf$o>N@JNWIJLLUI*|0>4ojoOZdz0-g~bFANoJ3BWhBb zd%Q|_$ShZT%itauA!t7d_dozXhYZmq@4&d9838}Dg3+r?-Gf?+I1+BMY9!tU2zua5 zCT-s$H75BWH-dZ(|4y#yB0q!Nr1Sx%-^RomG@0U$cZsOVZsTAJ5R0$}*kME(YzxM?f6#F7jzb3jB2gV8-(dXlmeP|4@~=+3Yp7 z7B@-E+*Yo!*#%3}vvvN&iOCcMg~utZkXOCUFc9dVC~&ArZ0EWA2UT@J{6oo#HOq>) zGAUhq&9!w%-TV|Q!_{rztGN1hBW|qlR2=c4H!J`2=7EFM;cRoMDoa`2tJhViESjpG zLQR3vt14ao6ShLWGCxP=GX$ttQ)C4q`$QOjJ@A4is`B_4b0%tDYhnNDF4&TCJegHZ zOftP>qBNN!k$00Ku#v3~=}+=X2w!>ZHxaK!C{rpe)Cqa83A&V!zrb*~@z`7Hj&BEV@zDqnr9ZQUu zZ@iH@bO;?eGD_cgZU!~bB=LAiOmR7dh7%{QY6d+mibwNd{|F2~3d|zJrfCtMqZ05` zT#n>JQ2NGtwnkW4p+?z;3Td{i z0)p^ry@k(XcC?GphC6cS&dTIUrL?QB-;GN1^DB-zYbvX2s;H+L@a-oG=FiUJNF^+H z|4`P6#zuTdrlMIiOD6CbxKftUD-_AtEEbP1a1_ukg|a}Vg^e$>>+o)6)~pPzYtFs+ z!_U5ae)Q_8R@j+r2(8$bttf(BTqR_D5HRU+o%Zp4R35mB1k51ICWzwpoQoD;w3^wv z3+GP2F_OxVPm%zT8whX23GU39PW_VJ2^tuwi%T+q2{krZ7?d;s!pBbU;7wOBOhN#Q zt;X_3*rbMBDABT7XwByx zQnRE{Y(|oHeMgzVCN63|Cl%#*HXM#Y^EQ0#a{FiY`P+g*Bd=@cVi#WW&O7hmk6~1J z&mzCv$_;WXs0OX-_@eD_2gd>>3ri~)7|qIdID+juhqkSY`lfEE?33!+>KB?QX?@Au z!}w$BA5xfBQ5stE6^=%o+|d58sC;pu$jHf>rlw78^E)*n7hh37SecRA2HK}CiM+a} z49{(9y0oF86n{#sSLkZADot(TpI_X5dS^wvE)Vw02xO&^RiF`Q5y2j7E2Qb~m4mOh4WZJZ(>UPH1r2z$Pen+VTs{iu@~8IN#a6zht7pgTlFODYDg>PbUe?Hr z(QGI|G+>i&Ku}0S5jKDp3Ckx8*v>4*<1k4Oc{=UbjrTD(9(3Eu(=mZzJT-!^(#k61 zYzq=Y#vPZh*h@;fe+&*jh2F#kBon@LYKYRbw1aFyU8UmFCY6%|3?}W1Q)Gp;nH*Sr zmf_7zeA6b(&wayGMO8x3J*q$2p3kOLJ7F_5hIkr#^DLmJbkF+3s8LT50X7 zY_6Jt7U_Jwe!)gusc;9|pw1+~04rO5a^ z1L_bR1qU=A>lwBb(Wxak89+J>@YLgFEs3LJ)jLH1l4x=Z+*4W|IE>Vsw_v*VxTWHy$rw*3FIDG#0JBHBmaQNKS z^ksTp+hB=E3Zw6oA{RC#@C7}iUVLqN94TT)H~r=&9}vF_cb?%W>|O0>rKhmX) z=MYWMF`YE;v6|w@{#UM{L*<7+yCYBE-Cg>7x(re z6lwpY-)j9tTBE7FGf+3MGiNYCxNp)iE1?u;17rSz;5^5__Q^=um^wN z(jNrh){f@kJ@iq0O;sEjV)t)+>u{OWEhxC^QMuCI*=APdENzlBuFc~rz?5&o7PA9R zA2zZf2?QTPGkO7n51kr(C+qWkNk`(b&?S|0nGalulMKFlNUldtkDQjaMDC%-z4Lcy z8NTYz=7D9~gQ9}!no=oOBBb)~96GXTc1Aw+TB5j*D952qqoZha^qcA8qDVccjtHtc zJjm1I>l!TuHwW|{*iye@1brJ{*@v#h`#9L*KyyXWQ`eP%90oUk>p>_jR1i;IVgAD7 z09OICQ5~k&$&Dk9j>%;pharp<_?tS(qZF4F69zwd8asKKH1`^$3YhAdY%PHQ40nj3 zo6)p-U?5RJIE`i)KP^HRJ^5sFf4{7+uU}m^v?eC4j}G)SDY#M*?Z+=ozh1dS@WQ%~(K=gNTDx#ig3%MFbU#(Gmz3-fg6ziP7l zqb02?MV^k-kN?|Cp7fLqED}W9@NzQ(Wl#L8Up2+!vUoiHi?6nq1+SJYmovh0%HIsS z=WPg(jm?3zGw@$JymLpp4G~>%>Ky8K|NE;&pQ^U}=hq>gPRsSb@RhEpe$U=*<&_oN zuiXb`uKw{DP*c-s(|9URQm3(Zn|}JV$&ox%tfspU-hU4y&{{?(vXU8ZOd?RT2syri zI9~>-A5ZwSsq(BgsTRe2S3CCm(pEC@P{$o3$-UE#ajcrB4mFwjFD~aAB;M(fN>ksQ z5)dCOnKxu_?#f-$Ah1e3p|&|)8Pk_k!q;WjBp}*xRh+f$QwR&(GLD&#z;L#4a~iYY^CN0=g%&bVkSkVr+`W zIOXzJD}d~vX^-b!Z!PULiLF9eZrR25oX%>EGy@dt8)w^UMq73AEU}^{itdUojjbj& zd5DYK{??sxJN66-*x`%~oX%s1oA_!at9s`?I9emblJPcaI)@-`v=$gT%zQ1$6qs#K z#QF%C4}Sf#jt9ca1phi7T+mzS3#?s_IFJOxrxz4Aeig$dXd_;2Cspp>AAYzT&Zf6F zZs?x3H6r&9k94cJQX$=lznpsGiheUYjHFIGM{f`S5%%^l$_gNT5a|+^QZ{7(42~!ki>m5J*2QGw=HtiD z&boGfry)j(tU&g*zzmmw61|4sN1O2FbVjI{bNNlhJPlM^+qW2a@kO;_2{Wy($OqC9 zti&jq5vqzVjIE1OefT&JUdB)E5%$g0s{Fz@zLotq>`FsC@{d!ODA1xP1NiAPZOh(9L9ZOj@HSF~4*1D|fDKYiJScIZXje zc+btfkp2sFv++= zn?=BLT3|SMNTxS}Me7;%2%#<|TQ5oa5=jz>{3J9x8zvxD$(Zu9hD&bmL=OngFlo1N z-k?PZBQkPGd($Ajj|vVLV-3PAS!KZc9R3dH5V2MVDV+X(`gHZcfTF)YqVJx!B`oh4 z9_dn(q^Sx2b?OZ(`^>yvO6qbD$vvw@i0(!m_yH+w*`9)0@tX+Noz`foOg+l13?W@3 z2_9>a+IZEwrNOM;S$!)a)G$8A#`T|fj}*!fC9pfB+Pam~HnOJPwyO+USe$~jH*|+F zj>HfL+1P5|+A@PP)M4mw+49F@!L;BvP=$d z!egh)r}HDoc{V-4`K1!dG}UJOJJc!!!I2kHH01LPWJ1T2qq^?G=lw|&N^>XuL2&KkaLXBk(e zZ@UZu(k=`=gOZu!;_midp;Jfe0pyoU$5oluD=`Jf*Q0!$FZ=a+aNO? z&A_QnZfgdj8OeWs&PLBWWFLv^NgGYU<7CMp!%1V@0s&~D>`i6}9{8CA-+=^i9J|qw zO_`0zi(l4|iu8p&d#b`=V<^<1tR7g`D{G36474k`G9fE~@1MDUPOFv*A&J=pqCX(; zAwZk*G+t?*v{Z2AmArOYO$jhddBwip3HLT~p4MN?FC*Z;p5sMba8&G2(Q7#9#SZ8%HW* z*FWi|giqmrw*%4Av+cnJk9TUY14KaQTkL!u8%CSqHStInihz$VPs*Z61yK#YItpe# z0=|0j1r8i;z|Z*vCc}mUWpeHDGoidkQ{9!_x|0TcY32y zNi^E3>$-SrR9qQ|cGt?GVg^(GZ0f;fag(qciS1y@AZcynQB{%1L+A$lKnPtH0m#Ld zMZ*|>HdpfYks~u_nkp)GG?@zdt^9m6FQm>@HHeHl>erzq;VVK^4?fJt?H`9ni@?l4*fJQl2r0K^gHeNnNz0*KOaqkG6< za}GD^a|i4?ZB-4lk(2-fI|-is|_w?znPQpK10)gY5oeepQuBemr-QAAf0113? zS)hmjG0xz?t=2$IrDa$D z<4nB(E`H@*@2}EFXT_F9sTO>kh3miSo>l_ozJR2p5EVDFf+vn7Bj2ul|In7LynIov zId{qBS3urR&iU2UIVT4&{JF~|Dh}A>Lon*5lT-5%j0Eh z1v%Ez`uao$bj%;s6K2Xg$BvbS!)kDYnsJ(8MmU$l|AobC9{nb$808u?w6AOmbd z%ePy&=r6Qt1l&z_K5TQ8ad^@ig-+fUp!F3O$5;kYV5nGiKYB8TKM&I~UvW8hRH)0f zwfYL`1&OoWz)`RbH7BZLdZC%CsLJo*34jq#3D{Z*8)k~_JP8LDqVsrqGcr81)>l;i zmM9}&V9Qv>hGR7mozTLQRs8F*V0e1Z$|%(e#UAqIkP^mJaQ}k)9Y`7zF;QM$X=i= z6M(^zQ3-uVa`5+z@x@yM!h-7B5`Y8+bp9Pf2iMJT z{%3Ub1@w=^DbS_ymrNHGMeBGl#a_|wK}CI@j$v{^U>BG~U%zbVA6RCi9=rYaL42%5 z7`^S9Vwj}k=54%=5k|TlcsEY)^JE4;DSt-_nu{8M_d@&%NJ&EsOomCClprLPgTL;i zNi`BS>1?*jQJy6<>3DfHZZ-E|VB|N~f_SzlyUeD*R~`F?*vE$6-YbK_!on+dv`9yv z>w4m@yJ+pozr1-{IS3t#n;!b;+!ikDF?<%|slbQk)!h2ZpPCLH4CAK_xEj)!{Zf%L zTOGF6>d~$UfFNW+>z&N)CQON>>sMr!U+ zs9|VXU(}EyA3z%8@qs^r-XB4y8T~V&rSF-Lxx%+eiTV?THTWY?q(fdiuDF0G^hM$^ zLRduBk&!|mR&V^!I{%tsaaC7$qk=DIHT?dPlPj|Y{ptnX9FQOhOx;T_I=2TI30#J5 zfveAw%jJ1y1E4Rg21#2Gn(V~x4xZ$zf;~&?=C8q zB1yhn-`X-Fn7$<&h-e)966&Vzs+JZ#ueDtw;e(6DxrXKD5n+<>UB;|y;#N!R`3)w$<0R4cu8Zuvk;={wA4GOF^#iRjW zP;M09ojdCivw3{j|Oh|7`%>c`XtWHA5LOmTQuBZ2s|ic!J6BCgGM6c}}K9K@e-=b_kfnuuFgG;@&)E z%7cArsyB{vLm0Q2kHJ6ngp z)^$!>*(!61Mh{-%LDH#Gr&Bsb=Cmhn+5Isp!LP24#nyIq7UnO#vQaejaL1Vg2dFP# zaQD^khe4E^6Zs2ryxf0JG)imtes;7_U@~xWc0IqAjvUxL+a}3VmfrgQ6{xUs-Lky= z73)}&yt2UJR78xW8nip!Ua8cYbNRLUntI?`(Y;n zM#o!fZn!A`Q{x@iZ)=g&j5I;5%Wa!pr&LW5+G=M7;BE>1BjpAzHt+u<;qY z7p&UWEF5_2fzg4NPCdEa#W$M8`Fo#SglfO`F1=#ql45~D z$IG2Lf5Du*FD5;-(BguJ_Aw7lc7;C$+D5&Tyh$d54fex=>5HNldcCPK6rAe#alkP_ z1vHM+C$X&*PLF;DRb=!=k4$>eg_mCi7x8K4S-1B)h8Neuc1M16=K^!zoKk^N$MeF3 z-7tYv3;Q*0ex9#DsMQH*S)qbsC@bQ*3JP4@vKl>7^gwVoxPBukB~wVr1@s%!S|g;2 zQcid!j3@aH&Bxc|qBDc|?{TCV7jV1-R&%qZRwX0gIL(q0aP*?>w1|D#jnm7`ctO&t z&UUKX+XL7C8CBzFAj`?zw=b87H_ifF>LKc@|0>>SGpLKC0+E2r#m7a?ELGSFXa69G zE}y#LhA@6c4vw-c>3(j7rakF5i(%4`fKcPi+BnqY$;>Bp7~_+_6GR%oxF)%y3wr)j z6oR2lYaQsKh#SS(#Siu)j;0`7FUV9>2eK8cpsr_qKkT964sYo?S-+xfZEA-R0 zgkfbIKX7?mnTXuo=Hy9gRqSsC>f%C`S5;CPnDf?4 zj~uCyxdgs_r=EBgKRxU2b+B6AEXv;V>7Gw?8gjY`jNxGOOWlA;@-r66YaVI=1^$;#W2^ zalR;j#nwjAl*a?l?b&mJ(k1>p4IRggtUhsJ20Ve#k$rSXXm6Ms;%fAw;Iv93FQROo z*+6{O+;xuBHA-i60t<l^^bg&~N|o3@}w=klM=tPN+_?n?ek4@uKBv&|rLg<(E7R@k#KI zwPTy?31oBrm9ZDC+ubUh@lrS1iT>7ypXh1nQ)lpVz4<~|y+KP0l^lIp5jP`0-^uk> z>rh*5-lC=Dw1V$lIPGk&(k1NYyAr=^YwI}iPlDlI)zy`C>#bg)BNGzZY9004rxq_Z z;ZmzY+gLADvx0q2Z3Q%a{3dUqO6rlSi_6hY15n&;rfz>$6j4YodT_l1cVhTYo%3 z-^yGQqP>tzgGmdJGyp+;ft2`U=8?RA@N2*mrhQw*#Pr?y+Y7)MQxiD}b zg9w1oFk12DmuTRTN9_L$4Fnd4SfH9G5F3^90t13wmo9-o%;Ac7TpIT*eG-ZAck_e6 zOIusrH7DcZ@bShw)~@{^pl)aux@3hFW*&7#3|IG1AD{aK1Y6zIV=^V@*oRjKr79WC zg7wg_{+lZlwru+K4NFd(2#|cyi^6!fSyH4A8jIBE$_Q1A@16a|a|05Sux|5?9Zhg1 z<{uvh>lja~k~wc3bn3`T=nLKpl4wmTryQQ~y~DIOT~2|VB?((FVnJ3uoTv5(1EjFf z!s|SC?VnK{KD#~^+enJRRG4~t|9+?mn(*Vu1=`DO0bgX(sH*J}k*!25kgz#i8sU#( zN^e~TtV`q<21{dr|MN4wWjR8d~uG4doh*Zg4dwOxLSSf=#K>@4o5u491n|E^MI(5y`IUYW2ekk7eHdX^iT3%8J z3%qLEEZT}v*gyM1@Gw(EoEXcrRX?erQ?6v3f;pyV0uG2w)Bju{jb0!VO$!hRle;?HT25KleDBiv8s<2$(FtQ zt7cFs;Z+@f`VCA$OQna-o#-qDLc0f?WtA4~Cl`h2M?5tF;Y}I^Now0j#&#iRNsNNI z0f2cWuZ(Y8;495-0+S$0@JDuiOn~x@vDl_SAhTfQmPXOYlYxgI51Wn_Ph$z#;phYp4C(;2t`T3B06F!v;n8%l_? zL^FGl^W3j9vd9doqC^1@jtU(#x_UxZt1Z%t9#{9A*jo;acVX*GOPkmU4vC-e?Bm-N zq#!Sm)FLckS_)B^J-XoYlRz;+YlOk9Nwi4eC0-It$oJFEG`+wKJnM}|z9M&EYbdl0 z($c)kHZ%wa9&A5*=+L(W-$tv%k{Xdk>KE#`ANTY;6XEIdT_D#8yBSp6LNpy8LVZ%H z&$9gJ2*~)v_b=3A+x%;Xq)x$}=gKFWyp$xWjLE|h9f9;-?7hUJ$e5jfGwwo0{O^j* z+c%UERk)I6t5=okA`x1(>7|`O0~I;e-nTG&_{cIlYyhwR`WOQjy$#3Zgs3`Br%9G% zjv1o|)cT7$}GdTe-Sh1x^H08-oQfaNq z&YrhynU|9A$}U|p1J6YQ5sNQj(_#VDi^M8{+Nl0uK+b3`13>E&2)LUAx*R(%43hu& zjUH`#KIr=jvZ~8U&>MKbQF?yv4J+y*#xhckP~{=1TFRB@$YE8I8rSnJ79q>3mqi!A zq|efYc}O6WBYt9=GgByJgYFD4NCp2kKlM(8A%KxQ}>faQ#MRW?;KB|Kl2ySz2veb;3a88np%4vTAu= zF8u`yb&;2KyKtBKp!LKYAv8s zFub2%)Qh@%Kah@|t|l#E-%)%3KPpj>t^&o@h`kv?4cplywFo&ZzEF@^gsKCZ77y5A zU$?PicrhHL9gvmep2LZGdmc2!>cP?g)II+oCuZ*C0JUQlHlDwyyNKzLnRExetgOGI zqx;}rQ9VAhB^G`>F@$X*DPQ=I0yr+=ky$Zl|$Hm!)s}(BlXNEcuqMnBSB$7`E{t zjAt$Yc-{$Y`8Vl$IHRO?vEf&4aCI+Qhs2KSQPXm2J`JCci(gaLv`NqG``{J-KVw zNlKOYE1!}j{%;XU!^FsjpB46rEs}nz6*=P+;z(5zd5%>#RDzU}j253nuI9;<+*@Ng zH_oMDU)PkYsN1qaO&XrwC^Utp7PT<0e;h1yE5c?5ESwrbry?tYf9-m_Xtv8UyWYre z87h;=L}1M{*-irRFIzk~LS3%j_1 zlfQgZqhR>a&PT4h4pn^jUHp?z_Mi{2yQq&x#E~F3@MH+CiObAfXSRzkm-7&0#B6PT z7RTatTQ~)!n#>+UM}IL3wo}&6Lv;}fNMd@qqy%)Tcsdue-Go9xwX{}};Z}&;Qi)m1 zrQSJuv>Tsw<6?- ziwXovc5SOkU0O&R^?`lsil7xGtiA_7qvdr@EfI>z>KIC%4LA>r&B=wA#tOK`Rmd@WIDWL^$&w&T;5DbTj8td0!Dp|?Sg;2eISukT>d+MR9Gj2FAmT|J7T zLJn*c%FGl;tIYL^T6rCG6~Bi@-LDb>pqH=Ex3yAF{|Q_( zfOxb@m~RoN*tTl1M8RQ$YZkil@FwB3tvP%hX{#_Pz{`;MP0p^;{X)W8xL^uEXfx@- z2Z(FTogodB!w3FKw2n9R_A+JQnjNj;Y0q{)d&@0o+wkzi=pCF}NqG}5|8scwPNKW# zA%efuTZa!rcf^JpP=IttY#wDV0p|Bb7Xmpsqi_EJy#{aockdN_OgOm<)|(_5;6zhB z_k5s!Cj2c(*ccyTfm}TmPbVqMr<&{|j~Fdv^5noGH0-pPxVX z&Bz;f+>sHXwPCyw_JbMlXLJ?IFy)5Jhpe(3kv_U`bKo*f^STAud=O$NJ6>73a8}I7 zH=D(_;l)eKejuTm_|2y>aJ5oka>!!_=nHQnAflD&VT_aGN#TV$zu@w1Ez;qqgAX4*{3d!@ifb~^w=yi+Hi(2edrqlIB!iWZ9x2a| zmr>GP1uHZ!DR+dl6`Jnd-DL+Ko6EP!XFj-pa&9aYyK*&QdxHV(4x^UlXzPZd=rE;U z^v0tHm((g@6Qqe-(P(H}cj}GL3Q813%1TWso}Urlv&aKlgtqA$z`$%j9tVaK=>m~O z7g>NM^Z@LZr06XKe(yyM@WejY9!CNn7!kwVrI@+^Dk>1LPI~sVouz+I%FxDy;iwB@ z*GJH|A}pEN$I5N)_9&&a#3keEvmLbyddpC5tZ>gAaSn7u;>S1P<&*)28VdWl5|&2C zBC~bkTsaNeWNfWo&2eYSZi6&9KT^*Eb+|yM39sAv0m$UNyCM=<6$oVIE?Emqse9UQ zIe3tIqA*zUZtrzV>O4gvCA+Lj6Wn@Vm$hMLhe2S1HH5W2_`^`vH%h)ZJ4+yE0WPY@ zaev!4sEX%m&w62Z%NyJPg3S zoeir0Oiv^UEG1n&dLJl%~z{e6=fq) zjlEJUafr3Gcw@j)p)8PUOmdj)G8(vij~)Ey5~b0M7Ts_|5Wj4}S!f7vm5@@;PpaeX zWLILj`M);v#X)mgjCtkFIvi_f)$f~K07O=TB~oF1h&Ge*68!wp^dB@2w% z#qe&iyxh`7u#s({&!Whem`WwuLG^+w&4R+tihqSiQ6P#u25Wn>!DeXfOsumgwKAH+ z656dI#G0B%gl99eQnb!>woBPR$omX!#_DE`e=5CWH0p|f< z(?`>z$bW$km%j4JdN*0>y1h4C$Fym;K=nd41|iA4rJ{ii_o6^t1VFm<$vc`H*hG zem}5%PG*)QC}&}6-nIr+K8jYi1tS3$A6W08QrLD+OW_iGytJ=O{xux}gA+0cBPnRB z8HBN&;UY2}J6|eW9p`_M)&v~Tc*ImDvr;&>3)Oe%X3CoQj?DrQHUcRka zG;%ihDq$R1y00Z93=aam15=5d$s>?&zHrk zYBc7fVtfNAHm<;TOzO{1fCtb0Mk$h)`C!>pQ-?{FpY>0>rlLac(p6Te^{#l-Zn8)F zZCZe`ZBBC_jBdYOBbMak3gxV-dY!T`_s$tn{I3U?(@rzxQs@>#PY^SUUY}!_a!Ft% zIp<2)#(roGP9+In!&sFB>kh%m5oHJ<%uk?)ksO{Og{3Yx;U$w)kQA{=a1_x0asA41 zng<(R%-9V_ELa`#0I0(EAp6Kj5n7Aa|JFKp?~te}5Nwd~WOU=Zi*8w(eT;kq{hA1I zV=F*_el+`)Zt6%pp1^&u`>Z}67~JMkzKk`bS=323TluF_Yg$V;ZfgLDwPx*N{7y_& zRY&IGd|nyy)zs8K=J=0lS8Z-V0j!!sk{p?~xq&+2&uv$*U`w-Kq8H5i96g73TYAnIyx3oNIFgM zzfy3KE#M-F+~NfwaabySB~Ri=LZ)v{&P5nn0<>~>L}385D}uxWpg}+>Ltrp)1%)nZU!q8=GZ_JgA+z(x!3#`o)Muxd@I)(& zs4ZUL5&|>)KRL(AmPtf5lAN&#-I&8i{zm$ZJ0p=@3^izLi*WdC;ORq$ z-X=(Cp*M3dYV;YxgY#k1cV|4G*dk*7Z(6@pt!XTvWISsrU%+`W7CWm^RNG?%*}$!K z1)EgorPE}KPuR@3K1vYoDpwVks_WEcW$oRG-=G(}r-#rziO=mWAuyK7fDA~&{3mfI zy^x*n>TJ?W9DGextr4t@kYS!lwY165uO0GgvK%+b|L7)5s~h0S$vq`!L2fY=tds6% znb(uDCb+0cUN4Z;F6b98LQmp`=|uI^Ks6+u%!lTu3dQU|C1VZkIjm9cz zv$R~-r)XH*4?AN7@%h!bW9Nt9`d(Yx-Mz-|cjqo%T_=g3Za)Dnzakhk>UzEFqrjc` zR@kir8wknNC6{+~rm53VUFFp$Bsn_7q18or46oKTCHgY91J)sVjARN(gNI&$4xpM27QA&$E3x+^wi0?M9u~2 zLx&C==tIl#HZGYW%s?*=;V=6h?uF$hHQAJeZ_4LOW=o}B<*1);5m!g0sHZbCmf_Qu z6zx*B&Ti&wRNR(Xjq1eKU*Zx`uZOX(CEA5H;1O7JaT|REUuJU(;OK~?iWmW|v;3BP zvY36>Ky|gVO;@BS^0svEo^RwEOyZ1nC#ED6zf3CX9%e- zNlHklV8Vr*flo-ScA+|qS~~>)%qHtA;d3?mJ$8PMRQRv>d&-sgE&k69e?^V>31G}_ z3I_8ERuYEZnZUD0kHQSe7x-i7b-v%;4*IYGyqDs~5rW zOufQn?;>$Vj;7mIZ-9EGD(Wnr(PI*2%N;Y9Rv>RYezdnYfR|jRt6w$40n@rXW6xYb zBOXh9ONp7fo4m&JJt~Ps6-iCj3wcxUnPa^u@Rk!Y&s2YxNPrVf*6a3tL^iCX%HO<8 z*40Y~e${@<(WB_ic>Hk!-F1)=p-qEaO_q}oS8W~zJCCd%L>J?0y=X`LvnX|5Y_YrH zP6Lz&v4xLM{yB`F?WV){=IR~$wwA-v16JwkjqA&yocnut9yZ~#|MxAtY%5F=-#P(t zNtSX1DkcphqBQx_mp!4FBQHD6&LDzp%&gA%Q>PP5@{Kf4X!pveVBP08t2;WbXl>1^ zyJt|?b9>7Jt5Rb5A~t1r7fG5=J6B?cFpO+p3MKN+_YtNF{C2wf`!X2 z^*#rZ_4Rr`?6~Xiq24%m4rIw1z!O@*6F$Jad>_i0Z^QfvmlcVqhRIcCc*HNosSu2RJ*J=`n1^o1sl zLdLFrc!wVqcXh#Pj81%2$jD!@KO~omp)Co%lcLyMQR`KU(S`#DLil+bE};1)n=Gs^ zRH5}@urV_n>KU-H$-5oWga3q1mQ<2}=TGa2rvnVJFA|MO;7Qka>7{rObY_R;Br&G?v?{(-KEPZG|tR_Qp*mUSmr02V~t80B*TTcGU zEltAVCp#X8s%^X0(cYlf7(lX3;hy49IexO-;Q^5&WR#l1fys3mLw2vw5wbg|kOJWJ z5?ulAlMHb`#C!Br z5wS)lq~-ZiwpgxNsmTwu~p=9#fW-8A!j? z(*X(@+WbsGnD5R_tla)PlEiHd1h#Z`7UeI$vPnGjXvbp*52D$9aw~rd*Fsq$Got8; z`=(8MA3tkz6Yx}#4>^hCb%Q6;VFqY`>%LfNwRN>AuQ1Iv+IxF38UKFs@1C&LZc5tv{yJY3MH9j3a1|aE2|2MpAb}KAg z5UMJBFaJ%YA}>$Tpe!h)?w@pfMOo^I24vxOlU&FQtbsEO@I=aflF<E{=Nf=5 zl146!#n~;qN1_Tdr;lyIw&YO8hOVv+?d=7*m#k|L^xxn1D3Dct0Q53OZN!K2p!|oB zN*BZa>a*n=uUcOUhQw+-a#J(9QDG07)TVIoh8uup;eez9dVykr(GGnbXio2pFrn~X z0Lt5-_mFHHH^IY_*48wT%)I!bg|NS46?u5ZYBU$~tn$c29^C&lUIJy1~A3*GXX7At>tSniQG!cv+So765|8`s%gZLKSlHb_fq z@hz7;in#cPrGEcq&COZ0ck~G&w=~{8ZyxQY9fkAf7qzY^DQJ_+2+fBPVMKg>t|9M| z22X!~x7ipy_Yw7R?_F`^*zDW9XLo}nLr}4P&ZoSkom9HuGL}uhactg z3fsz?hq-2P@BRh)4=i)8j!Lck4NsMYV=@D)pQXdvtKTP9c)8!dx}_yMYu@r|N%Z#S zQ~UQ*--kglsAA*hD@s5IfK`9+XzQuqvq5z8#~|DQbC2KRj=0j!;?%`XmcsM&El6k!;~1@AFPt^CsTh* zNRk1ctI+${^LSt18I zTU&>pr?Sp{_(W%Wka^ZS0Mhtr%amlU#V}LXNkEMYl`M?Kz*CVYqf@@@C$bViN@lP$ zATWVYwiiApKYZ>b>+6O6_xYc^>Z(0ded5eLe*ZqdKi=2(F8T)^j-sMn2BwOxrFZ`ee;V*!3)No@tC%k5IC`xFv z0+!22aWDhtX(m1qIUu7zX?0H@Y05w(1Y?4&72y8~0d~)2Pmsa?#hsl?o0{C7S(jAE z!^fLWtyzP9+tINL9mdnRkjZb-5uNvsj~=bkc1~Mb4~t()U}rC%vajsgytv2wcLGu- z68FyCI7=$Ym(3d{y5rT+BHm@RRKgKCL_9}^$mEsh7HAbZ1@-G=$Ab776I4dPJEFzz zTur;Z(TJ{(P`-1YQQ7s$0SSQPYK`n)2Fll`8ee~@~1AnBt420HK*7AG?iihr1?D$#-S~NhCSTNseD{S-mod?(3ETOSqVpa5Xs&j)03#RveC^uIsDumSbNK zhW!S=e`8BaZr;+34T6D3+8{kZ*R{0Jd~AzJOm$T{DcKXWvrVR#(6T%UEs)6nJ!3}a zzgxROsUPgqV&!vbX$DA`aQRoVM7%nIj6+>JDaU~Mfh6;KXH;MW4cZ)! ze@dAWf8de5ug^ny+?ywGN?<|OK3#jnBXtSgp;mo;SAXbV2P1&g`6gdn;K`>b)H|cI za3P)5iT8A6Ykl*FEV4|YJ~-sbj(6xpnQ}}2oDyn2{t^(Z+ad9|yq$@5r|6SRw3|p= z&47k7xwQm_{4X5vIJDPlNkqGOBgUB&dv)TBt#~W?sOz1R6)W=2#10F zTbQ%p@>+4vovn{veKp!$QE^Fm`9eQmDsdYqAy2Ad^KdlE)8=Ln8kxhR=J36c%NX@qpY0Jnn3X)F2^$8=Uc=;3;#NI-q_ zVciYK4>drpM%V7#e|6P|-**jtAH==L;ipdPO)Unqp`DbH;OgF_OU6vb3|K`aLz5W> zChL3<6}k)-U97)o6G_sN4vpM0;@DDZTFIP%BnYHS0v8Q@+4#|E2;k2YO3d#YyR#F` zDs`VP2!1c^@4p?bz*}?4u4)cxtfHM7&=0z#l4lZFYs=&<5((^3(F9c4(sz0#8ckh3 zCE=P&c|5MS))0ti3+&>oo=#(%wSRW0AVX3zqj#G*I+8DS3iGGNth-8G-R=4^U0Vn* z-|->2y;nsd+X8`-yvsH=NCqDAKfZ4tlx-dK#{qj)F?9Xr8x!a`)Ost zbf?bNm!;Tiw)6P30vLlZI>kMpgJM?;7O$vk#g7<#b9zjmO``Sp7w5$NT5+b_9G_i+ z-U5ZVY(ph1NqY%oq0lFGDg=!;Yyr zr3*DE+LHAxW6Th?#@`;{ynEBU?VC3K8s*}5HpOBvA()@PVoS4-3|j8qeVS+~yxH5k z)-Teq0xTtt31IH9m9JFb8!2lqzABo74&aBv=+dZ2q4c=`JBc{z(2p0HiI_G?rP*BS zb(N`EuhX}ZrVO+KUxHR((h;Ol^xUzQe>W7bgfTHbgGrjGV=KfMEFDfHJx~V)?U*A> z#~WXX8nl?8@X~C3Qyf4AKbad@t9^uND)vd*-dF66y5P$f^ml z-7&VR0(Og4uAXvpp8^BL1eL{Q{dRo(#X-y3b^x|YTNl+^M>Y@1>-q*;uwC2n>583; za^9Yh8AVefJ*~cBe7uYMJ5h6g|EwxE!ktw^&TsbH^ZOcgScFlPHixnsi(%=6M%U1n zzp=Kq`hlGPsP9wutnwfWfpwI?q7mq4gjKpo10vCOHeo6=M1k~}d%D-iPfnaRu8W;9A2^WZ z3pcgDfi+Fy86V$5mTfd&ft>uRc!B#EjONZ z79BH&1{?-MMWxVgYqNN)ohL|d=DvBc9h8Wvd;HtSd$|q&A-cpR1Js)48vTlQWi&`@4ahX|l zqfDs{?rypin&B4W3slpiI>r=^2Ru{8#$~jTA3wwB8?_Q+Z+#hn^F$2%d;DF;apdWj z{1rI}oD?+1Sv=OXVZFEwyNk`6fw=QZ(RnEptajwA9t!} zwh2h_;OoUet!0;n%k&+=$uO&B10P6q!sh;bgAHC1Xv20@ZLBY+zW0F(aHg#bz^DP?Ie! zTbrAkxckea@QYiCs}BU~AjBC8aw)gW?oEHlh>6SS=m5+|x65Q}HQOxhPnx>?joBTJ zZd13vA*T~kwDf5I(X194V6M6o3ga_Fh8a+1Y8^!#WD%);!!nfnQTgwzONdzn#>e;@ z&jg(-GrNq$my#g0Wit63&?(|Kq$x4dwWjGSdf}>v5z@c5yZfZ}c6;^B!{Ye$4YzLE zbUD?Ld}I}L;_t$@4PSf##M%9yv&uq!?}}QnU0yN2Lw&I8z@e4Y(l_>Z+e`eT2}`*t zKH~4|dySa5FTPVM3QUumx}jv;v|&hdo9nE33YTQjHt&(WV1**6?>4}yiLD7r)lw6w zj_iw4dalL z(ML`d->=L*u_=Xy}9CVeWdgQTOH> z^JRsyu%=BG3=8!JamdS@U9R(c#FY}KPu@l(UO$j6OMEWjxe29C*HA>s#V!QrBx_E4 z7Ne0g#yGTWLyfF|PxGF$&LaDIAqE;u?0om#cZ~_|FJWVqp~O^6+R3U1E{xy=W8s;5 zp7)!p$_@E2mP9(%JaJX6NTm{%U33q__3)|>^?SsvP_G@)^FczSE-Tc40B@{@uI#N4 z5n?Gc6BFX*AtY{T;5n8T0}bU#Sv!D&5)>Pd6(CwLBs>TYqe1^{^jt>%=yl=mvn)+2 z;YkNG8Ox&mF~A<2c{*&&1VZF!7PwU1zr6f=@=fw?SgPAY0(0l)FaNMA z91;QjSWdR=Lx5~N@W73jBb}F!t2Ko#fl6$2Lzq3UR#|A4IOU~>iVPuHi8OfJpfJ0l z-l0-LJ%<&UL(bBP&b;?~f|rb9i+p%nO^v0Ttz*l$YUheeCKXk&c#|3ceocqg>^U(c znqcdPN*LHP)w!6MOG_g+`8e$bmDK*GrY(hQR)!@8z0f~8?r*zsZEm30y#?6R7y;{& zLpmf%DBTT4v0fDNIAB=8t1BTV4ewf0Ul>v7MAh}?*tQ3nR7)HgAU7Wd9%g$hv{#=aQ(*n+-v=T`7)c{xfMdtx(_{=BD1x3FREf7(sVAS&RPyqR+I59IUYlRPz| zYtEbkgtWfpTyoKvys|r12f9r+zOm}Yb;0xDYVB`hTh-Z;cB%W5T&0Q5r}ftri;OH( z8C06)IMc|G(|aw0z}O1ZCtYe%%U%0czj0#QFs;&vH}2jMyluV0AwGF;0eAg`enmH9 zwn;mtK5c8$wyQjBgVIAvs;lewWdj1XK9@(pD#NU?xrtiV^gX%3WUSQL^wp2b9GxcC z(v>UC9drm40!NH!?&SVS*gG}x?F9_X*#|cmy7R;nXH7VzW{cRfy=&|=i#(um?^?kb zrQ@gh5i09g1nl*%lKYL0a=pP&2iL{^!*ei(_fzFTM5iG83{pv>tN8^E8axeDYreb< zP6REbcD8GusTpRHm(0=f#{&nNIvBu;qaB1uVD}}TAVL;8AY0qp3$U8V0`~0T-Mb&Z z@4nN%`sx;{Ir+q`UvdX<_sLq8E!B3-i%1;G;^79>?YOoOwzbvGZPs&tDzeu@jk2yY zrgI4U1a=aSn5#{N#;VEzQ?a35X)|9|W^J(Ks{KCdce{53pO-sTQBxwNY1{>rraSs5 zP4^v9E;mZ9UA(ySJ8A>18{4(cr}Rmki?_6g;ujw8f%0SUjNgnuT*rnrt=a-EV6t~x zZGe|NP-ZSt=WD8x7kfjaPKU9&h6+^}!)yVJJoBFZetI_@pLRhho)b)eLy<&PBWJVz|#oi;t`Ss#y2 z*Mm5+3lmF^Sk)W1S@fmlN$%Hd;#H?P9Wv|bQf049x?GzsRHiz~M_c&m@ExMhOg%e= zQ2^60yA+m5`jwTtR8cVl2Ds9KON}$dyy0(NN(@+gikP_jm8xwToI;Re!^s z3FsG8oqXaFZVJPtF9!#y-rjpUaBHW~P9_I+A?zC)-fFT$NAsi}Wq7FT4pZkq5bBV@ zfiBB8_)-1NN?W{viq_Ug=o60eK zrLyq&fZD&VL|J^iPi1NAq~b$E+zT}q@4mPOh=S?J*6n9j{+Y+ddSO4#Fn5lYEwT1k zfszrRv05H{bZ}O))e1hdok!Ko17P49Kt$l=&DmMovo6iLd}eu11xOp;_&^j;AYexM zIV~t-@FVk3tp!*TUUue$g{v{XRq z3naHixyPSgFCV_Qecz>*KHf={0{Hg3ydiAY*7D@Le!4 za&>&^zRx~u8j+nW~N1#=3~v*JU+ni%S+C(R7pA z-0EISv7YR}oB}cL&rM_A5lI$;et8w7$(TzZq5WA|=Vo1;br}{ZQmoym|7gOY&N=HG z;Nr}LJDDq!xk7v`BgJkBjv1PS^sydwjI;08b1NSpSwCc% z(EE~NTyFXl>}!NOMzf49U##eAR)j6m9Jw{;j)=}FtPwiCs56JfjpERpn6b58p2IdZ zYTca_EtCi(LZOtVfH46UV0eJ>nG$QnX21hUln&rg;vVf*yMRl~$vq3Hypa2Tc{IAR zr6s%S`aV_c%En6p@Q}4-OFINQ*Con(@8ce`@!K79A+b{&R@R*qVhoIbrOTQ#?zX!p zs1{SssN3ouU&P(G-4Bmea?3;#V9}=p3W>7LFVPCkr6JgX&WOY^smn)e z&4zNlQ(x6`^UX2t0J4{jap&k%#g;y6v4LFD2e;D!Wk{qI##Xc$7R-bopJ?iqMC4!tLx`2??jERZUE#wcyf1{+#$(7?@q=$Id9Yr zwVIqotCsptlp33239r&6wKvw4YXSE2JY`6y^{Js+HqX>)E&zZwINSIW?NIkQHM04v zQ%gj!fxhwT8`^-?#+`7e9la3ry5Tfmnq_OT5#$8;9ge0n&#JFrC6TYMpl{>NCA?21 zcTi7E3)z@{pB?~(W6Q*^8Rv%C{lx@9)22 zV1Rq3#SmcHnVha3g;|&o8vkTJa{=p;tk~}Pv{#?2ZGZ*N{Ud6xvP+`VTr+NNK4Xd4 z&CXv}sp0ZhKZ-m*8)LE4p-x|W`-r6P#-_VAZ>G+RuIYH9>$P^O{qxU1zu)HUw7RU( z*R+;8qtV#NUE48N3&1Grsgu+d4sW~JqAe);liu5A(rNMwPk$h9Y9#Jd`sL=v&hBjT z-VtXpQx@Yp8;E<4&*G)aEb>IGBd$}y9Ze`^zT=oNbE%aJC~m&Em3j@tf0X=Y2XyJG zVFrW?<9U}*o^kHNq31`HR%S|M>IZ7O3&}HF&4WWj?^CK#?%Kgz{E&Nk$J@wy2SVBe zLdsnYJ^G=0+HSq*BJx?l8|yHHjIBM}>zzG)*_4tMxjWjZZ+7+!{6S-?hD{^2+~u8} z4KETlxq|fl@X)^Ht<-~Qfu!SJ=*-7#5k17cWU^Ep3TdhVBHH9MmlmpFAWN)p`}jlv z7ta*`C=r;M6u`k`+`s(uL2WwsV$z`)-$4gMf!>8TAnE)V#5Uc#Ja5;>=stn!;|zFs zoRv`y-`jCJJp9B1+&9Q*s9Aj1x8IWaDKxLqoO}OV4;A)cd3bBi*-| zyGFwhu;z_Ltv?F-A&JsOUBH(N5C362-umv!@$r^FUWeQvM*v%9|l3Az&i)rra54lgsBJQdkEiL!A9#}%=Ki)+`Wrkc?L>5fG za_%7<$2#Sx(LCzox%{uzzbZ`Ct9)YE8tfXg_w=x8(YA-z)ho417@NSo3PdE4)U3Y$ zjHkM~s-H@7*D0MswWLL+6>l-RVgTZfQ>k902gW*nJhP{QQ1lK!CeNf-Gkx-z6-dbO z&AU0&DKv>FzKog7yyp`v=#3#`ND96DbHb#AgM*brL$?kNa@SGi$(M4FdNdcu8uuW` z9Y$@r7fF4r;jZVFieSgt(x-0%s=Z3}gWYvDZ?m%)MtalzIbxvu~xq~^Y){l|>wbm08&rk|J<&!yZ2 zuJ1_A2ek39_f+#K)p`PXU{H=S$<#&Aec<0g4lr1lu0o~yhG_@F!;Ijo{4*aP84DgI zyjiY;f|T-OK)s$z4J7Y;<*To#FTbRa0n6~k7j*?wb#)6H^({exO2gz-j@QXe!Umz9 z`!bQZ4{?EaSKF)ET4fb^I;Mb?=YGgm&AAMl%wP2oc2`ydwh(-M)s6k~*wqa;Y}!P3 zzw*j!7bUngl?9QaN^*P^nAG)vgg-#;Rdt?U$msM;XhVrXSER9MN|nhssrzGXIo38y z$l8&eyw>KBhy_X?VAzz@yGOVUw!i{yN1#Vez!EoQ9 zBCeAmBif#IN!FEFcV<1B^+HxwE6}At9IT{`nZFz*v)S$I@ zP4VGcra_fSkC^nKW!%^F$0Z`n#L@(jSl1-*{g9+V^am|u!QrE=?ne6dwlB6qAS5L@J>3dbV&SY9G` zzIfbuP0n0cchiRvFD%c-i;Dj3%-L=s@dck7T5> z@tN)$cABxzj8_)YuT*0OLUtp14~*#3(MU!`elF!gOMw=`2o?f87jG@li%mNwTrgKw zLT;y&$^Z5CF*=_Mmu$jxt>BX)|D-Qqu8!<2utbVgMXJKcBST8FXk2LEET=w0RNOxR z9()2^;p&?P6+PEA{O0Vl39LxqHe@45;gh|+w;@ir44v4HfB*a6+;h0S_qrxvwxN>U z-Q2r1fEBD_)U2Rl^R_c1ua#Si)g{oF@Z`$fZnjXF?WIoA=qt2FePrN>`>ZOp0=Ehn~Lekw@T~JNaz@GZ=Gh*JRi;hqJKsu`X+C)&*Ht zWL=$gebyaW`?8)$$3I|0`FIB2!+n}bh*0|ctwLF%6-IeteZw%5A6LLPq`CtT3e0c_ z3c+f?r{N^QU6nyVD$E>VDuPE>M#CU_<|pul>&(weB?t)P=0B7A6RtTTMX;B2(W1Nm z``_a`J6FR5NX;!n(!}+Rcbt6k%{5}TLF|$nEXEK1JlWB)h3Emj`nx*FmnD>#7BD~q z3)KoxXCf4c)G9Tj7b(opQ086}8P)?uV0py6mV714dA_lJTY`P8`r zl~z1@T&3>GMmkU>G)cpDBANbiwtxPRi=$Nki>z!!5!sAu8u{k+Jygbm=SgL_l>tfcIS7Im6L{~WFcCo3K zXj1>a$O8XkQ=Pk05KqMNzNJ%H&eWW<-Rv^Gin; zL49%~DA4&?7eQW*N_11!t*JYU&KNIMs$L1e$7yasym#;djWw}MfrZcJGkOM>J7eDw z0{k;y1R*wngP@IzS_$ft$;=V>z$2B?TFlJSV6qCAQSH0??tAZ*z3>8&t5l`g>o2`! zSY(v-U3Km<$Lp~z`}SQ}tq6y~*!gqh)rCNklFzccOIeq~FVU#_edbbGKweDFs#fIY zG5AHYiac7W%u}$}l&V}xpIED!^6P>gNf0o`+;!ng9$O3@s%86km)@KQu%sf9Bl*{w znyv*meeuOaL&MpTYx`KJ#_Zg%fshXJe7U#$uT|U}fvtUcv{=ao6|zwMNaW_~>XI8M z_rd0Er&mZVO!3+itLl|`^W8T4c!fSN>{J^otKZJe9hGQo6b4CQVIo-<4 zv!S_evtvBZl+$O^=*uJT`R%O@#zISTJNI3AqD-#HRjV53HBuKDbtO8hu8cdL+eSTx zT=USW35(exOWazjhqVEaWah#W+WXSo6f0k`#vqNi(pagVu1v#W7!2hl;EBQg3j{ob zE4w_?ibDIFn#Lhg@+#D8UxRA zev!Pb48pU!`kMQ=k>b>fjC<+dq&1s`7|74lJk&tSlY*$GwKr9302+U=Rv3uSE+68< z&7{J-8RSi2A?PBQDfko8ATU;`00jag*c%6158*FqN~S%3`qLl(IJiiat?ZELw-MX( zgWQl>r*9~v)DmYo1O!E~oJGf%i{SCgmrs03=D;xImweICg-atDpeKdk1{gVnO(XrkLX5aaIKvN|hFOAgpn`yhr{R7B><{FI&Vjn* zLPzY`6GFEgD(CqndbsVei2b4 z6^@$Fwvu@RE(vf(T3UPiqZbd}ha_}{mMtrDR6)68YHelda^#@XWUoA}207@u3y%jF z406zoj{3TI4myBR(zK~Kz)z^$Nk4YPS>T3`7JfPhw>a~4$e%xp6oRWH-7o-M1bjp~ zc*)e9AxPz8p(CfEa2SebUn)y4cE(Wjl6T-&;}TVlvP))Ii^6}uU#Znq1Spln5@y(@ zp5W>2LY+?1wDyY*o!2IgiEJKn<&Y&}YGK`u-wh5PfYl~<^^>y(SOh=9x7mxts*i5F zZTWI%ZEf-$JTI!ZwY8PJEYEH;!JQxIU8b^-NvGM7}$pZ|Lt zyKJTQ&g0lgTGhs#-}ZS~+49oTN&wd%Om4ig=P>u~dmjLHF9QDq_w(5V!pl4`?>zmZ z@yBI0TBIyU8dD7a3&2R(Ne>^sO--M2_$>0oqD9<&v|PzRv0ol6F47+785j-gEV>GK z_($vo4(f>sZfcUelH5eLOS5y7!l0Y&TC}0cKCtJ~Dq5z|FrBV30RwAqJ#gzE2bg&Z zV-QNQ&NO24s05PK)RH@zhu@STyp1nZ!2QLWT)`_94|0Z&X8*rZi3zQFRIiiJGM7^> zkXws_t8>dtu#WP7INQGfS6}m+2S$Vgw_VeaLxB%enG}rGVVBI+lvLTZP*#RByTMsN zS0;^KO>oH^DUiYTuB?a0D}gnv(c}hb&>1X>A=YM={!{97%LO5~s&nC*N^S3rmsL|R z{mDd4gJL*tFHcOKB5+Xgxf_<3aS6ukX92%=>}SDvE^W-A2@T(dlm%(w@Tma`r!0?L z#VvYoZ0wKa=U*EauKH+D&p((MAVF@YY=JJ);MAGn!FsvZfno6PLo!cC9q_8itDBt6 zBIHvd+CiCEEtUuftO9{%qc0E)Q}2(qCD)TIvEHf}(1%q2kh(nlvvw_9TdC{2>9QJ1 z2JwHlc~DHaKX=^y=tBt!;C?!8x%2vZFe}Nu2AQD-U~|Hj9(S+?#1RJNJD9FprNoh9 z7x;^YBvu ze09T~usytC^niOx)qQ(_jPkftK$oiM!ah%kWZ=Ief*DN(05|xsu1>&1IKU6_HA;9A z8ddt3YQR7Do8)?KE;(Tm+r%n`3UO>Bn#1QG^VA`J1o4^S%mc#RQW6k?Ng=WT zGuEW0q}s{qRr$cC@U1CKJ|;o#U7}&xW=BUXyDvKmz^$ii%8#4ptOF94IaBIDD4<@X z4Tl5!aNstFGA92_eK_0=&z~jMn&o{uKl^vsvn!{=E`0tB_9z&fZ@B7A=9$cV@t zUa%jV6?(E$`VGr%;) zH}8+G_Mm-0^_ziEV=ML;yv`8)WONWEcWfO*F_UkA+OWbuDAHy-7^_Wcb+H1nY!Egu z1K33=w)n)1@I9UvHQULkVGvjeJ0%Qx0VX@w%j6d60&l&Qyn&p-o$k;x6t<2XG$> zwMZHxVn{>sEr;4z5Bos{9sOQ__E6!zC&yZn8#qR5lK1O!KnY=~q9E6!>Vjc(RqxHa zYKfFh9Rl2FFD&uoA?nGJ!ZPNmG~()SR@` zBQe|L!4uAHY0-4-+)*b7p_gqslY5q1V^hJFRk>c!+2=Mzipi3MqrOtts;_M!ooR6z z<$c;5&}o}fniA)_2ro`blGbU^RrKen`iBatmHFu%3ei-Kh?U8i)I^v9W1^hW4Qb3+ zpjvdLnj zx$;4E^+dhIY+zdE)#;L#lY6+tCqqMDR$P2jLb&FCM!XcHGOR@@ws~Cg34M8u1Csm# z7?OL_mPb7@^jF2u_2&Y?j82q)+9jQ^x^fW^X1RtYb8jlD+|(I?k;%!^{rbu3vQ`-VQA>(;?s9@2w*LX zhLXxftWhB{+sxtx>f(r9gV9BRaNn52w{~~a%8~M9NhmCrF+>~DL1{*!plnl~)Nn}vaPsY_ z1}V5TLbC9;7LF3T-kHPy6*765d^p0rG3etr7{L~!E9MA>1<5^R9k=88fq^%`>$D5z z9gKl2Fq#BeKu9>j=BH(m&3$JMQyY@C)T-q9%(ySPI?u)9%BLnbz^fQ8h9 zJU7U%dTzYEc+`0Od}Noh`w$E&`2pcNL76etTmlo3OLlTAUl<#Eolg*!zuA9;dXG;Z zX)WRY$C3vw02nU%VMJvy8BrGJi0yVDG2JyGb=56_{KF*goQhbOKJ%KnGK+y(vfhza zc*qMEEjfmNU|rE9=D?Slv57oOJOfw z^~aZ_CG|8^5NK%Ld9(5W!c`6G-vP6?$Tf-2p9zTJ`JuQ3#nYKVe1$Q6=5R5#st7tCHV)u*1YTsNxpxY5Er{P6Ol+;{FXrWIYh+6iXpgE?zq6 z)(zxexe&anw0>oOWuJ3kPNB@L3XjDW_WPEf+9Y+UYEPWMdZhL18^lg_(d}n~@^xTV z%IHjxmGW6x%HDJ?S{q55TUg_O0wEt1&hN7T2e!;LcTJ?rwDQ3^iP^;D%wP9Mm%pvb zzUI{IK*3iA2PigM~hO*h$wie)@Lmt zIqff|4pdfZ4{cZlF`S;OKh_>v5AeT>h^pwQMYM@4O2wv`MYI?p-AUj6qhb?UhH1Gv^Znf7@xj?(V>6yX7my0(;k_+2t^)QtIS6nGF*&$X? zflpECRe2CA{LK<3PeD~~Z!Xz80;}L0{KkOogG8uMDHIO9rrJ#@q|OqBj1@`bQo(=5 z7+-&k@vzOUU{goH+x!4p4K~#Wd70fMqjNn_XoXq}1`)8kS0#!X2gDq#^;yF$fkB3c z=+y%QHpz;!J6Tow*n2lj53NzCY$io2g!0_`AnUpF$*@+_ zlnChE#c*^5)aOvJ%K!+ItXjqx|yAXn+5Psv8EG?p<|c zU9-7B)-KK4G)6=^k6Er1h|M-e=J9FsYI8IUz<^;+>&3yr*NQh^(kWW}@{!T&jC<$H zF4R>c8xsZGW=85#$F*)H-R!Wn!2+(%_B*(b4xLPqj(UkfEldnMsex-hA+`z#X4jD{ zMmJsbI%YU0gAT~8P;bFrNNPK6hU*BKp>QiLZ^(c=7PJGSaqQcX5)n`m&f5GYnDHm* zuraBnQ^5_^uzu7GVBmAGT8p9n&|)YE$vV_6$s&5&;gd>GNgf;@C-qa5+!`ozs?`Ez zNX=Lae1+ZRIY!B+1MUT94#;xU@lBIS7cv_WGBWZydTWJAF7buf2}3#DWCN58FXDDO z!?g{!JvC>1->uEGI#-)tpe?fZoYnnt=T7dwM0n13ukG${?`N${bjZ_k%I&Xy_Iu;{ zH|}m=a}*UfJloW5QedxijArNW{Rd;DJMVm6c)QrmoXnAllKNd?Oh?W z-^j@0xBwXAZO9cNkAfDA*NyotJ+&t-COK zJSz9NVfCp}QqoYZg@t6z2AM`DZMEyQc}g+ts1}jB5%l<=lBpDuuft-OCKHK6EAZO}SSiS<+44>tfl7Ys8J0nF%&iUBE3T>59-5p? zR+6>c1yA?)zmyT>5ms~NQoA^;{?$j-CLnQyCa;XuemX=b>7D=Tmf9WS+IO0Ku_iqX z$jB`5$^54#%T8Dw7MqPC|M;BXD7To-O(m-{vizCrjpfwWru&O5SjE&@fl5fmM^dVZ zR~prmZ{wt4NN`7|14z93zfO4MYfMDX8XLQZ9N_9BxM%SDk)mtnVrW>qyuZ~xzPwbd zRtO_&7I=~mp|oBZ7E#PMHVm3z z7qr5)cw3xzxHJ3SGbwQc&j&EcZ>sopYJ;&ge&w{fW%3mm_eZQH-1H1iHUm{EFV983 zODK5!wg~nP)AOH+nRug>F8<8iG%E*CX27e{MlcN} zJVuWj4`emfmV9*bo_oai+;duA-#v*$Y2(9lL_>GAl7$HokchD`rYoRDII}6wW@!N} zV5L$!@QX^-F1cKiY(?^O__l}Z?w^qM-_|OnVAT;MEJBS=O%F?4K?8I*!$k0fF_+FB z*cROpC7&I>o*qul*EnRr0H6z~sBOuM$mh!M%V*=QyL@v+HrEVIG zB~SiAnP=)T7is@2wmYPPJde6-(Yi`SV$be6sMx8P9s@KsabNOYm{-YQh}Haf=F!0+ zXd(VaQ+Nyn4Bqn$K=YTaBEvJjf;1nY#K~{FaheC;3IQ7MNIyAwK&DlfdV%K4;9=zZ zM}=|W+DcoKu13?Clwo=AmBGQca5Fj7Z+i?FtT?UFXrGR&yS^rc(_bxjTqUCyDrOI%xGBY+3MmYK|0T~5loY}e*>;gG#|3M;tWKri z>H=NBDJ~H^a~$m=jmHXvMnO$=_02lZTwslf{gL^tf||9035TUixt1+Kuarfz&m3>2ZsLce}FtqBg%HK0vm= z2Cu9wlsUw~#m6lUeb|=(eU=%8hVejA#pnTf{D9eRqzWJUF7xi`Bplmqwag(h<}0E`?p(yUND36j|#dV6`H3 zAI+J=eMqnaW!EUm>do`LvA9odP!~|^k}rhI$%WnT#Hi1Ju&%JBx#jzFv%5PREigf< zEvc-uY`@Oi+Ei(fnoNu;SX62$D(_+CK9y-ndwH4C=VNQwKrqRj4b2I!3^)R%72N?_ z-e8v%sKQmEYI7R{gW35|TYHrL=`Crg^#;>A&1)sd6t6kboZ%aO4u2oJX@>+ zRB_Jv@pqw%kL;^96fUjQZR{Uwu=k55i=hY;aL&pUh_xgMnQCUiJqt+G-UF4fMn zHnzCbz?({~BOsQt3+VF?ucy^D71ejwlvh{R04DS_KtyesS3NhX=T85N#0BfA^lDjE zPtcMF>mVRYVVN3NyR0S#&zu@psey7V1C2``w188VuMIS53@Tyi0TtAROwM*R*bHnU zk9b2+D@wu-?;&YPqc<}=nVD6tGpjB^*`OE(wSF9Nc#S;G)x9!4{v-_vhQh35EH0O9 zQU@s;kMX*SJKtFtp#%fmZ+dZ`_rK!t9q8sedx$EWC-JbpY*|aaOba_kp~Xo|-Exan zQ7t#>V=CRnA}v$i!bM*#_i7W=4(2o~PwVXWaPDm&8#Mu~kSZufAG?6F%^E6|AvsIovN+3XCQpaDEej z%?mWy4w2rX7v}ic=gLEK0)A6X6*nmK?-SBZ{RKuC=~6JPbyR0}=zzipa>eI|hhIX! zBwX-pT+4S<`M#osS%7skC=usjU-4T@__pqDVos3FvDn4YXeW1(gWI8(u>}P(jj+1e zsw)hUk_K0Up-h!m$SsXJ0UPTjF$P?(<6@;+LkH6B$F$S>mvmP9k%hV% z-+p9bsrF-Ps-z@s4k(W-PPBVx7c;cAUlSTC^bB5!h=2gu$83n=+Kie(&S5+J#F0;j7f{9{go z+9YhHjcw7pz61RQG|B$K!Ixm4bE{x#fAomf1dkGf9%mi|?>|5o@Sr9<=~5eO>x4R( z;WgS4*YqF$1HJC>|2jckh3Y&W2~K5o&h6Y`GE_kAxH5K4JGEgL5n@@4)_`adXigln z7ze~9Si^liUBhM5#w4}bDMkE#3Qt^eMb-^785I4?ZXINLBz-4ebIPYse}D1?;jvyg z`a7nbUI0;**Yx)Orhf0ZxPMOzu**Q1Ln{+%4I06)%vWe;wW{#99~na=^7`xhm28o! zWkEe-m6wgwC=Qf{hP#cG`p%*6-hTTzpb1rXE^QLoWRb~6<*TK6Q@!R&Q+$%U@6e%V zS++>iyP=D*DjJq|vM<6nM&TQ~hQImKpFUvOVm)9g;I-D{6Y5>gQ^%EV$(+q@>b?Hn z7^h`|8>q{41h_u_Sx^4?o_*HTg_JYg_P-T+Ea#iFZMdB7G~=59?~S75Ab zu$9^y8xBUJlzj0u$AO`gS>~MGdmW6&v^mNh9c^Fr^iYc9_pI}<0hoZiVChfIldF6g+^XU8agx^kA*%1V+zRK zFs{I2-?2a9C%oaBVUmoODszo8-*$|21nd}fZg2070e!?`$o0zl*rtFXl>OMCF=8_T z??^)3o@>bUJvnHqwpofp@*Z70-xv;XE6CqQxc!3_NEt-qEF;I4XZ8W|Jl!RSMjyfr zjdECXXl5qVMb!?amd!N!7I3@iR()t*(AiRNc85=>^mMeE^`WUCEC(}r!|NmNjuw+X zJQ;8{)tR!x8zSz`7H$C-Am?)HNuYa4oEDF?&1ydXONSN~2JwL8`L#v#wNH(8rKiI-}+d7swgq%{N&2l7tq{3eE`r4(*Zj zKpW1oWkT~XS;$@ecwgVMg{Pd~Dx7!Vh|HQ9WeY28&?*TN&3}x!WRh?kF!6hmABS-} zsF6ItMQz#gX@gtomE^QkY8MVNuKMMDj7`x6d#YPM`|SAg&}afz zG>=m64|jnPA|j1W7FW9!f05V$iUr_bURFH*0wHbP#(pumqi28otxoR7DD@U|+20;) zlmNn^;->exf4b^QSh=6oHN^a@TQ|AXDTlRt#*M4+Yjy` z<*75w1;{v3$d3fhpfu1|gY5X+1m0&VxEa0udH>7jD|eE^Lonp976=5c!7Uy4_4eLG zF67qKqR48Ih#tzXQ``;vdV3GRZoVeb#3P*m7?cYX200+wjm(HL4ERffI*+KoHipRx zXjTK|0d>{*c;}b%xQActpsr6O2jet57USiog$}bO8;rOeAc0|&-#S?L1G+{_RBWol zjO*la;meV&q)dqwZ#VLXq@VkjpAle9uu(Wgj)5A7`5>P~V}&AJ>E|n62LX42+Zsx`-u=u)!D@|$t|1?`V7Vhw_PLmU#mNm)x4LHIqSoq5`c!Vo@MTTZ zdr(u^INJ|FQ6=nAbz@Pb_mis04k)cXbC}jiuQI63U(*lqL?Or?2N1M?O)W|{O`;GohszmhhS?t)B9|07bOcp#sylq>8ZdW_}Sf)rDn<`&tn0&DXU5Z%uT1|QDV7LRAYopTOklJ4~uO!slcd{ zw~Xfp+s-Mb6>4#vnT5GtM#3=UlD2$qWesCgG%L-rZ(s+hgti-$T?>lj<*OI?DY1eT zHR#&JjU9&0588j=KKSVO)GAoFDxqOpYjr$mZ8$ymh@U5V1b&{3HfiN8V+Eo1ZAGb{ zr&a|N&`e^W!-iu#Z>235cHFc)gI;QOrG;msT?MMcgG&8)9Z?C=)|_ug@}6+!ni=uB zfwB6PmK`Dz%*;ecBa+U{_#u9p+B!9LKY58O596w#bBPpCxleLUcfM71gMXu`W=g#1M|L*(rMMh(_!D^`c zebb>##*_ik96MuT!MofBsDv)QG%yp`)$@Z5$l1FBtQ^kKqKaZ+n}tWko!GcPu71Ebdph#A7QguT;C*?FHI! zF4x>EHs$-UIhviT6D?%255fp-^8n~9u)!$(ah=VsgRl>}!ap#YOw{7w2N_r%28P2) z5VfS{LN4xE&_l)k-qU{*_dHSxizjgrf+}?T@xDT9i6*Gb_EC$t1NE2gzMzKDsDMlL zylvIVr&{f0>O2K#u2iTD%EZ~u7rF0bYP}vpYz%^4NW<(TG(RcJS{E7cuL;+#NzwzXZ{-u_6)JC&Vds;cCsV8LJ*gG)kpK!wL-h6;~>$Z}Xp$JS85!tL>)?<3#)= zME@@e^kSKz+vqS*|448xos@&yN7}iECn{|)S}f1@ljiR`mp#vYqLC^?Aqh*DRU1_S zFLj99AK7-^mI@?{DcN}XNo7f{-Re>Yl^TPbK1Y{g7wqJ_J957+ZV0K4Q7!K>^oqH~ zO5o~oI-xiE6l*lXbOzd_--2_%Q?+HGElLHq8BXHGK(KlitZTRlIH6KosQK{02xkoG zE0u-~_#LT2;+d8(aHcsw8O^{IhL9!wv#7tsl(`jN zq~r=kG#`AorAJaYr(Xc`?9n0rT#2(RQ6)C$nX0~WmjrGF@N?f%uMNnWB>pq@?xptb z4SjGy?4BN22mqY_aq&>5J7y2Pjikh1pxEvDN?i;PuK)&dlhCOWDfy8EgcDKv{?@07;%^!40- zU+sp8Y^L$?e@%AWaNW5D3_v%_ciy_ERTE}w4H0F1l)+tjo~9M z;*e7>_6%T)Bu5*C2H$ zG%IuDGNo8VR;nEBX1%2g;sPAi%d8v76s)S!#lS9DN`v6T6+9Lc8H8rc@Go9UUMtYx zddtf(=fSFY1-xMlktr8u=IXIN0$&MghI;d(iWZzX)J~=m&=k)J%4KF(4?V?1!?O&2H?dFu8BHH<}3HrA-v1)M~R5=G&4&9?r@e2GgD9_v}#V(iKl zyXBztu{v3JH|5O+Vg8~V-?G*&n&t9YE}Qzi>vtYotJP=eY;ojtS*+Tk zl1E()#jGpWkb-Bsi zR%bR^np@woWe>aDt}!q^mEd6Z9ucF?1V)4+t&f!p>Nf8tO>i(M1>j4kDvB$$17-mELNs$=A7R4SI7UG1b-8J|YMFwkAiD z4+WDHSv4}}%r2Is>}n(A$sp{Do=LB^e$1q zz(G`Fa+^&albelqwU~mEF2+x4pyQ$9-k{I#)H+OJ*xD>LIpSQ=@etUZG4jJOw`zoh zpo=+3tu*+?y%z6OgWlWSV$s?8O}Gq{<;q-lJC23Xhf{{J4I%z z*z1-Q_4iZM#Ka@y4X%L39o`BI0_u8n_~=d|A6M9{ikRGDxGMo_+Aj&vHtv~$o!qtD zCH*f@67GL0w_kK_L~1n)TW;9XdL@@2uX8@ypO(N62H%9|h^IefGuIlu#wLjHLlD2d zOAk!9wv6f7wlZi&+!HnN{982kQJSa^WMa5?ivn3?K>A1 zwpMgG$CtyXrBPb8bckCquJqIwi}WUGUYUilcY}<2q=8eBww8_^o}#_+iT+pP-`f16 z9;bVHT?Hl4b}1A-LW$Bz5Woq>_jgj-@Z zGL|Nw#ii=qmIjm0)RO!<4iRRMp9sXcN2H`hM(|XE+MKQ|AxQz!y+aIw>$WiRpHUt9 zN4=+VAH*j77vX(E!;zA5DSSSqMtJA=J2o2tFk7OTi$^YNrbH@b8z5L$#}&aoz-t>M zwVl~=E+2L~ydVL-*GGcQtd?{V_1!V(Up0s|ELnz#9vPY7ZVEKBI;unSXb)_pkTyuP z>Lnv1C*rGI!LZC(nJ4io{rN`58`t_I15EZL(mhc-W4eH(Pn<)Y#gv@5CQt7_Zr%TK zTVp%7pHd2pL!$iEC!N_$1o0>0|5o}Z+$zsxg}P{Ij>^)~y1wV>p08Q>q}nrCqxN>S zSX8!-u17gJX-*K~y@8RD1n`wf@dO-H#Oxig+a1HnAL7)>=IkM-)iDAgAsz(|>`Q>M z5s6K*VJxW#);rho)8%n~GzoE5C&K!KG~zj*!itt`q@G|{tGz_16PH0#8$$b9?w}O014p0BVwAibb1`^LN41lmI+)_w2jl6{ z`NaKV?-V9d)Wzw8;cnQqYe=BciItvyliNg#bFKBY#$r=l^Woq3yEka_6uA+nmiq1| zk0^fN|KAaPKhEi7fH9PoddM}LP3LxluL%G!{ot&{o+(mY+!j@p)x~dfoPw1@X8>#8 zwOM;+94cRsPM;VCW~p#`=ANWjn`cfD3bHeR8UOS*_6bF~ z!A#*1;O%ref-J<4Tg;34&7q--uWVLa>7N&|(3 zx;AH5Z-~_@1)kDWsE4JG#FrFo2rOekz z1VP*MimnC4Io-P>6sr|Cm=&-nR4fy7+hK031NiEpk#7gezL#i6+6md9sb9=v(fBA2 zjUGl&vm7s7Cd8Y|7lwst`}pIM9iL9q4^v+xO@J{xe0UvV%l6D?jNu#!(CT=CS`m3Z zcmEYqlb%_A&2e5bFyM(r-3_j;HjWjCzNZK^xV*|P=I@MSp2lj^(2fc2pCd#uMC9C? z4ZE+~RVUV|g;nQXbY9Jz3tkLCQ%2$4w0Cu3xvjEPTcD5BawiUWnsp`W|BtixfRnST z`p0vh+3CIaUUznOdY{=cWqWVg*`2M~-4xOY5J-cN-snh`CZZsU2m;b9?<)uhD%krg zV0(S_rzqIx$^YEvnb{PQjrkk)lMMmPoO|yn-}61+qqQo8EFO%v@_i2A^xY@Y81#^N zSb%`{Wri6(whGV*TIL-O0}id4!oz@9!H0(1eww&QbuSBU$NC9u7yJOQ>w>!DR8qoR zE=QQvm;$nzNlH5;@um>* zRwb~GXsmo^E%BF%Fj(U10&bY7<^}yCbf10u{WBsXXW^ke9yC*Iyu=qX=36T76ZMEy z$C$aS*~o<~PiP%en$5~z_TNRmYp;i41$jV@IK1(=w9&6*9O&#ty{>!+fBxh;xfYnMdu04Y3B(&vJT;q+TSH@;R`6Sx~1l-uxy7R5D;_ z`2}Fu`XK^{q0hH!q{=YBK@;luuu4ry9L5uHXQ0ltx!f)nROt|K$h zel>IC3tGP?uzw8p-36FJF4C`_o3>Byk6Hr~si#rh7G2Lkjk?w*O;p>G|0OvBTPA+* z(wU@89!uzSim+Cz%A#;P($?`*C&+Ed0LlI~BM(PxgFjaswjESQl_=#RrKqMw59b1Z zLKQSQ7+8d{+PG!nKRqn-pbxzEF(8pR$HzcpSfdR6Zmy0ek_n}5y=K5m$b`NgsYnib zMSN}@`Sub+8rd)jEQHY+FQ0sOc8|MDpN&ce#NpHiZO|7vT54EaJL6&sc}PFLxae9q zlC(xZ!O^Q~k1i7TPfbabtZN>>JTFnn7zCkAfJPAlx^Q;WC%1oo`;Wi+v8>D^jNbCO zSAIlxp~-0^i)u3&bykyYt=!_)S)>dWEc|hSz8+XfZBf>{nyk~A4zQ8|tn?-$3vy{< zDsFdz0O6|KMSOVdA23kIs_F1l=Z;TbKZnrlE=z|l9g*~jLdmV#U_<2CYTx40jEe=I zS2w=60G~GjpI7W~%iF`V4-@RlKM=7-X)=_WL4(1V@^MAncQwkKb7pOr3zafZMnLAX z6HS+qB&ci3sFT3EsN6<>R1Q<nr*0*0aC@M0rU=PF)R#}pGD8j1 zBW5Vo4Shovu!ZsDGjNmfzH8w2fm7&!G@Jt2-PLOV*Q2Uxg=hZpCxoer#dRIdeE>3E|JJ&W6{Zzm22eN-u-crE%yu zl133rt~SIYfX!-BnrxQ*C5Yf_OXLd)TobF8#cax14t12Dto9E8eEY6`|6fTPzJYp01D{>!lm&nh8$o_e63ma18hv6|aP$q%Mv*0E2J{W?3S2i z#2Tla;fr8^PAaTpT5}h6hPB|n{PtJ65j6I8`n#g$_iMMRt;>*!hzEqB)Ti;GW9N5x z#5;$b07QS?=$ct@0<`nt;smwK`43ld>CY)$xruc6Cu%%&>ttr z5ClDKLYr+N{{jj!#uE8OIAoKw4&0y6?SjeyT!LBQcBU=Ui6X%Ptg&*!*C^nzLGuq0 zh$loWud%bJ3+Xz#;pyP%)0ZGO#<3BXNKtr53vdUh=OC>fbpjq0&IKW>V4Y`L{!~`M zSTP+!f~kESM(`Cq(p2kTh|4NB{2Z4!NHPPl9{6(-t6EWTArar65eg(MzF5E_p9Q7) zhOu^@L)O}97yL`>uMZv=i0{8P47+ZSVRUxNRXPweWB<~q%7xdW-;h(Nw}e(DRPnf~ zS(V7NmaeDdoUeUgOe(`W;$U?M%*nF_-M8(0dEtdeu8)AKZsXN=JW~0iMWw^{Md)-< zE=Qr4Tdh&UWT+YH2->^$Rr81hIGhofa>j(o<8OED{NmSzfvFX&{^V@UGc_%BLW9J-Mq;hMr+G5J4**wtx>?6KaIcdQPet2X^ zLbSIV!!nUuEVMc*vxBy*JS5ftX@tqsX*oQf9X&xxg({sEtZ9L&>>JgpObR#83Nvez zm_yBl*MhL~Kelc&p{8thR<-TK)m$CggBMT~U=(K$x_kg=nDQ}cI!|V&4r*Eqg%(9l z-c&fM_ItwzM(XF5X535>gz1s_HJ+LMF%zVzUcV-1Ys)>!;EPyd9VoFnY{CtimVy;H z>mY;hC__-U`;qlo3qw9}tkmfUZdvd0xi@aRg)-=$vhrY~v`rQYS01x!sj$X`u@gw( z2-wUgb2*ZhNeFE$zRf9Qm{k05TYtSNb;UXlC0p8Kwa9~FfrQ6l!;`g~`~sA-J(Sx9 zzB;(=J}RN5L%f|1>Zj?<610{fzFZ8nayC~R#XxVMKa$d4KuR+=bq!iK$5A)ffq=?u zaP!fB_ZJ?0dXypNWUtw|zVZk}GRWv~W>a?I_oyFT#7-?{4N0XQpQ<&oxV1~4j!OE4 z;WXi!2m*S1GkF#AO{2!2$MzoB9pS1JtmZrJY(?sJr9q5$elvJtd8He>H3`n@gbrsd z{6pnqDS=zt=hrqjY2w=E-14)uP|wl`{aTEZ=1w`WT6zPOe6{X@K0K8OL6ufj5W*N8 zRq*0!-wx|yt3K>JIWKGKDp3o5i$!>g#D=1Me%r1L*CfeYwRJi&tJO_tG#%D>M4Xu)8*lTU+YLu=LN+rj7O;0i7Kv06ch!T2*O z|Elf>b&(Pja7^E+Y6-wx+40xS?o{?@;$g|4I2Z%&?_qLRa)zsclHX+J2O9`kqgg&F7O`IFo7%~O)8;GDbv}T#t`S{k*juJ5dc*#X8QV@n(7&f zHTUkGG)V&@b^pf01C?HdUQ9?sZ~;Yfav^RX8SA&?EkhGy@7dKjEWlPE2UT+^4Kjy4 zW-LdV;61t^gnkXiL#@CTz_2jZgzf}KW8fN$=;(Fw_nm~Q<;Gkz_ z&9oDv1&|C)yGjS4XaH~2s47I(9qq(5MxQvG{akq$x&f1G>ZY{AA#Bo6_Xc7=D0a&h z7Ix#PMm;6BON@&Kg+XewMvc?K7GiHyolI%cnsk=@0N5XiQf2kG2q2H3*?2VFrc50JWkG{;V}eeQJpTJE4Z$kxr>=>Eep!Kpn&kh{;a2*@k*l z9qP`3+_Z1^%>!($k=K7>n=2HYC%=AicmhK(^Zk@{u*Xm|^^c$?)0)qJB!QP<1P^_D zEG((KgPy)96oCzu^OJDQBg@B(o0q_KzL;aic@)*Sq@vVvccuD%{znt64;~)!%q`5) z$2~efs zPOkOVo38P7*6+OW)@!Uvy$Bz@$mJH}z;Z$#%cm1WCsQ~meq|HePKsaMGf(R3)J5zPT zX+0<+hM_|@eF;`P{MuWfdcLDXZ{?}OGkkMXhz0bobXOo zX>bjFh>kRksuqYeMMEYo?Gi`R#KQD6@Z3KjKNH>xEKJVI$sH(IB0uTG zWi*S;6r2`ZoGD8w-bU=fb(AWr&NO#bjPP-B+V^#ap_=x^KvuYu(xUs1(-K&f0G7aC zYK*I7F(r`Iz<{1%kN&3uN^V}*{enpNK*spfgV zZD*xmv(4oDVaIA(pLLe0g3<^oYg7`dxpReHZCG5&UfL?({Bh%zbD_txIY&HSLC$LwwL=8jmw4f4ArPSb6n@+BRS)%4~u#SoXYis2LzDIay zc&b)D)WYrsU>L9TTAi%@xwqf-|Tiuwiq*d^x&U&XF^WqV`|`qKP7 z3=v;ZxsFRrRUV2&&<_zgYLBvE7ZIK8TCIWwRkFzp%E^#Mcc3-nNFC6%wm=frTBzK3 ze*6`^UHKY0K`4gFfAtzl91h~CVbuembFRVkT`AbT13HTh`yW8_y7mad+5W2<{{ z16+{?nB0Gp;e!Wcrlc>MptrnG6TZaN_lF)0HMhWAhV;)3&YU}qUEWJFhv%@+&nDpI z2xUT{MJa1>AR#CM3ZUP{6$h&CDF7c&*HNyVY8=|VRSkJwd9R?$kdBD^MZwgK+7QIAp~U{HgLMFH=|<+K zofAhOe92_~kS-lt|4;M}l6^0%r~NviQdIsI{ei2HHZc(BqcAlvTq;9+j=;d;aG^PZ z$d68$*2G}aQxG2)j)QPEw;`Dd2y|Kj2$;)RhE#+TY-$N`THE!2hipU1aU_kYQ%RiZ zWh!^uRXPcV#XydSVAK&xqs(TBnFhmoV#|n?yzDD`yZ65!=4-^Ev8+(3VKNEe*TT|Y zc5Db;q8|Hbl%rO%0>{2heo78_klW3Z)+L*@pwM_J2SYp+Qi#`Gf6sP0W zVQNbjwK)%dhgsgs@6cz$;$E=p?H97^y#$Z!9z{Pd$<&(OBty(|75RMb$xV-c@IlQs zk}$SSQk~9L?m5409v-b6BVMoE>!^pADi6yDs`Ps9xnA;dc)SKEt6pUk;qk&`QneX} zM=z_15k!8fTvCJLq@vcEV^K9IwZIi}0=gl$9OYI_nh@YZFlb~&Vwm54d)*M?XhL4D zQ|zo)Fz*}%aEs3q=oONH4q~7RhN*;1IPW@w{KNPbPQNPT<&W^){u{MHZ}{-)hJ{63 zVSpbTUz~T%9*INoE{3*TOL&e*Ej)>sOK8WXJh(-R+~Z7J zOUWYPArR#btTC8l#MO zxX0PmBpDW`I>_AAK}i>M@5Fu7OAUJ?@KX0(6T}`(H#|4vn1JRT^-?v>u?-I(5bzb7 zWjvSPFQ2sz47)*a10_J@gvGe#(My`l8-WXT8TwyRP5jK|o-Vt*>22($7#vUp4#; z@2g!k2b7gKH#f@c)|hE5oJU)D7Q3KMtKc;>wL2V<#R(gOBNnqeOgdRm41IJq>-Kx^ z9VWjF#&Vtf5@cPpcDxM)IpBh_d+V+-lO^WM7I*?itc$!dbL?5!V%S@}E z)J*M@_ZU(k;gGn-7+#q~jYtQB*LAgod_`A9bZ!D3V3{KkuE$I!_*x_wmCBB@3i^iV(Q)4bCJ2ad z!+dFtn{Jp>1cAsBV^9z*+k{$ZZ*@QV=-(fHcy;AT5EQu>DgXwZzW_!2={Z6Hig?UI zJ?G~+e};f-+f&++ru_!K_X7M*cS9!i2w zkv0ak>Bzbd@UrBqi9MBr+oqIlUM{RUYsft_BhOwjk9+7Hb4deNkdJJcHFWBxHlbgW zm!f0|NwGIkC)KHJ=j-$wbN~2Mx&D7*_R^%Q$yJ_SPD6XDw*XTfU8{V+nOmNB0iYc|f9(qoFVs3- za@vk7-Usx(X=SF}O?!nHLho1p_7LVFB0R6`g*79JPGfUI+AoPVJykyVg$w4Fj2=bL z&3gi{Q;5}Y*`eOCwZrR2(LliJQ6;)4Qh~As244S z7>-*Kd6?+}ePrxMYaY_Q{Ju}~k}DLg6t5lE{CHtEwbTW*5SLbNLN|0O8@<9Ffv53q zkZ^is@|dVc4*_Tpx`nsuf(_vVgNbYD0Hht6n}W*%VOcJ13~Mvd_2|-G!|+m)t;J3QbYda43)dq?&r{mM~wZ<9H9=NBBKc(bCR{VTI6wb$^gP*)9#BY%?kjJ)rw=5< zI&MCAiRr7E_>QgajBCqI@<@4iU5_@}AQEt0n*SqZsahFnhP z(}CR{b7(PWggX*;h}U%(B5^rV=81R?%tHgDZSWnwJeYeCfD)hXXjR=Lb{ZJiT?R@S z)a8JyaZy-l?HUaYf%*~~c8}Q_sSCxOno@O|#}`9vSUd0NZqFj`l+5Fic1xVr$~Vh< z^c~uCSllBDCNDcbB2cAcq0hJ4`v=<8MRmTvk3krX?FF4pSM2=eI6Crg5`9` z4?7$*#o=)@Z?kvhb!L4>H~BXj98iXIO-coW7RfjQ;&=8pkAygyNJokC#}RSl`R_w6+Xcz--|S} zv;UZqCbGap6vSZvZD3B9P!CD0CQ^M?z`78l?UAuNSEJX=mR_AhH+W;^B_j1)+w})i zuuqB=+ID3M9n*y7Z5j>W2d`gL7~@iqj9FX($d&P;y-irrJc?rol~Gh)tD`Jhhr{?`mS}_54)c%6qgV zRw+R*Lc%jgxf1dRqw<^wZ_BAqUpjS_tl3=1%Jb4p{=kLPo3#_l2Hq^!O^8(uYo?q! z$L!*7#w{n3J9b_k#=S%T(k1Id$4RjjFD%9hpcoyH4Bi@HOT=}7LvlJ5O3VBKWve2* zazFcvddrZ}Y{bJlG!lcymM|~E2!lHfG{#NCO7u7dti{H`plWewc>tXf1br#siM?_N zd=hgUU4@+%!UTj&M;;1lKJ(9VJNd}uRy>$fi$0f}Fe?+sk` zg4orilNx&mDpwNsg;j~TGObFcKY#&%?$RaXkNS_lxd1xad~{h$blZ}-%{YJQFBu{!TV$G57)%Og{Vy2Az+6Jdu#?yJ{kp&X zwzM^;3QGLJe!3zP0a%;V0N`|5MfM?JPJW zxnHEvNqFGGBrtdIW>qYf9wrRJ^PHl@@WFc3D0%8xQY9F;t=fd%#U$2X)>=Zby>h}z z#44};-W zCEwz@S(=txT3U2390gh~6kA?p5on2bH(UGq3+lWo*V~7_GL8bPz4rz;Zd~x!sr~mqY5B3Lk`wXO>A6Ljt+sfinrh=ik)Gt>W8#^zq}n^s&05_ zH(e+#C+_k`_MSMA1Ld36V~4N&A*5=*1##h>52F@X!SQ#Jvz&7L|7_=qv=}o^!6E|?Wg7=aJmB1X{Uy~&#p07!d8g>a=D=#I6lvJ zh^O|lk&1j7Ibla*^pS6Ety3s@n_m5>hy1tqx~JEPOx%sn-5Tn|8w^cje7#^oXwsv< zRDQLod`Q@(PliN&!a(96##JJRN1yhJP8#24LsY^=JO3t zE`Y*D&7;E9ETty~$morjtc<=i*!A?6%fMI49liF_%8zGun0s&+eMlI9##jK{-?)Ei z-7IjGfx9%hb_v`cu=J%Oz)^ul^3nuH?Q>uql6nvS^^>qI4m9eBwZkZrQ`$5faf6U8 zRcgrR$Rb*pK&k*ty=i0GmO|wQkIpQ^q)Z?$Qv6($n0)>5j2*!7*rjy+d|cp4Qm zbK-`~Tld^EKzmC1rUIpka5JoFt9qADnIc>IxSA9;mt$$0_VPr*u}(R zuoX-igLy)j(2d?$&}Vc*61#=Gz2BG-jtCO>%_`#y12ERf>l|+okzbkIUDp8&E-D7! zjSExU!@wv8fOBw(9218rWYibZWFqT6QG&gam7fxy9{oV;pSEhTo~YY0Y;G`*9wFb0 zE>8Cucm^F;+0s4exeOd=u7pHkRT@JWfW6-WfG9v1P?_2&B0oSF7!Vx-K=hecUL}7C zu8}4!cUG%V72xbROBsXVOUg`ie8nXemZA%869kG82%!p@%6c2@%v7_z zKFO1_EN!$@1f~W*+tZ*RyE;uxQ9yB}i zx6srWo%U@>4gbGEXo+0My8aSdW zVdaHoyq;s?DI48_Kg91C5VhTyMU`%aUC-)g>TEyg=bC_1506}J*KHbuT~6&03}Ay= zH1vlSQQJ5Y*FgJhlN28|xaE^GUf10$IY*;QAl(xb-$S7;Q;b>eQKXy}}p#ScpQKm@92<^M&ua!v~h~a_i9jKWgIqX7o z0b2PIOPp8|0@Ze?TtyWXv)J7aWwU8;jf`q`4dJe*P!Ph(SxrWr}l|DHOVNZ zPsI0~8EOcCuV&8-H4LjyU=u_|&S!hb3?U(VOm-fx4jT=&4iFDl_{434KWy*sdY?Ri zoF!xosbR}wQjthi9;$^FA^25HWrNlw4lU(qGZ>6^4p=S=?;OB#3ynYr%>W^9EgiSr zV2QJgMNK_oQVRZ2yN$FXsLj07Y8vqLt2N!Z?tC*rn;U+U8j*zdQvxcU zYHE&_c?)OSof(0D%MPx4MSG((4q$z#hkP1!-g3*q$w_&^I=?jm)6Vft)At!CFNuLZ za(v^I`5Pqyv6WI0FdOnNB;eYz0)ZH23t0S2{Lsy}76}2nc>U3<$nTA_w2{>Xwo#Ps z_R3+L>ogY)D#9EEcZe@1+b?)R#BH6=bP9_=lzH-Hy??Bz1m$FDvfbv$M@7PViJ~yv zNd6uaZdXf%e1r&zM@$e5Cbz4fV7CaQ(1#U5iNp~|$brn_aEnUf6-Yy^1L&bsXG@Q_ z#N4AM%gD)9E1V~9sS$Z>7d!gt`?|roo}(T9i6% zYWj8gwEgE?8;V;ayiVM}$E}f@p$3Z_8cO1sA3Pfeyhm{93EOgO1bwZ=zh+EZ&E2hGKTso9usCO@BV9q}^t22I2+apOIWp#LQ^3FK0a ztE0YXU%Ms5wF*NU=Sm&kJvVf~RcSwQWvzm%;s8K}t=xa!UJ6P_ts^6jtYh_RbfiCJ zjL-ENKt!0M&JFg5jm=4wPo2$iJ^pKsUb~>v!WI=E6iW$^qLcNn+qS`A@$}_YpgAT> z3s-sU&-g!j+b~V=@?LEgpCn$zMzfzM4bX}*onP8;!a6bs@5<}t6Jhb zKAU{Uz4o%CrRSa;`q!wTDXVMNC8L$EmG?`b>qS=``(##+F>+)ybzmnsuKxSNR>=|arFNx<2DBj3d#Zy9oW2t zwr$AMmAb4EJ??`pk;guU7h90RM?T>hY*7w!0M!?25Qo4 zwQzAN2gS;NHT%+`FmoaWaLYm9S;n!9EMnqwy`c0(KF~$V( zvSGH6pX^n+IYVqG3eIR_>VC1s`1oMp_6e3s#T~sd0ZldLuqx=~gH(Osk@D4_(geMc z!=nvrsQF|LQEQRF9IgoFlXJmobbC*anp>U#7X@@9nNI@4*gQ_x5Gwqxe_+5p+HW!s zj3B2~+oE=9a!HN5N3T|dqGU$jbCrjyf#Q1uy1a5P@s!(;2mLVUpFnHiC^Afu&p0(k zdR`5Ww4Z9DOvUo>3^3dFn~ZT#z|lhqR8IwPOoQ9BY6l$0=~o_SIj2bTHHZ-(3NE}a z3e%>_0$eUEPc;xkt}IrmazWUzWCR5Jz7buo8>fiwHq_m%i}?ftg8C@=HN3Iza$>3S z(dMaL%2rb@EiFist=C={)_&c7$<@s~je^~D^=6NH(7SDak!P2-?%hP_$vsve?9|DC z@r97+Q_AEePE1{}OiArJ=tX&eQiBEuMh9-7utQ`FZH<4MNf+hjvR7H3vBXy4A-)9fj`sVh4Z9(G%2u zMC^O0z#dOvMqDgf)v%$eE;jzBsg&SD_nvk_=Pu--CsCD9WYpS*M6s<-td zmm)ve3kb4cnC}VPGjYl7QnT9_#v}Ucup|M5or$$;T=P);!xON(xe$JBUw6y_3Ucv$1c?uXhc18?~l^;TwJV>+cxKZY^n4z_UV1AJD@< zl~7oiiF6;?y`*irY>k7XR!kv5===3-<=5oA1yvBTn{Qm!Ra?FEU>FjIQD-GR!OtpQ)q%)5q_U_$XktP2xK4P#4d>ZcDx z%^`^tChXJUMf7d*FtU}9Aqo5kb*nntoQz6+jf%895KOg`tptl4GUHNH)_}LVa0w79 zd%M`%0oq+g;wMahXvQM2a%JI|rm|?G^afy1!iq`mcq~BbwkItE(ROegYQPI#g#z`| z=AtCjT6jPDb}%rQ3X=iw{i+4PWye7$EvGpS2(XmnP%k@<+7RBks;#qU0SF)7Eu_G* z|2DLSyzkJ&1i8MYv!Dc^L~c>|HHgR4IQTLSY;93wb_~{E+XjMe+~O7NW@T%qgJTlg z+M8b1hrPjr!|`hYS^zW<#4F1{`-@v6a+yD@%O^G;!V?0JvPRNRl=m=H!z51tIx0ZLEMBFDv-AzBl#|R54g&^ zN5yhQssRLk3;~X0XY$@5VfSs##6-Gr^R^h=>Bxq;e?v3C$JQJ8ZYQtuW~VLzyj@{1 z@p$=)XD{3YXdHcYBtv=`!b%x-0`OSUMo0rCe-sC`1G=yR{k=o1le5GgF-NJ5|G)kR z?ksSXa#r@piMBt7)iB+ZP^Hr3-zgKWNdDmh`uZ$ng3aJP#h?#`SAW-9PZuW%fT|2R z>`8EujDLm`vA6dcq23u02GaM>?EIw61n%(gc;n*IG$jb4n^;a}h-{POXJjTR7Qw-gvz>xQR5m%t zpjgL~?ZnuwU0vk+slMKx(LOX!J`bPL25lhjv)&cRi|`no_qJ zM;9V2rJ5I-8|jJ%FPSxE4O8o(Y=cFNfFDO-=NQb|WLqkC+bCW;yr>$piKf7XbLjRh zTe?XS-8J;NfBy+ZbkT(&odC)huTi$y^kS&!keftJrkA^a=N&+DoXaJXj((yfDhw8b0i0DNn z3&BmQR;qX@2GHoJF7}5I%9Y&Er*gL5ysAx+>;4I{kiS4&nKWfu*!z(|wwB*{g*N%k-v8|2cX!uNx;b0|HHc_1p0HVA>xIguQf6t)M&4z6qM{mzC#qtL>Y z`opS-A{bOQE9234vq1wYWNZP4&0=tk7Cu8PUb6KPc>7FKks;+fbV z$V13pLZ(J-Qx@9nAP@B!rxxdqAew{8eN^r!^Ei{1@mPVXcJT~rKlSEM$?--ZjPy{O z=FdopaLSW_FC4$AI1Ww>L-;lH4%SmI2km9pZ{?tkSd)ABL#j}tXtl5*fXpz4C{hAs znp#2*@~02sdA<*3XTL0!q@0&tch3+@E9kj--;(in!@d(;pozilxQ6As`RN6biL>_k zJ0frCLk&>GCJy3`Cf1UgpTjV-4LX{b<_8_kZ%`5`C|s{?&Zt7_rX1PR`h`5Yx4lvU zial8*epF}9uj`A0bcj&Um>-KyYPzqfhvb@LTh|dCiVH#4T3T4sTKSek4Gm2WTL>!n zH0mq|)Y(*`P-i)a+pVR=G<5 z&&PXS=@Q7K5f>q3V|;&CRHRd}5EH`D%|)CXKon0+!m#5?&J(>Q(GGTdAwf z0je4e#k@AEE4Ei|UhaB=wgol+W>t9IS!+4nLEN>vvx_tnUecs9aX57%fbT^pE;4r% zGzx87*Xw-T6){Ga$P5ON7&4-Ge#iUCS^53E)M}~ zsd`N*G=^F>ieYKEwA8K;_C*{)4f02?pxa<@6CH(`3=$p&`oa|XiRPJ^F=G2PnVU$= zTrTO>rNY404JNjM*jxD6ICums_6BwyUs`al!D4Sx7{|eOMn|UwTIM`c_0euZ|LgY2 zx8HvZZK?c<_{`HAH}=w08L(om6|9(RtK8(#TBzP}ZHiC>YIb17$#f_2C5f(CrBJs* zKBxtI&}(e?Q0lpW2ABX>-2vMts>ye42J(!CS{%mIVsyC&BBl5R)qmjy4dD(bZFetVE7$Pk0kges-VWMOL6V3ET3Ay)el5ljXHdi40VPNmzQOsJyZWLp)HWCFVJGBEWw7;V)T zo~G8X;N7fSVaVoc*w1=aF}d<9r+Amx=u|BZMGsuw6|h`-#s>cRM9l|a$BZ*eK+*R& z+jTJ4+9M99*WlLD%1>I3z)j&- zc%}nvRLj2c&$aK-Mfn3diLJG#p((YV5LW(@z$5@9otpXyp1O(QR1S$@c;}1dJ?eHn z&f!4y5<3P^z4WbJcEIaSKayN{7QNT#8XwdLv;(VO>NE8Z+Sy7qH@1zz?CR7J-ZGrjWi` z!L9}m8lt+%baHp_Oq-pnt#>N?1Bsn(;}JFCmvh4(wOcEvtX{)e@O{RWK1yQs#5&BV z0}cL3Rn9WKF~&8EqU$FgG?t-*XW_;+OU7AO4MAK{o=#f z(ZoH^tpQL*H31c(mUyJ&$DQbFjb^Y-N~#+_>sGIF@Q%0pb4?nFU(-r^qa| znF8p5EO%AU*cDRiP5>XqdhUpL?g9_J4D#T;cn`=2VCY0y%8R>N)v=(s zAPPh|uwUsp$C&3p7oHI5*ohisl8kx%;g61TU;)HUd#09iI_@byb2rGVo|%q7>;Wp9 zt(<8mW_MHn>mz^vK~!4r5oe`d-}Bv{)Q%i$EDW zi>vN#tT~9dfLz^qCQXGRvz>Q+x!~p z?j@fg|F=%66YD{znd1A^Dg;N|G#P7J=I^XdbP5<% zi@?#}L`T3=EYw=OqNCT!i5)gHgfy@w232u%gKzM5TQ+{`@a4qw`Zp8xl^>v2d-}fk z+6*CL7jHazWra6jNCt(gL96BQ=^YPYh8rG*#n2#>6EF%p4~?m~H42%qTUHEBKVD|x z!DqdZtJA=Kw^;@#!HoeWt?O_2f8-a?edHSA)-J?ok!rI)b# z+=m=x@+r5TRw5L-z+`wVpQhwbr`m}lq%I#eFu`iuJbR=I(d$nMe|M|`!4Dd3)y7YJ&2XmTC3p5*Scd4sifAWmXG%p$?&rbrF!GdM%% zW|4eobYca%P&|IJyp!EwY>tb2#W2ksZVoJ#bOr6$0(mXPgKg}qzie+4OQGa8?c9J^ zea1qoA!BGslW*ly9X6v*9kAKzkx-y*kje~vsg!AIvNT&}*ZX-UVPI);yy)F|ya?Qq z{L$?PXT?^ls9$8zlTY>Q0^AXf?o1 zC7+6$hlZ@pw$TyPF_1Df4z#LaHyTG4&)b8#cu4M5#8Vbm!! zvr$-B7qk&#w$j36*O3ilXj`fB&Y=s#r+>$G2ljfp33PS0qv-f1@&mjFjd<^eo7fGb zW`T9Qsk;j!$i4s6+iI<|I#@2hd-qq#l@V1NRF5w+g23#ljn&)WjbM42Jh*?XyGWro zE*Cm2e&J#TcEUlRQ$k@5e*7%kVSpoqJv15RaJtQGN{WEIqK1UB15>z&J584NoV{ zV`g~m{+=!nfei-Csb!@bmmB&4GzS!(dCl`fwSxTw)igMBhynWs;3cfsMv8%t4Cl&&G3JG082C8H8@<%RR&?h#O?L0W+hP~6g?4*%r;AlD@qX$S7)R{&! ztvPbxW1Z^dWBt$!3EX}gl}ZMx6RK*8?@W`!vG@x$r4)lI1Lqw0XRs$M)l=GQoZU0D zTh20l6--{au18n={`Ys^jZCno`u*phC4ckFUxJdu`{c?0`@c-7M5v|WsA~EM5NZWI zJ4U6I2PQ7#_38mI9To+WgfbJ}FlA~oPOm4^+CW3($haS9I8-}DKe2uR({L;l6HU<+ zm}CUV-*zA9A%D}mk9?I+(5O>E9>u@x{&gmh3{#CCo+LoaMN&dhygdavFJQnS zpKWB&lrWE$KH`GWLzu;>gRv62Ct{V?J2SSiB=#co?H*hPk!VZWfqE7JUqXRM_%7GL zBZ|}qEiU$HzWQQ1S7?ant~_JL^>mWLkoeQn%q?QGaD*#c2TKrMpcWy3QuU7V9&5WU z11lr|+*^C$Yxt?Qred)ZHInZUKM|XgN|`48>r`r6GMOcRW~R|2DOJ@aai{c_74Mc4 z1`l4NCg9j0Wz|BB*o;?GMy&O06|N5_Axh( z{1m?f65}(m2PXxBoeOelTU&yTbnKw5_gG$36$$n*Yo?i9+a8X zM3n79gO2DrdjP&w~%krQYJFLCY{zqVbMk9HoD;t!#HOM*$ss9 z|LEvA+}Vi)9UVo|4yc0^+~pfUcc@{-N??TLs1UY5Uuaw^yQzoF?FI zHzQU9b09CET2IJD9Ifm?n#svSpwd(%G?m}ZmG|hDv7C*R_bW9nVc8=*fmm9%=*Hd; zT1V~%bxUL(-7>9d*)|E9C#%GeHT59;R`_NFuGTPWPE8=Xf^X2rrhQx^LAq3bT?Z3K;y1+sM?{ z87R*M60}RuOXNpN=rO#@ptTVOIgMd1hyDHW@l9i6KU%$-+=H8#Qp~|!Kp!QS+K52q ztrT%@Wx-tDQ$@|dgMtVu2uzh4PmQ|M%}^_4X%N$1K;KD|_kmo_=Zr=Upa`&D2YM0c zj#7|UR5f|Y9s`}qYzDOW)AF)&x1`VO|XVc#oaP=oQ+_sszC z0?v=x;0Ae1d5@}14FuxkU;)JvE6B|PyVT+7ITKh6isW|Pbf7tj`?|BL)ZXf6*ze4_jNGlDk z8I?}ml)qZdf%SU=A478KCqGO;b&F0vwpLkcQHNffGp|kQTBSf7pJv!M1=`k(ex)nw^_O3bt ze&(E~dv4c@M<~ze+(Lwf5y}t!O*k%uPp^7{>}o(|R~>&Xz}9{ZhkCWROAq~!e&~nX zOtG@}h=Lp`wWY_@4}w&?+S|!H3}#sE2UAi=fHuId@6ucF(s%eZf;hV>9^V{` zWyxRN?^GmJ9##4QdDfgWW;OqGC=>AO6#UwfhhJ0B^V0x5pK2K5o!Vz)dZz~gob|=v z2hRNP&(wbHvk!2^Bt=PlyfTf9lass9I5~_7e4XeKvV{7{Cu5Z6?nC6%ki)3P>cDu==8l{b(5b5z@%1U-dNK01L`PgOo39yUOP zFzGw}Dr2`^tM4Iy(fRX^7z~+BTkBVwjH+bjKvt}l@E9VG2(Kj}pQ0d&-=*Y%kg`P? zj;tiDh+Y*%=R6`S$2>s(b?ep_!AmH?=5L*L0WqW&q3Bm7pc5Qgb)q(2Nx`FFYkUdS z@aQqDhLvNN#fTxVK2=V`BztYz0>jRf6IWNigR#|WJ$He|l$^TTfWXq4GE%f2F4aS* z4j9NA@RjAE82S3TyYFUCOziAO3=WUWS4#!;Di{lro7fy4B)v?=-K&|JXpmz8f{_%B zjENdzX0}$x^EKZvEXi#iVM2R*U@=u;b!&ni{s7nx>#%<}eDusloE4#6khqeB*~34Do)2_m@nWX2w4*7 z&>{wtT|bzgYd?C0S8V6n7q_7w$qM@~Yv3rA?DQksIY)l{NEQg$oamjeAWj3!73f0x zwyw(EQj?6P(AJnYfQVC!5ZENRoeK9+XXE;H)AoR4_L58B4cVbkdV|W5YH#TD9q(Ad z{0xV&{CeOtsaz903r?#~55dco&$-jhljR-4er=?IKg#ojUm_wlAR z_)=oB@KNN08pa2r+c1&wAjLI?ej(->V;&fcUYyP~#?+c01EX6xfs7t~u0_|V%@u>~ zN2veY`tE3SDH4g1mG8&nTcXis^6lJdMC01n1>Uy^a=z_g5-i{IGGlZ(5GFy4b`Tm| zbI@M73>c&r7X+(M;EX*q;D7KBYYk$?{z=J(oy^Priso$87HmMs+rh_*KbTmXx(V9M zAt*}r(*gp(8iZ+6tgR@MHHLMG$okiaP~}@XOzY?#<0!lqj?TcZck%yg_{13b&E|r* z-dHgDwiMXxPQ=`t6B}7YmVSLs?l5wT9Hae@lVT%#nq@#A&|An*NDUlZP`Aib?!t1v zkooYf76@~c+%N14F!h3Rz|OucJ&5(g(4|*w_QTfSy5x}~>Fwm7kc521scoFMIn2`v zM*WZd?L0={ZwgukNIj6UA?{N9DQm!6|FIDr_%zBCk4WS7CGnCs&oQWl^oZC}* zDGYjJFNYGuwUuj;V06^fYAh{=fCLhpAAQ&~c}Y}c<3?eO`}@a_{}?ZeyQ#NVJgAGR zG73Mrr9qPv`y_Ei8_4%{2nDZQjuYfC19rvb)J9!LoQMvJaX>7Xv`MUbD#Xc47fj~m{ zWor6#wE`^$t;|X4o$a7b_^cD7@L6y-wK5EsWq=2s-dO;0AbxA-RFk4(J{G;B;2f%o zSRNjs)$dk5Zgl^E#KazE8!XM{qP!r2l4D8rrE;O7}PAQLo_)lvxx>o)*p6A!(pz4-%u|i<84}u z?TCZ%rzZElaKYXWBdeA*N_Eme^BpV z%Afv*bmXr;i{2x}`%9(&H^P!y^lY7hXEAbjpalkb@8$uio^AKJxC$Ww^4@jM0Mp|3 zm{`8B93_+f4GnHXu7xCH;fO$~k=b{tfcp&b%sdc@R>lfT}7?hR>ZBAL%KSn&)^syBAW(vLasQM+}C0o|}*fJ?IzW3VL zxY#e28?>L?4jIBOp*6mltX4UXtsA9ud#P z;hUVpT1A6{&jW!$qdloLCVe8lp38Rz(NF8-#;j5+52{I6+0*Ek$Du)natG1F> zy{vlgE3G6;?l!Iz8=GbzfzT2{Cxz-j=p`XQ=p`Y9G?KjZgwPWLB#^)(;XUo}|L)AL z3YdiC{hzb8WsCRo+&TB0?|kPw=fn-IYMUkZmCSAhTCo$FQLea}IbqP?laIA(f9=aJv)W_qHF@rri*j&~Oo_^V7m%TtautV!L z9(9L8_j%f7Np4(P;(vb4HD?VGBGGD8cD*`oQz}dznhnU*k|QG$YfU9sooGx?hKKY` zrO=%zOOlt5XdAYTf|^$jE+lVkk4^MiyDUB9d;{*_pra;%9_^B<0|qY|w1rE!AWmn? zZr==Ul&;Iw1dEIRqxSse_rQuHKVOHt~NTJC(j>tH#m7pO7ZQWBgCkX|rN{ zM6XgIH_!sDA~jH?2j;sDECe(`rE6#-d0)N%Cw(%5QPT0m2H82k{%Vr~W0k6}{BBpI z{?n&bBr4DN%!IJrhqy{maCKBTTHAAXV9^iVXn|h4e4C9WfHs?Y|8#AdbU954qt{po zy@W&PrCK4K3-3Jy(Jft#wFv)yI`o~FfckqB@1DM6yleWtX`POuFq-@c6e_(Z!e=E3 zT%(am$(NHr0T{!51G6pTGTSNz0WH=DVSc$NlXvdIf0Gh3d9-B-?R)>it)F@Bxx_=2 z67_IKf9C)6>Z^?KKQ#A%6*_NlkiWH|fjrg+u12L$I`mwzjVKisze28N5lotu~A`CUTu!qI{zr;0~6fz(9nb>bXio zg+=A#j3Fie_QW=6m#wl`)5pcj_fh5bXS3)g*chcLk9%&{w&<1%QbE{GAY^DsOfgG6 z{0F_{(Vl(nnU>i$u9vj%U5uVrG2gZ*Ix^)dHBBc$`@u^~l_QJV#w{amG;3MfM*pC$ z+Z~bVq~Xov(}wjo)ys`WS@O!Wc(2u`R7xNbR*@HfUUB07G8qPYm2TT!O6FNVrX?z{ zmuK9ELlTBsMN1t`^*|eqExGH%j)FA>#r=}PeiR?9NpKzagIS!)Csb56(uq>f_H`!+ zBYZ9gG`MNqJ?kEV`K)olh4*%J*INMdl-w#5iiA=;Bx_WJ^{)Uz-Z)ky;wzA$Q2Pjf zc%ay_1gq!yZNjQ^n>q5p(~B-D z6#uvS<~EbfZH~LO0c=T9Tf-W?U8Tp&C3!lu<=9%ekHbW$g;abVH4ppf++W)e zU0r_6#-4`gfis&FE_Ku4ef%$(!&$y!ifk_l4s=1n_cV2_fE zSGKsLef367K&8X3IT-|bnlh|_G9>lkP_5HZ7Unp=Qtb&|VZo9jx2Xn3MDxOD*)dcL zO(@|sLcKKsdU`X6zT-jlos7tH^SZCE`#JSN1uCf!eJFjD*W|5nIAx3=z!PBN%I{X} zU>PA4(sJsHL{PaZ#sNz#*N|&bK!&-lt|145`5N*^oYFswTg-XAER@|cx2B@p&^)ho zsRvXRptWd))nqWl-RgjjD3wOPN@G^2HN+UJZH>%tDra@_lI)1Q(%wA?{hB&3(9uxs znp|HZw{yj_V-MC^%e8fyve8;&376vHhuUhc%_v-4-OlU{*IjqrJ17X<|BYV4NE9eu zNEM8XDnC>KEs;uCjZ$G#E1e1s>KaAv-MQVKadRxF%qablotTW_NuD>G*qSH6+}Z7z zLVA83YJjx!sROfk?pwTkcSI9X`sPk2Z*t)thsHg?KOcx}+qZqxY{if%9onB5Imb0m zuAe5Glh$~VR_#~oiemf`zoRZ`2e9I&;ba`vtl^*5A*b=MQA>ug~VBKLpu=#uY?ue3M+hY-IMEn zyzciD3sHIuxRY8Atb$q(?Bkz&wK8_5fOjxUPE;KURuu}CF&{xdwvQioU_+4%ji)G* z;Wxst@`6>%shQ#*RPbqqucgAj5fwB8TAOXFzaUqV>v=8Hm3wG#*cdd}inaaPq|aXZ z+^8vRw3ll8^)&%!`O9OLsM%Sr>o?Sg+*PCH(ak%`T81OEzYGNpE%|u@4ft zP9;+jwMVTAS-f#4mwRjORDZu6Xc$e(RT%7z&Li*}=sXf8+oD*PSD|Uq`iaT5_euO; zA}p!tjGF&T61WdzO-D+tXSwXPI*+c#>9N=7e7c%%I~}!pm!a0}cBJ$kLoNR>i)EU| zVVl?bE7qh?+xl!i8#8?1K>cgv4wE%vG8G$~wi=hS#*D9wrV_nN{K{+%8}WDISFc#i z@gOHR%hcYG#;NuNbRKOeaP{!XT}2_4MV79q+jPb^MPkH~aChVfh<{F8BSFU-h$Fr7 z-0Vz4_h^INuK^olP|M{F_OLe0X-&`@_{)?ob&~ULghrRE(ggM=;O3JW?_&PzJG8}| z)Z_gX|0k`*jz%A~%6xNc0{^*+n-ce+-k~O zs~pIk){Dqv*q{F3qPd|#(=aeT)M9|DQEE(Cl+no{b;IcNNP}u_d;Ck}f!yoN$+^#{ zm`8FQ!WQHoJx>U~%jH!Wsw&kcNynha+1bLJwP{oDJ01M@Cojam&hx>Y?ES14|2j(Y zg@FgwP0&bAi8#b=fr&GwmbrYW5h!{TZjP5uZxR(cQJAL{?ZedT*5LOoY^sswU8F^? zZ?f;WVgm;3aWkLWZ05h!QL%Nyuw%eBuzm}9g!I2XOX5atr?0mtSz~s3v|+O~xW`cZ45n9g2W|mfg$RugJIQOWa^;Y}7UkO^&n~N=l6MB`U(Bz3S$%*|A3T z`W^8vko$6frh^F$%u~5WDn%Gv?{D`-dTo==+3L~>;$H}~`=bN4ao74(=@cnnAM6Si zk2%M@TN}#e$kgrM=6`RsE4UDREL&Y~wbs{?pLKOLK3w^i{#hpOwv}4UNsHf+_IulG zZd-}TQfUs@(_U|@%|rjL+8lCp`n~P2j1VeJkFh@dPFzG&i^CCLKkS2|Jz7c1n*wNa zY6@~$-VoqhVF<`6VF*l;)ckw{&p~|AnQjtFeW3 z8Y`eyRhJ)~tWA{iBJ=b(~984yAF|b(5T59QA6<({WbWd|+ zdS=*ze`zTOU;mJ$dxMqeN32IZOtj{snC;3i(ZWAg_}3Qr1`PYhBbJii^Fc;R#{RZQ zkoETj#=@yatJ~*En5*ruQd@~$<4_y4&eoKfuKvcz0#!9QOnRTjCtorCd6W@f}w>nYw`6bNto5^tQrqxkSB z-)7B%%!sa#Y8D@bGA455*t8}`@$vF2$lu1buOKSEf@*R%KYIJ-%}+F3cEcDqbk!x; zheXydZ6qxweQ#haQb(W3n<%MSc_bZa8ArT@80z)eDqhNQfv9=T94*o@_lZwb(Ss+N z7!;pKCNT@w3@-$al)ww2PlTtSrQwGK{htZap8#63gcky?W`%1ka03X?A9);@)X{9} zOmZ>5&%9A?j`-wmuR7#cTs3Klsk6!`DI>wB=ZM~@O?x_m6_qBtTN5;y%dF_Qutv3< zMSBEoKoP7F$a+S*=t3U6;7IKd}FzyL>CzUfxZ?e1Dc=u)L%ITp{ zRln#>h^g8n*quZbca`n$h>TARxKa1E0~9}uQWd3LEofb#12<_?15Ajf-NJlu!7Ub^ z6+>;!D8V9eU3o%rA8ZQT*wKz5kC@l^*fKiy;`-nJKCr-W!OnVh+*I4>Qr2V)KELz1MUGuqH9w8x@uixc&5Ai?LndFCV-Pfu!=`a9= zF=LS_BU5PS9{d97$}YXd?v#}DT+>lDH5jbuF{;!oLrh6}eo~n-;w;`{KZ1z@qgv)j>#vsw|o5-JelZH{}{+o2o&i;1R z(9o=Od%3z=9eI=lzcWu{MqQV;FH}`yCQgqoXpU7c*F;T( z-h{_kk6F|$3bV|D$u{(H3K^1>j<_*WPA0$b{lnKJ|M&&_D0nmK zdaKBl{4pHutyc;S_FFcm&Qs=i@TZ6dmz8Wp27t2*LLVmu;XwmC~`^2T%{VH+> zX?!V5Y$k1ow;#dTLR=ngk;PJr=&W{>8aSuQpsDLOMneeB&djBg7f&)lvt4%mTelwD zs&iPR7?oO2y_|yMGB*;{(ICB@y>btWbduDeYNj@n1H z3FASL=%^yj(%lHx^zdZZ7w3p&&H|S`Nq>-)~ zHB!B35xIq*zGp#Koas}zJerQtsD{*%y5FuRL6f%2KU`E(XT=GGE#@j4(Q@{n?#;eeWXW`=(VJKiQC^Sfa9ix-_)r$*OmPx8Oci>r#>+EQPE5isFOlhaS1l@#rBM=`^xE8RMD13_m zziLE+cQrg)wj|MWAR-8HPD%qvsD&9I&+?Uo8S)HF%^*E>sN&O;J;Xwae>DHbyvbo7 zsb>tzXeY-he+5nC1oH;HG5w*cT7Wfo+*~gB)d(V?Ql}-hx++ry_K@>srFw&WN~zPZ z<_!O?r{VbB^C7jn~o7~)!mpwG$stOqn%`$Xz`+5J&9Fm#$!3dV!8Hn23x;wFBKH3?@D>MOOc8NE zIZHT$w#_#XN~SChk2YwIR}xNbjcK(u1@7Ju$}xU5IazCz9lCs2Z_qI)7?fcVx>T;} zzTjB$2W?T0L+|eIbSOu+HE6UV9LA<}=xoa7`nYlaw-e-hxyNM&i)zf^5ea21M+}NgpGnY#E0HU zT8XD+MM@=#E-OzB=dmJOT;6WQGt5JkVe(9de||hhw)0-ag$gRTcLZ}Wl;e@;4=RE!QW-ipK)=E9}n z^&2l_OY#AkdRiKgO|{FQ0|7ZaGd<$wA5wV(YBpf!>IP>LuGZ6zO%SDCFYot(VAZL# zD!ClzMq~EV`3(jJn0Npw{D^1^EMy8`xJ4XJeJORT3@k(bFRWs9j(j~ig+IG8n;lNy z_V|Ky_JNx_$+Z>LXMU!I(aW39JXn{>yi8IrOcSFC8S-Gb8bHmf3tMb;PHG}$My*q2 z)ROuk>_7)l^Ujc3e{K_Ym3VZsIv;YV(Fv{HKv#$;%nts3Kmq1wqTQ5qU$bmC0xSb$ zVHg^T0Lz3VnMNW5xPk8o+yL!wr+Y(Ug~uxLmsdMRd8}oA_W$EmWza7+#s+7`HDpTVR3`dvAm*wp@Y=$ zSJV^20}3`Gn8(^|dF5EvMiG6jtvsr3REHB}fUvh_;liZ3|0P#u4RjHv#H{kyDUJLo zX!pEr<~!M}p;h5;C{uVf#noPBRIhD!VtRPo=G6F2#u6)v7^aX`ZB}TxvR1v{>r{~= zq4?sozc?_vk$h!*=@s_)=>xeZ{1G}CzY+{EF)+W-dbEvv<*?)>yUaE{c6Z_H#38`Ep4D z&Zu-^FqrJdJ|`pxA{~XW83-aFpV{OorV3&_h8k_&8Cp>4|b1fBE;mcg@t)&7loR zPw{k&X?g#Ksps{YW?eX9Y6zR{oX=p0nKAd+=;u@>43db{X+18Rf{#iJMuoc*`~e(Jvk<)~B~^+Z!X{L^7oa_)vT`AQt-y+W zCX|O2Fb`@WBHX37ad{R8BTsrINoy^=#F%?jCZQ)Rqcf1?_-_0+1{>wv3$5_XM&fvK z`hA10!`19*i4vo@6RCR{C`CKZlAP2w%slVDfnDrpu$y1VKwxTK3UDmu4tL$XjJL7i*!0bd039 z=ZbXiY1PSolbXV}JRU}Vq%3xq9q0&8O!T|?x3lD)UQ5WO(v@gAPjGDaGq<1FOS;>X z2A!mT!cRsn`qt~YWBNTs#!{`>rj==n)mSFRTxZKQa2D$WRxC)hIqfZJoV63l#}h(p z5k2c_ARmgT#g%%nwWByNK{%54>tfa|GzR0mg;E~u4lzPBQNahMr1YK($^^g!$AgPR z4glop^mUXtT$+%{Ty7ImaL%gGaTRGp(C<>_cKy%)WY9@@&X$dqrm<>;-KnnVss4>w z-(sw;cXDyPy*$qG50Hm9@HfcG75q-tF$;XO7xcq*9bG3TD|?Mf5&eqk1dVevyF_a4 zQcm)x%`%_UH=l7DayFZ+V&AdFl33~Hg)pW)VU>O8Z@H%+e!eY>fJm|7_tYw_J>unrfw(`o3&c4c{8}n>cyvPyyhypO4`0R)l?GOWVSyMI45QF+M$=Zo$>9PD z#=_E@2nM6@4a`oWy?^>`qqg1A=53?VEnqa3Sdb2xgFi}< zdorJDkBs+Odo0~!X*AB$!+8&|BeR940{m!(P;CLB%n@%5}@ zYUvFSSMi?fJH%uGXF)HX5bWs1i#ZZ|+9`A8nsDuTvRCDB$cy)!nmfJ9KRoDd@C}a> z_v9aA&Q^Pcqw}CNTAZC8_Nv_qXW!UpfXreF%ecQkIF-d&(jJZ*?)v%8&f zW2u!MU`PX2RHv@!HiQCh)zUBM`p*n)0{HygoVMFNx>%`jIJv6D@l7+DXoXt=!nL^Z zIWAFKQ>-Y{#49RGbOm=++Iu8jCUP7`Ss{BD*c?~s-WDNy=bz4!rVLrPw3WQ<===Q1 zB^;I@7wtR^jTNmY?~KVY5U1{X{>!RpRaI2AU_>i;LWi?5;H(}KW-ZZ-lTK`LC zFhRI>g)}cOw8uT82Si6`W0iJT#2Wb{6GS{hAJ5T}_!VHk`hJ%&?%XR6%$i%W&2qb4 zRX<+)@SvqEhV(C7`UZp985*Zf?!jX0^^T@CpTVk^ln^(olI_ ztr`{knQ+^|Ef}lef<|Iz00T19?Vhwd-PPVS0mraI674?H)qN;g-fJ*mIg5y3AX+S- zVE6?$UPTz@`V>%bp?F4P#Q-vgJq1TuxVWh2(2ya#fI@rKTH}<9cqWhM^0rw>zQzA= z^_!D06D0KXeC`FRjdqfU`Odo*7k}A)%cBcS_P(!n5MQUarAphUsc0f^n6y2F)YFBrmaFTMxZg-I z%*)ea3N$*+G1%p4F)e_AV$7})CYr29(91TRTt)3Mdx+_w8NQ5)Rk@%4oQzIm2#Z0Z zFLKzr!$`&>?Rt$tuF|OFEdR>|OG8f_K2sfTtLhjXE#dh)?__>~9NrL*o7-YGmpx{P zn_;-70B6-{RV9dA9w%TR<=^6&_Xfz7Myve3|GhS2w40#C)RT)As|Y1g6Zsve_}8m6fRacYI?DH)1&4!ZRlRrc4#WHYj}xu?6sS?BKV>vhF5!ybj(r3i1kWb$F_7vCAB@x12+M(J~RIl|6f zzO|`nDl-=72~K8baDolU)NW$wkQe2;1jZN9C2!+}1Q(ZjC2k`jTf=?ilYAk=pdeTn zrnBsc3x3x`Q$2v6eE&SU(<-#=Pl909YdW3H!E^)hcwA9SwIG%#*VDqL zmNa#Q8!fpFRPFxGJC_Z*YD>8ZRY~$yE=oeIO1kZ|PXCr+OH4JPjGQ4cn&leTyusnn zGbQ6BIkWUWyU2#qpYQJj1{}sTCwh8SlsbcVD{+<`(>HfRM>W4;>;wMzV0Nzu%lz?G1OBP>e4Wi&F$9N+)kXE50>{`@Wo;hM~6O53bPW| zS{|N#4Q|W_$aCMBe4OXV)9+_ASV;qHA(%m98zme%#(^ADz8)$`UuF)pj#~ zc@G*f24#Ux#+rMbb%>Zb)^nr-(SUNwDhd;gNim^~x)OT@kmzohd6BvQi=c+}x9t1#L@;$t5YUI=H2(84_MQHAhEl#G3H!(?wD zzG1c~QnY^4uY0{ENL_U%Ee3m{HA2Pebjs4kmO7(%a(2`u*XRuFr+rUK-AN}<3Va`h zPxR11=b3T1G&hmd6s%5~zp{n9yv7Txpm$+vsul2ZCEXh(zviO>#+-ZekL#7Lx($8m z5@Xj~(k8odgQFI!7kwW7H^Z(<^@OVY*mUvih^@~um?eo%3gwxLGIwT3aItjn$!DI{ zfEkX}$DgooV~h+qs&_^l&aPfI5E%DG{h8eFYl^0)g3ZC1S!R8{vVb}qDhpKJVU#jv zlqzXi7Kt+qyCpK61T~m*(ex z$Y8Lk&ZSd&u_Fi!bcnUcnd|}L0y00yYa;^KZv9jDNB&+lRR0f?~!{}U@HGS5Baz>@o%ex(;3dZ?$ z$i9M7tx-9wwwe{V+cfKYTF7MRW=bDumRis(J#>5{H8X*w5>UF(d?B0)Js)a%GGG&G zMnc;KE;E>ve3WIxtNk%2Ze58z06`UuE%zsK?QreoUmca1ZOXChKl}7V;J9Il#iH!q zynAfy-VwFYP#MBl4oi_t&EJ43#ZQNPO*MOV&IemcKXn<#vjo34L!^2gxMp8_{sjPv zYt&}Qg(=re5_kh%l;g-KxvHpcvEPZpzrxx!{;2-U7Y39rkD~3#X)Gqa;eVYN!67xo zbn5>Z$$$OOZ2cp)y|Zp8`1JN7qkS$+p2X59O{!o z>O(gzl?$y6;_eiTqNm4-BV0K?Yb_3>W*K&`W~Y|*=WO9xr}EcZz=-s}Ssmn8oM<6C zUk#NO$sYdFJLioq$6&3*sB~0C|0q&}xn?1Z}~Mv;JUzhr{ja?Vm4{kggR=NZ{6l64DCJ%6nAm zA)|)PvjZ z2ci1id`Q8FK$H+mAm!^Q3|6Gj*(8`J5^x$;mRV1iY;pW46qOn?xFe}9O z8qBmd#1QlR{0odB_f`c>1$U3L)~;SfK-bz}{9C8qLuV^lT>Mo%x`am==3EiNjB{pF zeKBVAxJs}%ib#p)shJO`t8McOt`>!Nk#`H>wj=2-qpsGaWPA8ao3ohXeaEMNc3rJL zsxJHNL!2QrI_R^2606p=pI(Zth4|ht^A*0BS}iqJmup|+%jHGKyfDzT1Dg?3aNvnu^7EUFRM*aF0+FK03%+Oo>zM=Q{W3US7T>kEi?o5h_}p|3b6{`d zr#$3U-ep5RIvj1e@u3A4ku?4E;v!o-v-ARch(a*Rn@}oVAXLpFp^E+%6n}t~Y5B1H z@Zo;`FT)eZj9-SeP?}M#+o2-A6YLen^M2%h6j)6Mxtc3m`{yOenxKM7ig8=(;i zEt^!Aus7tx>Df^g|7#42hT2sZZe@-kt@^;S_7V1L<9{*e+MFVG(*U~(hGh*?l9VcW z1n`EU&tLdQFhy_6RkP-XT~jiXRW-7R^%Lz5?4a$`SJh#e%`YeUAB_o@i`^xOcVE{9 z%D%jpmM;+Ns6!T{gi(kZ#AM7jG12|}FV^|SY@fIFgBQyH9(7p zNs504_EruqRg}z#g)s4cQMTk?9m#4Yl!9A&zX}*akWIkJ!-20vy*$2Pb`ijC0I@ zL5mL0xT!ftYz{}nP;8-fvVaB~e6_0LCZt#n1#8JH{h2tXnCI1zUYFK0!2fu1^2-ww zgZxQ$elx52R`K*?zgrVkTN^uj{KUsbD~{Qb=sK80rOW`4B8o%#tRKl_zEVcF>{3Wd zkA@Ca31f6l3cB!Cux)fudmh}ZV0tU%It2YDb;ML6k@w;vDxel)6FfH6P^=Yr7Fasb zW6|#i(^;^pF%tjbJb(YZ-fr)%Vs*+uqf#xugJk)eD%x&+bdi~V@a8l*!Dg;Y9A7PW zDV+_q2L5vlo6DX5CjTv}8fN~RQg@w!a;l|wMb{LKP|-lU1}Yl4&yE_s@{GhS@WG_& z7k;{U-c$-b2^5smeaE1eNHQQ%${|maRu=U+P!ZF`iVft*=qVEuUB4q|L-~26BLU`) zDnCU6b9K&1i?t)}c89y$;c@l?@l$Qq6D%Dnssj#)f{JTK`D_?V{0=W4Z=UvGm-iSg z2ZohDp}ZwPRzVh8*r`@X?mrSrj|vz-ZahAN{`6RO)X{7o%34sdt=ln$fdvDz#;h(bXf&Z>2Wg5>v4iT7u5pjDfrh;(bcGR9k>cor`tRNp) z&TH3JC<~if!(M?SjtV#!F2S%|b~;*gE>QDpy+Rdn^RJvfH6^dr#H&0Cn_cBiB{nKT zk$|jJ=??`|B&`fa{qls;R}@g4Neuj3>ob{JT}4Y&ZnLRk>Ew%ly=v;e^jwRcDqbQM zyS+#sM?GC-3_#u?hv21NM+Gm;;TaNG+RA)gJAMCkwJPl4uDI|(c-cYBeVxY_JCYDt?7;yE_!K@UK*2rK4*Lo{3ULW=`if2hN zUYo!+Llq=AfDcQ4^2k3Qj&Y;{W`Unw<#%Z`5-0{lp+bhs&I>s2p9^bWBkS%Q=dZ=E z-29Z~)9FaXBps(pF3A{TQH<1!g!rFyyJ|Fjnkv=-yScUtPO@S-9_JCCL`7>7VnFuJ zF1^KEpPMCbjEr19JUqys-9O2^>5h)~dtBa;aY-PQ@x=nOxbL(8{0!Tf&m`%PJg=}( zxq`0kq}e1*qiXP>ppP0GZt^;T6E)K57qsY`#Gm53gi~4TLDyXB{P|7MRPtED@$V8X z|F^5CSn-jW8KRgP<@uW>7&-Elcb|Im%}n)cv$Hpo`1cox2@*wG;z*hu9#^rk68Si1 zi$K^46&XqP7{Wo1nt5&_ciYfk`^Y5|m;-nVsk1-MKR2iHdXys=e?NpRycehVZZ?xe zC1?j*0`8+s?6DHd=@if)7Z6D}As0}s>%_r)TL5lipPog?F(<&TZ-FBefh&$Am2Z`& z!PiD_nGjbB&CS%!iP86;<&p?6^t%X%C;WdjFsJ2ip5jZ$?fm4)_uO+2R)I|MxBaD8 z+k5JQ)TEr))$&S1^4KlG#=w?inN1+#4Y8Q1Icjxqeq%lk2T=o)Yt%vJ7t~ zz^x<2d>{FC?oX_Ldg*2IXy+@Hm0K$-Yx$+kvVoo5Hf>m~OHEglW9+%T*3sO^Y++*+ zyLKc#Le^3E2R|j`7ugY4?#IO^RC9s84m&e8o`V{65?X>%A(tv&2EO7w>lB6!F4q=6 zF4xWzYhq=L#%OxKXf{Q+HDRJwNSsVWC$J#SglcQ0tMreNDBgkCQ;w5G!GgVQ<}HJ^ zMMTC_z-bT^8Ww2WDXCW8ZlIjn(h~UrUtP%*<$iZ6iSWPiFJAxZt7K~PSN`yayRw{@ zTd(&L?<_j8^d_x7;<62w5@q78Ho{wJtx5lTG0h%KyroNVxkl zxko9LZX>Vp_71WL9o~Dq%HH|4r#EkS{I2fjr>B`ogQm>^#xjmz>PIkzct9nBYppsV z$cL1*+bCzW$ts2G%3^>tQ}RNY41|XM6cq_#a9QCe@JIYE(dv_B{>jV52=q zY{j+$lz@!rfun*K)D>s}2uZEvmRoN5=}&(O7e=c(kF#OHg{@5a3=5mvmR*=Yh9OZh z3#D3%r0*dfK%Mbt4*(6w`=9hJ|O;Q zrg?OixH|lurFNQY2*6HdMiyp<8mPR}5c0WHx!W=sMl!(f?ZPUQ4sr;~-?84l`d;R< z^YdMQ_{{_;+G8ZN2qsdrR5ymaOJr!3;BN9ou#5QjaMS3{IuWuZkiplWeorgVv}iEB zqIx>1I5+mz8a|Jh^H81GjcAU@FHR@*?l6 z%se~GpLyxb%#3tM#)dOXzh@7@{p{XR)_oGKzOO1U6+(I>n;miIuIzZIi%E9pMkQ*k zyjy9~%NSd4Z~6y}?3riyzyE~)yo5P$+PUXaJPVipI7SAD#Zqy@6Ak_J8qtBuhu3`u zvp4h3{i7x!xRtdBMlFcCCVFwue2WhTLQ!8HYQeI$!ry(IG+QX{10)yH*ut;TLXvU# zA2*M_3~MS#(m2IH(K2VkBahiZV|=TI&En(i&oGpXD&r1ZJx>SktcnVhuENOd~J ztP;zK$ff*@gq+InC8tbd3W?6B<-8_+%8R8t&V)*(!BiWql%MZVc+A~q|E?zVytEPZ zwP?XbFhn2IGK@s7NbQ*1>nvXId%X)zRd~j)4otV3?e*Az)}+*X z`8|re5&7Wa`Unu-q7)ez) zTg=fAcWA6W$CUsh9^~5l(n=|F4O5)^g^rFv-b*&}*OrqX@m1fLp8j&y8aJl({^AjH zL=UgQKQUtT$tR`WWRKn>>zBE-Swkw$DdT;98HS}LS%*CBI@qJ8-JD9dPAwD_a3wGI^?g4U($JSs8TATR;I9rp) zT=x+F&Ue1c?#a;p4N1Im*N#$vA3+@`$i!(e2HuByV5DfYTB|{dMk!P}Sy?aiOHwD? zg0{U~*gk%OuvlPSdjS}-usKmMD8R(RMHh+^$Q-B(NeR+YHVR)1MEx;ds8D%a0Z7!_ z2)Q6$3MB-|Kbl*wyKNMM*y~R^aVx)(j!XVcn|oq?873Yj=0{I&*ZLHlaxa-2wv?C~ z)OPFFr>C*tvbH9!D%Yo48%!iX98b(Ff#`9z`q3O%&<4|Lq*$X6+>cY4YsF}`Co#pG zf9ACQ{=3Mn7<^27*sZG_5BuG zvg|FW%@-lvYlOXz2*ND-W=>jnooM@_^F~C2^QJwB^cV#|PTvt5rsy0XGY{p3_m(Q) z`vUP1U6yGH-e0ILuYRc?^D^`K(HfLdN_w$6X7v91Ke!A37wzx=`oO^3-K|INz`K;y zpLD_&elY!wMKW_|7kN*sEz`GTQ*xKOY^08RC>fjTv({RACkAVa=SCb2wxPN6`%6wr z$)Tf7?F$UM`X}R%Cn-|6cj@4OuhLXj^6KOynIPoOi9b>h2LWh4h$p~^0JUf+LRObF z>wI3j5{Z+cSJqn5Mi~C9WR~Azt24Uw5-paesdUC6nMu{oS(W4zMm>As4h;NJJF*9R z&MWu!^?7T314I1IYFB5Mr_tNfv%}+WHezttAkC(0`M zgX~^WV*+7lch{jRNK6F!*;pyyX{ZIn@r~N~{QmvVoOt5P zH`S+7&)i<$lp;s;+E#5*kuen{7Mt3KL1RXuQq!V_0rPJ2MGe-Cq6Cw>YSo*M$!Hu`_6~k0{PdfYTz(<8RwQ}~)5H$HTw zhd|5z%N&|H`@JKRe2Vz_i^$`A8!4UC2efI<`DU-mEFF*-Pw%?-``gIIZ+*Q-L)Q-- zw|_socdz8c6N}2q?my`y_W0u^r<@WgFFz@r{#6?}l;&lu6S&KO08_}U<3ijr8@?$w`&+CgM+alDR+}v5+Hnb|llLlgS{ZqxiySHO75hrw;NSdX z;WyX=cQf9}AJMyf6B%UDB(fb%BGnZTqOU04kY@{Zr2_jcgHG~J_G_#*pX<;pux;JC zgYf+#MFZ2MInJ5_0REDex{o?B{0`>2+y?q-WA*d78)n{|(-n`jDTBJ&jv&Xs$R1oe zkG#9US*5OkTZVotZG~A`l8^`EL3wGFIXU^?BjnNCE~YI9SpD0w;dG4|xK1Cds`sHl z?&H5^R!dmyf%ju9atSguTK##NEkaq0cDIYeR^w=!?ndJ@V2F6ND1;MIef(Ouen?2^ zpc29P*5D86(=f>@YFUu(2z%^m^3YGL>B9qylN7V!d(f2|t1uK$&9NAH>f$608;b&j-~JMLknjH42CK`RZDTmSA~~+rs zl-ZEGl*Bu-18j1n>7|!m+~w_Pb17_6^w`*UKBbbfG6+KqjyUkmeamRpBq-vN1@#7fj1Rv|Jh~uVswqIPLTrJXI{J&PWY1nY<+IEl6e96S zGQZf6dv)%&6Q+hn8G=D&x%S|&Go_i(B*_iyJ)NErQ*q>k8HHAAby{RxNR19URmdQB zdL8l@=3ah#B=_*}Oa0{f+!g3Sc%J#w9Tl5q{0h7ich67}=?%F$98pJigR^APYqzEv zuH#>@nHW|d)v=5{83Qz`#yY%PP*zy`=IK`X&45WKt$q6z90Bzbg}0Ba>SN!2{^irm zHFZ>hI+ebyXsQbVyO*5T|M%Vi?WCul8uB%M%ucOhp@LN~9LH!F zxsy{CQ={?6YlcC#2I`@dDhK5bvZf zKqAKrU^zzN;G{NsEhRo1`P1wybP)zeceg^%u@mc~w#FLfMRXAy%&a-($+nL>Wux8^ z!XwNLoV3fM#1)k3+hDNv?A)k_THdsB`5h6AA1rr2@9St(X-0)dArhXg=lA6spmt$ zH0hl&a{a=eH=qKVQ>$#jRMr6Q;{k36w!Qde#(l#_K43ZUd2ME*K&FW4pXSC z2ryIJ#jzYq^Du&?^WpM1f)(b3k`VL7-1ZSlbJI^blbz+KGdy4GY-upn8|zw{Yh0~O z=9ICqRYeC(4}ci8ldY4JH%(1_vCmRpgT6&Yd4=(cK7~$Vuo^K}ol(UM@}hv$;kHY$ z>J7>W-aEQ+oH;JHh3Ugkh`uf@`u2u(MUka04%>%@vBiS7#C9EOsI5JIPX$}{i(mdy zo(>ImyA@beYphE;2CX77K3w-@AOmffaC9*dhf^m$S2@qr-#F&P=r&;~#1!+n;JI>g%l4r*$>y9w?*N zT&{9*9lzn=(Jxot-xu!I@2CoOWQ4ghr(q9s=kx#g8*YU_0SFk3q6|!vJKBgrLF|BU0%PE1@{GWL5L1`Uk*;U1VRYCg`1nFb z(K92nyHu$b_oEp|)6f&A@mSEQLo`ZPDW}rPlp3YvN9&E_X}QP4we|i%U)q{5hE>%) z<;L7ba@pVq>wtIizO9_jQ#iG~{kU{`Qx)}XP6Z;#rYZsNuu2&L;E_1#b(Z>V>`8Q(AYV*d@=xh0nUg#y!kT_xs@9X$p){|g5jtsFVToF{j5 z9O&rSv=UA>P>6}(O(CXQAwW!@l~v8%Hg~bN_SF5wk&=U_^KU5wAx;tx==!!CTNfC- z>f%OLtvAXBd|}K5;f$O@!CZCpV16`siCA6+I{jIoaTbT|1nMc2Lg*1^@;a(Oq3^~7 zTSop3yGBO7(x&qtgzVMFN}i)dpF=&i(lBPf7nNMCO%B(oU3Nv|Skh25ul7`rH)s;( z#^DNwB6kZpd*E-d-X092z^9Trk3(&3$G5jH;wW7dEZP+F6<98=RtF?6AeXgx&se}-S4|GJ`WmZkAPH@?4Uhgio`5{$^bI=w z?h(OF)9H<)9|Ar!f22rsR-9O{!XNxQ;3pr(C<|=EN1&ea1}_%z(#RG6(Gx5jPBm3! z!*>D~ZmJY=MT)`~D_J>Z5QJ1kQA~jlVBrJ5{Vn^)KbFtVb}X9fIwJ~?mkYO6$uNcQ zG-hAk*5dy4P*P>}D)8pKj$a^D zghQb~nSQ9X{Rc6>km}+3Vz}o53G%$dJ!WYmd+pLT z3|kiy=1&3}^XbW>Li-n`7(V6{Xb7MTE_OEwPyc^Dg|}(#YK&C#KUlxGcoDg9;TN+= zL$4Tp|33rH%n7r+eTLnidoGG)&At3Lm?!?7Q_u)<{_nGGAG#)DevknO6q@1wtv645 z;@0|^RQ?c`Te=u_8SSjBn`t7S8F;7HU&!y1bd=aBLVmvymxd-&xHL$nWD*n2rQot9 z$nOn$iP!dXnioHs%|4V)U2tg^YfyHce~R6Z>Imv%T&S(uIND}z8&1f*TzsH$IlK60 zyb5aGz!pgPugMa}(o5{6gZ8jTWhl|By%GMAt_x0%sbj{9^RFJVSx0ZYq{^B!7N2?n z2+9)Bl{W}sQVxrvQ`hJ!wl-iy5s6G<^2EvO)@>CI1YSPxHLxyIlzj>HqZH)W)Yt@> zoam#m;^GrsKadS#lJe1)z%0^jPTE|~Gw$piFQuej^Ujy_y87t3cPwHvXZrA-N&7Re zyfR(+#`HA*N<*;A)Xc>b7!0_-|CR0tZ6MfieM(Eq)|Qs(N+l+QIg~-eOr=E5 z8Zj=JCUBu!5)-U!@^O3fiCZHm)+j1J?`0jQe)ozBT`}iffAF(I{NV}Y&AY1k zZA^Ei1FBhltoSfMc_w!?iFeHcln*9fedSeVi>I?46oWK08Q%O=6>y(S&6)(u4hy^?r4;69Cr~?FCUu(v7gk{5g{zL5wJ2IC zTWPTSKb!XLgM&AYjqwi*Ys)Gyge+0aHP*2jtEozF)|_5z_DdUCo#p(L!Dp8?Nv)n- z7uneTs}2X%?2#h=cX4u<|J2^5rp+xaQ)Seq?ec(eiiT&SL?NZDjl^!1z@~jRHoSB# zyMO5bdoF+6!Z&X0=FmTT=?zn7>k^yhg2kTES(&5yq=ef$I2v~c#|FGU-_Y10ur`_8 zRj}!7A6u5UX?I7vQ*M?}o4$$WGFU!p)Z3$o&!vFcUuA=9JaSBEOs1e^6Kz=hXN8Xy z>ieHK0~*%yZwKUB2p1sV&nQ3|@!i#6AWIwB()GIzyKqnfQ;UM&;p5ucwzaoslb8=E zcPawLY*HeZ7$lV6LMg;)V}YXs_MecO_*+KFr$+S_YflwXsAZuRwOY=<^V(}%W25)( zyH7ZQ+5T_bc5-6|?Q174{Vf#d)KU(O-UOoy7lyO^6=Wy>qyB4fbaAACkAML33657> zkxX@MBZ9JRt2mH)d6%jXq*nMwp(RMD7tzuHCAA9eu>Wb$FHnttnX<=~6^%*GYE?1X za)ZQ~OemtsWK>?)Vkc)d)tq^58=8$<&e)GJS7@Sq00B`Wq5O0tbPn^sp+3SP0X&0(%g{5EZg2DF-pR$CO!{jz&Q zABNJ`p{4u`=9`}!SiDhV66hDCJdl@EO;HHd#blk0Yf{aw31={A~7FI%ee9 z4D0IcQ3SQkjpmy&AS6^$tyHRJSt*!ZZHa-PvBIwOY3R}|)Ns|g8FF0rYaPD4=>CTZ zbdDa{*V3}PwRJ9mi6T;)B5ayX;40{)2!wKnN)e-R&|_swG>dmM$qZU)>e|YwCB7;# zY1n?tnF;iTg!f)F!#|=i(uG_Mr_t0Fp>i7P)OtCY6zdA3mC!t`sRB{TSGmcPMnE)6 ziYALTf~11;P_lk2^&Ls*SRO#Dlc;)g3DJ-uj~TRR?uKJVG(3pcfD9AHEr<|T`o2Dv z-7Mspg>+GPk;_@Abaf0x*?3tE}4y-t$SaUmx$SliAf3O#$^c2Q)UR zH|&>dRg5~Ql?21GNJ&^0OBncJRx+ErJwxtnaW&}LwRJ`^%HLf+=IozB`v?~wZY6G$ zzB+W__YSi7rO_aHMa$O{AnldLCFXAK`6RbKtyZp1?@wd(1@461wv9GsENg< z-%sXWj^fS>Hh%T|{Ez6Au>f5!Gxshkl<*Q3x={g1!LeO`N;^p@|1(m;|GbP+qbN}v z)80M{_~w*36hXu6a;O7|hfGw6bTIE@i>66vlIgzi!ZH3Q!;?gFGXKDtFZfeb#tD zF{JQCk00?(ZAqcho!l@sTyY|%lm!slKhsqX2u_nA0I-PJO zJ()qFL|EH^dkhCbEtN(>>cc^G2rnp#L#Jq=Ca*Nam$>PWe2SAUji2m={1a>5Iz4?M zd7ZcFX)5R?Z}R45TFbm@PG`4uRbhd=zg}s$+-k0m?5dM{RV5R)Shnr6D|3yEQ)J-4T+8Gox-|^$VbPB8~8w$roI9BHun9Jm8h$ zy(qi_`l~QZudt}7AOl3A-NL2{lWJ;f3qoZ%HE{%5q2V$FN#ZBEB>&`{lu}4iPVVH# zt0-7LnU44%=Z#|BIrsla`w9TLs_XsS_r~pwyZhSA?9A@Yy1Uz~OWYwwgoKcUAOV6G z4-UaYC~iedDNwwW{wT$vv_M-5rG=fF|GDqY%+4lD3;hQsSxxp`Ir5$Fd`Br$c#K4R z4_LId42bWE7>S67za7vNS2=_hizM7TRcxtJ#Z?sr#kN{?Tvc;?zd#9!)d`7K&ENtw z*7yckC>MU0@FYSc#5}&PZh37jNiaDJH4JG#tsucTL27ep?(VdA;60tx1O52*b`)eZ zf=gdHwMC^>(iEl41(9y>piQSde*x0z%Qr6b3)LDy@g?}>fVM~z(w6=zXsFbM4Atm_ zx(hDY6OHY?;QWanZQlHB6m%Hc;0Pkl!AC?;h0KUa^C&vgB}a09$URC&lO!*it^54A z+mbO~$8eaaT%hi4Z9pGjdk0#GugyW%j(<6P*XZck!-}v&WOGOyIoOQO@BPRB2r%6} zaQ+~EBmv&{6i8=(OCP`;=wfE*rZNGziQ-GwC)*&5zX<&(&`kx&&2986uxet6(aCC+ zv&yKG0E;XG?c(Era=B~4WiT}K5L|#%(=gjQNMJ2qD3&T>Y6$}>)GMWsNk_7>cg(kqibUYA0wd>Iv)pih)saM5o4|JKTYi*#RF3uaJ zu-DbwVavC7_unOPx@5G5kwhE4)?iPAnG!RMu-Rr(gHkyo5&pUPdQ0J=A*V>M7v`R1 z<{8#px!kTSkQ+u$Nrdayc4_4WD%1F$UbO8;IvfI?U6W_7tujW9we?kYcWZ+QP-vlh z3_^n#o2L;LjSg;2J}{5Cep=F*md+veb0&}w5$A>l85EHQP@BaT2xAns8xBgkjGwMV z{kXlK$L?iN>sN{YLH=Qt$=F^(DHvNowV7y2_-H+=x8LkPbHZIy54v!1E0ZY6|bMP%-s z8IZKGB0$nKEb3sD@kuVNf?OJHN!*KT-9d0j>|_W4CnKGVSgs%}i^A?aPb!P$w1FPx9 z$tQ3`-VvC0&(fYqh(Jsmd8IWE(xgK^N5^AvHqcD^F>vy{d%|Xg#ZXBA3|&sb+fCiw zXLWbuPwTZ#K{MZh_P44WOsPn%#A}8jClgw&5~EH4ZA>FAFE*J707{z9L(uVi_WH`o zmF4BbA&?mr7@#p_Ak5=~ixCpMN6I(o1O`5&Zr1*92GDl=Fa(JYzOQu;I1G+NiO$z; zRqKk19)GOl)KiK;0+ttEcYGLi&$qT#E>$Bq&n;q5Q-D-Wt%O*BtnDFStGFR7Gl3~2 z^yt}Y-~ccQwn8Ab7uI&p1&9$g8S(9a2+#dQH1i1pU;H??GS4D&nKucR0fOdqcBrvh z38TofQ!;_pA&@T3Rk=m^e6;~Bsgo#~d=TIfXgvbyV(#M_Jw8Bbl3xIEys7%d3Xt`J zP768yM+mLLm#zYkt*k5oi*6KN!KM4`3b#<+ETO^oS6C76V0b1N9#6 z=|{4$-t$`bEU^M|T>RWFcZIV?U#7?@prQsxm&Ib~nK`%HS*I>gm|a@A0Jc~t33-7S zRiJlxsGrZbGe2y23XU9vB4t0s393wM22uGf191_qhC9p}9s)za+NTXpI>w5#@fH_% zad5NW|KqMiCJs2ZfyIpSL1ApB&=ClVT^kOeB_kOfj- zbm6DlR&=9hi5kv5zjga1Vp>x`8mS>Q2hH8QV4GQL6)OUHYV@wdTy1h2>kj{fBv8q= zraqBbe?7=&UjkQt=JwL z8+(Cl!uoDaONQN$IY;>(5=Cf)>3pS4Q#;ZQvO%np=`OdZD04>*#KbS?ij@Fd;+)rG;5pG6O_6T+0rCOAzpoIt@p*<(iAZ z-@>dYC?P1=L9DO?z$gW+?FzK9?Zak!8l`80?A5ik0LDQU1++y2VG$6Rp4QR?PB0NT zL8+u6iPBzqCA7+e%8U$OgC4>y-wcT4wBEpn2n5MsTBpWq+8ndo;b-a0h31XMdW(QGZ(cLuO67Ino_7gwK0)P`M4r2e8ttMFEQ*NTJZc*n{?{k{EbXkH-yhI-s$E zS&-rSC1+ny1cuAM8WwJz+TbL&oNJW%uY4KQlnfCIL zkt_Se#l-@XSzMThE78W5KQ-7$moRy8`BGKYan;qN;9?f&MPAKF0k9!qptTh8VTlk5 zE=s;l_fa>ZdXc8N`P7DnCVVIUdryxUNo)?OHnynqCA`v%{KCyo)QL1&e(CM#@Lcyf z2SW7?`Lfz6s609*Kmn%md9#p%{h}WEaSLN(kv=iM77gB2@D{32!EGav6NkU>brN*Na)D7BUbs zmzDD61{o}6YhCL>o8yvHW|}(i#4M36TmTISVoe%$VIF*{9trV$tej@Gfjn-A>PgI# zRUwCuu$cFcy9t>f^5~lYBM&dc$G>;aJ(s0pLKK!ODkTZdZ7tsb4Jp%4vaOA@n=L;?SeCXA0{V1Wj35al?CFE?NTa}k zLKiPIm;%q66OLAW^K4k#fzm5o4_izm_@}K8zK$hoX4O{&bIiV^&PmC zUW?cG%hZ(~X;9&dF@>MOFI0n%|2FXj-VS;mPP9HnQ_`v|xeqV2HNb*EuV)bu*Z&9w z+>b3iJxNPP$5rj^=qzppseAChJ33nHcH~OTLjRibq2`9B4txOSE}xC7(Nll#=s48f z%@z=D10Hr8YvsAYcZFc%hXFk$*y(2Ii`=w2 zA2+qM*?7=wps%kpR}A~i0Y+wbGUb78R3m}`#STHa$l~&V3T7*cR{WyOgz@*^!=Ma& z`-;lSvGVfHT(Q9@(1Hc)$b;Ek1V$AYq#{3G%eQFJkuG%U%zM-$7JE~j$zf_}DN?z+ z+pIckM^BZ;-`ft7zuo=#6Me;=4L&H6baOn^EYd2ttJ z706Qj??Gxh-cO4Xv56iW84@03HZ@b}=Pn~ul>$v@y6MeEBMeIa5cp;v7Z7!;^))ri zYifoIB_>j`ajAzmP9Wh=agAP3E`ZJuH4&@up)2t6FcI>5VQA?0WFq&f!NCs)2PZn6 zBP-%km$GO{qCS3FyV5D{-d8z4P3YLVGbGNYAk#hFy{a2(RF}|_o*TaT=9?T_*~(!j z|hM53(PNp!&x}k?jgoG%0@*j5%$m5eOe2q?AGZ0oj1EA$Hd}SORYO5$M zFD+}qgJ^a0`wec8E_e@--=b(I-V0&T^6Ki*Lb1spw1}MQu_$D>3=eu62#%xULDm2` z&KLd3o!#^)qRs>7l#7jeL3G!d_}|Nxb$nlrfBz2qi&~XjLiGU!v!E@}M(1@FfBNaC z{1IDo6J!o_V9Y;qP|SysTeJqc)!~>Dw%XIs(ZGeB7MAnMNj)5!&ceweCycBNX)FdS z!y&?Hv3P>skR?r5G07K_=qY1!;Qb%Dv~vl_)D0vSg3(RWq{YzFBTzalB*=7FMQhPG zz8*l~ujFXsz{|a(LmIbuOz66r1=}_*S~T-VG~D=ForxX%M96|6bOPQFq@NW)fDMxo zxr8h@7=jc{O#>H4V3yEEJ(p2X`*8l1?X&@`-IJwz&)i)i(yDp&*Iw6nJASH)O85f%UuOs*~mh0QA}4 z*@OT-R!wDnW#)UbFTl|m;175PZkN)o;l4aaqqacZnCDwstj-$_;Me>s;>!Hd99_P( zN)=L8zSH7aczmhIswi4H-r00=6!eHVa96MkjOba+rnsiv@@ChhQ z-5gNl0{^>U7ZWy@86rAxPv%lnO!sC$?pNk1gD={0+bi^pTdpds;YW&PiBg^AzFGobnoZ9rA7bl1b|T}7ST z2FfRZbQsa^aE^jVY&g)jSd4<^4GG3Ap4w(tk86q-b%{Mp+fc3?0H~#n??9oA%xdGV z>?~`wNCK1sQfZr?wMuus`|i89*({AF5QKh8Zz$85brs0ybTt?(=Jw}J&MJe!*f`#{ zuqobH(VEk>!6+|KyU$&O_)p|dkM%p4fZSBy(cwXhQ#noUk0G*a0B5-!;<_|5hfF6S zLPSKRyoHtj9|v8=B@0%7MA)_k=X0?gxnm^0o1HPsz6G~4mfF@d@|}tN$akbZ$K^LF zZU{8oaN^{CA}HH_@GV;M{I)j;v1-T#Gj0b9!^J@hJCJg!bZ{z_jGt8wfZb z>)!MP6a)8WY;A5ub-0Jxp=m$wA0?&+T*mhTLRYZC0)1}eHQM_c7yqyMgPeSs##*sFIh~NsQwZ>m!vjr zV1ai-L-2msv!4O4;lP4h7d)9tO2LkDqz1THx`;qP2EM}Y3SN4LW(PKqea?=qA-x2* zsGVic#yN}({wDT+&Y%YT{$hf{|9=K4X-}G}z5WXQ5xYY)BhZ;d{(Nj-}TR%7ECZA>f%ohAi2K;3SoX%P%U1R)A& zN(Y?@mjVd4JcUGHkcf;Txg7@k;@_gfZIz`E^fUvFaj^ciS~Jq&zrbui{AC!5vZo(k zQ?sbLdN5PF8jJ$Lj-g1%$=0p}27%o`FKD|~mapJx1+K6;=xZ=gGL@**$S8d>;OX-C z$fq`z>$KXcv+eqLiO#E!mnF~Zq$*x}Bj#*vv_cZBixwF|`*b`IfuI#)mjPPnO(BUy z!Q;^)vBc@yfj8S)q%V?#)Ham>^X%0G5lKB@FNlAoyS$q2#ot+Os()%R5P9#OI zwcmgU9rQgT@1Ppg80FS4TI42SyTDjnS$R@bRdNNIYI-x(N&sP0KB0N7tF2{eUg?~H z(7d=#01$Br|rtG88F*5T*gYHqIl1!Z(K8uXS{p3YKlG#Q(y z>%RZ~`@QpR!LhjlAQAzPa3TF#FVX2*X`*z7l_;wEsqz+E917j7+F*^CUe z-_P=$jtaN9e+{PQavmAt=WHkZlXf+o{85KK{qzoWF5Y-XU*G3aSxl%D)j)?8p6U`X zb|Zwz61zpT3IV0>Uwv&-72o9+%7LxzVfet-wmK~WUr;eduH!v%V@qF`$~gCkdCak3$$WuZD~<~seJ&xLG15sc`TZ|b5ADXg;nFXKJTr6YhogYyA62k+8far(Uc(2!aL`h3 zmqlu7c1rLsqgzhg5Eg(2LB+WjR6T4cHl21lBU0G}GCJ&%yB%xm0%~hXfl}fYtK*IK zz_Jy6TF{GE_&^AUFP2sG_S0rvegK%@VzI+lXSJ3`RWiF6Mjaf?vz2NB3SY1_z7moO znZ9)>7af}KAZFQuIh||Fi*sD_Jcz?@c)ter%+-x zw}rDzjwG=YY=}?L(PKggIB-H3)ifLK6U&pj1yJD0(Eii+p&Bi!d%wocvYmkO6hTng zT3Zj1dBYfB1kg7~$Ohp|WsB7^04HwOKZ(A_d>^_C_vKOx@PfB`d#|gJc}=yZz{+Z= z3e_XUl1k8vsuMUCRe>T|t*ppdS$+BSoj^}%yZkKt0d&xugr38t&y<&oySkRucpvB`2|=J^X_wnnIy>sZ3>gQ;#TFc7G&5#L!AZK4jmi_6S`VY|~dD3!WFl+@bq z(z^SsM%$pz;U2Vm9Yb`WQm&QLa_}m0HGX#2uBv~%`H0N6Ub`XEtA!|!6McpFjh|V3!fNyTp%w=1*8pCVVpkEd2sHa9$(})5 ziVFbg0IgqWERCDGjm44VslCoJ$&jS@^I@e`OHc4Tx}{6;cB0NlB|G|`eC5?8A}N3I z3(ww(?;r3^tld-w3M|snjjKivJICNXDa=7DJ7Mj#m%7KFJKFE?xDw+*SI+W)FR-%D zYOSp{I=w5-P5uGBFi8ayj6p4>u)efK-J6A zJ+(3pjhZ$%>er{5Hc8q-+Rur@tAoCLc8DBgoDjE=qshg%Y&Wcj5ASK>@bSzMOs^AU zqckiNEQSFVLl~k1nHu3s=#63gyTJgP&I3wy{u0rkFnKN7k59OMXy}$`ct%>zM%VyQnjAm7%Z@heM#v`lSIRzZnxKe{*Z zYJy&YlMhiX8~V{&DEM4wx00`fg}_U zOX}3c-Dd9gy4?n2mLTvcPi015bEAz0r)_Mb`* za7h>c)1133?*U&=#_ho(aVLfk$BOe*p#XU7Tzqmo}8O`CMJ^N}vF}V7ats7xJ-xRt)$&`CmpLS6P zsPl_k&N^w41;6e;>4s@B46j{u)1F)lk-H93lH@;sJ3UQ(KXVsV+8eM|opEAN;c?5H zi;ovepeQJ*Q56=26ewVHc3Caf-a1{d%c{}FN)EOuv@q&8$Ox2L^WXr_-oAZtJB%>0 zh_$te73JpkZ9{so)h@Fx**}8U4vq|>L9AII05QQ|gMMOmanu5~Gb?r?3qcMXG^`S+ zBlZpX5#e+jd3%fz&?&Ls8Oa7G?byh4j9eZ3247%xO*3Op=Ehr>D`faPw^s zKQ@fyf{};sy%suz!91exlebb2B-`|z)T^C%q>Z`)W`>Wn%hYlqrOH##BDo5CYidrc zuCBw+g4Tftkb;+JX9}fbQk1F)(65^TDq1*qEy$%4!oebEB;5)*N6R=Zp+j1~AmJc~ zkjP33(%m}{N5g2$)Jk3mlgd7W*A-;v$;(-F?R{fZ;?Om9=nJTC9FVbhv)Q1nGB}%HB1T7;A zNA{ZBE+ip@RrFHwchtV*wiW_qpd-m!sQZ)9w=gk**OFZypgv66hUoKVHc(fD!_%Qq z(Kqw9x@5bEWLv%K&HJH9&onlvdEoXRbhd7cKf*ugq)|4hZ!olqmHj z2HVUPrj~)k#DpQHZ&TPz_|E>ovegkjl*q$N$K^H8|NAttPAy#W#Gwo0=*FSa%YOdE zLc)Jq^o!f~qg#7MyRS;1U*IiQ>b2o~l}S}lNL^gb_;P~k7Iki3PV%5OcgUdwnN#YC z9A{mb4i-bK%8!;d9pA2&fWnKav}b9hFQ;ZnSD997cZijRO+=~13Wx6{)|g0B6$&Rb zY=v18Bw3#c4oVQF!iDrUbJYpfma$Hhy`*6Ip%oWW4MH7;yUF!Uu-V0I1VKKIoTPcM zwV$yI69OxGeW4*{=zt|jzD|9Vw6=iS%B5rlccXRq0^XQqG$yjyq_MurVn<7Zu2fss zg0G&M`c+ry)elY!ZOquuFG+Y;oVc@Gtk($2ckVbo4_`hpfz~%3GMlUPc0+BECV#}K zHI$XFZacRdorf=`7xW(1_M8_1**Zb)&O_zuaDl2p9gZO}zPLLWAFj~>467{e5E$|U zc8SPhk;;7G5*u)0UjutowX!^-cbW1`F!-)(AaZXUySm9{XRcTu;9z_%nct1S8 zglkcj!OT7ZPokGtZ<~rTDF#1`zbH7^?I2-e!|d z6N)Tprz!*S(R#fqpHY=|P^DE`CSPaiZH7vm{mAq5YxD@aX=-*NLRyNj66Bit*v(@l zC5TZqki}4h`b?jJID2SBStngatoS{yYc z>ULGU8s>tjyyAr-*Y2q)pwpa&cbrC@kvtLUCnw+RRM~~Sa7_+(t31jUSmN7TD{g#v zN@P}y-FH=D>irWG7SWcESK>8v&&=J_Gx#gi&>uDwEpv-BYJok$%hkn;^-)7v84~GD zwFZ;EejNYhwED98%kXDww5CeE(NG=IxN3|rBqtx8<&XAPYLr2Si8Tw0N>qxV+Spu+ zw=}}Z4;*>c$zrFg0P%UxH%v-NSruW%sl+m892HT!l6xp=eaWd8{H%$R2^-GYxB0zsea((# zVvl0sx)KKG<_Aa3VP&kmJ3lyPDp18LG|}c|cB!6{^}^S9^P-6@YqONm;33X_X?Rt(QCPJ1XIg28Gl9iETX6kUy3iuX?lb z{krq;cgyuKMa8Tu%hx+A^*Uocda+DbUS+AX)Ku37qJ0&xH43J%F$VjQqcOJBzy_F( zJe4`ooVHY2iL{FKY(yz?Gf*|oNLg@pWdY)yW68-Z%+%&khS?P*)&yR_(92GRvW*w9 zY~(To*lRM|IS24^G1)}7AQRr@BOpd!$VMW06BDndkMj-PN*B|@xNc~#xarX;sJM;Y ze|2K|gUyUhwDr@Kcr)EQbC_B{s2sNp5AO+ux13at6vDDCYw^c}gtTk5Nwg|HUVz@f z`F|cB{uNO41agx?k`qx)L$2f0>GPm%@ft@#PT9q`CQ$#4KdVH%^1RBElB+d<#u^Qk zc^X?>uhCbbCBA46EOC%5u`pV!gfnkws>X-vsK+`(_#5=+7B(gDGkiv$yECw83OYU2 zJa>1uYj>*`|MFq69U9+sDrs3)&{P1^pD0Ensy4I=+j*eR-UQ;l0w|=Kk30=-qdny| zOyD*`kdk*oI-1VBh<3uh1s4LR?E2Zbge-J`3xZj@5?0jvXx~R${^D3O>1-L{wK4|JF$79j(S`t4zn+0GQfFksNb3l3O~##Wc`A(Krc zCw<&U@r2V8MiVg!F!8LB?zyTw{#1^Df% z9F46+r`A`ZwSj1N8QfGx5vk|Jiq+gz#kbc}=W7G4l?I7NtSPJ{qFwA!7-o+G(fDo! z0a217tz-`XSIId5)%3#)9$xSZ?)vfp{tC>wfGLY;fDgjWO^ckwAuY-Z9#~X809Bf_ z1LF+uY<)iSarTI?_ZZF#>3}80BKVsWymSIjXc9l#dc>)dlcyklfB!xGx`t+f)*z`W zQ=ve$rL0g{uZWbo2Y8eaiZLLELJ6Ro8n9l9&zESSsv=OUg^W`w6(_gk`iCufmZ9<7 zz=%1|Jj?`EMM62#AbrrS_J{|Bt|w?lC^aj@dBytP{HZ*pRtaUItB{c1dd-r!xreZT z&!z55cFa9QDZ_K1x#Gr0CWR)&=zUjrO~1d1b)&2BCgMhEP2+)kAB@_oiqsOQ21=a) z_1zwIB&-c+3kx@#tc9N#AzCi9>%q_gQ#}!h11I#ElYl^;;t{E?2h8vL@NppGhxf{oG|8msVal;gj$`%h+Qp2yoQm#Ey{H z5BlwlcOe-7`Ri$*)N>gEv1|_w$i~`8CviguwJ)I=+B-rk)uOHEC+~aw|Ij1d=FxJV zMk_Arki$T}i|~y^wP8Iz-$qKhsG&!my@)J*~V_f3eJ=<6Lw^YV9 ztZ>#kmab3Uhkk=&RF!aYhhGHoxNXTB!il}ZHi;Q5!zn{?bgH`Vys*e<5(YL0T7Qne zJ}G{A*+)8ItVAXjAw)^-Fd$JNEGYPE#S`_fSDtrd!MH;gQ~R_fMP>(aK(%PtP&rzz zP=^_DZX<2<+cbQpP%E+LmwKNsboO*ROPziFt>v)82AC%K5IvA`95ikYvZG=Jv%-@=|gunT0%Zi|2P z(NhBhHx3MZoJio+)SJm%YEN=k(U4G|>lT_V5{FmCNAL72twL{pK&)VdNbY0!{)oVt z6L1JZF)dmUj_s?aC4#^}dvc~p;Sjfp>}Y?#%A=^4+diEXD|icO`R^#lr!>{SwAg^G zbp^XG>JS-aE$5zCJO0$L+#(!(X33ES(DNlTcbMH~T3ny3tV6-#yfSoV?Drp1Up)5M zW2anG8oCL;S9#Hu7gmW4dVYNGnR`p!TU8<`l?kL&p-1L+E-g@7g%Yzwpwi+#JN^}E_o!Z^T@0cxmqf0vgOnlsuUiXJQzm>d2*Rgsj4ayF*%?J zXI*`pRHKFcw}QubEwlgJaF(a&xmi*#(I+>Mo{LXDp-i9#*>%y|tOVR=38|JIrPTO5bTM9YE_D#*Mb8NVx*-H; zQMj&ctGMZrX`w|i`oL8~vq{i85;oGJn&;{st~-TM6)+lA!6_HzE}r&5vd?pMb-QDX zIjm7?i#Fa@S#`-Lm(Wei7O+5KURjlT0{OxKTq(vq}O}^Gqrq{qlJs}Y5 ztI)!3GSMb+w1`CEhL&o4X%&zmMMtR0{@Ga~n{lMRmVeYV3*N_SC zXM?%fk7eE4G=Nix&cG*nTO}G^2dzTedzDssjl_sU)W+nwb<~k0LR~QOQm;7Ykk8kHFE+r$Rn(A@lR^t7LKtbV-*eNBWtgOxHJzlNtpIkifMJPw?zN6|gF zOG^689_Z@2yt(Yaoe9VU`ft0qWA#f3#vvSfdGnXm_MxSq-Y<_#_r+qHN@W&N<(4>J zUuo-K7!jG|q493H11i00Ck#QL?kU}-V!U#V!sk&Nf=aczpuM854)H#?t>h$yI;2vn z!al|t(=z(ff$}}y!8|Nc4H*wN5gGV1ys07x}|ok9$rQm@I4XC#nNr5< zh4Mh*kq0OdAgbw(9yh4CfG39Ji-XNl`%d;=lQyQ@r&3*K&yVOT+k&)8BMSFRK=%3i zIA{`HQjT80#dk=(e-+UE%Sz26N}&`foKsr6T}uy{D>g0lOT9j6{+^uivEePl_|}AH zR9mEU=NcJ-%;}Jbybkny@^hJ5Zv=v$<;XoC9n{V?yAa(JGO4E@&M5(?NaqUS?URr& z(bS;s&91?GVMM-T;Y)#->ftn|j75dR*Sg17FtN?YB zhklIB%ko%46=zN-x$8-4T5!u0d_uFxJUED6~?Vd^Jz)jCv0b_aK43pleI=rL5K9!Lay`i{*}&DKW2Qw9vSe za1}u417EU_2aWfPD*^tB`g(jE=2MG#dmcM=xY!{z>MR3&QYEivNs+c8t_)U8?SJ-< zS*uepnvC^3mx5HkH)KsO4&il6qh54BR_fgzSQ`^N?S#u&iD`4Q?3HqEZP><-IR}^= zfFE1{8r@9BeSWxjG0q*-SGGbUomv#>=OGdPv_$Us9Xwt8MAWp9h%`k&i~RC4X-K1$ zu5qo!s-*-|=)lY>`l_r)2#h8J1J0G2h$0ZSs;I4Ge{YaE0kF++qNkGokZFxZc7G2; zn?HF5ed^~A0lMABJp&*dT;>d$$c<*3d!)&AOkYX%$>v;1^cMOOtG`*OGg}6#D7iuu z?vyDc$xr8Oo(}(?mvmx<(b;(O*$US?UM^Izk> zNMt0NSVlXup4B%xnbcvmxerP`YFK?a8F4n*K?ng>>Vj=%zJogx^hx)v5Ym+8cE>*qmcb>d>jvq=&E2B zRa#-BR|eWmSC7iP-y%S52UnI`&qQ1CnI)tq^#Cnbij~fVI=e$h*UfyG4^Ju3mTBQ3 zVZ_AK$-Ag~EoJMM_@q9cG;gP8Ea@EbtW~%jl0czNNo^h9FoAC)bLxa1J34?R5;gm* zPB@vwRFPp3>A9K_DDSfvZbq7C&gqrI)7Ltbx@K|fh zg9)zpJJ1Ner5FTfM{i(kf1{*=fn}v85y?)ZX3eC=Zqv~9Gi#`LrMs`k*5d3NLT6ga zHZ1ZH^P9J`U^FqhX%rtCa_`aMEhN5`Uvy^BD2;=mfpC&fb{_ z3ZdxaZmCo!M+bFf&3+K~5Qe&yNQ?ikM(+3{CFXZc7nwE?US0&9gEw8lQ)|Sk+%aO3 zLG(1>%aut5NL#EyNJaf+e4JkpJ#Mj2qSFanV^jWNQ`zy0e4K^$jV5#YU2DMx1)^|) zH<1f`GwA0DWhH*}AeO644qIwfo`$U^o|EIUr00AdB9-^pSf|lT`PUbNxk;J4PAy*WM(KlG?AoI3An4YHF zO{MGMIXuMEI7gDMgljt(qJp?fO`SlV<0j&0geJccJ)4|ifY?n;s~0iKj>6nb{%50rKa{h>?i)CpA)rATj^IaTIxNW?+T`f9-Xk|TWssMT{GgtNb# zRccS&RAPsSbxIe-vW!xUi-eAGD489lewIkw3$^V_Mir5m*y)rRs%{r?hTdpbVuyVvJva<$2c*9U4;l>>j(h;#nTqr)zTUifI4(WgN zq_lU$zhYy#%&RUreqsA)-ln~cQje-;=i0{c$i7<^iCwC(Yj!7>4Qk<#lZdLI6B-%t zvlVj3$CQxYv#7{CP1I;h3CMarSqfziM2rqCT^A@E?XW0w6#Dv}_x)wd`s`3jGq#L= z>h9US(5)_Dtcms1apdTyPKI|Z8R&N%2a*B77+CAg+|dVSmo(->k7GW>ST=yAtVgbg zernEI+aVz$ldQN_1DI4$2hW?X8neTEIEzLTddE?P(GqZ9WbFtNm13ZWC=TrYkx>{_ z6bkXng>A-2p1e;Q46hlHI%;A;2g#$TbYoof?JO53VK$ zG4g^owL&G5Dy3o`{%llTQtKB%9W>tOs_}K!sT)-_?fA5xd}b-A4#8Z~JHLdvq$UlI zrjVvc&4amJvffKRz3~Bc$NudhAs`>s58^wE?d|Q3av1uJe*4qUuoD{LZeoj{WF$fM z-Dcf0;mT+6lcF)gPfDfILSheTpX&G!BLh{cs%r86j%6J4ku}(MdvMf#@WdNX&fe z2NIG%Qv@2o5MZJlOKp`QY^-TGI~k>~F_x}d?B@=ce=HdqbRVxSge=yfrq;0sObkG{ z(3WF@d(GuenUbI8 z>I?E*l7%u~UPw1qF>uql(Pr&Mdp7!QxXXhOxX$9jC+f=MKM=`#w`8!dD*KyfIws8yp$NFUjn7XfSc<;2wS_ z(-}>y^&`@6pi%9!3)=)XH?Hp2!4xRS#)Ji3 z5R~IDBMR#?l#Jgv7|{=sY%GS>;-BrN0a;M`6IvoY^Zn>3PxS$Q=nu83kgWJcRPf7+ zEAii7Di^~LvqqTVaz~XNX!b^*sipymjb+C#gow{A&fl3kob;vEHUbgfw!}6_*`yFO z2>o{SWb$jNTCWG!=>@c#ghyP%Z;;h+<=ki=$TzSKg8-I*Uc;q>!H1wEKuQyWY#TODtw_ z$G7Z0Ok*#xM&eYaK{bx!L|m1dtFBXrLbP-FYcD-^U6m$B7TSFF z<=5Tt>84k2j)~1yS=D`?>_Ls>tjx(nHbXF$R{~ah{yYS50xL+gKQqT_lhNGuM<11A zRsq_8*s2i%*%~+~syUg*UD-661z-O0HfGF(t{dfZqbYXB`cA@0dj)5NGCS&~1Z* zPYm;gQnkn}6|4DB6oN^eOr8$PlQO&9uaY<&Voi=x!U$g>>~DQPc&>K*`vlk#lC_CK z9U@Rg`b$V|f0L5%+5it5CGlzrhxTQqqm&y)T0K4UjmE@-=0-{)kwzQ}=tZo7$~hmx zE-?(4rcNK}$KMQ7XB~A$1|VQ3Ik#Pv4%m;%RoUS2cJS<-!0YC+Hd1Wjgh57OAyc=8 zh+@JO0!(bSq%c3SbW9RAYjgiJEHc?ugrcgpYLUC&nCBJ`i(EOmqrSbr*d?+vTMlo( z1K_6koX`+L?g(T3BP}CngmI8m7fK1f%4T-T+(|f2I_er_`R0{D0i&S(i`RxMd5fp~ z4*$ZX_-o_(>(;t-5v6HtKh>4Im|B%(aY;%u=sHmoRuq&v)#(*FDy0zvq40M4FkB+8 znTqt6aLVj(jp~Sg4e2f+=WXr@nlBKV1CqnM@UO@4qeH)*oV*lWf>+}wvL0KC@!#|0 zj#o)S4@gBnvB9MzpWRDO0g4ErJ{}e?~z&L}3TcB`_+x%AQ%n_B* z*j`F0CB8vv56qT$ImGt>sw`v9UUmgKn5((Y)+7qz0=Ev%f&>QQzW54`u76*s8Fn;V*rmHOqYY{uRdq+F=F+_ElIoc#BQCqHJ$X6KOeGmbxi)j7+N~Mgxd7 z+&TFv7KXa3ByYIeT4CuL8Xptc8#j;h)jILOs&W(mKJ?-!{vd&0PN)m3JR~X!*69$1 zKQB^RpQhyy&xH*`Ty6^J`ffg(9B79~T(YRfT3caiHr3WswWqyy&6WWhj1U!@nwOpT zIMO6fC;pDQ%~-x^c>wYQY3LL{Y3Iogpn4#(<(S!nWU`ZkWQButa86(ng+#OsdS4gM zIYCeV2HxFv!^<1jZW_a%(ZX&iAN2B=W-EznM zpjTYeU7#1xaz?1ILSezC`2zZiPai=yji?Oz=3)?E_f|i)-ip1ao)`^A zcbtCe`OFC){JN72VrhN+_i*2=M{Y_LD}dFrARmqonIy|qkJoWw%pA~{j3CI0U`SL$ z@xjG$AFBooCG}|_=KnX_1B2VibO+R^QkLpgT)tGG(MiV6nO47R8s9e|G3rGN&ziKM zv3Tt@2fJZHO4qd);8Vs##z;V9w#eK$S|RwcEL7xc{9ROIc#5YIHV%gL2_p6vL4EkH zT>y%R7&ie$sPNDb&D{L$tudL^Dh^)$hqD8lesxJMu%qR%gKwXL7WONQ3OE=g7V0`0|o9X94NNCos`Pp=}7cASV z>;nme%40n}NmJRyhb$Gc)wFaa6yo6!k_D#&T(usWAK-px&h8z9+VZ9V0h_~J(3kVq zsKWjl1p)JD6#SMFA|+DYM0-i&F8Fpeu6DI02{1S0(DTmF@ij z2rET_&XzJww8mAhu9pS!a4(c#M9RP@9A}cr&PLUMuR9W+b=pE@FlJX%JHf~;86M{A z^4F|i7c&-aShv`NzA~-QvbBGEjMZN-Bkop$=RNb)^7Xx|BacEC!%RGO{q zdfrJN%0f8n*^HNyc-)+}mJzL12Ojrmd|*C|lZM44dyr)`=i7)m0UPBaP#cPl^TohA zQ3ouhzFee~6?CY;%t@6pz&iglrjAuOM0UF@(&ebOR~D-pn4-$5y!9v7Xv(&%3*$Gk z3dTaT0RPp-SbhWLsFsnap$GZ!+l6GX!HFya;~UeF(Dt6OF|}TJ*H>2#0qRME&abwZ zMLp$xmwtZpAw$i{>vDy9Ex+t${8ov+IHs-D$4l|ss={(xhrOZ%W*TRo-r=M_0fkAn zwxQu_8wY_MB9=fY=dt8BGL69qt8D{R<}SGMR;W$Z0+vh^z$RF|pmiXG3fUE`bQ+1t zl9?a}G(~PQK+DnmUjag!Y)W}lxcuK%pQ8Jw5G_&48Mjf_5hSoD`!H&y%l`4j&DQGsN35L^r&L;F1#@Av} zSvy)y;_juTa)lf~9*}p3&jTBDv_;m3|F0kYI{EuP>TNDFV{u1_&2#%*3rUf!z>*3{ zZ%fWb%nO-|Vf-RGqfy0N@n*;HuH$~4) z^h%eQI7$OS{mI!U98H!903V)v5B_t6Mg_;UW%WLh)haDc_)#7H8EPEk0mD(D@|p}S zKEVG2wMsb@RN+q0c&9M%HDtJ>Yb&gv(IXQm^fI9Vq?9H!k+?;rS3cRIa#;kOe3JvK zvN9kU;FDiCi8@ayu~eu00L<2@Yu>k|fOLse-d#C7%-xiP#;E4QPL*hBK=!2ao=ZQw zIr)B@Ed=w4G)6|s6FXc|5X+X8b`0g2t9Gm}pu|e$cZT59u*>cqn@0c4%A~wwK*;#d zxE!(f2cfx=<9wx67|48yHt3T&F+1M)@39#PfZ?my9sm++u%H8}ILv7rWa(L?n970~ zna;s9OZT<`ZACM5VKBmiPT{}sw?W1X>Vr?w=vB=GeTi$x^zJK;KftG3vv&&DQ3Mji~WUb7?s z^4r4DhRwzI<8~h(W|xBe7E_le)$=W-VVPSg5=v#V+!9(~_72$Xj$ybFq#8j;(zD@R zAuKi-<}polHs=DN$GF#QtDYIOLe4x{c7T}$88?!?N2F9n#X;XWr3`WH(c!Pk^de6I zRy<-zAR+#Dgaj^G;V(Ko0rG+{sOv>amHg{HUw{4k3B(i17^%W-&^7oeM(U|j$dp2f zT*^x>qLn%QO)?NgXmv~J_M>9oQ4g4JMWn(re>ITaZtx_m7TfUFu`5PLl^VgCOBR2O zfTEIP$eTq`)6=)v>LElXvsFZ5i~i$^)6}VxNMNbmFfPy;rHPfL2D)8Qx*{PqXa(cz zs+fy=`AWN~(_mGhP1EXNP}8RJI+Igbra=lB#-II+?IoTRaQB#@GlPzt3=9(&$eWRRd|iX4KTag3E?@e_i_KbH!QiGnhbOyoKxyUD^qA`8+@X*fDPS!1rT%|4B@ zl&rMLrWXM1;YIYh5^JM1*2-e0QBhdYU2CfsMaENq)=C`i$&il(ne$Yazk+u+Lx79K=s+r z((E7RUL%7Qpafngl zG6XnFo@yRkCHBuBac(k@E4rI7&IM%bO(!*$JcwSO;!70_Bbo-|t&o1YP^i)BwBjky zd)6v(3$#7guyy;~20cVtUlu4WfQ^vCDWs@o{7D?G!55!K3a1jYHleXvHMA{(XU6d( zlk`yUT|dA5G7ti~0!};YE7u|U4jkg*rHm?Xu-5zQ9G|zZ4C*j@*CnUGn z38?iTRJd*;l~a)wDyL6lnq{3rqYea9M0(kk(kUm$gN(NCClDJP5iPWImGd%;Q()Zk zfOG0E*07inS+pNXznopDXU8Sb_a7`O$pfP+r&STH&{|m{3YC}Vi^?0VPW0#mWdCH; zhqWy zs;NWCf1vyD+e5HPXQ1C3DmE_!OTKEgDJ)gSfmsn zwZm-ABnF}%AvT)W{w7XDxf7Nu1*?(dh!~l9R%X6je(v?+w`)93agWI1#)r{YSfM6_ z^a9G5{L|Zu7GcxiEUIDr7XQnY%HIKj?IcI0n2=RrT4^SUL=LOHx!&wFH?~lM@h`^k zbECj93elac(S~yZ6b>K6+yn0Q@c21Jkejo$8ps&kvbh;|y z3QUy*ZXIwFtQO6jj1jQKoI&?y$VPHY0DmX6Z8X$8(6V=`e<5XF_u8XZY^>IX^OP20 zS-rVs_o0_RiN=6TUal*~%RR#vYzV0H7}v5>@C}5`EHVd-=t<0n;F+KncBp*K7M4jH z6=8C4166^0mnskuc$yVgA%}^Bc35Q#a_KS_7~Ubl!JLCcT|YhjtqX5DGHNe`$>iz(N|9MhP(aC?ICq~i1(d5Y^^wy(%P`_&ttPh(f%Ox=h5ef|1cK+kF{?v&~gY7m;`-X?R&N_ z>Zp(}{gjzaobyEFxmoK0&zwf)fA}eXpumrwoSyy-5u5KMNo5GVuo!<$O5L-JxeRFh zg9Uy1oaCpdbqw2v(TR8zdaQ4Shtt7hzM1i+hB@?LP_bc8F8tucqawhBAq9ZgEIm#Z z1{uvlOFv`|Gme5fd1T}bib?)`oapEyT3g$br^=D#cU9}Rw&?2yqC%rtS~yULr?Q>t z_xK;+OCJIcQP-OfbxojJmXj21t}pGJSxCJ%iZ>5Y%HhM8$7DfO#Vt=SR4P~e>Xr(K zqeQXG??WwF?$kGy%uTr0s3Sl`0yDY3@5KIj-KhgkJ9n{(hj6jg-%3C!8X;I^Lk(zR zn{AQTv*aw;Z{kDA)Q%sqJQ+9_JxJt?(8f`n**sE1YsBF`g+hYw?(UAf^2({F;u{8Z z<;?*Kx)gz1{4e~CM`3*m%9M=*5&ZxeqZJ`I!bt=!W4vQphh0Z2hKrN2+&rL7YvNkM z{g+cVTmxq7^p20vNLB^~KGQSk28sj&6bUtSJdg|ul*vTmfD8HnzLjYKs1dWozx0*h z(oW(u$hgVu3qejx`f8JNPi_a-0;qDKc`E$WomqxV42m*;$(1`^B;n&o1WJ(*5fl@Y ziaKZg<75CTDglYa%fU1JiDm#9^bT45DP%B39d!*SUH#6*X*))!qhEaUO*`I7O%5g3 z4bfFISHS#233;@qlV7VXcDMzkAB9LD^D~luL;{)X*h#TGj;<2Li5dbt8Wi)hWUR9y z%>Q~H(A(%bd~X8n7?5eTrI0?0%sC>V0M}Cm$=AOh8j22?dR8|Q8twQtJjfQ`NGU(3 zPWN}5%w?>P(=q`lvgo@=Eh<6=&ToOJ33^0Hd}-65U-yID!Oi$SyI(5hsl!lgaI*2fkIcfJ0 z_#N7OG@?i!Jo|@mUP$S>b*#|XMFxZxv1E{K6iOaJjv7O>KwdA;D|}!W@%5qZYDqv{ z-kzhPyNyG;M5018z#C;wyReuz zar~naLwPA!u~k$Ktoi9nkKWj%_DgH7xciA`=+mq3J;NuqIb`AQJi8-*bd)#ld-2jj znbR%`>^`zN`MDG;c}JmzJa3^UwbkhWNX`aRr4+qS31o>P7;rX%qk2EMZ7v01E=_P2 zn1l?qsn%w|m|z8`O-11_as*cQ*$wkIZOfT+C_nS^=H6moke6sRSrYYJahlL#lb&{d zNt>kxy29!UCOLndO`?G6ETGC$Tk@?Hy(JcE&c>cUrC&J|E;e)r3!!1O)r%0ogm!Rp zrC9A|BN8G}+n>yn3)-U*BWRd_6quhHot&F!l0Q%1n-YW6V+2BT|KM>CS%db`LHcKU z$s@M5TBTjk)E82n{t=14IR}1@x);Mi;46e#e7Y3&d1WG(1Jo02cw!m%rn+umhRJ;% znK<78H`GlsjmeY-DxR6S9Oo(OGL2^DUe7x3=iBzVMcwAbi{S*JzdeM`m8In8OXwdK z(f6|sLm6Cl?-a?MP}Kn^wG7~55Lz%^2DC>rybOLId5knqP~ik{pIYFkyqv!wt1d`U zGrpy)!-@L+{CA<;N#!wQf7G7TMThTk=40aPne|b>X-m!C{ASV&f?g1-wU9>^(Jv>e zA(Q$MdQ&#F3ndju?P60j^EBS`^GGVfv8!TS#jz`S-Lb#jkl;uEGp{S9`pHpJAgS@e zoLU_zHmIjS3}L}4d~A@C!?UCuxUgpH8~hF&MlwdHX%}cIOYX#MCC2CsMwCZo4+Of7*RDo+lJs{Ojn}W zk2326e*0rQcVgli=6DHd&V}T6i|8A1`nT+k?hE>_oQ{qK{6I&?_N&aILsqm7%t&wH zE{NVV&Xpx^fSUHN+-105Qy&zCdUM+}dI$-5A{(?^k5V~k+HCMi9T3QNTe?1RAStYd#KQumOE+f;>1u z&Pa}NA0ImcE{`0bLza|!?^fzge^M80SR}ioSj*YZG}Btb$4Oxn$MJr??U{1i*@?u> zsMjHAix4J%i_^!W^q=Fp+IBy(a*Gy9lJsL>O#KLMSUj5Jm}5|lqQ!G?XG;z0NxRR^ zw;X$ejKzO62?iTO5Q=y`|6OYxu%cw_lZWETqA~Xp_~gKfQm0u_P=tv^X1@_s!FhU@ zCtZcTa@-@WV!9qchO-_jzKfY_D)SyPwm*C$m~K))Qx3JcGR=vqN~6h8Xk^c?b83k^ zs4w5GRXAUP0TSkqFGhZ86*+~TN6y25t2kIMPjVBAGM@x+U0?X%G!Vj8KwyMb-m|#M zEJ|n_7d6T(KxjGHMT@dj#;^@$*%JVB`qPu^jJ){5DY7E*8|CtcTSOWS%vN{NSL*kk zb;b@binoXh*KgZ?Qu!Stmuz;!e^$}>yGv-4!K7JgWb`7vo4+m{!lFX+2ykFd$r<}o zr&@|Nk=h^`@6oJkb-oqNIqtw|0Xk3oDj=^fqkma+Xqm#Hj7c(u*4pY;v4FyOA zE4{F2B3YLu610TSs6NHpJTWjEED74{>H&a&peD`L>sV zpY3p&I-i{gz#>E{7>C;|18$kHG);?4YH|q5|J^O7a70&>s6+CS*{u{_9zOq1t;(C=(248`5>5Mii%G;H@UsiSY2CbXms=s5!1w<^6hQrB6H6+VL><% zA8+MBwZQxVSfKQ`HQ>fu2N&{_`IKZRHZBdVJsy5c{*j!AcDh-h& z&-aDEt65tPt(Z{yCCc{lJ^4#lbZAGftrY2jf42X7{nmttyp-LNF-l~1OBSa`7zCM3 zi3C|FYsoUaVJ8eIyI>xSg2-tcQZnu^WF=wghE;2h=NlfB>A>m~X+6bP2Y0vJ@@MXm ziwDF^kw<<-4lVw8vI)yP4I0DxVumL0<~K_#E7hOH1yb-|6G&}hV6ICXFqAh70|8|c z^dAjSBf-&7I?6#a_j@p;cms`21C-71w%fSg~IlcDcC|@0m z?WowcxljzINx`Yb1t-%#n1BzV4#EV|TplFs+)ev-_!3FiD1u{3f5fWcPQ~KsAie`) zXUGBsU$GjwrFf#;0ZfQ~&@*V^94&x_%+{5n4Jl)tG;l<_v{hQ~E9O{#4H01$64a`BI zg1$4L2#@zd_-@;PUv?u9QH3(YsL5%f$uUh?gBP#rP>bQG@4HmCy8&=-94It&fAmoi ziU2m^!K@C&v{;+<)q9!^)5$rauNn9bn5PDD>83 z;R<+|XJmiK1iFX+Q96)Ok#>to4ceKdb{ihS=^Azp9Am6WdsDJyo_}b8TN|E6_Vv$^ zBS=MfYhvOV@?&~sf?Sc1>-04NPAM|NswT%qwAC=y0|{HWSMo7E7FIZ)gw5GLT4EeP zie)7dPXThY6v?M0MKp>ORJAV-6bJ6bggzPKhT`-Z*jtC3LAfkXSB8XdBIj<+>d(B3 zlA)M)Ih62B1CL!QSLAf|+x?DVM5>$;Nuh^4noQ~(F6OI!A5cw40FA>#IKn)Jk(ibW zOgsmfIvGYdf-I>keAY&l*)P_>fed~eY^k#8IWx|TS+D)K-0KpV^60&P|${H;5ltDRC=M0TG;tk#G)RjD@5 zR1y~X!ah-?QopU22fF3}R0CxBh{10Y#Pcj(`l~wE!VZ0-zO{$Qrb^E{x?OB{N_RYP zX7cQ8y)|&SD>T-}fZEeO5;08R1B#@mJ>XoLDK)q)$v52^V@rd~kk=RWnd&RZ)9UiA z8-wQ1nk_nW(W>P^OJMmL5^dI3R2aGq)zv=rL-gsdmtgH2`a78l)83M40Cs{!ucH7SAZ4OT z${+x6ilGOFiIcw=&`5;V;Rr|CB?dXqQp*C&UI|AJxVgW*fniX3%1sOlZqzQL7BS7` z<5@kOmUdtz0&yp)G2Yxp`0glL*Q8xNKxY|LI*x)^yJfftt~y3wfmI>*Axc1YE0m3L zr)r_xB>qh-_WYRGROA;!2$L_U7nb30j!dXjHI8l9FA+NxvG1-oQ}?DT7pr`-?>t{a zAL7BRLFH%WH<>eo5mgzb+l$s=jM9zTDRNgd$}6h22DSb*ky~L0*y)#b`!C#AEz)Z8 zDt4Z>tI|9+#_P|1>C!@Vk=%R61DnH3ZrtHfL^O?mKS=A@^8l{#bIE_ob!HP3cP?Ok zyfFhY;P?uM^c{?RhLv(Q$dJ7ep?ATP0*c)X+>lv!WtyZ{Gk-GCJq*uKm{{NPmbEXeHc)Trvc8}?r@AaW>rF50uqMqdu> zy<<5}D^?yp3&sRb)20H>ll<+wOP1gog5VhkIEAOVCX&9WdkT;i1O&N7$xmW(k4Gld zyY%E|SXyYu$02!W*YbrXb+J<0GQPUrx^P#*EU`J{j#Usmw0V4T9Bf3i5N&{a6VdP4 zy_vGuLE>XSkb}1_*fD3lvaYXrN?8v34!qMCRt5W1Q~|pb3?~Ki)3;$a15mLbweGmw zcW1r0vbXRD zDco#RahXK^`%=N@*qfI;%Nr- z2B(YCqCG|NWJ%NwY+_j8G>AtJ$xy}u`|R=L=UTgyw~wxjEga-j^on?Raop{VPoHC# z^enAWsb!$b*TFHx@k05M6%nbXvigBbzFsh`b&7pO z0jW+a=2T_cJWE-j$Q24Yg_X5NlHXIXa!q-jRuWkB#jJ3OHCs<%`HK> z&8}?8Aoug}lO{l+dIcG`?f=K~eKPR9Xnp86^iKMkS*fi?3Rq{q(^wfH1s&#+0*x}D z)D)F);<>llaV{fsRfGs<9GRn6&m0KVFv}d7v$>B)9Ff_rlRK6NTH89c{aG}^h?N+pkxg2TOfPa6_$?8L>A0Q~B){58RP>(&|FWn3o@bVm z#XmgK{ZEFV1tzo(hZX^#8Jh!u6blo+lc0wPSHb+Aotz&e&*1hQdxYOKc}jG5^bkf% zjmu32@kxLw3ek-5aVi1!l8qgTM;N6i1u#3HzDk*Nrc_reQhN?xTKt7Ojj_OCPo+Ko zG9$=pTmV>-{{R{wX)JY)YS<_jW+p%gISVm$_Qg*rO$gMeBg4lIJr+HGzMMX>X2P0 zdH0%Yb`5btFat2_RAqJ|lbAyiome2sBXn#`2aZ+jf%GW<@Nb{SdIa!=hW@a==gTk4 zNjrUFn*b*DGOK>X=CkqnZcDQ|M&SNC(axO>Fgz4xwH-a9rlWRa{pyGO24fEyFhmuSGBKvK7JB{|z%w{>+u z1{YoNzF;gFiFt7{&un(q$9Bi)gAC?DqU@toWC90LIWYF_;Gbth6$5kc%r&ywnA-E$ zbiw_O8T{*Q{}Xy5O6h2K*?#6`4)XnlkbjpeN49rxm`A4a0eQqh!&# zN_B^Ea9x`e4ylfH1D0RlB+=Jz%ohy{{bVYkaM+Z+3X3UuUiP%@kDvQB)*nNjb!W81 zG>DK}Iq9a4?h-)$A=nE7pkvo^FU8-Y2W$82-L`HoL_(ry{iX z=0%oiP9w10(NXIk{fjzA=M%VvASDR)dAjCN`G@j{eV)Z zYY0KSpQ}_N5#2$;^etyMYLI$Ga_L`SJOVwOAlmv*xiGsYoo3)fEq$Y zMs8DdSBx`^9ea;IDbF3*xUsZnS7mWGJWr12RE26}aY>4;k(0WD6B9#r`m^yu?a24e zj;Q>yz$q7#>yjEbK+Gad1wzacUKkAsiq|aj=dWCwY>}9Ow~8-83UI@d-w7^?FR{14 z%;?WOfJ!WfxTO=J@i+xy9Tv2~fn8IPdn`fX1S~9DRD2Bipbbrf$C;xmoXU!33YOH* z&0YyPXBGV8nYUwRu1;8>Glq}I(V zwW9n6^`E~iliTixu#l$yLVX;Rd7nk_v^pJ&5mkO%YqM#&CrSq^-ilv+QcJK*t`k%@ z7zfY${*bF}Ri71$Hhpu9{$`}$pE`*mTp-otRW+Kmg@I2xw@!9i){Z4AFPcN7*i}%IisTgm@*^r_Zmrm(+{0%0z)=UV1FexWb$1VlpurSw zb`Y9^_tK~`yhLm@*@|YM`V8KW_4`guu?WHXRn0_C3o2hhh7r4MJe!0Vwgm zP%~!^4e}5q58NV=j6LNL3NG?D%cNrZ-bWuP8XEHNyKmbz+LqZTLl=Rc1r(^jFW>g6+Q1iLhj~*ST zx130)$q>E!f;hi+&OmeAw;4Yu@=;S%^qD*S5p?in8V(z%818`&di1u)mr#2!v7V$Gv++&9Uu3*Ob@P?@I4FPX% zQ2E>*^Dfb&MVnR4tIj!R0-%88K}ap3uRxsN&mD~1SqjI!9F_rbx?6Hu_5cuKTH)A0 zv^i@*P$;d9%Y^DE{52zDbX6X7=1i3>Xw@BGa#cRWhOd9Co+JCn&u zq@(`bXbQG;w>i6fbSVxzz zy@K=6`>7t-l=fXwa0tJgw;cNoydHWm=Ksl@Md|@oWdbmb+$Ea7<%4q;FT8BwOIk!# z!*EcI2Tx*1rSaqp{aELc2G|6E1l6QzUn3D?0@$xtvp% z>4f(B3Q2K8L$SD}+rE%=!uk3ax?&_o+9#BsctH_S?9VIib%G_+atl_fvjI!6D@opAf@pC&JoyPOiS*G*nPBLo}lCku-^ zPl+H>mr)t;qB~$WP0lfvm~TJj+)f$vooyW$muC7%*3z(SIp**++Ys?p7Y?bw_!_5g z`3?5FpVTT$*FkGh(;3vYz58wuF|(Bb>jK@q-{Q59b#pt$W9KH(8qHKs0#Y~!dY3`{IVi)Fir;IM0RW$dCoNO-CYH+Z^gb1XLL2~S?g1T zb>ZEYbdw({R~&5?X~5&;)^oC^pU6&4+s0LZDeC;9Bdk;JOb3xEVJeT#as4b9H|0=( z)1UM*RWo-2Jj8>rI5h|`vJL_MB-`>C8VT&OSx*feM%tbayg`$XvFqi_IBjGR#86c!H=M2OA=#e-N0($*7CT1Ei^nx<@7!0UE|B>*e`k{ZP@%<`+dPxJI$v%S_&Swpy$B+ArSf1I z@3hoxUgpQieBmC*>!=#@EQNNN9j)l2LhnMiDG3;sJ(2uUXLmsjfdI#AGpHmAqP%mE z$(`8UwZWR>t%~g&-Y^J`@hKXA>M4kzlc?va8SV=J2Nz`P&Ayklt-tLo;Zu7YL69m& z)IxR`1HplFoJyN`7do?gAs!m*;tQms_(Ie0sBt_kd7k_0}TJC{Er)i*2H+1Y+2n{<< z#QRQN5Y^f2x_97_2$lH?Nw7%is`iYAaEdLAe=yG7J^70vGLU?f^m4)*es=)qUJCzt zFYMdD=JZYrk-EV#X!O7?^4Wme3aNx)mDpf&86mDB031I_$$k*A)DOE?X(EaMk^~n= zPmR+bVFM?t%qN%8Dz(LKB@at17BL^PsKz(f2^791-)|!jVg`5=Qk*kJoLD0J8K8#- zN~^$+Y7?|}S@#^0VP_r#k2L_EK^c!$Q0e7k02|ZfBcW^7%>x;;GhJKe4aq60SjEJy zypmB8CU4O&xwx(I+MD}1wYX;M=H+xRzAkS}Of2bgG}mbQRaK4jjl2r7p5s@8)3Qwh z-E*GYq7vFY9_56ww!xt_Yv{+RCS?jrXng=uqW)w<(MJhR?e;01Pjga1N37I{wbe{! z&m(ctKcI8!gb>^%ROk$}BMwl|uKj_+RZIMl{N-zZHvnXpawWvEO2xdy348&YK^AH2 z3p%UTEe&uIm0BlrJ0zHk@@(=Gl&15p$wm0G97%ZB0q`0ucc|f2>U03HYjRjPMRpW|%nBMQh;fYQhxNH(hQso*h|b08gGvgMxkH71RZQ;wLL z2f~POR8Nqdt%aMnS4-ULs_mO@N+>jqIwjE-X!5j$MT6BP^gXbndgISam(rS;uBI(z zZ`Z4Q|5K;R{s_P#ts}*Tj?X`@#lHAtw(IlbI-5;L^1C$&e$dpuZ)>5{<(5``&)izG zYTTvBmpS8WmeX@hsz{eyn^)gv57oaKyO*xw4`v3;nV)q)DZ=`Nc6}TSE)9_`gcDDP{R{@+3aC@d!JLhnj|IVCk z_CCXG^K&OB4+Ar~uME}Ne@~QNyF_R-OB>gYbvUNhRf^RLLG4M)y|g@frB_BSVVC4v2+8nA*=n()V1Bv@+j@5c2#qxH%pzg_c#Orvt;JU!PiKLX`5LAa zoNV)DHW-ZI(x!(d*p7(1F>}r8it^k`F>4RPzmF|=_BlWfBcM;Nl7xx_qF#w7;FEvV zttc!pf}4w>q>zk8tFJmTA%ywb#2pvWOB-rW+p{6q>RY?}^y?>;23>t2r;*r-#Y$R` zRfkCaa?G!^{}6U$+gQZ7kSzFmK`k~Hry}QAo!*nzM$6?5-3^LnQ(IS)4nEs-+^zCT zZ9{P`;Tbq%bw1jHxu&)S>WmGot+q~kYiIMbRO0eWB|=REkToUWI(L%-T@bTLV3Ven zea4WwhV+#=%-pP{0v+I7if4%`x%mg1~eiy)vgzLyQF@U@|OPRG( zp`ti$r*i&rMR1@+WU@%>yS%a+<6=b~l!OuqPt=7vfiB-8Fj(|LUr0@#?8d;*evv0c z#_F8SRjMWxn4z5JU0h}jMT6wW1I9>^zD^eoCWo?j?VrBL-nGeOEvlZfSDf#q(|s53 zJ+TCCc42tMmfdaSwqt*Fse#lZ*MohM*H~N5brd){TCEXFM>qXTt+BSo)MBcy59?b! z9i9#c`Kr?0)nWc~wmZRX`F(V9mt^3%V@EInhzIH+z~Ys%k!^J0-g#-DJ{x#67NI7cfF zbYMt5n`5vFDJvI49Nurv9p^>hCFTf*ohAu#`0w zPyis@k~yQHyZNTBWaj$fHZ8JrPd7?~s@hnS?yvOsM4?jGJC^Rgs9)?-b)CH}VWy9D zT5HQyJ*tx0KBAzXOt$}Ha`Nj1kVf`A@ISJ$x#m?ffICZ0%n?7Js^7M$MCFr&R;+4; z#j-EC;mlSc&A*bczU_TRZV}V{~wwa4|3Rmn!j%96Tcr5=Jzu>MM9Uc57rJooy_1Z|OS>l#!eJ-$LO<0R0 z!HSBo%wm=Es#1W+>MA6KwRMG}`gYrn2}{R72>fQH4Xf>>i#|pmubtkKbu`N``V#z7 zUWFbTvoyv~hs*pLa~#h#^ceZ=*qETeH_&ZUxFx3MX6s!PkW+n4wM-}I7;>8$YQXZc zWzWU}3EUkuH_^J=#^}S`imbCZCBR(?KwN$ah~K^m;y@4ASD?K@@bu937Dv+mh zW=h(qgU$=kS{@yZZg#G|cmlIurZ3y*KNgQXbpXWk(n}vYV^klK#w3Arx~w&&%05M; z>fNZJs@{%;U!Wg%^k&FY1q1>dizd(|bQ|pGl(Q9^YM_=tVh5H5uvFAmmz|d+UR!+g zZZ9g}!WTTW!DPJsqlFTvN7~-u0zO-Zxxmu%o1k}Oz!`B4jW4tpE*f=%-Lp8fi5(pG z!mJ-_G!;0`1)v70g98~AVySi*cQq^++t2KT$QUn!cnPZuC@eDMYSerHaHLF;0x}to zSz9^>yU03rW*^OA@M#ym?;YQi~Y{IaF0Nb6{s)M6BMujw{@)LXbDRAp(X`68hU zh!=}I8)Tm6ff5Y1&JYU;JVNkyNPrARM-L2Ws+zocN{y(XOa8a7!*V;jG$+e|S_RsK zGRX3M@Kl_+WE{u1+hfJH{_{@;-vNiD`i|0xJFeUn5?k!@mZ$!{Z=yat<%*b^TFE-I zXT)K*M~~ew=IVxQHk;q56au0y7Fi*7@C3RX`!oK#Sz8?3R3cFi#5$?KHX>WzkrV5L z(waN@C;1_ExR^kj9D)ux<)(rOVrdkVAqlA|1Uw8_w^^!1>RANw2>`5@Ra2zvyKgK` zIPwbaRx6>D;}c?2*ekZ%WQ8Hw(16+j919!KCyd3~CYeEhe@yKZCqxbk08cd|wur(# zl0SX!gFM;K3$YX4p)?-?kfDBIP%p?scVc(k7O;^|;-q2piW^EcpS&p|)@cN_`_HW* z8mq0%Y&Un5TZ4mk3(S~avRa!>ZgWSe4MPJk#524n5M42TN|YXodsae-XFdQvsSITp zmcE$$5RrHg!$7I_GM{bORl#UR%b7=08|xcVUJD4_g$G_?ZDdJ2ZUh z0X~lwl=u+%AizMl@AEPbV^%$aKLbjGt3U(_IwRO_!4^FjlvJp#&*s4i5-S18G(h!b zh|la5fMX))xL6b|Lv z7^E%FiXe-5PlnkdvjN+Ty3#wP7OPO~3|qlXPOG*#9o%N0cXYs6;2erR9HXDm*9}r_ zZJkIdOl=ce`g(ckF?U3bbJJrcBoX>gOCjAppsQ;3 zb80odhmXEwQW>v-eO29=uWS9oABr)vdM$vkB879 zTA}jFim&@oMCx!$^PGA~aZ6u72m!krr+vIwsT6gahQ#DrbL}QzUVA)njTMZe#(jmh zSdm`}bis^uj!7gf_Mu+c;BrBEWrqIX36O7Pra(nGSwidCMa1+zc$8%hxLIgs=Iw)K z0iWZ4aq-MT2ZuQEButZ4Tz>K$vU|C8%Y*w6nA&l08GW?%U{O#TocJ3aY0*~D# z68|;ElA@quvA&_zL3c;Bl{n|sio;#n55ItKp9gE;9P#E}MHY`A}f_`c0*Zo@*|t z<^UsPJZqnar`+sH;dj{^^Ivqm6#XAa1x({HMdnd`@1{PP zNiP~YvEM{A4Yrn6TZy%~k**Sl-{JUyCDm3jo8s7~5lE%K#e}BxP+0j9{hB4c)uIC? zlm@E8oF@N_1it5GgcIwcXUHtJ4le!jhf~9T#lf&HS2QwxcXo80>PnGP-MtRDrId={a`j5w1 zV4YKI%mGmhr6~*~K%!s9s8)yS6;NWO&Mcm7ZC-T!ptiEvhr{2(ZrxLFL_Yt#7+ua_ zm%(9Tk6K~kt8g3^^8G_z&VKZ$``GaE0s52o-xt;uO%EEI4Fi)0mC6!v^q$pb3#+(; zF-?7L=0zu9fkue#7$t`*kOw62afeK z83AcRDa)kIHroC#j?FTr@#AiNUN^zztaM zfnWe!L!pa$re?k(Q6EOX|HiSP3>6e)$)l+V&dw9QIC@17i%T z%>tl$Jib|=)k}aPlVHTre)<_Q6%UQ?x-*fe9T~Ap*6i!is4xkD)4_GdLH)Lkd-soP!X!AzXr#Txts{jR#o-AjAMx0om&CD7i2OYhB@kEFq&;Bzr!QH=MV< z*50nG*S01P;*1^gS=kW1&y0g`i5nwCeX*oB1{Y4zEa!~;X!Nt8CBx*lk>nfP-sJD> zz_k)+N+IM{!8g+@lRxDmq@@UAfy?#P$8JONjL7UYf(q!flvdjWM9yENcdL%YTZ8}( zM5k)Jo>(*x_MNy}8PLQIz>GJGAYJtZ;U@@8ZJ^wX@Tqxu=4#3+*5HR&^TWQCR-KS5 zxN!2V_ok;cZLY-XDv?cIzI^P9VPnM5qOe)$S)KX+8o1{B0~4#?NLCcz1httNN5+xKq` z=qt4DWhat;Pk52r0l<>P9h~;~JWIcypznpoM>@=ku*N>LXnBOo%dotlg2JsC^=?ET z|19%CV8qL60yEiP3UIo)7aU&(*p=^FPy{O)1zl+LN*LI4{r{KurucZukN!{D28NZw4Ym;e28>UauS`{ zp_IxvWk@41hkf4ie2ZF?Yz~bX+m(^()7w-Ilb}mrwB9f-5Gr_`0s9{gn9Kq_MCm$g zVt+tEx*7!Y0 zqfhB%L|auO1+7(|oe)E50Wq800}E|dTTefyNVQX_hdV8pNS2SeN1*k01k5UK1Kyu|oZf*mjT=CCcF%}c<>M&$7d z@rB^A+(;t`kS1AfG=cwlIkZCXU{PZe2nGT^FX9T-)n|>UimF^F)%4fepZ=LqZMa3C z7S{I^=(<1rFn|Ql)wtu8zL?c(BPWtaXwNg_;8xq*hvK0j|BElB>FjHBU9p3kmm9$!|X z>ALW=a&#~d_Lzpn8=zXG9b`?MxXndt19od$SMpS+&ZOqSAjjuZfUdw~(Kub@wuzz! zP<`5gJCc$FU`?$84tfDp)!88pU?jf^k1hDBsoPF>Y}GDu=8< zQ}x=}D|pq;@9zny3l)xy*DRCJ735{gaT*kGziMJN&0}k;pm>!Tj zqLy0ALbcxmAnyM}BO{NGE*T{cP9}fO?N5H-EkGxv3b;$f621}`}v$U&xuGc0fX^p^O6w94vX4adFh>s`z zqwaNZ5yFfoH8D7Pq-4d?gjW?-*n5YE{J*Q$6qo2b^yOt-fEGZ)-)Y?S-q2Ei(9+aW zXDeCavznXR+UV=a%fv>5Q0fEC-u=|3clzA0rfBtvsoohzjV_%ef|JT-h>BRy2JGd0 z{DQt24^dWGR6vxuPg9ZeDj&bzIea9}g~TlQx`@0&D+u`+Ee@fg_)nw4#X=gGGifYR z*!&7BKZStiAq(`?`V#I|iCv}oD*-f_MPg3=!#L!4yJC^6>V4hkCv z?xkiebJLvVP(mC9mR9y8F=dt4l9rL=_GR;b%9#tFksM)_aLX|UZ(2!k6}X5sLR_j2 z<5FR~U8c7G2x_QyaBQAN?N|}&LC(xWYY%HGEtNdGWXa2@$}HrXl25mhpU}z^C}hAv z4hi3Ht~(K^%0P!NIvuFpkdm5h2?m_axvm{>B&{T`#pnwO;vVPv4jdSvFTnYPHeq+q zJp3^9PYr1}pTigA6V1llW#fz>!2^O7zBpLE;xB}eXI{0OZ8Dp| znpK|8;sWHB?|+}%d+&Q6fBefaUMN;b6?VO*(oWY4X7Y_PMmx@8!UM7?Fcf2iV>8V7cM9rxL|-xMx&5dbmQ9>^sDrc zGevX|qRNRRvd(>P97z73!e3xm=xMd^p5zqRS)R&U=smsPyY4&9a)-F?+)FNLCDH!@ zL4cPI9kVgk8DBaJI5(lM7#g%;uH`f%2Bu%Q<9qzf`5uG~hP`dpiI%g>v+ru=6wKjg zZ~%D2Rg0FdTn@^a`JgFx9QxGx@^4{5F-scJm02jj2b}uUd)y7T z0~_hFlZ(BZutVA6rCTkw5i|H|idHdm(#^Yigp!--k~l_BECwa|jS)<>`C{^s#fz_< zk~#B@VwY3yiJ)oKjEjnrEfz@9YY@*n1@Sz{*M{Rwgme{!V+uQZ?*7=tG5SahhIRWP zk@0Q*25>pKTvNAoWk94>=T%+3@%V+gZOpqIZS0EeD!4!#5|P_QUQYf)rZE^<=YE7i zqO(^fPCPNPJ_cjtU8w5Jq4i{Sk?DF2iw;qSS(R><*rb>>sG@8T3h05=Rk{j2G^oaE zyk4QGjzC3;jT8In955=IHz9lb&k^Me$vyG;=T(Sy09(2<`M9v=z_6g3g0E5ZlIxU*R#!$P}!W z(Pg1onPV9q036BeNMK8!F3Mr6vpF97GXS*VOovn3S6!WZcpO(cWnbkS0hhbvKP(Ww z@X`;X(KlKeuD+=cO!BHu+_WlE7)E){&epvTk`Et2|F z;gOD`hW5dL(k~4ScbX5xd2K;|y~w5PY&XAo!F7UhsYx~_GbMkLUAtmF(5wz3G2@4I z`m7FuyLj~7QSt{UUtjN38wonZ@rg=hfWU7~3X(?IM zXI6#e`o{kJ{N6^Lyg+5{n<%26E8hEi{b11x-v;S`;E_?gXUKr^_$Eh~T-w(?ptM=6?yCd0_w0-VA$vg;=Q%t?Q_?ei0hZ#ku8i^%GBTZA1_mmiWXb5v(YPx7SVr(9`0&s=&E>55$t z&`j_lI5EEVS{*cIQ1WVfQu9SqUD#MaGV{=D?)`x#nAZ;`@cQ$BY zh0#s#QTFDbb3-v0(KhEebYcYq?@LZF3)7d)zCDc9!LEP|exCXr5Q0pLfCm`+iEn4z zkw>`&bO9+@q_LR$syMAQza1p_r!VZh?Vb@{C2lx%`x;|Z6EQ*E-fJ!iNCzeP#q`PSk{E6ezryu0djBWNOo@~sK4d2BO&g3a(mR2Lvpx0@ zZS;ktDOVHdr7C*VHl0vaq!K8!y4{AF9butDo)_F~(igAsnf>c!j>0whUQ2r?J=Je* zYJ`rfsg*ltP7OWgS&Ixa%$%OBp>urnQ}$4A&S3FKAoT-G(8vOO6OhEW6x|IGD9BvG zjHEx8@;Dnb&x%R5~9@z+!C!SrM3Y=+A@Q}RO(d7YL%Ha#8wH;^6$8g-p#^}g>8 z2yOE2b9YW#KMbCJa8hE_38!y6JF;>#w6_QPFG@+^Rszi zsR7G{!QV9I+YT;HXQ{`o^SVUN3DOq`u3W`gLU z0@&$w(E4IPGBV5IKEReE^Tl{caObkcgEJztvvU^nKc6-ncj3~dkCFeQb|LwYnzWcl z)H7so3!`~1qFto0+vS6Di|K(rqfb06^w7wtz6M2Wz!_trwNi!SNpy)Hjm$4vBl~H9 z4<_j52@;<8+7w*mwfUB`8hrhoR-L`K{|&pP)#9;q)Esx{f@i+UR}7}T^UBkdP+Z>) z>dH}enHIwq?1nCO3YwYI7wiK=)XNrJ$>Kq`p;8+bM4>QrWFrY-= zYIfXKW$5NvEU>wvs5A@azqnIp8b@x^@bJr=J^6oR=~!N#6nbBQloJ9kfylf{VV(rG zl0ssKcodmTLf;(Kw{@cgrMXT+^u6|`3iXhpy#Ap{wM(=_Xup-zkTZnb<|~(0J0u+B z{V0P9i96pbS)(c_4y*Mpmw~<$)0P8Y3?R%>B^uigfmqhYO#PuDjUbo-#z{aJ zOWRsQj?M~R5rv$Udz^U!juYr*rEaN4;BHmeWkP{OCJU63-qY)LY$}!*4WhvGvIt3d z+=G3P*4__MEoNJ%$zkcDJGxw2T?xcziv7 zJ*VnRR7Ev2Gpf1$EkKnmH2sQKGx|pOA#4iAoa^8+_Sy6IIA|Y$`_GsHdmHZGAOo)D5W7Kz+!(7kR02ArY zHf`GU1DrLEmHbMK`74cNY?Nx ziyeKAav-JK$HtC*=J7$F3Rfofsora^{q=zZU33BWg{cPFJ#G(72f@G^Bx@@HSjsQS zNY?IRr-;cbZ2Cp&riS07FeQ1 z((w&GVM~vPKAcr>=!?=I!tJBFnsz^2TcVu|9Vq-*vnX=vy)1uH6=L+WUvTy!qxReHh+-GwjVr z)AMN)0GK#e?PHU`loR$Tz=_OSZa`Jwwya`QAbi<@4WNes5Tnm!*Z@Xsp9C|VYv!=e ztSvmT89S*=eLiDc#SV}RaBw)Pt4C6gPE)EAsXY!}RmzLqk^a=-PS(P#K{$ z(wAxBx{->DCi}FOwo_NS)dis1SjV+FJ)QO3u_^9D!#!Z|6F5%aT7Lr3KAFg{bR%)_>Jn|GEjP_v{t*8zJ`eqjHnT6(?aC>2bC)O(-6N0 z@y@1cJlB~f3Hb3^G`eFGaqf3ujYlL?BbRT!FO2r8l`o!YYxcAn8`K36uFT{bwApOK z$1WLhcj!u#R*yj;MAK_&X+C#(vJ9OW`2%2UcLGeGe6r%bDa;or)(}_;mN=U+qVYJ) zmmNVz_&4Fq#+66L7J6kj!`dUx7-RYBj1X7FI7P5)Q|99AjQ~a=&p;c#Mg$K8P85I) zvX=Urq(}HzYQSuqBdUk)kt*S}gz55@G=DF>>;KG|3FV{n{!5(w7q(PGmOGTCb}Z(}bn$Ly?0C@uH^ zeYER`jhzqOv20nex0g4K?uyrG;s1fWq<48s$;zF2WkhSgY&W+h3p-2YO0CeL3!J26~+!H#Y&~bo81?hwj1DEo0lrV{$e- zSjaa+HffIGC1yC4{Y)v2GedC1^ddokjIHUxTBOuf8jM_$9}=@=It$44)v@nE?TIT zNC+I`Y6#{KiHj}ar9G3kwvwq8<8&!^Wzy~~l1oK$j~C(u!2xJ62Dc~rL_PZr1F(f` z`C-VPv-IC`%3=|Xi<&8<@%LH6R}c;oT-;P*D$cX-%GS;QgMJOV`Db`EZYTlWJjg&< zFOs91|Afm+90*Sb=shPu#hX7X=RPj9p|h*1y{?;_N3V`{!}#oddWzeJwt^aPUKEK*UR!G`+-|65 zo{fb>N+xw1se=P{lOg9a8Q;uwXR-})0=0V1(}6pXh??5^#gE( zyJ|H^vmfB`FBfoC$(Ns)ni?kumi~5%tc%C!KkgJjgLntwlUHSpAtWDuSqS2J@EgX) zd?Y3P20ONF6p;H>l(zLv4s-1>az4Fg7wv)n*mwC2wnyln6H>cFJV+M2opqR|WZ&N+ zj>m<%D=oZAaY?>mq1dK@&x~XSMuvl}gTELRj;%q?E%a>*bsJhXh>`ntEl3D{8i~h0 zj>o?w*Tnxhc0$Z``ck3EBAGssuE<`aIU-KrwAYeB`u%LNHutwt;ICaB<#*6eaRf$x zK@UI{-Ur;BsvABX#-z5+cgdM^7U|ohny{O2koDs^M<60SXtSQ`v;LbmF;g4mn5?Im zBk9FVFK!My1Zw<}w2L}84Y61imdkoNsLBxWg8K4n6iykDAiRly^#C@b<&Yl#S-d_L zdll5a|04^8SB`Cu{dHh+kQ|_0FyX%x23}_){{&XT4%;P#>}IML%;qeFv0h4)9!$UBqtXOLwuHj{8kAIrWw-~X3e z>39PesHjRGg&OdSQq~w@nJC3%D!Wt1Ju~qZ)H+b_c#?ky%3>|Bn3jGvynCGAIOl4N zdNzOp2~1Lf%dO%rgh^wtnHvMh9t>9eNm{iJpm00*mxNFlF1ro zh=AWz`xDGq=Ka3==&y>SPtbny;HgzxHxvP`Bn(U}E+l^#jRg9dbh3Q4xqqtksC3|} z^J}DLqp(R^4+UmBZU-=o{_e!Q#2V~W&QiEuB$7Ok;F`%M_}16( zbvqhwy3rqAj+1E8xd`vR2(OiT;O-OB&wHHB>V8#2&eg}PSF;;!U&^`Y_PBQiG}`$Q zyNbJ~y?tM6Yd5{WX0(6o5WUkKV1jX=X9>l7i|xJk3J1piIiXy8omIyv!w59v$(C?J z)xhw!nLWp6Eesn9!#-qw&9GJHkcnnlBAHc94PY|&-}jI@M24*WiLfdl56Anh-y@~; zb@Kejy<%$}sZ1npipK}&Nhh0HcCK*CfF*AoU&U$YCJcoEcX6 z{DP-cND14J12QNV6pkMN{s>KiA%QxCDm>`UK_-&|N9Yz(f6FaKG>(9;8<0@))tE$; zXR!(Zl0<*IJY7CIFq?$=A=N9@MJo$}mX=1^F9<#<;6XEH7IRXCNNJzcJ24?QH(Vna zbxlE&i+;e|ZtT%+!f*{qD(h71a6+mQIdgFEvVnnx^gB*^iBYC1DUoRf4IMUpX_!>B zLWf+|Cjcr;W`|a@GsW3I1NPL6<|H$v2Y-Knnb={GJ}`1Ahgo}82H@sj3*?R; zgBJ?e_87+z$*f|%-*2GHzDYLVS;xk;b<3A_=bzexrghyX-m=hj@_-O#TLbH^iE$vt zG^mtzy*fpx3Im}^B-N-zaFb)egbE(u!$711dvc9PYB!AN9JW+yF$+8a?^O`uMaDcV zMIBA6F>`v+;Dfrc%gaT2ov>(MuV&e;HA05go+ z6P_75`nMX~|2yH#;AO&YJTo{n|Fr{u$FAqy#}4q?V}InX7^K|^?s@v4YwzAZ`giX2 z|MhgRgBSaQ(3A0iwOiAlx+dqk--0V3n(-+BxHmnm&M}c;cM)I`HE?|3SI)wGOB=_X zKo*$kpL|Q)<0n)D5kOioz0lWStu0lzD9fseQLAonoN&%flOmg9Agz~P+DCu=~7 z55MxLz{pGiG|-5#7io$W2u(66jS8eR$O!vEVapA-4{{1o-L4($=oC%}g%}*xjOH;%0!UM~ghdMa zCcd`tbtNt>(2&!v+-bd5&TfO-`Yx3IWV?Rwmr4SC7P+IJuBAqDS(JW7Ccbdy!@Nyb z1a?F+@>Xx}`Q6<;^dOoc04()Fdefx>L`oSgZaRG@qr3|OPUn9|XJ#?k8;?bUWVTop zMzp1d`WSzlnmB+ifDx-0JuVfvgUCbXpTQz5t!aV6wdT5hoT2k*M$oCc{b8fjvWFA# zbxpRGU;eTTDLU)(ahxiMXBiCP41;YSQ z>7Gjl2L^X4LLU>v(&=I_mX5i{sR2fp-mO&wl;UQ;%t>1+Uu1z%rY-i7` zDcS?Wm5o!+dGaBV;4DNg1_KR&pHYRTiK)lN%2@bwa8I3?e5Rfh8B-FvuxlAc)=lnSEw`khm+)YqO1Pzp*R3-O!Y1AaHsb6a-WzK%5Ye!5!AO>^yNiF z_Y13A%Fvnsm@gB7m_!1J7K1FPv<}P^lPxCippDUsZ5_m8Yc&Q;onz4KUjoV$IN6H& zYQx?wP?rFtt<4Hh*{qDT%nQTrB7@Tdt7(Je>%~I`^csL{gw2nQc^BnfnRi{@?LTz( zXk606pZ8o!mRUc9-qR~tRTY36FLx+=eu9iR#-aNo<0^xHDxSs64v1!wpc@CZRn7T0 zz8C4#Jo68=%CJYE5&(W>0^Q&0+6NLIkrwh5tve;AVI$Gc)kcaQH7R($ou{c*yz4EI{@M z^6L(ZnO%?{LA7D3h==W>@GZFv2b%UR05utPzuM#Cev^RnI3&)Wp;}T8+bL=4>-$I5 zPSKRe%9Rgk%TX9YD-O15-u>Dtw?71y+^Cd3h_I}aM=8%BPc7p9J>5bUa=+rP17#Ai zBJDUz{mkg=X)_zFoxO~?V4=tEU3}UwSv_>G)-z}`+J_=JX*={>3x-@!`Y1eM@Os(b%3h^Q zGPEJCYgntT)pFL1k!jZNH&!lK1)pQ$OnYT4CW zC!KQWgqgcmo)hiZm{76B8q?xk6I2bX8E9#x6S{G9?E?c;uoMCV)HJgR!Bu%>0N58w zwHdHg>`Y(-EIp2lZE}Q}5pG8h*z|hkWEli@D&_(Fuw_Q#Lh0z(Kah>w*z1e{#JTSdO>e2 zZKuM0KXlQp(?K>7Od~o2}3#yHCfJ>9A(mJVbWfr$nQ5hO_Zst>t|S95b)aBYDR^h_b$EkOogI|shDn)SmbrdB1yX`vGVv9 zX<-&DTX~OX#uR96kvPJ-HJ{aYBr$Sze7^8 z1GFas3D>bI81$}!2z|^TaucwlB&+m6KVENedFUMn-=>o7+|8Y@bdj&do+ZMo-nqOK zqK1FxpHIJd)%I2kQ5LJ6$xF6?(a^2&=bq`;GDf3>hN1j{HC2FsP2SoFO=l%fak!N) z?NpGnp*KK5UKrSFh<){dQavEwKrKF;-hdLRmEN>uDnI6U80Iop%Vak?|M;`D%st~0 zL!lS#GCTpTu#~4U0L<+sS4@30>LRak1qr;mkAcxxX>Q}?M@b8`pL;U4`-%(eL3K}1 zy<_KDwV-7Cb>e8w%02Y;x0Eo+J(!>dx!b6d4{5^u1b%|)`}<&1BgGU!DF@sVDAsmJ z{{;geZc@JYlFeKVnb9ad;o(zOFfB|!LVS$)`d@Bw@KIXBT~beZQ*VZ-$mxw> zML=;VJyZbwDj1N$dwN8R5>wuulLk08Nj?9a6T065bp&k(#bR=rFc==R%599H!^x?* z7xwc%=y4+;5HOkwf@#~4rZnmXbv<;Vg`JEBRy<8fR+*2!gGvh+ccpF5!B-g`s}^P< z(=~FOw@JVnc?Hi8!;_C85P}{Ok>C*jmtSQ^y0bm^|K-tAXC;$A8!}W|3}LTyK-p4Y z2>O3JWT>&4BKfj}x}(rgnE$(BW4+B%7GnE#i6StW=hl)>$GP8+RN%cpBig_{nuFXj zUvtpv%4xa-Sk5b3=QiCz#`HRwcZ&T!lQ`OhbMX^~hik(tyic&9TGt&5S!g+NEAFYKmt)isb16-SiZ zZP@I19*4`6-Z5LiHm{538-pqe1Ui8Mj06&#L?8z`n%jvb^>u9E(*Er$6IM{_Ff@&> zDH_^j1VIkDd-ob@Fga+EEZQ+zDp!EihNe&nL>d;oByCBQ^m2jdOf^DfAZrr7_UyMy5uxGer`vXNek z!;9{8QN`nMaK`u(2gzubtAghVf6j9W*W$FLq<@nES+kX!O$3F~+g{O?*vi%r9b zIhA8Clbj>Ue~<`hG#@Cv`s&AqBq~~?)9^x{Y#}s^e0Gt^1`VU2@{bMnrbbKH+)(?) z3awAoAv0b@elx{Q6yW_wR&$p&QK$gt7zQ_C?i-qg#qx~UeRfzZ@Y3^Ph7&po=-Qq^ zH$OH~1e(jo!D4OfcLcN%1(?1|Nn793+yh#f-0y{9hSI1(8x9_=34u-YQ_&r0;Lf0s@2h7C$ z*72go(5Rn$Z*uo{Snam%{@v}n0HzVcY^VZ#(Fac)hP=vX6v@DF^*5Xzt)Ov?8^}kT;VIx; z_|tA4aLgio499&QVI9z;6~y`@`cV`wFGKf0^6scyFElwUB9;{sD364OpjYJdJH>@X znni6OeW-3#nKgH`7|Viehb&NXSFg@%6%Pu{p428JJ1RUA=xRmzmM*<@(V`@m0E*pp zL)w9ip!$x_q2*5@{ zZfiB4=NF=`6QG4re`dUyA3TAT@*lB5c-Tcb4>cxNBH^hVl{Y4coqH!W1vAbHtwI&D znMX^AN?tmtRl)!P_&|R(A+yM)SgURPmmhveCMK``_~XAu_>aa>c(<0f}9!$Z!IYtu{N__$nSx^AsH#jO# zU_7bhtFr;9&&J`7LTo1!#j~Jz8mQxEH^E&Bn_AG;f?EZ4IN#p-k%NGbb(V2OA5~X$ z+^MJ6gC%3#w&PcSSzWj^1XJYs!xvJ%)ZgD88-txrsvaC!$$hh92a%t9F2|Gixrb5m z%#EOFpg{*vL$<3pgj3Cc`4po%{Rz2!4Z5!#pf?$lnvUMW(GcK zw5iXk)$JNm6;>gKS>mfQ-u<{$VYwX8fXY_CuH}_iO3~Vx_f3)8hOHjULuf&|d~opW z#=1RiluBGUF|ei<%TbY4W-SklNgNQO!(xlW%3Kj6VvV|nRf)dpWpp}OqeQDbuTSP} zs}pJUOhto(=@uLO(EwxAi=r)F@UJjN0efIPp!R<<&uQM7D;RXz`PLhHW#FmPw&$v!xAzYI{Or{()VZ(PyKgI8_-K3c z7_1vkwPE8TZIO4Vb5r)Y^UYo3A=iHZt{}eb!>{54@cgyS{C4i8Leop?o3Fcl02;e> zTeqwNZZ=#o>(O!^UR%lQT;QSc@dwF2I9EB2d0J_phd=6B`?2+@Gl6!M7gn>FlG=`d^C$H7{5F6!bG0xHr_GTZ2$R39vDd zm%4(_K+nuO2U>EM;mrY?lCN_SdC}wM&SWw3D2Y+{4Fqv8n@N8|rn|;JL{P85I|iZu zGUSV=zbZYIn`_RQ`&^HVtx>M-;PN7YmI)3l*}M0SI|i#R?i07~sw2KGNc(`iC~-R& z%ig`^-+VLZ+OZ6{i%0Fue@mmRFfKSPDF7nPu|KzQb;HBtiauH-RExxV3884lAQS1t z9jS2dKvTvE1&^E_cyp}^=v+C zsNX-dY3LHhqUcxJY*U@cxf3s;sMC}@9%TxX8=gnDXC{7`u|2*7aGkvptM?D7B$Vs_zS@xTHZMqSeE z6ATfU&f;O2M^V8(Z2H_>J*dXXO_;9_wX)CtL#?zv4&(?JzBko;@kNA`a?dSFBNL-K zn@vl0wiK=|q1EETvC{_!t>pT(k8&dB+;d6!?%gMijJ!+!#`(!(YE`v&)1`MT6q@AY z*X>+w=WZ>$;DMv0dW~r9!+Xk+aE5BQ9=PdG0Ri&-5%)1r)Pd2s8i#_=^cM*eWq$HU zjwrxplitv1@+(-sTv-q`bNBVW-^*>^-`3tvN>cacCla(}@WhcS6&Op(A|1<`LrqKL zDh6hC^!*$A;C@Nly5#aG(lMd|Fws6pFIPg8ICXv<_oFw-JdSsEOfjeXl8N9X{gmNM zW?KpwFIGMzL!Jbto)}mJHw|iQTGHdk-Slf8=vC(XVA!Pz=zp!4t^`mcdO0iu11w#e z&-w-BNxkJkwdm7PO{A%dwTb&g=IeSGKs9LvQAevzKlg$bxaV4So^>4enRoLq7D_>Q z;gZ+t$@GM^!P2Voy3`s~g%hObp|v2H+Oyis{dG#Hbd)D+q&{_3N5qWY=+$c%!Ssd) z>bZi^RAj`v6%_FzHC|mtTptI?nXsGO#EG>w7qzvwDG}`;&+DKAYB6_|vd&Jk#?tf4 zc9}*lrc@yX#mH5u`S92_&Sv!18Z5(C+p#tOc=LtY1}&u&10VL;eRmi_9K^2mefB_hB>**$m1|wDtGNziZT~)oe@z>!Gios zb8VD+Z-%vsmWWJLuY2*jY8YJ-mn|7x%y^!l>G&`*+GKKx!j=RXZ|>HN9tIkDnBV%$ zrvx&n3<`~~p%*pS8@Wd}g3>0F*2AFQ9oe~ZWgqvw`MCSTXcicK;T%h?uiXTnql~g^ zJV~p;Hpne?R?PHUF$2&yba8#Xt}acn((2XAMIekM6WQ$#atBz0nZD`}rHnE6G~~5V zX=J4zLN5X%wHdV#OH(~;ZU9wX)iI{51=KMmMs1t@*|9-CGnc>9z;TxMPQS;0toL!gliS5v5r;Auw`& zzH#jwxBG3DPrtX}Ok@?#0Buv)Z-$l|4!Tp{CX?J7_2=(7uU4#9(!lvRz2=0zC;G^B z`}T2fR?zyDyBFKk#R}cvi36^syWPNX4&J<(8c7SB!T@~u1ZCnf&V#>MXV@iPDtj;^V*OgK+ltaLF)o#W#wb2|=ieQs0Q9!Gh(Of1iEf``|#Z|2)fz0kR4yov4w%S01p|WKo(zuLLwbAC?Ue^a7=#a@gLy^ zqRG#&dSj^4)N@~tjQpux7m|0&3dlK0Ly@ip7Ug4L=1+yC9!23q|IaPG6CtHrRydKc zy;(YZet_hBEkl&c|^I$S-V(%c_+`FkvOZE3~b_RvU& z5e5gebsb($OH>Wq8AEF_$T=JB@wmO!-qv=ztml}%3bm$?Rm9fTdlxK=sKbj!T-2+k zCcTTY zlm^zT5`L!LeDts+Kzb5+_-R$he-X>bNuA-+f>njwdXBf2t7i*;4CGqyXLx}L1%KpE zSitQ0p~%DFThIlwN^Ww0J9rl`43OsC8i`105Xpo>A>khEu?`N3AS?rqPdmbm} zpUHtykyc>^lnIp$=Pb~9by+L|{qWRyv?HgoK2i_qCv4;_%YvpfFwCoGthIfBAjuoD^~2_urRb z;64rs+^Wzx><%5>`}e>9{lWpRaF7^cv2C$fGYIDQZ(G!ER7d36s=k#StE4Q&~jK`dL+BG4=KT3T`O*u!`fRSPSE3os()r zi;i9}l~|4wmh)?2e9-gqy?KKre8r0!n!gg#8yuI22TtcTd_aN<(oCqo_^vjr)QuUt zZUFdu6)%6_Av6c`kzhBtNol(e`0r4T8AQCwu5Ahv5b~G){x#sawu3y!m6l@0a}o+3 zZw4{Uqm$&%L#$R)9RSLzsX)SV_toh_(gtb4b1jBaL%G6kNw+pLB>1`EwPk?oqyONc z!)u@ale((EzvTroIFS0JiFi7>A##9Qh9Xn~br_}u2}??h*0|ATYAXXzY===Ft;y4X zyu+Krt${XV$pfp`14SVwcVSfIXNkI7SGdx)Q ziFgy@(&BlYF-T-k;3qpG13epYx^KYeH$0%4BXe>Ej$tZ21H6xs8u^7#B8A$GPrjj5 zSZ;@OtTm4w~?_XU* zt$hB$9%D)VaGwc0eTD;x#FL0uf5)<6WRT5W~ZIvqR;A+=A}Q(!BLs{pTTVvkG4H)!~rMhrO( zJa683gKyA8)7fXbvyi3BX|rt`_;Vm&M&~s&f9#(6wqI4&2zeq1sI^MKZEvs+L`yEK z!+-nB$VmSgm%+25Bu1^mZPc{-i9+UUQUHFeN^1y!z_YHwD8^HypNB?tHRvbk+ZU z%OTV85uoK|r^wUopTfg@2jSKd=7i!b8x@x}-TZ;YPM@0D^5K68C6ofYl$qDrZ!YMM=HQCf3@TdTrnqu9Y;Kqeo9VltHC}KDn9Pi)9Q&#RCmhOwHLZqY^+earInjj2h@p*>lX`Q5~5-KB#2mP zt6NayQylJQUjN7~x8DYR=X&6j0BPSv$OYU;VqZ)aEO5d6+XtO4_!>GSOY-t~~soL;}^ASU_?2$56p|QVEPeSeLl0uQeCn##N#G7`C+oQjpgO$y`SzJEx}vkwBw2e#D+^pELevF-R0_l(aJ=$3 zwX-X3GML+X-s;l1q>6k6W3X^N9nLXjkadMjO0v4SXv2nLl(a8gvbcbI4(7x}(ui+A z_nzJfQ~)S9fV=b4OKfc7p;$=TOIik-z>}BeY@pa#JDfn?qHYe3O$Vq$@-RGi**r|k z(*zD7W%6+A52t(NGK9iUCVAZLV0ASbBwujLM#xH+08MUVK*Vz2i~wVPLTp#B z{`JQnb7$wy7ys=O4+@Dyc^NLH{dcf@NS}xKV(|M+&lgkgCpYx=#$PB-aJxZh@^ZTy zgd5eM^hD%zmC?~0pN$wUXOKg+{qkhNyznYma}$efISvQZ>}9+^yF%p)8ua z24vAh61fa;ya}PPY^)vZ7aMvCG!0`i4LwaOg<~=;Jw>ayP})Wc(58Yo^YOuaxfQQE zKvz+#1g!qJKO9R#%AoWN+k7_avtEtLTxU@08^Wx=&CF_xil?uep7!=8dwMKP$7H2k zA%_SLL=Kt~2qmFp)2Ur2txDR}1*|DPvWjYwIl9a$OAmJ~Yilv8jcw%0tlJa}rn;t5 z`GcMrK)*c^V6dfO3b^?sD24EN>VTG4XhrH0+TTJklc93ws{Nsp0Dt2l**N>k_JV|& z^~8XLfhl{>{m`1gm+%K6CrO_hfTqa3?mnuenm0U@MNL zW>VK!5g;V>F?UZ~AJ;W^rGB47X_D;wBFH-aK*V%2h*XWC+({VC26$dFIId~TRyEny zq>p!bWN?9Zw?M7);6eTeo%DuA9BzGet;Fsdarm5*DeoY4&v0v*sjkjcZE9#FCz@+E z@Z=6K&+(3>0z=SNC`*SFUI*|-5RwtgU_j&%PKd&E)PkU^tJS3P0b1As4;M{yUI6mU zT-OwvcnxsNU=w^ROgip{`M5(W#W|wK5gr|d1xz4wgoK$ynjh!~rYgdK^Egew5}ThB zKt?c!=Nj?b)0snNP0#LEMNqv?E%w)%-}pGB*4->ri=l+k4Iyi`5QjrffQBA8w+>lc z7NUbevt&J0wSYTyf=Ju^D>v0(*EPC!;ZR+5yPGlrL(;DBY6&2NK2~Lru}Y!6{!2x; z&I^VPzJ`eM=(_Tg%8T5I?x(B0%a19OSlH5aOIm93H=W)jHp`0^PxV$$vR3f|kr{^H zcv)Sii-~N@A58@YT*s?Ja^8(}!@x;N?m7mD8z`%LD`y3Q9<{Uooogp26_%o*R+dp`smm(s{P}|& zW~HCiHg-n57ez*bF&Db|5J0+mKeBY6mvYFkky@`r#$c zl%@00lgw%$3^p9-(W+`9 zSO4`mAt2Zr9=j0SF!N8nd8xw5tlE24gxi-3eZO-6I-gGg+|@o-V(LR#=@Qb#-M0l@ z_+&QSq!uhksPm%Hqbe(_xzCsP@IUGw3wL$Vj>X&ibeNzh8&@UF4U1wbn26T(ZS0}8 zAA*1nyN-sOw4fB8Z@QpEgT8s@A{r>^_VW5{+2@OvX%Sw=cq#C)xAU$JSLR&}CEeZg zpD`A8v!Hk8vgJjkAwUA)#Ah!!5QrU6Jy0#6fs1eyWT=_nqUU}q5alTxg6O=P1IhY7 zVR>eo66F8zx`x-$*B#lNGDT>R3#oWsYYnNLNt@iakIV-9$3Y9=l z69|MiFgB-Dpi?pVRn4AA=axcB41@FaR*O0yXXFyGsN`-OFN2vF#E(Ug`Teg&AhN4& z0V~TiD<_))hXI0V1^6CEdDBu}NZ*HTfthYje-2q7>82fCV~7poPyC`ot3(v8&6X_l zuDK(_lG%evQP=nPzl4$#!GuTyojZ$7YIP`uTR=1EB6JTeBu{ZwC0Q8RK{j$Pb&$@4 zRIMy>LYUUrL?Xf8N0c^DCbx1$Iii8WuXtyyn?V<>t_zbo7%!_ti-hgSL}c{Jafjbd z-ICJNq3&+(^ZE-ey`WyKQqr|&{_KpJOSx}qE(^7MA1#d%wh>nPJnk_I)D;4iPeFtt zx>09qGMP-R!SuDrPgR3YTG^mG0o8~jU{GdlSgclwQ0LUcTwk6VLJNlTUxQmK7L*uT zvPAPTAdIFf@(Jjvti{%$bLZ65Y^B24o52Q3C(%;$A{a7&!xzm-2uPKuooT0T5Fp z0k?~5`ZP^p)R+rZhdZ@R0cinS0NzGc?(y{lY@oXlgb!-tF3GSwzuK?xGQs+woZAvJ z7t32@#RvL9h6!lHz`kykUw4mMVfZ;PR;ya`waxFpAHbgfQb4Rlj9JrzjxYBl*7j~s z5^3-2S9AY8~_=9 zm3MFMiJYHl=PXb58ifA8f$uW&Ar8JEEfEZxg~tnwpienFn;U@tl#kVT?s^5>+4-AU>@J5IwO>A~UO$`GABo zTEPFMLLrz*QCH*q1W$;(^u`-E4>Hc6S!6ad?(q9Ed8I@njR{%de>y0Y-zRY?3^t{> zjt!L7IvIa~Oehso#_CXaV~L9H)c>`Hzhb?V8>M@N4(GICC1Bm9+mFSl%a^?jGZb}tsw{b79% znhRB7_H$yUYy%B#5QHu0IKI2P=^5@5aPeDMQnI?ZxRLu;MK|^Ng%@791IEIVhm>o> zu4$m-dBcE`{y@2=<(mc1^3M-kt@u_!6tQnY4DiLh82nbR$h#S{MGz>P zy)ls-47VrTdC|014}foJ-Z0P(vRzReyMiw&q66ac%DKyxfBtym!V5+rvJ7P4hGh=s z59KuQ4*0d=Z|^K8LU7epB*ystB8SXn+r>x&B8{X}D3MSH;|e=l#i$fFR&1~Om^8&` zQ$roh=SHLYI$CZibg?$Z6R|1;pLK|gplaY%`9fL|Q(b*4Rg`+64dK=W-N3&$BQoK% zNsg{n83m1$fxDqU&D~Q2ch7z29{~H?EmVpsTm0I_efvsLkM=0cgp}?iIQLQ7&i9z3 zpJ;>XAa++h%~l^DR9f1)-8ZQti#;lHW7DTkKMk6*k~I%sUMY7lMLTa5dlxL8a7*lR z|MGRK0$ZfUmc9WmP@(P3ja6D0qWKdwlX$2D_Q*-q+s{0yTm(66^Oe`M6OqzA;7~h~ z&lu8JqMM1F7F}ie&^eJAJRWEhVcQ7R_UQ~K1zpXm z!R4h78b%9v9zRZL^Aj1Er1C4zuL0JQxWK@gg%Tbe%|OTsGo3k5sjM9C-8oRnpT+uS zml}5wNZ0)UQgVbPr^$JgA@$LFW4_&+fuq12bJhjAmeFFkCLl94p8WdjuXC@GZQSXX zj!ID21GHw|ViG674Je8TxNcE-@; z>p~>H3QZ=cyzcI^y1Kait@?ntL+o$vQd$Ll0yCK$FcfNI>Ogl=E_T6l^v{;;`wm%w-wFa}ko><+UR`8+fdCKf+&>KwgiLOO$ z)oox)m{_Y<6l+~OmlNjR;>8O`+#uv-ZSPC?xL*R3Rw9BY1UeSqXkqd=JwtfsEH89! z+OmX?T8KBMl~IqKW7MW26o2;koHd#o!Z2j<@)X#{&m74#1t~XC$%P<~bg(D^>EwQk zuY#vO`jbvmW^8bXt&BDx`!gxyo`u&|3}}xhledw*quhUnW`^^R9T4htOvlPIkng@f z7g~94pFW40e&9d^sp-e$P}4;%zl~8ZH8lwfJY5!l!abHHGYopOx?t|1@w{!PF zBluhTYGvEbdZ|$_EIWbgj8jE9hzMS9xd$V;H3@94Ls+;P5Hq+L7O6dMCc7-NlQWMDvwB^9hz5R23EX1Kzxqnwc-xe4!V z{p!+M50(uDO~lowv3}t8V zWIe=1VX*?4pp`9{Hg)wK_bcpm2D!2M{vaG8L$RT{mbyY0 zU9;H7*qz|{oIjY#Pq;R!LoCeGgLfZxId8;42Anee4QDXA(wPb7__&OGxTt$=#vyk4gUe;Hd}^@jKELgxN@A|AirtT2bnHOJ~1RsrMd=fklTZ7jdKSE zE(4+RCy_2Isxy_z8f3-fcO53sZ(*G_ZVmbU829mzmYmORps*dpy#nG(V#cT%w)(B} zD9WhQJ>*&pqf$PU9od92%jYyT7`?_=)ZyziTW$T*3FkN8ePix>(_?8d7g*Y2K6jJJ zsSX!$Z*ZGHW&K_vZtH3*!5)Rk01@gjh)}?yz}_#KLF6hIrV|MSEpcuK6A2h)n?u6p zKlSWA22U+pchhjx($0#RrQib?Jlae>kp4aVb>;}oK`wi8T$(LUzh$43i|_f*e@YPf z;>F?tu*Z?7eN^!Tcgo096AFuXMra;@oOvgCjBB`ibo6D48R330SOjy-^`FNaZB6XHG|*+mal0U0X>vp?mR#Aa}eY}JM#gaSbRJnUKc`8 z$~+Q2&4x#0#B>`{Z465|B$X*&;i*@a&xM&IF3AyHUU}`Y0DQX^P)DHaffO|qab8f` z$XP&&jy0*QdSN@Qvs`i3izo|O@!M}vL^#;|+r^W6J1*|;XBs8_lGGDj>M}^7!7nS+ zrhM=jHEVtV+4{*a%=+&yA>gJ!?&~E&xmv+m4JaYZO6?_bnL@;{QsJT<=PMWe?1h^Q z{Q@a?ONb=meF%*xJpERW^$fkcuhVX@_4HDwtXWq%U{_{6@Lo zL|nk-un32#G^7^+*9ijy{>0;F#AE{gIaljuLkhp5@KuK~_;aEZeB+_e22E}wcW?vb z3Rna8>NEHBi;VKFT_?_1xYq-xTr=I8B4p%WNcWiZkTDLPV9QAJXB8pdDjANA60sn%FuCE5y%Nh z@>l!K`ZAqeSH=CVo=nz)8GKp%iyTJgPqIwJYAJ0@lx=)xi3MK3`O0DXFrF!HSEO-1 zOzH4p@_9QvSnQ_YJPgWi;3~m-@Ug~-D}w!(pPs7Gr2kH`R_Ew(G7V z#b=*QZn$A>GD!vo-lv=i?xbEX`P(S>mqG4}+?wdccfo8H$91vYoIpupU=kdkrWf<0 zh_t;o^+LR-o$8I1$L@@kHIb{icpdi->c(G;jy?@pU_JK;{mYyZ=qF+W2$tTM$&9m% zy|f51$^uLPp(t0353ZkFPR1PIgBu{-2!_Gw&2*H()SjjR-S~iRk8Uh6)w`*146)s~89x1~L!Q)pw`e+KnKt%tZuAGIX(tm z9u@9UoVwjN!~baez@hIvGa}I&#Q7V%U0n)|@azXR#aInCNt6YAlSEpx{;uth4-eP; z3Hr{vSe;NQsh4UcXR91tR-Ltn`YLzVkEOiB-pz2=6-FWTMY%Xow|Cg2D4qB~Dy0De zKe9c31uDB)agFrAV|qfRhfjO4jgPm~$$95x;O*>_OUuissfb(rv;l$Ks1sYP zGLug9Y`LnW#?Cn8_L|atn(_t*6bz2KQq_ws+5)DP@qf{+3u~J+h4&9=T;gGoldH%* zLVtQyr83t(`!%H79?5?tea6+$K7B&qLO-)hIn6qe6BOcj7DQ~i4HPlt+{=# z9x`gPu_=&y=mt{GgzFekG60F3+38=9Ad^@4!TXH`?=CCfq1emg4)a_8VF)xs{2=9q zyv=+mdUoEP^b+E&m5mzNLM0dG;mb`tSb$L+*$5*0-PtktBT_Vu5O;V$qf%|;l~(Q` z|KUUq4g5$QLO=5PaQT7dRM;5}o@DggLExYFEEt}FOw*Gw8SO9l3TUoi+~O01%$XEtYo|kMDLkQp*%O`V&ZJSQ z{{>oyb}VmnM1!phg66yW%)R-b3K3`};Z~4%mUqegVeb97aiCdjmDhB+S6y))%NCnw zj%yKH*RJxY-xw#aU~np*E_@(#uSmKs*>p01p7i#(4u?cUANNm2z0Vrz$~U0XAWw)CpO|G zt_%)?KfCU=S781Fkf;JAJ_8bUuAy|13&1BwQtB~ORqFHgRn=5n+IT{l%q9*UC2neh zbn>FL9@ZnZE;+UPg|7AZQAyolce_luL8+zzpTP&Rq*RAO}eWe}5 zI(!>09&rn-HqT?cHc#5o&j`9D*-py}pz&>ig6{$#&R?B(OWxkRyYe2(W~2_U zT0jBW>%B2~BQtp@JATK%l7Xl)1z0u_uh0uWrZ+h z-Xb(hS!b8gX%zVGCZOpI`T*QD0C3mAZ2~E2v*y`N(YUjSM57&p|z-WIHAr8tAh*xUF09`8zDm97YOmH2#&s$AnQoEBp zACFhwx&{A65++lf!D?tYxI^xPaZGP3eFA7>$l_MFI;dbZatVF85p{DIeyA@3PGtk` z84x1$MPPV6?Mx^IVw(i=z=u-@k(w^dtNQ+K$OCa40|AFZXw1$N1)%l7$mP}2u*~#B z2uLSw*;Qzy{>eLYI+p5PPJ^VF1cic?r?zZ@ZyFWd)?2QqPo3?>Wj2vx!RIw!Le~ox$pr zqtKytNUS|md4jw#s5UO)FF7NRYVq90S#%w)3WK4FrwnIcEir6DvYK!lMV?t?wAmMR zP*R21(^Mu^%2M$zOSDYcuPBPvEm}ker=|{mQy7uSM1*y_%JYhPQGc6qd_`+A5^$5*bTzrIz|SW3{m{c19{p_D$xA@_OLC zTtT<SWSzx_+U-Zd=esgBm!UpmeNg5 z5;Mi7zWlDkT2rd*Q509-K0u5~0_rCMKYmOfBB?dzjmn2gmHBw*T6-8#UaH21+ZnR|F+;Dd%6fP}yxND}Hp>^O%Lk(L{0zFJ9sZPYa3JRh zk{oyFoN+&hN_aH*faHZV8U7uE7fIuzm?&q??MpK{lc6_Cs~B&SjFqHXI*b(&wnrW= zYnq;>+D5>$MWs_J+y-59KA_ItdZk!=s}IKlJ&5&5?G1VPrH@YO1X+wrAxcin zJ7#G+okQ=96#15um{0(-n%u{A-7z&qHcjhowgs(}j1_wtOQdkp6mZfklrHtJgB|wT zaz!6oQbTq3ahLUz;=Tji2z5s)FI0r5%?ru|u*M3iGu1+G9v=%^nwu;YmX(FZTw(;?o@lBKG zhv4vNRKR{zl-XpADPN)$OBJHi4*#6+>G{w3pH6GESkcQys)(ik{azADO;Zzn`wh(K zm`V%A|rQES%yy4}rQv417ZHKMCOxdd_tyx4lQ*XaHIx1-~ z_s>+wylmNmo`UA0nL%@#DY*b{dJ%s-S&xUMKf5{41Rt%oI`OTOOo+zw1%)4O0JI}pIA&ws@hys$78Q;oY zN@*M^+Bk2L2s2H{7c&ue#$d6G&?+{}tCE|+Y`IT+NKG{VsLL_~v)shvNupB5CzWCC@m8q)$4k}j!6i$S-Nw?Od_Wo~-k%O5 zOVoN}Ymq=HwU;w85r^_>Fx+?!wnkes5Hz9~GKepLA)_2Z2IvDa#~t_RrcHfZ z5p2`+TA~3v9)S0iZsn~Gzlp|)FIBGr7FDQBTDj52ZUiuIn9veIO zc|I(XP?K3CIV~uGh-0WW*2m6-McOp}gxOLbH8>2ljog8lJ2^V&>+ugy4BxN5>%A6m ziIr461ADh0mg6eA89uLuCkbG?I&0&A5DAidGE^PVj@0XnX;F0u_V`!2^5O3&Z;0}G zFao7HAoyG2{Cwemi?blkUP;z}@`)p9Y-)fHCW%(6-yRkUVdn`IVp;@u43P)a6sSk4 zWKz3Atka29UYShB-GK-Ck$#;|mSp_g<>TX;c0*Z_vYQQ;y+>J7?~(VXG)6;b1+8RU z4N@K1)z^1s(c%e@6d*@OYq$6G?;Qf6fRZt?h*PE$I_g+f19MVRsmxzQb|xNjo10Ae z##SlD@h}`&Eo_|{%h1rlZ@oSlBUAygTASG{m*gCL#3hh4bA-5k*k-}NbYw`9XP{w- z&TOUZU6+&9r0siUTlflRxl-GrGo8>y&+%iB00*9nbwvrwrNQ7kxD=z{qo zyVoubgw?CN#9FhuM`P99(P}L8NV+7h;KOY?uSwV|FuLdv#Of~s1u$-+DdDjpJo&}u z##&PqxM)JKrdD!S8d+0k7fd`2PWp7kA=0iXId)CZ5?s0V9!J6Ch}-KPTL515n~n|| zf@_b1XN2edQa=4c{02Kw*tUUQ9+sA+Z-Ek&(jqA6cl8)J82&5C z{ibj4%#0F@lf#N`Hdy)re;xd7ff9xoiz)s(kc!D&eIrS7QtDFbY)I6$Ltp4cK1b7+ zm+C5X6_w_(u@vor^CaT)NU;=-#sGBD_CRusEI1q;MV5R$PYs=mS&$sVxWf^O5zM$S zWB~@1%k3@W+dTkHWzGj(JFT^thZ-p*6YQ3=Ov(UDXr|<;ufB%*DWd3uL~Md`r}n)w zGV)kbuF@2HK#ouE63T!pem_c>GFlFL7}fD0$B^ec$$)4uPhP7k2>K~qa66TO6Q^=7ZWxjFiuvZJ$=O#nVR zpMt^1*Tah}<156!@)aWPTYGgF_icNZsiH{H&lZ+9En4&(0fS5-N=W3BgPefnr{1UF z2OXZAJosfn5TsY|zUK31DphQ0tT$DeV$B$je%;M|pE%G9j-=Fi+;@H4ckp2bVB7ti zj%Tv|Y?what>z!g{`o>1J_AC;_`;M7GZH+KdH@Rs7A;b@8B2mJ2ox8+htz7QVbn%r zS2<+S?s}thX;CM~4FQLLtlHi;?2#y>#M;s6N>2sMK{XBQ z4N{)Ye-0`Gof)8t(@jqK^>{PC(d6x{H?-*LIz;TjukcPv^l=@L(^NlP*)35+JZ7vm z#S`Xn?q%*@j}HAP1OgJ3wr=iJR&4;g5i7l3hN38gQO(*Th7oU!ywV=obnI~nwTrIU zuztp$>gx%*`+8gzuD(GYl_U4j#-nn)>uxyIB%g<^YR0J-$O9#XsGc_iX(M7F^ZK)J#Xh$`k zrDg3}eV08QQ}?T*$q!I;jl6!!DI?r_Wj04kqs7f;+sGTa->M}bo#3CR=ys4LA= zKAoMG>X-@wQKDgPj>LY!{hXY^ouMVyzz#fUIm?WX^WgID;Sl<%0=NVU$XcHP3aGy6 zEV#@k&(5}ekmf$`-POyzls9?2$ikcPL;79~5C!|`HvCs650@56iGtCG5-xF(^7lny zb2hw79-zrmaL@Au2K0hA%xg_B1`l@{042N{{o!lA^Za0odEBjKSXc_&R3$@jDyC3uQ&=XibjJw2Nhm**G8hzY3u#l&%L5Y=1{d?aLO9Tm*F#SngDVA$(zop zaFL70J{cC3jE^7uJ75&Rh;hUy08yBPE!)7>S(;kU&6PjaNsTlgt7$kcrt&F*>qKI2 z^OoT{y|zrPPP9)XlGS7NT2-0B)U%<9`-*$--S+^L4D%2L)h!G6L(pGbgcX@EP;fX2 za~PPz&{tq(K!Y(aa#`#h2=E5BLNWqaXgD~vsDK2>Mj=Wr@;s`@K=YT1$+h%YYhvmF zbw#peVc~i{+Bj0)o>p_6v86lHRet)FBXWm&;Ib3W>`s02iOq6{X2W-{;;x`*TB>$v zl(CFutbBdcXoX2AqL9+m)Ye+(#bX+~Y)Wbul}=B?X-4ucR><{4mG zLGEUlw5c@K8{!Gl=Bi!aXH)x?=C-Mrw{OpCuQsT1OziXmug_2#mAtIZ>#LsifQo}w zmSJg4Kq;0G+}SD1 zSo=aUI}>V+ms^sRny4BChIk$?YKp^k)F+Zw!2h3@_!J5;G_k1A^e7+KLZ0ZzJw~o; zzZ5!cRJzR8pxhz%%}Gnl)d@qyP@Mw%LM(FSvNQoV6E^We{zrj@9l^c?q`REu!%HSS zB(IWJyp2%s{<=IOv}|OvU|kE4e2zDW;T$0ORMENCPFuPPlF!PT_Qgd~I}$u*kSDP+heD~b4JWikCW66M~2&mQtN z=NFa24gDmDX%eh6LMlutq6_pv%bB@ykwVjPQG?1Qt3H!zYZH}3CY%bB)IQ|Ckh|Wj zq(Ny&Cn<{?4Y9I&ySmPS_F(Q|FdIxGuFR(qMi@%L6rv8+A9aH~M?Op=;1+y&v7@ul z`MH9FIWjf^ypyj7AFB0m6fwXq>?gREZDaD#NVi09q_Z9Fk7sSQ)b#GrNXu$GIFJ82pR1Byr#<>9q@Cr@fxmFxbo+DjueCYo3;eQEDqCo;6CQ!uWNvVPx z%a=HH!V01S<$*w`V#}gC?OfROij7ivABrL7=4B1L-Jf`?Kh|*Qsa^B!nU~tPJg*W{e z_hRe)-1}9oo-Sv`+1uY+X;0`&RsJCNW!45VLMlD0R#3MZTpc#n-ksa6jxh27^pA2C8Kb@l;sg6CHR8-+qKfvFSLT(H0B;Z$E9X?1i$ zi4Up1n%0GdOQ=BZ*W~QDF{(_c%DMT}RYT(LOY6w99lo>XB}Q0{brN^a<~u(6h{*dX zt*gwzXeG3dkvly4nyzxQC;}-6A5x2$47enSsXXC_Y5&FNuA(%+97?BtJRv)$67RsZTLhNmGZDTL18$;pBQDiM}5CC}F59UtvN3 zmj;?-E$ZU0$XW8-D5hIra)q)UX3~5%y$pdO3I28D2^=gRZ4*Uk(lW!^9kU%^fcYw* zqQDV<36@x<>SIddV>op_fi0>G4_HACI?&($oiVjV>I`^fYPA$r=4r)-kY5%k56H?Y z4f4L|ZRmUtEqDF@cb>BQv(G-`z6X55`bwNRgwL_$V^AchThLip zzBp9U1f{v0d0~O>!pygy303}?=UHBi$JbR=Rp;JJr(q5;#r=u;JSPrd!Onn0go1%O z2w>WnF&2X+vP6QN0;9k*_A1D@)JskrS0oGj&rU+4IE-`@SjU}6yKmPW&xnUqU*6x3s>ml}J*=Uag76nS#RK2VEMwwyK5&B=RpGW>GpJGd?=Qy5vf~l6GI))SSJa`(fv+o!qUk zRBHgP-+??~fE*U~f7kJw%~0AHm0ed@$B~#U3GeCw_v5hx2q|Pz&?cA90wjgrI{w%p zJIL2EQjj+DB)BL&Yp~iz8$dND(#x}4aR02B-Tt%7S{+p(%SEkfGnE@s`cm$?CXG|x zDs^0(RokR(5(|<0Vkez@ZX<|{H=J|UaaEll8sl)msS*=w?gXiA2My%G#=59H~ z&0Qa<+P-<-Tj8GBybVY(v4C!o>8F*{OfHF>SQ&6)a1k?gui1StE$QgjSfKJ~*H*fX z#< zFyB^GNX~(6vrT0Sc?6wn>a?U{d_AvWVc{>xwy`{HgLNO@=oXbiQ?Zg_TxvPI;F-)% z$Tbsx86~I1QkUJ(NiovSE6xLnWbZGDL^QCbnw5z(a+Pb?6?E~12w>+hgAmv`h4@0Csr?`71u@D&w7h{8b@lVN2)cfTCDUi5)k{mHD$Jf zG7h7rWny)Zmaz68vhOkm6IAYdq2PNxG=(gWBf=a?3(S6v@KJcVDHl5y4vi%^<$#wT zIV}+^8|8<8cx+un)j0Kl+->1^fJ6{w=gbbrTnC(}w<)I3D09sGyijQTcc-nUQq`xd zs6I&a+@IQRxZ%YcZg>v6>XRcQH>Aopl!HEWcv3OuooiuAH1!i_|9t4&Qw^G=qt8b> zl}4z`LC`oDDMjWTE;JuACUO~w8H454`Z`OswV~cGFXO{b^S9(l!%KXczA7UGrotJe5bZW@=L!O8W3v&9|{dH(EhS$8+&|BH~@Vm~}+ z8#MDq2sV~CMm#cPK2a138BcV!(h!^xcz`%&vHY|fZ-hl}0Dnk0#ih6l{CANd%j3#J zf;&|WlQ9*lN@LG>Brwo!E;qLIb9ZAK*`~dF*R@d+8q|Vy%7Bq5hSb* zzW=8S7XLsXD~%J--uC!3aW;KrLLDkKrj6wha&gaWYbz^TcVeRw+87{?YeQJz-Kl22dBuivK4fvqKsJQY_*nt*r$5QsANt|PArD7ghH3o zLUpYLTXs4j$o&q3{!KkZp3R=t)YQWLfLs?gr_JT&x~wJCYh#VE>dU$JI1WN)_TayL zL8!9A-;d~^O%Y3JP;N0-nW~ePQE-_^OE~!X?-+i%mNsKgXxF%@T-><=}^cDk45O_MUHcY6FL&WL2sALH+rER zh4OYJ%l{1Nv0nnA7|n|B66Nhl)G(`GQMuDX<<5cY;=TaS0y%{;Qbn3zx7J&4zg^bX z7a-SiN8MiKZZ}lx+iK$OPGhy9owS1{@okP?Z`9G^CGUnSPd=lTsAQQ_k3CX3FDW`2 z%6X=mq&aR*r8(oDv&Uq)KaU%cpEguI!@cype^Yg;a$}U*+X`*8 z6da>iWdOX5iR=}kk!3I?1yqzU(l!r3WhV&H|5x{pj}AQ46T-mKVF}nAev>~h;EUM; zeuSgNmW8a1b znT1Ktwrjo{f!zRQ>S~g*pR}NI$TytszBy)1vq5uuI%=!81ugZk#Ky{fyaRi@-W=2> zw$1?8JhrA%Mbg2Eervs@cU)A7w>A`_0ZvyII$oqz);hjPt?@j-FmE+AiL}F~PTK*U znEE$ocZIcO`f`2r?xU`OK6XvT11B;;Ynj%kOSA>;QN3SZv#({S{eSvOMkYu6FgM|9 z?`pRnh_RUrTf^4XgWV$Mys~EqogcdWeu&IlSH1)x^d80vB39&44E!v}E=CKInoFA+ zkdjZq+u#S*@lBXwQfZ+DTAX)=uR|-5eKHHQAe3h18Ys*O``VJN$(A0KNF_D9=&D+_J+?ir)qTn!Y*`cgIlKRpD@+9(D44Op;va%e0F=WHZJ;9a2$br3-~nzg zPAcx{G&Q%&ed?xq-9OsskWcPYy4;rz8^XFq#$+JPjIv7M(q&X;DW_~#v*K>Ck*x2c zeeJahw>s76l)W=+w%cc0MFxetF{%Iv$O9U4tP~?zCEqP_M#G&=FuZVXog)!ZW|?rD z3inugsvmAVaa%d#l85FuCdgK1{{9Bw_ER@>8A~VJ26HCUFVfWQDYJxjR!y*$wAsei z-klAtJNlTo(k`!9yKc%$?#zk9fa;}W3D)y$NST2Tckya=lzVdDzE?v|XGfde@95|P zQC;j;z7m8)mS>WVG!~NZu)Q!0SgPUeF0yM5We6&@$491n}T1#Rxq$< z1p7#epo$qzf8$79{*4weWZpx+xrCdb`w08|o7&7(rK)bIiPp}}-rm-BTSv$1O?SN2%uSsRQy%mbi3MdhBDDBxEMDwCv0~_hg&X%`m9nac^y{SQi=b>-{5k?&q=c zqZa*{z`D)QDV~6nf0RFYp;gHagbB!7>G(T<$A~T<2|tjI#GeH>0IhvbuUp6M6rFwW z)DzaMNm6aO$6|QNMeF6+vVjgytjz!(MMN3- zzH|^n^;shuG9@FUJ$4vMnFsC&*Aqy9W6S_Xz#ipdR%|x&e<@i$FHGU8>0~wkH-cSF zV$1~_#jHz=b`%wd<_YuA^cOl!E1R-q{AMfb_lAj*(K(a`HA9DLR1TY2PIPOC%+a)C zN*OkeZO*Xb8IjIkztCz7Dm&IR1q@Os|H1?87KIx3*EVdesA$${#S)P|VF2GKm;212 zHEC~eU#qoc+gmR`c72^bq)uLZ&kug`v~%O>=bc=x4jHP>yW-;Gz3@mK@UDL>YJ^`2 zh%tNQ$CJXD3k@C#{>X&~lz=T@Xjnpnq7EXtclr~pCTmVwYkVeF>C|dU^!R{w#-L&p zCDkgM)hH)z3k$zTy%6$rfA*%k2B9FC-o0a8;jsdZ7t}RujaD@2U_O)5SAoly%lvF` zUD^lhyR7Mhzov`}fvt+9z}Rp@TQ9I z3QZa7KZlmSkX8+%l3Q_Nvge;SO?{|UH=C-h)n16ePOa9jCk&&tF$N_g_f)AYFtWY@ z#Xw1FP6lbOK`fVxiMC2FG6elHheH;KXkVRCg@@Z^RtMA69biQM@q_Qe3-vc%1W#U3 z(TGnDFB6^)a&CB~mf*UKx390w;+c=-&UR`Y-EAt1WO%XET31b-|9%2~91dCb4lr;3=10BE+#JZB-HE&xIp|KbALk zw1yBEHVnH6H&8GK@)dGDq*JTOn77@$QED*J3zx4qzHeK&Xbo*O%hp}8+DXPz%{SdO zKxt(CHy_|mpHZ-}5NP=`zKBuAUHR8cXEo;!p!ODm}s)wVNh~-{3xH{z<>~FV%FYJc< z@d6l?fDaPj0Klx8!B_+cU!Z=G;yKiG@(TG&=LZg8rL%xARWv~ID0z*GrIDRDXO_}O zXL{s*O>2Kp^@ACiQUZ$iupO9aDh(22&?hy58bUCl$({ed2d00cQ)f+aOTq&^$zFE} zQPR*RV}R~EPfTfH4M5<}e1FEj?zXcwl<3NpuJIk040Feum4@0{#whI=@|Y9l)V~CG zQqqL?t^)3zRw9B}jrR_{$=WoSUMn6)A1{N`vg9sOfG(HavZ9F;Eo9j<;w8g#Lr!Le zxZ{xpkgNsXXc(F+veu}HKz*nG=MNG z)7@bbd4-o6s93iy(sXoX6g?um(<&S^f`=$!!y9V-Bct8cJ=4!kQ`HA|h%VuVy7!;D zt%8AtDb;(g9*0YVP2k^$1_gnEDu?=TmM^QP1jZl#>U;(6NJ1uNJ`4sMn`TYVBL+1#i@mtJYVWLq6vlg#Q37Bk8xN{-RSi+Z$cw6*{v`Tb%ap#fN zIhg$GNx?XZtfZM{6x>ZS3Ri7R=5#BgH8wf4d5gX^{U@EKIe*PruR92rLt~>A8Y!dj z@&QLmRgaUV32x5>=x@MV$1KqF- z#^m)$g`0l(nLza52f0?dKiE8(`#Dj}&;Jsp%_LeI=$4lFRBOzctjAzOsz46IqlW%AXUeC-pG%k=yMuZ1~m!2x6)ohefznbjH9Z#+RA!MaE;?s7m+nF&9 z-*TXiFrZl34iSr0<<|Sl2n0#5 zk}=5CG~8CV%c=n3;6GCO%UjMrGp&H3k*b}$(iEvXZr-V|Ih6iwdpok~-UH{Rl@7bC za`)+~X}IwxiNcNhGCcay%W07qZoGlwqaq&$dRuL99C+cMUAim=7z=0;G|vj;06)k8 z&s}tb#pnm`e+2-`U;7ad5WVm^lqSVbC3$q=s~PUV=hsgI)@o#vwv^w9a8iqKlGZtS zI7xgpYP-cG^G|{oy?uh}IQSdt#3-stj+PMuFe+%HLtd#z?+AvJHR?+DAGK@fBS zRG@Wa;Ev;No&7|oY0(CP`Z@vcU^W0xr&Q=$l)@%4iDiaU7zaSR(V9LyG`p2Ej*5S9L;cdq&g?-dfNx z#(j)O%w+IU0MDU=1KY%3LUIMAZT=)cJCc_^!yDd743AI#ORH|MG&q~WfY#i)5~%VR zJSvk$$&k_pjoSexI6zX|^HuZn50Q`Oxz}c5Ji7q0{ehJHD` z4iQJ2^{g2XnU#jQ6l_ku@Zu?W4B>4Bcvip#Zz_yKqxh~6yf0Z+v4f^SX#Yn;G%wEt z$eHM5$aOOomutfyP_UuS8b+()?)}F*o5Av2d>)>phAR6S^~%q)QVh&y7;TbJC;J0wi1^EW)U<}1&|6GM!-mU zSLH7i^Z88?`xkVddj5I++^1Siv$f7%A0(h-<=2G`Xqs;L$N-7gYY~Z$QstA}X`>q! zOaVnjO^ksJG*CVFs-*UGTwW53mB`YKRx&XZ+jVN4#7L)iuKV?jp@g1S_zNZwYB-<2 zqglY5h%N*S?khN7+tA}%wy<2(qi3^CGObe7KN+wz)R2AcAOdF6lxmELG&$Su>a=<7 zy)eYk2}kuj4DSf}EE+jdpSb7l&;u)Q3Btu)VFGYqU{6cb54OiFgR8jfO!zw7f5CZ4 z03gD@fQ#t-_`uk!dE)?bY{@t@c6ym{+>Ha)@9XsqBh>Pf!115?Y-rq&6E} zT4j;d;m%QVj8>cRoO;g&g-g|b>c(Cp_eJdG>uCUV+iu$xz!OA-hBgG3s0_1ZtkCKX zu_1_HeN$5+P3qXNp=3+tb=)A-mA}ZGcj4Y@g~cq59e2|1YW>)l$h`l>{Sj?cZ5iHi z$#~$v8xJ0B2D@e@E#(bBrSu$pMg`H|&*)jUD+Rg&fkuX*-|jX9z4U;>9q1powvR@kK}peg6u0H0 z%SNAr<2F>9qE3U!RSXAQbKX~)(M|w@G zx!Ria8m){=s|g^zf{Bunro9PBluXiZl1I3n3Y_GBWwq97?XIS@pjbdNvMUBH!tY!QxMf;-47KNtX9TU`N!{Ra50$B3PkRN{nd}I4TA4 z+2T94ggue1$8{TOkJ}KI>-Ey))o?Ifa2211dV~bttu9#fO-edkt8v;`#Ra%?pcK=^zs}FUIWxme z&ylk@Z^7|EvWt!f9(EbkA_4GQ00-9o$?Ipx&kw#zz0)NWQM?kx_$4Gn7<)mXVrh_q90QXv4_!0|!$|8! zBvuDKFjt|uYMM5R&30A-?*s?}z1S4-OIp2_wU>LwwdSF# zK@V6}bB}fa zDb-jtGP}p6*knjIdJI-$fw2gd&d-M$HdT~0Y5C*A1Y05VnF6b8d;hb%o zZ=@KV9?rQNE@Y7)McL_Yeo*_+D+z@HIKsStE8Ul4FHBdNN=Cy-M0dyvT!E53`R+3`GJ%K zX8xGcpd&)}v&^{o8WUuHe4S`{I)H}<#}|SFLw>Xv+zK`t5>iI~K$GOSeri?j;Yso* zPG1gVf-m=z!C|$*)KCr^99&g$h4jvWf!w!$bNe|%lr?JAVt}i<3hcl`rYE>2?Hd?uw{lnd&DC*!n&+{AfAz)~ z&B~lDt#xMJ+204U{{`|r0emxB*I|~G&wdN1gBeD?SW?Iw`LQv$t%a>Lcw4)^x?>vi zBukyWu7tHJJvu{$39?;diQ24H@&4Yy${*v&lvBC0&)Fh38Wh8jK;2K?oaf$~1~`)Y zL{u_+@I%oFqEPmt`sSl6%Ukkn5aze}2aRl~gFDw|<7&rlpA<24c)Sl*V+@Yol-mWH z+MX5dnug}{E`UNW^H4|zd2axULe)SNF7oSf`9Q$aU4S0dg*#Fl4ur4(tyn^ofNd@- zL%?B?5Dte=zbIk%B)%e=jgPx-p%J;J&cOoy%(RdVCRB+Zktzo z6>IL=TXECuZ2f%cDHEWsM-Lp$1%H3}*v~PSPT6by7&jd{ErJJ3rcFvEj3TB%X_dZg zoUt?0YNrgv7pX6Lb03XRkBOZsI)zmGvXw^}jY3R7FgPdA)qrMw@ zg`tHzzDK((3g9Kx3sHctWGIB_TE1zuFZTgmI_oW2bJYlVrg1(32-btM=_my>4UO<$ zZ$Fr!u0T=3WR8x%sw}*40gg-XXRs!m&w*nQUJ2M7KbIpKhkC=i8g-+P$+5HpGdbYT zd8{sXBa>v1J%qCmSb>+3HQbF)n0j~iGZwRKWwkPb_Ms8Xb`3<2&eG5sT zAz@jR+CFcvI}8P%k#FEo^0} zwq92e=S~>$#*J}}$);6Ga6C*F@KJ9cd{1d$E#Sw{ET7Bgh)KX%nD(I1^J#}2;vsf+ zBp1bBLLSMm`GbTb1ltp&n=x!A;3#8iUPKVgxj4Sr_19}Bf2#p-R&A~E5@c*N$k;G+ zz5wV?s%;jNoLtaSGStO(nmYzF(`9GeI43a}6%$t-ziw^v`sa2-B#Uqj1n zsX|>dnvhVg8Ms2+0kN^nvON3b(Yrd z7K>D=(a2lvYF$(V8z!XWB^zw7bU6mWirb(7`NC4}nE(YjY~O_O>|!p!dW^YH6)nse!`19s_%M=c$vgWzdz@7Gi7T7b;fK%Y5a7WKH zBtQv;s>m8i|AOwvl7ojaAVi;Gu2_Sid9GyrdlSpprML=8gLhL9KFo?R9$ z*S+0bc|wgyFN<&B>J)*OiHPc$sItf@wMM42P1<~Rv|CK%`Qk4CXFmNBQ`m%u@z)$) zFVwwrpNyS3PHyAQpq?B44R^PhRz)JTL0r>lfgw?%Z1C2ZRelxQ$nEWS*BZc6ICQX> z)oKMc$wMZ&9jFVc02Fwa=!g0EC2UF#1MXfTv;m#K>6!e<_!TZczh+Swa-on6`C2mV zFt1GQn4N|7IUnS5+%qu#b^ESKKqN*v2>Ci=WY4r?dhY`}Wp?$&Ki>2B{Cw`6cP|`! z0V0$cnKc8;Ec3@odWl%;e-Kz%E`v&6FQs-ycXhDxnv{Y{^8 z_faPZVd%f`yF6?3Em+Rdzamx5@)Ik|OmO+#6)4gIHWoNiyu4_K_<>V`MTR=R4EFif zQZ*^~UO&IjmnW6Lv)0sfetFyEuc3;e_V{#3H!-oS8(JlVvW`~D$g!+r(aYOmSm%xu z`I3|Ti!j{h!I>Et+FP&B^i0R;XgaQvDCJaecXr!U8!T>9_x8%{PNuu1kX;1I78k>O zNmr|bGGD&*g;}mSxHjz@9O|?j93$2t?)KqNx$2-O#hvrl>~I+v9^>(<*v#gU2jy3O z)F%hVIr}=Fs@*GkiI-8prSwjy^tHig5A1V73KlOQfFEH;1_lTo;^wcSusog*%!TFg z1+MWB9P}TEIr2KWn%mSz)#jcRQ|Vdml&SM)#nzg&{W6cHeXPRpooP7;LtFTM ztM{}G{dQ2>H8l=zZ00^R(z;|4hUY~sJx*g)smNf1T@7w~zx@Bl;<_O1_!*z`3Vk;? z_CEt;0*s;+qs0oRx15#FW9CA*V2hBlK)o$bRd`{hq8vj4;s^Yf!3ewHBwj@(C1I)d zAX%wX^A>1lz}LZj17By9J%Ss>CXo}L9d!%^35n zBW2FPz?M^5XrHd}g!Mz67q;pGbaY`&V#&uf6&qZ5vJ#UwOfvXlTYszdFQc0$D%ge- zN@YfaG_c81;_m8jlsUWlpdXa+!>pgwz_)+`jB0kbp1LWh3#q(wM~`gst4j^et~D)S zrIV28KD8_vDF|DC-O>8|hdHk0lcQ+Yh2SzNkpBo7`LZL}U;lu&$pm9%hA zz-J3)b->Byfbid*J3x#e-1E$}n5%g*7DivxZrU(PCY=D7;oG^AR*U`2j1R4_A0uKIGb4RHndjSz~HNgwl9N>Twv)KnTUYKsHFDf ztwG~RaPvt`FdVI@-?{o!*z|pSrdw?@!bVzy<$)erucG=XrS5m5Y^L7cYAlWTxj5CG zd$f34jzH}%6^DS3_4)gInpno;QH3_|s+n;0UU*^!?R3(?jeEWv-e?F;jC#!8(WzEC zI6mT0dPXNez~t zSm`C+kqAXoVSywz)XyBD1Xl=Lhd(r)7@iRJ7GsYwKm*K5c`$(FHs9b1t6+Itss}Zp z{Ja*p=vPh~dRPOSh$>9wPQ8h?X&heUeOOvcE9ACPp7$9e(=b3k^t<1E_TYo$kw+4P zgW1@gi#kMWpYH!?XoxhZHC3|o<{{dn?pR$T-2#P?j)cNulJ-oLEAyr%@-$ss-?+5` znjpZlilB&u;8RwDWH{e+X&keUwvU`K44WSJGJdJXpy<}Ql+^bQJ}#=Gq;GLgz0;uy zDpRkM$al+jyz!ljqYx;RJs%MNojhl9KR9HeZLHvo3u6gKytd%JcnTNGAVrkVXFv!l zD83$DFhe9&_(O#GB>26qPp=$%MXPBt#jS8r&8!c3T$<5XX@yq8Kw6K@WKycOwBg#D zdngc5omg#rWrq9d3~|nodk%gjfd^D}H&^m_Br!&$y9Kbjp=?(bwQFQJL;+~!D+^P#{M^tvvl&)&NSMJrc z4Tn_)haMijLT67vVeYx~#b$jgbq-$6-3Amphr|Hi&N02HLH9 zXV-}jmCj5IxYZ%0CEL~M;qTeEA+Qyyws<5h;MylZ8)F+xU>wmx;8+9}aYclKE&zWB zYyh2k5f#CS@b%n+t6wJ9Rq*sh`LnJMF2Mw_(HOH-f%yPDR6%(kGC(U-aA~;f)vWQR-9z&=n%WNU%6moTu!-ZV9!iT^ZFJIjKG>YWYe2beNel9`W+1SOS2AEeJ> z=_mo&^+3HA1ho`Oxr74wQqbwRyRWal$DFNTeCpELj*fS`xl6g*0iyj312xu24HgI& zni8Rzlr}&va(#cfb7RxXz*%gE>cG&5Vpu4qyMp zgWR+2PXhe-M48$VSK4Hy>$soq-u*cBtK~J*Wz~1S8o^gh!)pcC2?pK`s0GK|3T+8l z$eVCk>okOsZT~+8E~Mq~5_mU=d@>w7ya233VA@{5HNrF!7(D;yQpk&R!@0bMh7Hiw zr8g^WOMNS7*a~;0(gH$?#7a!uQ*G_Z(=#HS+~3u*{>#~$ehI9@9QE|mA3gcx)+y)E zLIT9JmDO`Sgf?ojhU!|oDx$T53^lh12)D>))YoGf5L#P~Xvxv>8?yE)y&9IgI|1j*~m{Jo+IV# zHkjZgI7@hXiP7=116r?LLACeyU)I;x3q7JUxnut{$X!kv_0HBti`kNG%S!chhY}dn zFn6;%0JEB4s!+aAi|m3u`p|(0B$5J9jh6o^-vGU?7K^XEG2R9PEdtwK!$ar+P>v8* zGjIP7#wa97%PLy9EL+(4#4{SO@d?(ziO?Jkhr9t+$T{I81sRn_s{5}ujQv8ZYA|B! zdOiyWGsHxy*hF=QwDji`>7K2&$taM2RXL^&u&22Lo8-^R=U7|GA2`#iBO@b@(>7>* z^!Bs8gk%C!C6#Qt8ch+$WDX^PcyI$%Rvz7W`}$ig2e0jSR~V`^I#$g{K>wbWc|AGq z5yoJ)knfI?>hbZb#>P6q3(RvbUVYpHVP&}?@#6maMn}q!Rs~AoP%)}M%KKBnAPrC& zit!uAvyj&F9(5^QhXcYNhu0H}N?3S^SXC5e(U#X2S2mC?!vusEz`7jwy$_NPIH!$3 zEsXy(Piai1=9ma7iq%l5=KeP3+&LnFUaf%*gX94B%+&j1W4Q-DxpMRsAOqAMFZAH^ ztxLdsA|C}k_|Qo%)01QPiS3IeP$fB!2A!cG-~t|8jS^oY&*XRBm%XJl~+0s zbnt59ITg;e7;aXgr$g?qC`B;t`KyndPu4A&Gs_u+qWVtao0 zZ{tdXE*YRyGE<3+xqZyFeMrW#ir%%kXI?mA^m}Sm9piAS%j`NMV^v$+(4D0+%H=AF zLS`$a%}}&%YjV}9+f?a&BO|-nh%Y!_?;U|)qjsXOGAYc$|Eqo7h*Rw4^k1Z9;8!(zAG;?#9&otAIa z+Ulxx_1fypTixccSJ5x`hF~1wL2i)y<{z#eg)mic21t@RgF>9*M~m`ghw-P}=hjL8 z`ZlPo(v8!f8B`g4EY2!R)TXikLrrowbp4FGWe>lYbgBHgBAms(ErB}8YdGN7V9yYe*^ud)kj#ce7pFp& zreq*~0d|MND;e3U^Q$LRwo^zC_XvFEa5DMVGh%h1D@(`&6(#a$T>oam=#!?To|8msiCiVc;m%fdxyfLloO?wIQENM2hF;#6%L8C! zRQT3zkr;csp`wQrQ@bkEVbeH!xu;jJzH@Q0pIanbhwi=irhRc;L{)L>Wj9>UegCUf zMuvvQF`cNrQeP2%N*|bTnO!p{Ga(hFRVm8r+@`8EUZT{=s!ax^n^vmjJgs*>G+%Z@ zk;Ve^pC~UJ2Xs7-Jry{bg>o2$4-Yz!Q^}uk!Nftej&I{Fx~7$|7~$ZGt>C|}L+|7OVm~xP=+K+`(*z1~mg)}5fM*2Xgq<18D!pE0P zy@=^aoQ=aQBYGTImj!iKEXv>nAoOAoYpbn)xPZrG$H za|UO9e*a?5Izl}64O(_;(`57N`6?$Un-RE%jzyxmsJ5 z&bxf~t=s1RGTB_IR#-nU@z+Omzdpe@^y z`<Z`|o1Kk7W z1aJ@7{sQEKFv;p*F>he|B z!iMRmmwW6L*ic~9j@Y%xvpk43_*9SQ*5IOpQl3bPoDh!@fz%Nu+M*QSI>7sa;;#gm zh(^j=a5OyJEV%YVU}s*>v;aH1e|BE~57erR((S^kl!>-#R9?OVQeZM&QO07@OUVZ* zPd25l)l@fe|3Ing7rPxpvlU{aQPF(LbItyKZ=0YcHp560_XWuF(cOy3#(@EIyD6;b zQUr%gVNYP8!80AQ2|FgtECv*9 znU1358g<*;`Z=q^)s)mjJFuoKIq4`HZ8xg}w7#~BV%X>!pV`usb$SM!9_KLkN6=l} z()TY*>3YATiXco&~qAPozmsfR62>#$XK*CKcN+BR-wnn@F>HYbh4k3 zF77e-tVM;b?Hx*ksE5+;YlEJHF1hcFtg+Njw<`Q$ZlXm~;mR7k_PY~WhqOjwC)SkC zCCx~koKK{dDs*zG&8cWHr|l*a@t#MC8k-#=_=3u=RVM1qP37B@dL89^3SNEdXr+nJ z{5L5i7KftQn6lwF?W4pE%}(e-l&WkRI#y%KhSydZO(Ne9q4L@?TwxXk1`hsGv`geK zU04X$^DVz}1qG9@d9nzaL)JiA4&CS1W-_}nnMUqs+-7BH)~oT&g>`{hs431@*d0xc z7LT>5rOHvd=#Lm{>YmUCraVT^Ou`VH^P2s0J|?W9RE#W;a5zc_?L?`SCrymn$ADth z%^+q)u{x%HwA9~xY6Zn;Wl6J1+A?n8;_%j9`WLu%Iuq>dXo>l<=Og^R;0YC`Sv=w1T zfX009A77Hj7T+fNHHJ_Ztu1w zN@3qnB+mVaisarpk$_w`>E*st4b}438pyY~k=w?{FP?%7A{7#YVsl6;mvFa&P|zC_ z+-1MNYM6X))Vg63Di@0WnO{MJxhZBzln|3iX;r&Igh9s$AXguV>%0!d+u6)*-<^e} zBrW^TJUX`FgB==&y!X1RdtQ0n?E!%kU06$GvIE}oc~6CFLSYOo_$?)Csyw!aI&09{ z)I>d6!+lofEh8JEp6JHmnomH;P%cvAjJjC%Y1Q-O@78fS*Ds-szxB)-=qaz_>; zkshzNQZ17cATuK|8jwHZwT`Mp`wpH+J`S9G z`#KsXk2l#+y7HO~zJzLkEd18m*Q=5b;xlIza51J2tWZ`d)q8 z{=KOh>akoC5KMPcQ^Wg4E;`CaJKRd&uAA4W>m9WTSYnWF2xPQn<%VWMWt3_=_zH?= z$)MZ_PY>E>R$XW!;Q>*)u zD(=tCk=cn(bCK=&zI}Z66kLTHsnf@Eo2c)kAF%a(^Ril{*TYnux!>;d4LL)u z(I9N`GTg=e;f)TZ!zz!Q{jF!V-d$63(kVO3TcXFGb}Br+8;t&8kYrW!?x)y5f~9Tj zt;vsv6iuO!CJMI{%^!b-cNaeeL%~)D>h6)+>mGh$5hRuri;v%PDR;xHrK!s=ceAFhwvI4v~>-Jq_Zboq3WKTlek2g`A{Sl#?Pqo&55Qv7v#I!1PK zmrS-_F*(U?oFJ2A|ESIb8gbqEmz-b!nz{GV z(_*ySt!Q{?+SGCGu5xHzmuK#%8p*vv)pe&h1NrF$l{!D{&=_aqvtP_VnqG-|Bri`7O zL-ul~!I8 z28YAbR(b1b6d{#}t~ZbEa4H?Y<`-Ir3KgUOe2^PaqQ{HvuTS?mhUO|E4WqqnP06k? zJ!|ew!{BGA1!|Sg49g69#fZXaAWxFxxQk?DD|dy2T)^#ekC+=e!yw+JNKQxb_{KZ- zjgC4x3@&M}#7SPCCAUp+A6fdZ+#5yhHs|n~qsYa%Pyp5lNc9QG?qCb%iL%OV8v>zC z+wU4WarneZ(I#`xfin|0kDLAO=y+~Bbwe+nmIby;dfe_wxQHwm-;2wzfB|~?Vtl7| z7Yw8bO6qxILdPqE51dV*TiYdc5QsvBLQ*mNLK7^6ri5tk!PCA^ZOC0mZOmQs&)Hf3 z!h*Uhu>RQHX}Uy{-hIsK8@%(!>`K#6!_VyAu|DwL>gZWha*LHo&$PWiuJ_7kWG?Ol z>Swv~M(U*8dGpEl`^l@#sVodzUth&tOdKVluBIxTu2QXzRM&glb@8xTVRtHZv4+k7 zb+>->jxNMsk;Szpi?hS(uyt`$J>-dAAjj@Vg7@ z!c#3>p(XEA$T+b^D};4e|A`Nugda;^+<|MV3I0QdYL{lplY4h&`WMsFzaFr543~+u zdU%)4Fd>o#3a86-~h2<`fGE{DoWvPd91L%(5nKgx(MFq(C)Mp!-+R5Xs+zh#7 zCc<4tKDQ+|Ov7}qTM^miak8~$A6pM{D*tLcaLr|Ppynh_pL4;vwM6>w!MQ7(_GYW! z)(+Rj4RIGIJhZEf!2Sl7t_$uvz~Tq;^~Hw@!9(F$phl%Eitl|1#^CSfzxtm;^s6(P z(!nOF)k@cO_?aHUa-YnTleu$0l6%4dx2%Z?RfJUw<8oKXB7@lvUm3X!H*Zkn25z04 zJjZ38nw-248{{UFwrRF`Fe=t+#R?om&HvxlG0GJ!Y>Lmv)RpXb$jE zs{ou0`36{ACR7D3rUMFmc^OG;+2q?cF-8GYljI#U1@%6@BeoFOmY-Cit8CdF;yt`D ze@Ojm#}0c>&yJRs($w{XhMub$Nlb0KM68mwce(s)*8GID!eRkvB?om9!odYJPiBk8F-8qdJkmJKDm7&qo=Weo6 zgPtC3L=`G$sbsgPXHW0N127o;ICa`k?kMUTGvC!sKXhXwggH97|5~>dcp`^u_~7d( zo5<9JAt?}B{UvZnyu+mZhRT_Q$&3C z19p}LaY@cp{LbOw-07kd4(=y^oHjT0mZ?fLfDezEHkK;q>F{rR^nS&l%$K_zq}U`% zvrhJ0bM{tE&0Xs#H4qjKxH(&`#>XZ2Za;5}K-heX8276a96RD0o5HByU3dQwHxIDXxXh8xup))@hF9j7Q4#JacY?utiGK;^c|23rjETW zUG^#GN3kK`0LjA_rhF(k)LK9<_%!AJcE;l*e`H&<+Q0MCF3GZ228aIrZ}QPcXLc^f_i7$#p>cdX7zMb*f^PN*z-h+d6dbaZYRd<>!QCpp2!bZ8v64 zD+l1tosd!V!sTYNNHppQ@iYL+jX7DWX`R;*yew2VG;WzM{%~fL3@-nupn);YuBHp{ zFY{3a(=o2E?I_4H7$t$h5b3A)PBwF78NGskK&%9V8ihkTw=6DkCzCI|G=*iFg_GJ~ zSB1!AmKHUZ{aL51)mBznfE~hEUMK@ju%%=4YbpMx*e-DB+bdw)N>YE{P%OEO+1K*e z@ao}H63mL^t!$y$6|>tNaq9p*XPDWfsNJ@u3OL~e6>Cl`6?lv1&vi>pB3EKO?@;o7 zDCJ&10z~i@e*7g0svraVZ{y?eT98l+xc>xjYb?b0Go=m)Vr7D$2wXol5oSVg(3DJ~ zg(=vymQ4GHjDRsh&jg=KNi24E)bs7PHE~U4X9YC3N{bsyEr0&#Z(3!gd&>=@px2_I zi`Q7`_Z8m6aF@w%?uf<79&#EqSK%K5jJNDjV^ePt#+}tu1=!Fu(sJ48s1@Q)X-w>a z*0*z@dFRbj2H4ZN>ha0uJMR?i+qZVDv!&it59yUfk#As;ltgipimtb^ZN@R<&K!DYUV<(Zx+|O;z+r^XX0WIc69A zhO9q)#91JhisU(9kznCCdjee@+_LRdpGc`->#w@Dxq4vZ!0B;zjjsRN^MVqqRa~~| z-1Wn7w6Ef0QJd8@?65l$=pXp$-i$Dfd_PxeXG>-^NgRB}!V^xyY2QYWz_b^g(J~Nn zMlR?zj-!XO-jUJ641$|_E@kjGrKZ=@zBiLtG0d-sf_{w;A#}98sOZx8B6&#GUfSyW z?z_&4B^@2f&E$k5C$RVjtZt_tD%&-_x;%zc2#cD5w!H^daI~5lbuLMZ*u}67dbhYm zyoxV))NI+{hRs{P*{c8)@HF=J6)#icB{?W zWw5y?bDhST$eVHMM+8Swlta#^R|m)81_ekpmcQ?Tgc}C7^NJI!2od}e~96;LwEZ$PKV8IURXNE51#PN?U`ea6Fjh-fnS#h zqDalTqDH2nyAVbeuaSRKBYATYhzv~zeWf?&)E1&ul+Wn_+FB{tzT{r!?POll3olr} zf!_GV7q7f>&cp=W!Oj^?4h+Yc$CI@i=P7cy`KlbEZ>?=?v`N}})JiD>u(zgA1$>;W zK-v&tZfw7{vc&KAUs`z>+JjZU->_k0WT-IaaAIWE3d?|Qfd=0U8k}*KZU}3SGF+J} z!W)Zj5;3P~zsFzS4(1=poQ5~v(0}?Vx#p{{-h7j;NEOF-B~K%;!JPh$xp{8#kE86= zXtHmZ_4fR(p|YW&VSfXCyrZp`t))Y5x{frH2j02#Qa(!g4G@RUv~A-jb3kU6%1@8` z+4#|(w6yUvg7?ls7v_5wojIt}l&Dqh8y~S+8%=g2reAs(8oQCL0O@0V?Bg9T z_WGxsFSIY9)_JjVl)^Ka0Gc#j1>v&bMIo<(Fd$*zJDp~cO2hk58S%E^96n&h>0#^C zYZtKG;cpysRK>+&heKB2kzdF(13aHQ0kf7Wy+ZA=8U~7pN>WPIWqe7{K!3%2kyN+8^b$Gi;K6eMG~C6GCz6B1r^72}A3R8I?drNVxb?IOiC!lt zUbehc+}CH5#8%WPRUDwuj24IwfblC!C<)B(85urvNtan&qR@qh)-pxS7gbbLyh9)P z@s8E2w7v=-*dObW8-Y~!Xf<^}G?yBO8Ua6hT!ol@GYYPA=^_L%-pZw>b&bVR7jl)*Wh5Qo|-+r6Hi*`_PQ3Fc+!o0ec^;^ zQ$ShERgQU=ZQK-u;6qe->ZUb?1#R`WJ`k7KR1IfsU&ne|e-$jLsj0a(_yc|U;QsaN z>DyU_`8^GK&Lfk1N=o!s)yQ&SG^bVV&38S}wx>W-rY+I>&er5P%wmbn3O!#1CB`|$ zCH-}JWr32*D+|K;X$A9rypx@3j^V|HAO(KmLXck5nTDDwV9{ z2Rz^md(6rc+EAskZG56fS5O4YC(1OU+|FiMsCTF*BpI6PWeZ!c3KoLpxFYyH*k&Ev z`!03st|}Q!Yn7fPYHPDfJLU%AAHfC?eFZFdkcbNg8<*V|t_#1W)r*uRB@$&;U4vQc zuYe>w_sBk&K`jGwg2TCJPP+Ig9>b=kK)rws$ULYw%ZcSq3n>@^d7yd63W_2F@(JKn zp!LC10nZ>%92EatzvLBrSF|a*&fs6+&9d zh?C!w@0DCh&HlIky&4LjE8lzRmU1d8yZCo6tdN;SD_{DcvgNUjS53)U zmTd157|oIeS549vnXi({v<*5FY|u7#Viau9=9CROtEI&(Y3WdM;1XfdQpqx~nYgBw zltv<~vwAR?BZft2S?1z~;^N$5tBfcLRg5+-TzrN)IFbv?RLw2lwolc2IEazNlA;9j zU}USmyy75z;K+fq&r(;E1;8-X!701z7{ipBMZj*77OWZOB4=nNM>NYo%Gyp;s}?7!?ibuVUNJ+Z~gGY56lmbZQDk_>-m8A z-g3B*N(uXX1tQYQ77p0OIfHP$9^e&tg!fp;>XC^ST!6IWco5Pt^4E*Ql^K_V*N0OG zXkAcO@E{7{8SAiNqMw03YRv_o0(6OI?@97cW27SY<~6Cw3j(}F!>`pe)txq zZ*tOcxwnylXezJ}P&$)(8PdZf?*yiqE?1nU$PHwEFqqUKn_B95$lN z73kTDh>d=K;J#Bg_WL}(b9`Q3p#7;&$f4|-sNXJ?0)<(Ysj%tMT1%j!NGY|L#ftnA z1Mw6$mRJN_ky?}!=nrnw^9zvuaQ<*Z&W)@O&L7mV`Cz34>RPFMI^)(MdInK|2#$@8 zG55pQF>uMy;_^*R=&=|)mngj1X8I`a_88dTx0$Kr;R&XFj@oE!uYlX0TO*MPX%@d` zn=vInDl4(n_*G@fiW;WC4-GmJD`%^#N?wElZhzqg^5To=yFsCNW6t|?^4v8rNV<<) zP5|#$Nw(<>)Vg+ z+zBv~2ad^sSw=n^kcP})V`@hi+9+70xCpK@1P@deR3ctUc%Lnp@!t$Tl?!A!z7Uus z7us$wo}A+eX!>NK@W5t)jRR*8n1%$&nT$F4VGenhI_SRdzh~4VBOezRui3Pzig1F^ zhLaalg<9p;$2au}EwaW{J?h<_Gwxo=HO1o{8i|%|{m+&I=fUQkkCTShS^jW0DC=f+ z>1eVww(eIi%UFd{peRtu{B>4)Ahft#W7eM8@?!G~z#sSp>8=F|;w++Yag0#P?PV0> z+hZnW0jF+V))sH5*Fhr(SEjZN4>LElTu@n5Sy_2W<;OsMFZj*6b@ZzSlf(oJQ3jbf zzb1!KRc;ebU1#{+&xg|y;ABxWNwHAoDLXA8$ z*~sPL5=yx}=dF56zOs;0>Exm;Xjl+Syv~)(9h}}|f`jdagMIHYRvvQ^FJvQ#W+Nfb z&jQd82ojHIMtJ<-JqVb9{-MA!hg_64b9ngqey|zakE~GvUVhCly`*~gU2^HCpE3sz zo(0;qJ(UJBqOq|f%!1^#M^3OdwdYh7Pn8rFTI;GbMVesUgtuVQns1pTUh)sRF+qMm zs?h7gg)pp}T`ZCcAn?30RDjV(h>t%0xOsDe%E=!)=#!?FK5rnnri}c)25?DPqugp; zUn6&G8Z?FSw#SL|w|1vgk_F9Fpqv84k$r&PJjj-&l}!g&e?EW($SfEKHA?|uYw&;% z!Bu8(nN-i*%o1&WM>f=5kCWhFjtz3-4I+Pv(W4%F-a&$Vl7of=d7P!(~KLeE(7M z+lV*xMEG5AmRct*Qsu0L61hQ!^V6^RPh6f~xMHo(Dmigaw@Sr9h{q_rK&YA}lC__? z;(Ar}vJ&WS6S@*)W79e1K#^a*v;4xn%a(mbA3GuxMubAp%u)bwZ{z)OCU(a5cf`$b zOD(SSg$Se(}>5sZN=C4N((Pxyi16tp;5pud?r6kOjuz|IcuEN(TkbS zlGFs=(-|%M`lEj@n=JERL`cFO~SAYHW zTW{@xn}0@15j?E;@b?~e^6*UxcJtvK=hhAU_U`K<;hL-OyCbDrt?cfHv zZ1ZAmWZs3(p3SI4n;$r1$p1=Ap%;uXI!f&gVZ$hFZZxrlO=p+pm6erkD?LcReEO#4 z%a_!5M*Q{Bpfnpu9cwfmw}W)5ATv~J%5oLfQnf-``9$SFwc7w?C>g8HE(((=i>6#_ z*ZS!~d+(sf;06L@@DzSfqWh0AZ>jht1;D17VyBO8CQ3oCkyfGOig>o+!@n~~D(UkI zoTr6!CWrn*Koay;26ujxO-<2ZJWzG7zpjI*_E%qg@#dRo<+iY^#*!^@k_~V8D;a~v zv(e^oQ*%pg59w^#Ol|C`t=9rV;PYMP`-t97#1C)ZK1r>2_Q1)gfRN*W~1id>uw{)uHe}CPz2s})bJT*kg4q$Jc0n8P~;4NB~m+2<0C5w zR^k7ElYs3$7p^J|mF)QTTax(Z8@eWucywHn-@S2EV3GGPjW|C|XmiA#l6ZcTLbELc$J$zM3{3uf6rNnJ9+Ry17X_xSz3bN&B-6Ga}`vEyL4 zCVZ>zb7e(`-z8TSaUx@GMeafvuFQ2w)LH&2ou<@FF093kBM|<}{=2V{9t1_eqFH8z z9dw645SvnfOkZ?6*z>vR2p?`JAE2d9eZxSJ!X+(A~3%gz0B_!#RB_V%MrPO4jVrj;B;#-AMC zy@Sy33&B&&bNI9xjVyfq-$fQiIur6?npgtKC7z~_jg9ql6`@k8A2v{zDZeFGjei)Y z=i`}b{mWl0P=37{0b~@@8SIh-#HBYh8JqhGq`3-jZv*M*5!cq#)i%Sxwu)4WUHN(9 zc4c9ShkKb8lMCruc4NoYuo1b!ccJemdO1-%eER8c8AEF(9ZHYPGB5>_Xam)Gg7xr~ zL`)3Pex&fZloP^G0C!!$)nolDB?p9_Qdf@144Pmbd&r=4Gi=zuB%F-LznrwuKYac< zaxaqzJx~mb<$n#mRhIxk$!8pCq>mEl_YUT5|MeV^NgCO(sMqkfoE7Kwa@pdci%#^= zHO!%;tM%!p4TlbqtKWI&*=P5pV$wu1I!tcdUt4=;eW(d~<>cf)_k?Tq*444bz9kX0 z!V4TRzLt{W{JMOpyimmj`YM@wo6mz>(g)e(zv%rx+`VocV7o!+g!t{xuxuQ(3`6Xg zT4IobXpq7P#Be;1l`*F*#6drgA4_LW5^J13UEXwTDZu|GJZ2ZQGv4igpPCkw)e-@AbxlL{qbPDw3)DD$XQODWY{FZZlc@U|e?fWMfZ^6D*tCG)K zI-&*ss#7Y+!H^UJty-DYdU{Baudd^))>kVPdO0I=${Dd-acx+tmNGESktI_#8?_Z` zo5puP&@K}v{gJFOYN4K`spv48f!s(NfcB;c#PGNB;MmNlV8$QdkkTj*lC1`a>~t7^ zyZo2$Lq_KWpvfsxExvtQCxUnY!g^sEl21phBD_^#-vBjB-wS?nWIDnE3ki{Groj{K zWxDp5Vo1T-qYh`5&tncI3;c%;8NT_3-0;H>|NQ69@o`83=0=kZedHceOkab?cJeAM zA-|0>SyCmy7ivYh1-MI$E(x@v2&EGC=_*}!k;p9dHVbnd9r|2-$93&Ft7@{eT2W}O z0~VjJD(L>4K1H7>cCdbHEV~@vJ--kjpHgxMZxmjPo`b#3r%U=kjnKWs$1z zIZb#$j>upTT6;BBIcq}XnOa4jTh*-gde;xqkAWE)hTU>sqF-}5XbtFbbf`<@dHH&< zE#-i7KF1aumDy%)WyZXppF3hF@LfVHF}%zDO+iSJc>BCNf#1r7doVm#=?vBInj~g?gi8*JaxaZaZBH zJd)e)C}j)6yUX2>AnYoClRo(4wM&-lseY^2RZQH~ukPQ!zrOq@QuLw4A{H^617>Id z()*ig@Zt)Q7HTtR$U6%pzkap~i}NLSuRZxTw-kCO%bq+31YHSd=4CMI$5sb3VIi`L zP6B7ma^T>G-8RQsE)*t4PdMaoRLl*WUtahfSS5b69G4-&DFGq!!c3i(8Mp^{!_p=X z{zJ%LC-VCBqTNT^Y#TAqkLkbm?j@n4%=d=dzC+(Y_L1n&T>}lS6E7L$Y~tAE8@z*E z&iU;UhrDt8eI@7fo^?x1XqMHiUp8bqd?aw@l|5wjn}baGKj?qyZw3a=>gZrSY0FN1 zwf|})UuNw4jh&s5C*p7Ky_p;+>-KZ9e3iOkGQ3tETmba&BImFu%i6W3$H2Me^5SrJ zAzdSoDTJ-a%k*J*KK(-Q_CXQ22p?aFJ-Xca^BBAx8t2kI;Tho~w2Gb+P5kk&8xbad z>BLxzCM)$mo^=gw&P-_$A~+s-@PhoI6(xf_^gtuOm#Ij?{|rP+KTG}txhF0<8o+rz z8vShwdLAPzeSlmHZ6IBj_R`nMzCn4O8x~p1a-C8_;!3@tsRH(uI6`8Hh|O=J4~E-1 zU`C)Jw~m=g=eY0C2QQ|ZSQVr=^yc#Nii^q8-MfEx&BOka*OmxX%B+IfRr11Ndkv8IhXufSmJGmiIvIoDoNO`m%I{rq8daS>1~iCs=v>CliD`%C`t2lDR7 z$Zg~fI&8${k3^uC4Gy$*%WK3YbKmZ@7HRzK__Rc)N+REZAwkCO06mZSBY@fqsQ1+ z)Wu9PP!FKOBH*9ie8R31_MC9p&&8RM4C>?TgHNViCbY{<2Pre*3U-fx2Nk+aP9oL5#O$h+Zm;>`K%2mg+gJK-lEUX=J*v)2A5oE1Og}}Y>~^Izp`AQ zm6R==(_88}adWjmBMEI<`DvxbCaM-#)>bMlqAG!j?CTVdiqS%sp@pUw)z&mIca;5= z0)^nxrS#K4V7cF4Lq8+cM9C3a$BmkT&_$}9)8-aEYjH2rGC58qjISWsvi0AN9g6LfdKR_ z=u{K%U4AK+51g;!P4+RBh*TRInhCs(nB?;cj^BgQ|CuSG{y7XcrMFr~B2Z(ng^HjX zhnA8rsQLhV^5OI9S#tPD9=5E{C0|kH6H`;>#}z zHLbLz5gNxXgrapGG(?hvt!DD>KJ z5vvm0%ES`ERb+SUy@5xEp+GN}3yCUUm8B{y2$q!;4r%=J`e4hWq$^&mV7_bdH3i!4 zZLDozzNeS)|Aw9{SCz0}8XfV}kO#TaLvLqjA<;LblPLtI&==4@Hi=L=E|AJkW zfLRNDr))mG3Tkg|IF?VaxLHvS-6FZOdXyT{qFAOM*0}J_ID#fwN?v_Y$}E9^Z~U~G%R!w zHKCL-<9_-8ZV~x>baWqCPv0LUqoXQ=p{0yfg6Wq^g@ES3>@hx=%i^?1VsR+rrVo)SVas*dY z;oNUyLj&ZZc_64`wJ7CF3&0tmuqJsbO}ID=Pf*SAVo@L{909zBrsS73E2UUC$~lA8 z^ByxZ34=BA8JiUf@}!uKKm93AV)Qq(7Y81^ z3ruv?=-8;(9}$`?lIo(9;woF#1Zz%SN6w}j%w&q*PzY@KlXD26NANM2NNgj8Z^VdX zh|_B`H$ch!b^n4zw&?j$qNG`sk2S}Dh(qeg;fyt_hW852f3HWZ(+QehU^)%iofeCw zD~~_&_cYcWCHU+-n92td4<%88J@$hv56qf(%@or4#@6X2@*o5h1)@b6oP=2hTt*Kf ziMJ4OpX7(cM_*7Nno8bZu;4?O#eN5W$viYkFPR`sVg((NprIXPSA8&29|<*+;`)kU(nNyRvGT*;`bI?BJUb5M+MOx^ zSvV!pW-VaV#qszL_`X6O!di+=+V6IBkkO6~dW%mTtk03y5V@;1SY6vdMraqisIQOyJ#yJKmqtWt6&pVL zg0pK#LS?81_U0Pur#&|{Fbg8J^{0WpwbDO+sr3%E8o3;arl!@V@eZWEuWr!@VWWvK zEOWXX61TXZyg=epmiUU~pyeUZwEI~_I(u1`8U_srK7s0Y<9`Z*RWNnuRn88~;fz$jmMdTY*9{{34NR?+SU%TIGThs-Y1 z5DhXHCa5h|fE&=*Lb#_d)?ab`74;&Gimg5OqVvM^;UZ5FnQUJ4!;jySotoS_qt@I^ zbZu9(uk5Wk1S}6+Mi+&hi!fUD)2f3 zp9matYE}hOS){j~b(p=l@R%ic(xLkk32~cjLbf`3+Aw{`{trOVz%7%{aUA#l$;p!j zg4@q-$kIsaHm{)vC&h+h7mO*(bMs*#z<>IZhX=?P8zsM|d&wN8>4OjG%iESOZ~u|x zjoOm$uvhgMybhVFR0U+DQTkQ*{7cTO5$iNr!83Ml3#BjfS-4CYWT#ChV2w6aCtr|W z4LNO4Pzw!4=wQU?0x}`^e;|c2@o7>aPkmL&q$ZYme=6eV-&6XUlF!T?f}CIN%E*b` z*ydie5!UZ08cvyieOw?AD}_ce?8y^I2*Yq*Enx*&5{ulW5<}yY)~y5#anF!8+*OjL z(Ti(_Trp;ZLf$WK5cP|%L!mJkKDTu)==t9KFij$9B6D43`>yrnz~fVP%C2`0e=Cx+ zB9;Y?8b!TVZV;M+#d5b&ERu2(gU7+@wS!lm>6gGLSHq)M#h9dyxgsrL@+k_O`5xr_ z>dxiMJAO*b@X6z-3Noz@{vTBZ!~sT~ZwF1Sy60t^DdzFn18?mMF%cJ%`)Kc-pfsJr zxOmynhGF_{?jcYbpiX8c`}*!2kpR0$Mc5C`n=)2asuh}p6=Ik>^$G)Z=3KHnPG4ro zTzVt(bsx#W6UE59>6+Mq!k*u^@CC0icnLev^FwfLb!#q#*KwR-fEPd6f z9AG9vN)g^6@X5DNY2hHS{9#b@VeS9-!2AVysIGYFrI+YIq{N^$q)A}$ocw-dMBFAC z7O&{vIz<0&`2?8EVe-}*Ctp7NFj4>E4{>Pj9R8)V0H4+a9{FXsNBCK@r{ROtJP-CI zq|-Crsm>hItiX&Fon>Fp>ZUXrp3&B1G#Pk?e>L=7)CV-b>}!L{%H?B1=&@)S^_xWF z=G6(P8BVUXCAX97={yPkaYr;NY8NLY^V(1AqTgmeL%-w;(Rb3zaAGGX%9PPPZC6~h z)h9KY#m@MG<;%*ppZGut6nH`}?;`uVC>tdoZ5I3mIAZ#l=%=63=eEw9*ZB=(XnAnG zKfgN&O(TH~meG0F$A?R(dvG)}-_O3#Uo>q;P!9_*(|&bw@>+5gU1B58(%^%z5N`|l z3-z;@Nj@?08Tk#ULlqU_p$dQw|mXG{JYx)2v-k-c=zt%(GTq{YPx`_@P4C$?AV zd;EaqW#sK)`rM!r6`I5+x$we^7i1|l;#02~e7?cf-qV%Slhf1R&0J{68*x}1W6Asc zXI|W>Xuon#km>59>~T*e`S89aOXdv++0}bb9g&|@l^%T_8SGh zpGCOp4)Ka#IDWhxM#U!xQ3Nv4!vCf=1UwDHQuJzU05u0XR*-m=_3%MI{&9A9w>To~ z7DbyU+Wuv{?`zBt$lC+$>Lx=WfQI><#zJS_Xvosmm7OIM5<^3?B|K4JEmFb2yCUN4 z|8YQ?+a8v>l~wh2(G@rveMQ9CRLQkUokeBGcYG^Xw*Lg^dxWeU`8*GJ-3pxJ$(tP- zy_ylSGIt&a^w>s|#_sf)$4aW1_kL3gWVJ1vLlQavqFt4><4xt^GdGu27RxJ8&4_`n~j2kxl=_0bTMU8&asN010uVvkVmE$=CvtRphE(QOy((L9z!ss-6}PT%}tHwFZb?^(nml+U10C;m>vKw z1g;q*tQrO-ozGXrPCQ`~Y*pT#vihiVM$kp=FYm{hX>a6*efj9sn9d+G@Lj6HkjjsK z!M3D5Be?%(p{9FfJ3<}p{ryK`j6f)taSnsF$_@i7wlX(F-5=@tT;*sA02kwJ3utbNa6M`ktHA^Y4ow zbwua}+G`G-y37STBJ7EUjM!b|5!We7$_wR0uFUDPX|nt3^xkN;Rv!p`)kg*W?Gw|r%1v-rcAsz#+?iQ^7{$r&S4&sy zVZb^iZ3w)1lY&|gHwEVHkN`4miJ6&uh1M9(1_a`n=3dN5(#B@S03Bm^nDY{eYsehB z*MWrk3i4lI=HH;#1U*XvBAc{e(CFv5u(nv+3UuU;Kx3djQUXQ_*_quTQ|Dm5)WH=D zcE}qny<=rkCs#7sz01@YD^TRg^M^Yu+X8ug?WTaSy+8Q|`86G5Ae3DG>(Nnhi)2{5 zWN6h0{n+_D6r=He4bd_7w6>Ev=~sQs+$?WlzgcDz8(M6)v1(w2)jJaTmg{VGDBP*s zFa-eh{X6tU!|g_eOQs38(}#`0CBrsoiZOPKmKF@R8NsUAh8OwBlVz}3N*&PT=TH4& zu&4rf`wsR_b}*g$8GsE7!wqE6!{&@h@TtpyM;^AGHiAsi`SIGHmUoKZ3L1w2ya0|Y zv`;gg7zXSe*1%??nfhHOXhE!ZwquxO9%tgqw@E$yGeKm^gse?tLzZX}TCU~uhzE$v0kSrhi(`i7B@>rB)>+> zNRY&!se4^N9Gh3^N0=ax2kOcrB)gF;*GI4P3pHwC+1Ysm0~&+y0R7?SxYne_(Me62 z8vYbZxsjU)d63FJ|NKwkF7kra(qM9$Ta-UHf$7Xi#Yd^n%sL-Np7;kdQ6#a!^*$;4 z#S2;sv9>pzO<*|>qZRFRC*%wR5TAF>6!MRCxU=Ls9r-Zz$l}m`=+GemEx}Hm-!Ezu zG0-P3`MO$jR=TW@s;M(ilmee z01J}>jL;PDF&q4h&qr4eLcUr1Skg&+27HY`gAc_@o`WrBv zCuA$#+SGb-C#9C>fcpSEH{1Q{Yj0fIw|k(rV`ujc`c-x=6!oAq30|7ns6P9X0oW=k zY5B`@AraI!4rjT_#vO8pL|y9B?K_S@Q^AaySIPs&2owVvcRB)Wf&zX@th`zxE{;M( z)DRyS31)sqT|2fK2;%)e#O*anlK zHzP~QTaC?akc)02z9u>fJOC?gI8ec})^f~Oyp{a&RPlqyz)OJFV~Y9Mw47!mWC#FM zr`sHGAL9Qv`@n6GD3pxcGIBgtcCdW_p>Gr`UzM45eEG8zoWN+h7xa=I`XMIl>)QbWRnulOEUOe? zfrZFGvRbmKt+Ru?Z}!dYwZOVjePa}=-%-FZ_f1Prc|vhYO6Z{xdq!yxo{1HFJ9>~= zZ3u7(qpacZ$4yAQKwL|f(A(L(!*4SmPl6*9s`Q*P*Qjgp5Cv>mP;x35Z&e6L&nR)m z$pwd}*osm5v{EA+ToF;KIfh~M6^Sfho^tVuvgHA(3#P-*vn`O zJmMT>jziI4>RY}$s_LFQzh5uavYqtbbFN$;&n9aDc#7qrHQg~jelvNF2FQ*f!id!> znOUuXF?yK<=*oe2R07*{mbJBQX>F~gk2UsG(2W&ObZ_ao==5Smp2WRub528#7djb< zqD-UqFNpqWkcgvX-r>)gdk5)fX36|{8o3OnOw?cw7*;6l9|Nuv&yoFrX|<-smdch> zElpjZAhT|_D2+>Etb<=(y!CjL;DL_ke;z5O{`1d2hmskr!Bmmw+UuL@o9kM_KpF5F zENKMGFCnMWGqq5FyZw|{?2agbp-+j#z#kWhSfLlf{2?S{On6}6%D%pSdRi}RPtO7m zlzzBkzLolU{J)3EO>e#Eo%?P~hn{6l{ zM&^6=F$A2>cUTeP0U}VR^mD4E9L8TTDu7z?#e;*?;CJis;#1eIl)1D( zY@h&BA<7a6$o0^~3FN!aUw!r7+WH%A?*|uKed;Mo{@$v|5q1c(?`qZ+NZKVHaw=p- zrdDN+?Sr=BrDZVHSQy(9kAL^p@GdfeB3j;0HXc6h_#zq`JUvF7gUt0E+H9>rS)>$j z8p9Q8&!|K1m|zXAVY}6lSndq0@!G8&-S;(E$~6jTu<*43@4O_LBzJ?+t~l}n6vZ<7 zl&Lo(+B?mhiYE#~liAN`U{Hg2dUy}!28@oB(pQo{5)IV+6vRY7N*;o3R2y z56zqR>4F6XF_sQll?%^*#I~0eCB(jEnKNL8mhwDoT%OC78{UoMr8{6Of}|oL^DCMBnpi}0c@>m zR8@ut@|SH0Yoa%`(8qd}IpP5rYPolGRAUg`_0848n9F4W8%{u*#XuP>dgUkk?g1QZ zMS)lgh{%n}*SnZ`(O*UD=<43@$$X`~)1tL@SLg~yU@LERHT{YrPvZS@#O&^s(g!ZeE1h^q>E<;Utk7OBjoYoxb<<)7~znRnRLizc2#psijR~ zjq?3iZ1IrFB1}NvWRP4k_Fg<6Xks2~TFdU4)Z4gL1h-D3*$tLt|q1 zU>AUgjm`Gw+L@{TOQKD5Mek2!)Rf(7v6?$7Ro3cCozeh8`VWn;dyMuDXw~Va0Xhfj zl)v2-XPXlVn`G5l9ZHpgWe70Xvy4C_iELh?@4NK0B6XqMwRjT*kfqQ_c_(WI^#$@= zzN*8YvW(#a^9bE>sbDOS87Iwj0JO6U4qr=7SqUSWK*FI@&esPQUI*y1LALVZv2s;B zSTuKPD7(fsFn0=IntK;f-4tt16e&w5ooZ8U9sTZig+qPqb%4oaOLUbrwe^lW8`LEg zW%@3i&tC!E4&~rlc0sW%A3o%BY%Y9A8Gv6NpwjU{JjtJ{44wt{e5S!AT}5Cr9~6Dv zbao0SElo^#7xGBFzC`I%49EG@YrYR%^U8r;ZR*v@ehHg_nlK%-49YNHZf~Q-N~iiQkh(&$aR6Ym&m}{bwP{h6ReYGl|`DHLTKsZnVL5M`vBH&S@cmU zdh|4bAAddQl0XmBU7x6vEZ(8i-a2&n@HkQ7A_5|26RT@&x&Qb_AuJBgaHH>A1 z`e044Oq`R=OeO~uMjP|*0jHuMW>*`6L7Kd;Y|+B8JT6~u?-?5Myi#kZsxr2i!eOSA zmH|Gp11{MK^SRIP_cP_pjR0t3F>czxqdS?oNNhfwRVT_^ByauU)CMsC(IfNw%~MlE z4}H1zrxq*hT%S~%HKeUtGa+^;V+$)(n#R1rPD7i%ec&B(>*O~H)-dNkbI4_f_p>LD z6w6CS9ZJ{uSC5u0oF8`qQB`)=(2)DSfTgL?8nHIFF%DV;$?zHQ>CKRHJ)QpaNH}W) zYB?NE=RZ9bXW*{zYI&S10OdQ*Z7L)!^r2Jd%sHoU&DKVF;+}TWhb=!Jtko82MpW6N zxt8{w%V9`Hy6DufwlD0C^_c37U4u}){&0%EG0FUG%tsZB%AfRxl$;=Tif~vJ;6SkyisY8GtcG{^tO6 zK_2gX9j#`WJHThtaN+QrE>j`z=lj^`|IlK!OWDVngmHD{!k8pi)iYM2&^NexTlFov zrrty3ro?x{mkkZ=?&vswKw@_yWbf4iHK#XytiC-^ws_%ap2927?in7+yR*XD+-#|~ zw6-yM)CrA`Cqv+H9cxIAF`v^p&OVNn-fImOe zs&)JubG)AZneKkFkqITAd4CPK$q|`OJ=ff{X-cR!NvGBXl&xj?V^Oo;+@GMYkV6aT zzvk{uWcS7j<#}39e|ve{8J{c#{)wWof#SGxd}UbX(S#O{u(^p+1)7t*ak%b93&!#! zRVzUtrQm>geCr)xEtTFkut0>xLRpxPq`u309B_mzgN)Kmh>iyCgSu^f} zRRgwxc@Wm+LWJ@#YvWBkl2)gp6zp@IC5Q-=MWT2o{iIYV}Bge)ooZHajC{u2Gz;mkuZHiOiJjh+Jfb$ z)TjpcwX8}cSX<1=ha@!qu_+^f_h$O3fveG1G)l$wdU~yVVA+&pR@1Ib+Rjm?@ z@+z`p`0oRk4X7)o`XzQn$8eFt=eM`iY69wTGg}mm(vz!popnYftmw>YxcN597Pv3I!RNRvyzKEs zmy$1R^GLh&VsZnWGIV~{L$_SUs?=hIeHdiI<^G+KX7$buScwqVbN*#S=}`7cwVHk8 z^5HKAZysW_RVOYG*tyXqWr`BNv$IJb&^2~4uMM^yIYRHDf0fy@rQ(7d=3j?jQd=DI z;oK?k^LeE@~ROeRFb3d~W~Hp2W*N6rfZ!}4iB7P9S3R0l`)J-oul7pXm}Ubz2cP*XA0CxH}Y zxJVwvgQcy}L|Xq#E=hbaOt+CidKXj$=QNbAJ~_Z@#FfjZ=!8(^v;aS--02Xpj*()n zaL}$Y1cLNH>B0r0ZbhEV-V+=8OIVVBXEzOKoMtK1bEVnN z4*ECPK(Ql)ZII13-_inB$Od8R6KpfcKmqornja+SKVd4B1mfwM)!G4tz3Fst8vexX zH`5u$^qt47N-JlBA z{XniA{d|P{H%6{fuXvh$JO+*1*x&Z!_X&6AmL(6X2ShV=@ePQ5h z@hsl7liZf;J84a^yJ+otf4oEvjt)Yu&;9}-SHcDREyT7CaCFZEOyMd+tsz_o(sz>c z=(@CMpJn}^XaXzN;`z4Yc` z8igvO@1zy^*8J6{Fn&$P1zRg%UP@H7ZfjD^uM{e9Dm$jugp7UHTu{SERcc|6BcO$N z%BGUD7G3qO(@L$STh44A$dMNg*_F=WPacOLVuBBzdSfy7%hkr}kiOASgDD9gLx5K> z0{Hq8bjG3YOzpJ5-o8e_)rMiRfcFY;Y5{1S)q<2soDl~4zkAX20^PL7D8uCxo1cBQ zVpv^Kfif*AFab2?X+8AIiHaWn_KN-w2Yj2&}cU@*AI@wVlRcy+U^(Wv{~irPVzG+%<0yY!!BFB1Uuy< z-W(YJY65C;kem|&tEX5OFF7-e0aWr-`CZV|wJ*kDD z5pet;x*5VXDF(8c?znDTZ8o)6GHPjFL@EY8$39NZEtQ+PP8MpLM1hgMz* zecta*3|a%0fds4pgT}(wmMZLuC}2LLy70QW;#^gHu}>X|*jwwhjhea^fNJlW_%XrS z2frRJr3-*+Tqe-@VIQMV!on&T?_j5u%aNMuTdnjjtg?1pHW}SQXT_8LDeP z7=nH7qYliF|6IO!K_XA-<+8gWx%z8b8>?%XM(RQ{%SUqeKq;V|m#GYQnu0gQ6$JeL zrXg?+p)|IWGJ2?$aKbTqKRTxSpN{71SghiiXD%W(`cEP0js4&r5vp>`5}RG-w2R3N zi0S`&Qel&KKv=72*H)i6C9-m(%l)d{(%i0QeYviw>n(C}^z}Zroxb^UKkNnr+-(oB zCZ4W1dDDsIIDJxg!G$&ChNx4XAGLA%K;XkCAdMMw$(#~~y&M^NYY=_2|-kg11A z_d>cFlP@@lPqTe+?bv?l0z;SaA#+p9>obQ9v|=V?O*46A;)G1^8yLZiS;Rw{2DE2Q z@v))I8_0L$aa#N5A;@F86xlbBi%0(zyRi?dWZ^|ULL1jM7BGo&t8+RU^tHPBcB+dO zY>OfdTIFc_84-81-O#LW>o3C%0t;%hYg7?c&E=f3*3i(B&E+d~C1qau&Y-)$T_4u9 z^s}Z|whrQbonv?cj^6oDtXsP3wln55o0R!7ebvCatLW1{Q@F-hZ3@@3D$}w99TI~< zRJi7}2im z4F@!}!yW}Xvl6!*!jcI*qK(t`>nM@(q3ulQg>eZcKZr_TiaVolGwoCvNcN~5A}|LA zQ@Fp4f?zuo*;kS+LvQzA(MQyw6X%0MjV&(c3PX6zsx^_8(H{r_|zKzJ~)W#{Hfu|bSyYt1%OQlwms9@*)Ye7G=A>w_W2SH{) zgA@TOiuNeM9``6tdsmR_ERG~5#A694?2Pszm;w?fZ;(%@{>3F4uex6WynFhp<--ua z3{I7DwbihAR$Hg3ZKIUjHvV0L_F(;i7=XCKwdU+LS)Q_S%OcB`@$oBgxM6RNql@<( zop1PdU)dvWJAX%z&5f5Rz)GoI<6nT!Tr>_olY@Lc=Kf2ysixZ4WUK`P15({ew=mm= zhqH19&t2sKcj1_~v7Y80If2v+5oN8qxJ1*cD=nvHsl}=4Q@b1-*t8PfPqe_fmIGXr z3$bB2_=*&b?kq{oPMnU7{xd3Qgz_g=1t3r3YcAvijM$!!Lu}CpIp?k9%J}C)Hw_R) z%y?nmbo&vH8w(@>$|ca*r_+slXzXY8vvx#9Jh|& zzKdm$dLU#)c8XuPLWGqOP0GsLXuL#pmnmv!1U9En8mynoXhYhL!F9hu3!jTau8rBw z&E&H2_v1J9OS5Yi^$KjVwlSEM(1mh)S`9V&=I-POxsonbV2y*s`k~u1BG#yGOh8jc zJLc~7-EO(40hbrIX=+;^ZdI9Jfw`Wwj1=i1jM4(gjtLM-Wn|U9&Exe3rB|j6^sTy* z9`c*(!iHK?q=8u<{|44X8H(oQ=!|s{=;PSifAuB1Yh+OWuUx=ycMxwE&^R+Zf| zKsM|0=ei88d7v9easD(Lg}@dESJB%c{D#pN(yXPgdZt1&J8H!`+-!Y-;PIEE*sp^* zjUjbd6^vw$*!m}dOj#$cKk+B>B~`tW_WwYH0<}9gQPD3Se6V?Rl!=ULLn{&xs{&1& zvaZ(ATBohogj=EOW&hlt#+bh~TN@&lUTbs9McK{U*A>a~@?`$2+;ND_cz6F~Y>-~v z^L#Iz$JidPSiEQq<4}8VY}oU12w}(ugdywGai|=c0B(m#M$De{phG3lCW)MeOCZ3< z-qwpj8sPb-QG8IH6pGKz?$yqeEl?CdiGQ3KC;&#%1)Plc!*X#Z0-IK|Y4pizq$MX5T= zSn3toJ#M?OJfJ7`ru=yeVbLG(NJSTi9qo;}dTpfj069cm_srpJ9L62p<+(l0dcUrz z`)hK+&}aSE4rxLw#w0n)!TIG%GN)%hZ3fl_i4d|;2*t!C#%kKnSe(n{Nv)$Rf`J-) z#89FtDI+f(HpmnurBY2+ZKFk7Ui3!2Cf6?KJe)iym$rCHmoLaGbuV5;evDzPlC9uz zxN1{%jiJ$4TQ`HlJzcSM(S%#!mP7m!_wdg3H|fT$OtgZd*3CTc*c!NJv(Ei&=Q>NE z)0tNKP~+*(+yQSogG(9z%&t2j;!ZP7fU3BYctm(DQ`0c4rvbn=vE`PwL%o&`3p*EPlC-Yw} zUpzknH$s-(4Z8kLKwDm+59|GYR-=G=r`popJ4_uRov%z&uk}@aCviAstU)6S4-|L` zM|vELSb_WPUQ@nCYzAR8!q4;t9XUmtp?litTv z4SEn$Q#uAm0a61ri%cD?Sh8r`CC`&*_a@@rcSGuma(x6ug~dpyN<7c@&I*QSR^P^8 z3&by|*U#MwNB}KmI(SR*0i)vqe!-0PV9|!jLUi%KFr=J4itHQ7&Y}1EukMxDYnSwa zBkh<7n1qf%PFItm3h*;p0Uc0>aW>=h*k0M#7&E%}?k46)*U?9F*Nje zfp5pT5rz{*c5mwEf)T&W&y|Cu&xxzcOEKRs%$KjJGgO;;{ups zOz&W-4JK5F-g^xYNJt1J3FRXsBq86AmVe%rba$pCNRCtZ5zJ7`)U;(Ug4LA-;j(!A-*5~6dRkYJ(lzMQ zRf1Ez6|5FDCm^VYQn=iZVY@JjzhtJ>&V+k~xIG1i5Cc%4^>Q5vg%DLfEy*Iw`_1w^ zOu)Xzp5m(>g*=YwfaAIvJ9FTp-Ya^U*wP6w;rfA?RvHJ!sZNvTGA-F{NQl9PEggMm zP%g{^glM|P+2@75gkfg$V9D+_sAb8UPE*z!5_BV7YA$tl)N4{)U7N@>;MD{N(V0x) z#gVff+cjoo0;HzAXU)a@FM%CTYH9#FX*#eVXkaV&Pw`k+m&6iV5^-AVtM%AY)8K`1 zxzQvGopw{ukk-cZHP=@fGd21KV{Lu@D4zr-0Cgpx=0_ybg|ycffi~Z%FzX_$^8HUi zUhsE6YWxDG68yllPn<4-70&*+BG|yF+D>@Fez{tOWQ2}xHFDG~&L84v(#>J3Q@q^|?kKL7l{ zFKT^Pqg22~JXTzq(s8lS19dtttf>eR&xK4cg;?1*WT`@V?%x~@P#j@WX!nQe*OGce?h^c`s z#d0L}(X5V^l~8zQz^#P1PCEuB3iY2i;!78fxhb~-3els!UnMnVWk6GxmqSkyQsH8G&+^H>+%sWkINhOXsj^{G1M&g<2H7)u-f+3bVsMl2vJ zymjFH9)7$>5-62I%!)a2Fb_>~*{Ia4=z-HKN!l7~xC*wa0bf*Cx3#tw)Q1~evFEz@ zqx`1WGp+ap;&V9XQ1-*)dswljA;eGe*A7TGJkls-Rg%iXSjW<9*TYDak2JI`JvW;` zBv>V|un^C@kO)056ep4A^yI75l>()Trez0?=WAwq&mV)7aJt9{5p9#hKA?*uU?8*% z1meCMRsMgZb-El(6;~o;c;_6ok7*}a74SAg@Ah5Pt%5=$VWrzfim9?FLOP|O9FuKB zBN8E$jjltQOTMnNpLqrg^_}zLi~9#jJvpK@elr5Yfhvxs9eS?8i&3OILm5e0BNy2R zrmBpKcwMf__TiB#LI4u*=|VL6X(Z6tjgfu)_|1KNk06}%*er!!(IHnIf?nxI+py)W za)$94Kz&Yal*&ITFF&cg{2lC0zVE&v0AL+JWn7AF?t8!cU=Pkj7YstM?;H*)f-#hX zCe+nUBKu7@{R7kgzsbQ;Mah^=>6#qtlwYBluH=srN`tjA9XeAQWy2~xHPcw z2?i}IRsx5!mp>Vswei6{3tW)MTZcB@#J^CkNhE;pPa#XR0I+^q)H{VdQA;(VYq|h+ zBB`Yfg#p+f0_iFAiC#Cdy+T6jFQhm#`ReIhbh@Wx`d5X<&jPau-QVEm9_|3LzJapc zi0$b5yyNON(q6lAKw?sK%}*O;+4Im53jI)+tef?*ElQ*Q>vpwO+AT3>1|^hPiatzK2lMYpAv^Uu4nzgh{Zdb(?j1~`g7Oty--%p<~`?en1AQ=$ruz!|18mpkL zo^BM;?Vy#^V^!ORK>h}J>($tblWyNSo z0xkL-fq8@k6FA7ibpUN3pl29y0149v1a241^$@mi;IrPV`*C&Iib1!kR}f8?t@D;pnaL4vlo0>y7P0!yKh*8mM&Zc9#=Q&jYg>~T6L;RbSx>Q2j zpi8Ck`>%uHq^tOs|M;h6o%lVfx=jgaNRWoC}XVmvmLW;Bq zA@>j_Q)Dyg8+6WSn5D3E7oNHdeFM4(@Yw=dD=&N!N7aLqFCACes5XM3#hrBVaGT6Z zXS#e;yv$mcR;SeEb#G#GJ6>)D^$buGIq`3Q`|7KWPdtHjwzggc;>D`QIcb?mnHZ^| z?x?x)&M|EG)+=gdVOLunfQ8!DP)p0o$7mfWoqDU;h>ntTbzoQKaNp*xu1>k(|a&)v= z;?|BHkS+|uc3*^zQJRtKwwTt0>jLLKAMR%Be|a;2){tWtjys<+=be@)q042;aKFd> zmT)0JFU*J&<)uly3Ng%AkFZ`<1GJWkTIkSV6JeqPPAAD7IV)o(|&$(G)J_pf4XNikc_MkDwT zRNO9r>WI6aZxapl9eC%Rcl5pdpFP?#O|dqOHLW~)URnyCD!%i^XMN6IbHp}?^{qK} zNk(RnruN@S@Ld)MNr)LAjONi0Fig<<@{|xT&HK3V*MQHW9|CwrG$lL-#9aJntVK>~xT5#SlFNMPejMvL6(ZY@pJw!p`jba~CApbaeh8 zTJqEdfw!a#%$^1QxDo%ZgD1L6inSH`n7*nhYATPjv{MNQ25y9ZJz{m1mZi&*Nqk%q zni#apoFn6!9;X&Mi8M3A@780x=C~9Vlib|9_9p%%pu@_v8EC};xdR&@msdn(VB9%o z11+ycM~TwE`LN_>UD3v(?M1tb4i;TIJ(z-k$#l2oaRqiDgA1-a=RtBdKEtJm^2teo z5-zxyLSjA5eauW+z8_Fx$Z%Uw<>}zypr*~#ITn#S>EglGTWBWfSb0VhVOD0=&ol9d z@4fd%3I@GuhoJ948S1E@#&5grBAQO<7uFJ1r8^TKqGiJj6ngYm$vQ3mh?Z{y|)Kb7S9=wT9obmUU|CA zlrB}Jn9_=Ww&6SK`C1Sa@t9(hodytp(bRS0XNgR8^P6>)lT=st$G$77tHaf`OF9io zC&|?gMU-`QBF)%oZlz7mWqLyV0h!J1kTp}@fQ!WAF(wqzlxw5mY%%2turbg?P?Rvi zVlK{wi?N-30Zs8BP+wzn!8k7FmtiNJ{p8-+pyjME^=>@MKNr`R15=cqyg>4*syZ4e#Cbnc;YEsq>MYU3Ag}o`mRkKiAD~EKaa_cMn z$7qBU6V-BlqEYUC{`J>i2QmN})GzK=vYIll2v!&Q2;~WFT)9>5r7W>!g9^2HRHPE= zdxP3QpOv$Z%;FtTuUd?)-TUmGS$5i|&{Phty^?=EYRFXUQ~FFjwy$G(b94POK7+N@ zU^TVD^2@}kM53Di6My6h(6fLx7#{#&#rfLsEJ$t%YY%pSwIJpbgf;3dVy{p*m?i`=T%;E^U%PJ2WoDBU9Xb)A`Xk70h=Rv*7*W# zQ{Qj9_xGwIv$}wFZtjQPk}1~t&Uk!&ELQpt{BY-j!-v!S2iFAx{&oC_SV7A=WsFiH z+Mt1oib0bS{W~hUXY@EKnuV~>hx3;`8Mi~{&a&@$-YHfA(S0Hn9cPqBMMNZQ$15Uw|rdYlV0`c;r zy$p2H(zXk+6Ds zUr*05&eLk-EM1G>5t!j4+VD>-{khI2my2N!pj@Qya|Sg9dnW-}udEMYLnsFIdH<1q9o z*GBnY%1tF|r6%%dG&(CBj(`46)x54s4*b6=2D^8EN3VnAux@EQ96V1qC&$!Dry^tlN>(PQ{%_Ljf`(wZtEY<4mjHAwN^xv)P+X<%h? z38rvUV$Nl+s5XfCSWoGy#Uths)4;+Nm}1b{J9l+8VKgc$SI+JdxnNh*`}J2`e`yBV zb|sa&_V202T<3rN(2k~HbASyf8+zR*{03`N1*^{9y$u#(ZQr+duYTh8%eP0BFwYX$ zu>Wc(V45J4e*r3dXod>aNveg!WqZ-NMVBFNYG(HbScVsbgW!({K?e;VfKppTgim!t zz>^mEJPq2_3%QC^>W4_4pRmQtk^fERx@LZ&EucVDXJBPd4h#-;OH@_^w1*H{y+UNi zmhzWk@m^eNZ`nE@o`Z-9&=ON+YT@3Aq+aq1)H$K<(YC`fDx1Q@Zl#4B|bmpG-7gznER+VUp9RA(Uk z^@+1;%vBW;rUA&2w8+KZP`MAJcjX4XIJtTImLxX2xA!Uj)BBbNF)k7$^^!!L&C$92 zag5&5ekbD>6fXy_L=3l(*G-USd-Wah*x9r^um*xeg`z4|5SlHQs;8`C;KY(U~ z$l<~bA)i_(JNMgtS{X3Y^JFYn=&DhBJ&P%TUkUvzlXa89#!l;wLGK|eBq1<%?r1Y-*Ye<6| zonAJ)To}*!IWNNfgHtTex3c)*j1e9|giZz-I*Df7)ja`4%oaC_I!u+bR26h zMZs|HU;p~Ize)c3S5*gFY9xKMq4+??n565K2{7dgDt4cDc7YSH5m)cA2LIbszSR@L7rC)J5vRM5PZ#X65J>}{g``#Cm@)#AWr};YTCKrl}net zyL$EiV%_}RSGKlZ!q9Q^;xjv?MrGrMSvvknth@h0P*H2x;J3C|9G2$n$6XS&-6Vlw z0Ig9evIv`FEu9$Y>D;~mbWTOImy(z($`+n8yTVNDiia1@AGD>+{c{(ALKqWkMjO}U z(Wa6sGv3zPIMYPOGR^okH8nMlHAB+crV_EEJ7-y-xkuZ3V&mBlWk6!rs{RXB6=Tiv z64Fibw^Z)CXkV4wpcAJy?>H@mjdpZA%zyFV>Ila8L3~USsW5u_&U_r0g&WJXiHel5 z(oj*E#4aS)zxzN7+HqBX0T)c_5;iw{^)?W| zID#}KOIy?lv%*W6BcD`hd_=9x4I;L{*+{Tk_|Y&LCmgD*JfW(px{Fe?39kq=K?5>M z#2(^5duDYa0DeVUS*yp^e}L6J*SXJKcmDnziITFN7hZU!diK4y9H>^ilx1gMbNlQ3 zP1XC(-&HP$pj^8Cw9Vy*)~u=flK%&rSmKuJ3CFnB;_S0J?F0BdZG5!z`3`tK&!K(A zfB3=-C|$((A!}3u`)h?_?@OW2K#Qd=q z(!j#c2z-|x2c+Te@~wB?{P!Rdc=~s9u-fMnT0?e7l04W(_%8q+n zJ42RAx`ZjWhg23>SZZEfY>ZJ+DhjgLAliDUL!=4!)ItVd-sDvsd;a8Rtrqgq4bv(4sKsbCEGs`TCfvxtdEro9G7}3YSZw(GbuRZNWxC z)W+P6V>l4GgcKvqq=>c{tsWi7){WOOiOzBW|FT4L$+RXfUTF6h<9^UxGMG49&5AQfUPsc?#BNy+k zy<^?u2g)c15kB+Cc39+Frb#-+v71Y{NEoUP@%Wp3bMy6=*AOPXB(-yQEq1J}ZS29j zFJIp@)~Eta`hH)-h8v!IPfhIn%S*k4Rx4|H=mXYWvwQF9WuD~ed-s4H*uJ{~+F6>R zoM;0=rdnV#krW$}HQ59`82gJZDY~ZU_M-dIJB2te#BDS-n!gih+|Bt$sZE5|-3!o7 z77^oxNtXg)P)NsM1UGLZvb>EHzCxg9;2A@5HuV*NAmHl1{}qC}6R~g!}h9jZ3>#Bpi$>RizA~q8JdlhtJCDr*72WA?pfd@Erexw!%m;BoQr6y z?o(MSwY0uYFSj%q^qR_n1s5)db_c>Xv14aYTN;C1>xtxpoV7};($}*x_#&;Q60;Lq z-o39GxbfN}Z^-QB8#bL3aYs+uvZ+W6J8GW<=0pd<*B}sj0z&jAbl}lpoH%a|C|3~@ za|nJ%@xM3ds%uQ0=Gt0lwRQoBeM=A+%5`a> zeQanZ1Zi=Dy-Ea5AcI5i1#EFnI-xB?a56CYjD8kOt6-ipbvZ=PEaw$kRDn3oMSdk} z#lXESsV&J$cVAcbZ%Bj@WtbS_T6pS?2GXFFHlDF@X}~#Lap~RjNT+J@@CEuowVN1` zIX}S_luW6c!&$7HID)yL(Phz=M#npu_zA1#x*F}XR<6NrZCP32?=qFKrC z>0oDFoI$9UtLmJLcL%z5EcPG`;)!+V>GhRbv$iJN0vWwrYPDe5>?5Q~!;zhi7#CwW z14I6{0tyF}#(HB_rV`#g2Oi*cp`nd}$z}wcP-lM!#Azg7yH02_1TS8=x9L1ek7{SDZ_(%9KSTrJD0Bay{OsVtLx-dxLo!Mi z(~)HHDCvwkWuRYc3z=_KtJ6foDI;i?*ubhv>62(U4)Xv9ixLRz$_n?Ws}!c?`6ij~ za}2}#7L}X-ZlAj*#aM}owToS%q2#S|C9H-Ry-eK4SfxW!6ItpX8|^eD4ILw6k76L+ zqSTC=J!br#iMM(fpI<%7hJx5TiY3n+ZX{q?PSw@-Rbs?j{7cVOD6A%F;!aHU*mnL{ z^Fwttr&ZW1G%3m#%Vk{`JeP=S`oMYM}kz-|&qQ)rLp*m#TwQ zVEY~X#P=?rDbfN-`l84S{uQk-vJ1@+NNf{LkD%n{R4{@4Kj4e-BqB}6@zE`!UA9ewG6Ld6UV*Pouc@+uee5~oZE()PdrZIbo`-g zBlc{{oK{t+DsJsHuDp0stm25#y>rh;y?#iA75iJQf7Bb%rxLsk6$jpRBsZMkakx*| zu(_S{%DV}7YhdG^TBVJQE?GS4v^2(cUfL};)13#li2_w;Z3>0_8+Y-a<37xQWAoS5 zS_oXBlqxi%pnW9rf;dEPYSWez!$=$=z32P}zGa(_4yZ!vP)I&= zmTtQ^XefqO6`ON&6l$AHNmx^@iAAn3a5040E^sv@RivM$i&NG18b@k&o00KSn%aJT zZj>pGXj0l}bVIq(4&nlo3KXe{kkaX)-06T|^x_nwil%@9f}BvhfVJm< zvf(L3r^7=&SacJj#d3)%xn)_Q zx$BkD0?aE2e~A9o-|uE;-1llVuziU!%WyX#i&_^SS7mqs=*3rdF_!saX z2Kx`Nd8fk7i&>I!%+fg=T2a^G9aS|A1Qi>HK^DT=AxWjg)|OS>fV34{#Dl;~<*{dDxZTyFSP3_uS?5G9d@Z!ixktbL{+8Q=>xxFIl zQ9w%xRZ`jP>+sbs@3W`_jJ{C)kVW`Q+E5WhZs5bZLxMdQ?hpWf)+$j@dsiJd_O>K zAq(`PZ-)#*0yYQE2?)CwEdn(-w0r_}r98wpzAak%Es*#v#-(R>Nlaw>)>-$oS_Xoo zn+kSldV0`;uwtZ6gf`qLvDN$u_q4bFYlyZ=$7IGgI!TSVSFFyyAfluSy;AOvYBIi& zAj{&8Ux=hwb$du70uc(vsbQM>U8$P08{wwBpNOP*_q>Dwt7%vJ$WFPp*|T)hj#@CR z+8tX~1%jE1tBy{{4AkhIm;3?qV;oE&%~_kVeB-Y=`?TU;NSdnC*%y)O zAZ;JvEH;preI>TW6~fQ0Jwn!wRd5OqNrhX!(4>}o1I_(WmkoFm}3E(T-^_(HK&1iXNSqpmmvbm1oAt##WDa`CbuLB z6?qpGZG+t=7Zn{Ty1VGHqL+$(RrI@}|0(*{w2{t)EJBwD7$WMUDxd20Msc&C{_F-F z^fFW*LP;n%t6YbW(3Ci>Ux#d2@6}6y7e+-RR9(w?HFrpa)@`GJi%br_UxNNEg-HDU zFGfp+d_u>BY|5SfFpn&_(A-POo3D^hYQPeCE>qq#SI}K&&<>r z?Gk|9j7UxZ4b4bwE>vuRHNuO}IcJM!$)@eKlue%5v1Mhz(VD*EDD=eABS$V)HS0rU z2NB4)GUx6LyNh?6#~*~9>x_3?=W^;HXp3=dVokLL)4diu`2?>e#W`rNe>8}%42KgJ zI#W(}gUQ?&OeS?iJPA}AhEr}z1iYJA77SsDZF8cI`7Y?9l(A~DcO)>kG^8!o&L5)* zN+*@$E|bx}6_=Y*8j_9ao{P5{lvaX?I)^9_h9Z=rxSMj>hANDfSkNv9SFH3UYTVV{ z^6^HU%FnRro@EwQn6t29{*R?{yIY-B`&YPqy{n^H z^=!{xX#FJg+fO)z|P~!aX^|E zHff;;1P&JhK6*RwL+W<9z~&(_gt|0*U;a-E=;Zi6Eg}Pt|I^}*k3K4&OF0|L3A0t1 zsItocK2IVg#FRuK6^S8RrvtEVNkr%rHdybbVBAXB;hBBlH^0FrDSxR0t+26%9dFP~ zgDRx!R=X58YqZZuS)ye$rh{c$TDi(Ii!+&75jQcxKa{!fqCG&B>!pcJ+fT2=8nVf- z1mx!!R@EK{?QTn^j1H*@LZJkWzYu=P=!fdQD|aUe18|O;&uJ2K=~IIy&&pVq7oa+MNPA-skp z|6%)q2u>RQ=Lf$7^${If2~?g7eke^(=EEr@>O!{Xl0tyY2{5q&l`4eE^Iv^c1V>lq zkeMwCTiE$1&1BS3T?gw|-pcA95UXYN{b8+C%yM!V6hJ)G-v#pO`El6Pqh@t9?1m4y@*`%nQh2J~!sk;A)J!Sdh?Gkeprv?mOI9}PHb1TeZMk-wz8Avb@%7h!V7?QNX zViGNyc!1GJcigw3NyVv<8-VFHSRy2qGfQ8%v7dCh6k-cU2CG_q60Uq=e@sMB& zhG2Iu|HY^bNbep@bc<@yp$eInmBudy@XdaA7j(EFHH+MZg`gd792(+~x;&V3^52?s zuD=DnjpKIQ<^o6V!t!h8(2`peVW6-GZ82~gFoP>dDT>a2Q|iKr9| z@eU$Wxd|wLhxtFFJvj=a22g~B%bog_yAuQy79*R^=@he78$u@U39+nv$hD7)(52ug z@MW;K?}=~!9)wl5u;_y%6;TJRm)dF>wMHTp%hCHN#&?Yk@P8lWze01gGPBS^-SMtXyPhBxs zD#Cn?LE0u;-A@tq3%BgX`bIxR-lI%7=*{N{<_#`+Wi%@t2J?>5k+ci$1@p++ zt-@tcN`I&!w(j)pH87J^wPpR%r{~S%tsi`V&1NELH*ycog!gyI6u~`EMm=#qXZk>_ zlA+iG{y{@1Oj;CtG}s;E{96;EWj(A_LyOf>wS>`_MzT))>Cr#2{pbjw8x3r&P0Uq- ztr;5I99j9e>mp5zNjCaGWep~R32V>@b7Ivhlg$c;fYyV&Bpd?TeTRB3>ww`J0cJ$7 zp6Pmz2vPxXcwj-$V>Yc@j#@AO3m=Q!f~z2_Jkpf8{Dy9r=k2^~Z@ao?Zll7eC0ZBM za?EUnGqbo$rZ*`&=9Ysb6Z7%MqFG=$b|U9R-=}G0IqhIMzfhar6|1COa}q`wG}9BR z;Dp9%)qspG_F$*ZZI-LUD!IkQubX%CcCXwF#l{OBS%YQ%C%JCR#*<)qjDaXwylVBb z@Jm1K9!KDz#wdvBT0#zDGs>hNRFSLI=;%mrX19Sf4^mN}foh5g)0DkX!d)!1s)F?h zVM2Iv$Q$MM@_;?f3@w0r!G8QR>U;mm3!)pCGBI#VFet@N7zPqD3#=VzA3<|$AlQS6 z2?e8oC3BiOH%2R+X^0?F1q{M`FV=Jt{vHQM^eXWn>Yk`AR@V1%SS>V7x4nff1q*qro_^}b1&s4v zdI=k)f=TdPX1OimdYEErn4qRzPaFx@QD0*!wVdPCsHJZM)Pwm_|_ zG@f|lGCAxiy=1xeb60#iYcSsFBZSWNf@2VY!0~^&nd2=vj(Vb)xs*TUl3VQx zXWWG~Fia!t*Xt!Ywd8zt{i+avvOr5$!*P-?(9#b2CEn=iyvlDu$7&-zKW)95QrokT^`6Jzb>5fvsDbkYld)h^8 z{qC62+BM+)pA~nX>6TlpRLR9JZd#U(ow#AsDWwYVtm&P*ww1j#`kA`#3WQa4;A+q9 z5>MR?J>=TOMd^5r2f&ogBA1zbdT?+6G+o!vYtb!#>E4YXPn<0L_J;300@w zJqNk73_iF76#r+orbfgC&ZfW@X7HQdctbMDl%!oUla+LodY`75dN!)>f=7NkYj_?W zIbe7=9U;(g5NIr#@37yic!w8PGubb9χ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%0DD#&u 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 P>vPT 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

    pAYK36 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