From c23b73f034d1f4c4b351d2a8c764ffa8b01c140f Mon Sep 17 00:00:00 2001 From: an-lee Date: Mon, 18 Nov 2024 12:00:18 +0800 Subject: [PATCH] Macos support whisper cpp (#1186) * arm64 macos support whisper.cpp * add whisper binary for x64 macos --- enjoy/e2e/main.spec.ts | 16 +- .../whisper.cpp/arm64/darwin/ggml-metal.metal | 7064 +++++++++++++++++ enjoy/lib/whisper.cpp/arm64/darwin/main | Bin 0 -> 1779208 bytes .../whisper.cpp/x64/darwin/ggml-metal.metal | 7064 +++++++++++++++++ enjoy/lib/whisper.cpp/x64/darwin/main | Bin 0 -> 2028080 bytes enjoy/src/main/echogarden.ts | 9 + .../preferences/echogarden-stt-settings.tsx | 1 - enjoy/vite.main.config.ts | 6 + 8 files changed, 14158 insertions(+), 2 deletions(-) create mode 100644 enjoy/lib/whisper.cpp/arm64/darwin/ggml-metal.metal create mode 100755 enjoy/lib/whisper.cpp/arm64/darwin/main create mode 100644 enjoy/lib/whisper.cpp/x64/darwin/ggml-metal.metal create mode 100755 enjoy/lib/whisper.cpp/x64/darwin/main diff --git a/enjoy/e2e/main.spec.ts b/enjoy/e2e/main.spec.ts index 6dc1b0d1..4f91580b 100644 --- a/enjoy/e2e/main.spec.ts +++ b/enjoy/e2e/main.spec.ts @@ -60,7 +60,7 @@ test.afterAll(async () => { await electronApp.close(); }); -test("validate echogarden recognition", async () => { +test("validate echogarden recognition by whisper", async () => { const res = await page.evaluate(() => { return window.__ENJOY_APP__.echogarden.check({ engine: "whisper", @@ -76,6 +76,20 @@ test("validate echogarden recognition", async () => { expect(res.success).toBeTruthy(); }); +test("validate echogarden recognition by whisper.cpp", async () => { + const res = await page.evaluate(() => { + return window.__ENJOY_APP__.echogarden.check({ + engine: "whisper.cpp", + whisperCpp: { + model: "tiny.en", + language: "en", + }, + }); + }); + console.info(res.log); + expect(res.success).toBeTruthy(); +}); + test("valid ffmpeg command", async () => { const res = await page.evaluate(() => { return window.__ENJOY_APP__.ffmpeg.check(); diff --git a/enjoy/lib/whisper.cpp/arm64/darwin/ggml-metal.metal b/enjoy/lib/whisper.cpp/arm64/darwin/ggml-metal.metal new file mode 100644 index 00000000..e8b71a9f --- /dev/null +++ b/enjoy/lib/whisper.cpp/arm64/darwin/ggml-metal.metal @@ -0,0 +1,7064 @@ +#define GGML_COMMON_DECL_METAL +#define GGML_COMMON_IMPL_METAL +#include "ggml-common.h" + +#include + +using namespace metal; + +#define MAX(x, y) ((x) > (y) ? (x) : (y)) +#define MIN(x, y) ((x) < (y) ? (x) : (y)) +#define SWAP(x, y) { auto tmp = (x); (x) = (y); (y) = tmp; } + +#define N_SIMDWIDTH 32 // assuming SIMD group size is 32 + +// ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf +// +// cmd: +// .../usr/bin/metal -dM -E -c ggml/src/ggml-metal.metal +// .../usr/bin/metal -dM -E -c -target air64-apple-ios14.0 ggml/src/ggml-metal.metal +// +#if __METAL_VERSION__ < 310 && defined(GGML_METAL_USE_BF16) +#undef GGML_METAL_USE_BF16 +#endif + +#if defined(GGML_METAL_USE_BF16) +typedef matrix bfloat4x4; +#endif + +constexpr constant static float kvalues_iq4nl_f[16] = { + -127.f, -104.f, -83.f, -65.f, -49.f, -35.f, -22.f, -10.f, 1.f, 13.f, 25.f, 38.f, 53.f, 69.f, 89.f, 113.f +}; + +// NOTE: this is not dequantizing - we are simply fitting the template +template +void dequantize_f32(device const float4x4 * src, short il, thread type4x4 & reg) { + reg = (type4x4)(*src); +} + +template +void dequantize_f16(device const half4x4 * src, short il, thread type4x4 & reg) { + reg = (type4x4)(*src); +} + +#if defined(GGML_METAL_USE_BF16) +template +void dequantize_bf16(device const bfloat4x4 * src, short il, thread type4x4 & reg) { + reg = (type4x4)(*src); +} +#endif + +template +void dequantize_q4_0(device const block_q4_0 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 1); + const float d1 = il ? (xb->d / 16.h) : xb->d; + const float d2 = d1 / 256.f; + const float md = -8.h * xb->d; + const ushort mask0 = il ? 0x00F0 : 0x000F; + const ushort mask1 = mask0 << 8; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + reg_f[i/2][2*(i%2) + 0] = d1 * (qs[i] & mask0) + md; + reg_f[i/2][2*(i%2) + 1] = d2 * (qs[i] & mask1) + md; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q4_1(device const block_q4_1 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 2); + const float d1 = il ? (xb->d / 16.h) : xb->d; + const float d2 = d1 / 256.f; + const float m = xb->m; + const ushort mask0 = il ? 0x00F0 : 0x000F; + const ushort mask1 = mask0 << 8; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + reg_f[i/2][2*(i%2) + 0] = ((qs[i] & mask0) * d1) + m; + reg_f[i/2][2*(i%2) + 1] = ((qs[i] & mask1) * d2) + m; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q5_0(device const block_q5_0 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 3); + const float d = xb->d; + const float md = -16.h * xb->d; + const ushort mask = il ? 0x00F0 : 0x000F; + + const uint32_t qh = *((device const uint32_t *)xb->qh); + + const int x_mv = il ? 4 : 0; + + const int gh_mv = il ? 12 : 0; + const int gh_bk = il ? 0 : 4; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + // extract the 5-th bits for x0 and x1 + const uint8_t xh_0 = ((qh >> (gh_mv + 2*i )) << gh_bk) & 0x10; + const uint8_t xh_1 = ((qh >> (gh_mv + 2*i+1)) << gh_bk) & 0x10; + + // combine the 4-bits from qs with the 5th bit + const int32_t x0 = ((((qs[i] ) & mask) >> x_mv) | xh_0); + const int32_t x1 = ((((qs[i] >> 8) & mask) >> x_mv) | xh_1); + + reg_f[i/2][2*(i%2) + 0] = d * x0 + md; + reg_f[i/2][2*(i%2) + 1] = d * x1 + md; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q5_1(device const block_q5_1 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 4); + const float d = xb->d; + const float m = xb->m; + const ushort mask = il ? 0x00F0 : 0x000F; + + const uint32_t qh = *((device const uint32_t *)xb->qh); + + const int x_mv = il ? 4 : 0; + + const int gh_mv = il ? 12 : 0; + const int gh_bk = il ? 0 : 4; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + // extract the 5-th bits for x0 and x1 + const uint8_t xh_0 = ((qh >> (gh_mv + 2*i )) << gh_bk) & 0x10; + const uint8_t xh_1 = ((qh >> (gh_mv + 2*i+1)) << gh_bk) & 0x10; + + // combine the 4-bits from qs with the 5th bit + const int32_t x0 = ((((qs[i] ) & mask) >> x_mv) | xh_0); + const int32_t x1 = ((((qs[i] >> 8) & mask) >> x_mv) | xh_1); + + reg_f[i/2][2*(i%2) + 0] = d * x0 + m; + reg_f[i/2][2*(i%2) + 1] = d * x1 + m; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q8_0(device const block_q8_0 *xb, short il, thread type4x4 & reg) { + device const int8_t * qs = ((device const int8_t *)xb->qs); + const half d = xb->d; + + float4x4 reg_f; + + for (int i = 0; i < 16; i++) { + reg_f[i/4][i%4] = (qs[i + 16*il] * d); + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q2_K(device const block_q2_K *xb, short il, thread type4x4 & reg) { + const float d = xb->d; + const float min = xb->dmin; + device const uint8_t * q = (device const uint8_t *)xb->qs; + float dl, ml; + uint8_t sc = xb->scales[il]; + + q = q + 32*(il/8) + 16*(il&1); + il = (il/2)%4; + + half coef = il>1 ? (il>2 ? 1/64.h : 1/16.h) : (il>0 ? 1/4.h : 1.h); + uchar mask = il>1 ? (il>2 ? 192 : 48) : (il>0 ? 12 : 3); + dl = d * (sc & 0xF) * coef, ml = min * (sc >> 4); + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * (q[i] & mask) - ml; + } +} + +template +void dequantize_q3_K(device const block_q3_K *xb, short il, thread type4x4 & reg) { + const half d_all = xb->d; + device const uint8_t * q = (device const uint8_t *)xb->qs; + device const uint8_t * h = (device const uint8_t *)xb->hmask; + device const int8_t * scales = (device const int8_t *)xb->scales; + + q = q + 32 * (il/8) + 16 * (il&1); + h = h + 16 * (il&1); + uint8_t m = 1 << (il/2); + uint16_t kmask1 = (il/4)>1 ? ((il/4)>2 ? 192 : 48) : \ + ((il/4)>0 ? 12 : 3); + uint16_t kmask2 = il/8 ? 0xF0 : 0x0F; + uint16_t scale_2 = scales[il%8], scale_1 = scales[8 + il%4]; + int16_t dl_int = (il/4)&1 ? (scale_2&kmask2) | ((scale_1&kmask1) << 2) + : (scale_2&kmask2) | ((scale_1&kmask1) << 4); + float dl = il<8 ? d_all * (dl_int - 32.f) : d_all * (dl_int / 16.f - 32.f); + const float ml = 4.f * dl; + + il = (il/2) & 3; + const half coef = il>1 ? (il>2 ? 1/64.h : 1/16.h) : (il>0 ? 1/4.h : 1.h); + const uint8_t mask = il>1 ? (il>2 ? 192 : 48) : (il>0 ? 12 : 3); + dl *= coef; + + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * (q[i] & mask) - (h[i] & m ? 0 : ml); + } +} + +static inline uchar2 get_scale_min_k4_just2(int j, int k, device const uchar * q) { + return j < 4 ? uchar2{uchar(q[j+0+k] & 63), uchar(q[j+4+k] & 63)} + : uchar2{uchar((q[j+4+k] & 0xF) | ((q[j-4+k] & 0xc0) >> 2)), uchar((q[j+4+k] >> 4) | ((q[j-0+k] & 0xc0) >> 2))}; +} + +template +void dequantize_q4_K(device const block_q4_K *xb, short il, thread type4x4 & reg) { + device const uchar * q = xb->qs; + + short is = (il/4) * 2; + q = q + (il/4) * 32 + 16 * (il&1); + il = il & 3; + const uchar2 sc = get_scale_min_k4_just2(is, il/2, xb->scales); + const float d = il < 2 ? xb->d : xb->d / 16.h; + const float min = xb->dmin; + const float dl = d * sc[0]; + const float ml = min * sc[1]; + + const ushort mask = il<2 ? 0x0F : 0xF0; + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * (q[i] & mask) - ml; + } +} + +template +void dequantize_q5_K(device const block_q5_K *xb, short il, thread type4x4 & reg) { + device const uint8_t * q = xb->qs; + device const uint8_t * qh = xb->qh; + + short is = (il/4) * 2; + q = q + 32 * (il/4) + 16 * (il&1); + qh = qh + 16 * (il&1); + uint8_t ul = 1 << (il/2); + il = il & 3; + const uchar2 sc = get_scale_min_k4_just2(is, il/2, xb->scales); + const float d = il < 2 ? xb->d : xb->d / 16.f; + const float min = xb->dmin; + const float dl = d * sc[0]; + const float ml = min * sc[1]; + + const ushort mask = il<2 ? 0x0F : 0xF0; + const float qh_val = il<2 ? 16.f : 256.f; + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * ((q[i] & mask) + (qh[i] & ul ? qh_val : 0)) - ml; + } +} + +template +void dequantize_q6_K(device const block_q6_K *xb, short il, thread type4x4 & reg) { + const half d_all = xb->d; + device const uint8_t * ql = (device const uint8_t *)xb->ql; + device const uint8_t * qh = (device const uint8_t *)xb->qh; + device const int8_t * scales = (device const int8_t *)xb->scales; + + ql = ql + 64*(il/8) + 32*((il/2)&1) + 16*(il&1); + qh = qh + 32*(il/8) + 16*(il&1); + float sc = scales[(il%2) + 2 * ((il/2))]; + il = (il/2) & 3; + + const uint16_t kmask1 = il>1 ? (il>2 ? 192 : 48) : (il>0 ? 12 : 3); + const uint16_t kmask2 = il>1 ? 0xF0 : 0x0F; + const float coef = il>1 ? 1.f/16.f : 1.f; + const float ml = d_all * sc * 32.f; + const float dl = d_all * sc * coef; + for (int i = 0; i < 16; ++i) { + const half q = il&1 ? ((ql[i] & kmask2) | ((qh[i] & kmask1) << 2)) + : ((ql[i] & kmask2) | ((qh[i] & kmask1) << 4)); + reg[i/4][i%4] = dl * q - ml; + } +} + +template +void dequantize_iq2_xxs(device const block_iq2_xxs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + // each block of 32 needs 2 uint32_t's for the quants & scale, so 4 uint16_t's. + device const uint16_t * q2 = xb->qs + 4*ib32; + const uint32_t aux32_g = q2[0] | (q2[1] << 16); + const uint32_t aux32_s = q2[2] | (q2[3] << 16); + thread const uint8_t * aux8 = (thread const uint8_t *)&aux32_g; + const float dl = d * (0.5f + (aux32_s >> 28)) * 0.25f; + constant uint8_t * grid = (constant uint8_t *)(iq2xxs_grid + aux8[2*il+0]); + uint8_t signs = ksigns_iq2xs[(aux32_s >> 14*il) & 127]; + for (int i = 0; i < 8; ++i) { + reg[i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } + grid = (constant uint8_t *)(iq2xxs_grid + aux8[2*il+1]); + signs = ksigns_iq2xs[(aux32_s >> (14*il+7)) & 127]; + for (int i = 0; i < 8; ++i) { + reg[2+i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } +} + +template +void dequantize_iq2_xs(device const block_iq2_xs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint16_t * q2 = xb->qs + 4*ib32; + const float dl = d * (0.5f + ((xb->scales[ib32] >> 4*il) & 0xf)) * 0.25f; + constant uint8_t * grid = (constant uint8_t *)(iq2xs_grid + (q2[2*il+0] & 511)); + uint8_t signs = ksigns_iq2xs[q2[2*il+0] >> 9]; + for (int i = 0; i < 8; ++i) { + reg[i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } + grid = (constant uint8_t *)(iq2xs_grid + (q2[2*il+1] & 511)); + signs = ksigns_iq2xs[q2[2*il+1] >> 9]; + for (int i = 0; i < 8; ++i) { + reg[2+i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } +} + +template +void dequantize_iq3_xxs(device const block_iq3_xxs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint8_t * q3 = xb->qs + 8*ib32; + device const uint16_t * gas = (device const uint16_t *)(xb->qs + QK_K/4) + 2*ib32; + const uint32_t aux32 = gas[0] | (gas[1] << 16); + const float dl = d * (0.5f + (aux32 >> 28)) * 0.5f; + constant uint8_t * grid1 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+0]); + constant uint8_t * grid2 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+1]); + uint8_t signs = ksigns_iq2xs[(aux32 >> 14*il) & 127]; + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * grid1[i] * (signs & kmask_iq2xs[i+0] ? -1.f : 1.f); + reg[1][i] = dl * grid2[i] * (signs & kmask_iq2xs[i+4] ? -1.f : 1.f); + } + grid1 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+2]); + grid2 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+3]); + signs = ksigns_iq2xs[(aux32 >> (14*il+7)) & 127]; + for (int i = 0; i < 4; ++i) { + reg[2][i] = dl * grid1[i] * (signs & kmask_iq2xs[i+0] ? -1.f : 1.f); + reg[3][i] = dl * grid2[i] * (signs & kmask_iq2xs[i+4] ? -1.f : 1.f); + } +} + +template +void dequantize_iq3_s(device const block_iq3_s * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint8_t * qs = xb->qs + 8*ib32; + device const uint8_t * signs = xb->signs + 4*ib32 + 2*il; + const uint8_t qh = xb->qh[ib32] >> 4*il; + const float dl = d * (1 + 2*((xb->scales[ib32/2] >> 4*(ib32%2)) & 0xf)); + constant uint8_t * grid1 = (constant uint8_t *)(iq3s_grid + (qs[4*il+0] | ((qh << 8) & 256))); + constant uint8_t * grid2 = (constant uint8_t *)(iq3s_grid + (qs[4*il+1] | ((qh << 7) & 256))); + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * grid1[i] * select(1, -1, signs[0] & kmask_iq2xs[i+0]); + reg[1][i] = dl * grid2[i] * select(1, -1, signs[0] & kmask_iq2xs[i+4]); + } + grid1 = (constant uint8_t *)(iq3s_grid + (qs[4*il+2] | ((qh << 6) & 256))); + grid2 = (constant uint8_t *)(iq3s_grid + (qs[4*il+3] | ((qh << 5) & 256))); + for (int i = 0; i < 4; ++i) { + reg[2][i] = dl * grid1[i] * select(1, -1, signs[1] & kmask_iq2xs[i+0]); + reg[3][i] = dl * grid2[i] * select(1, -1, signs[1] & kmask_iq2xs[i+4]); + } +} + +template +void dequantize_iq2_s(device const block_iq2_s * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint8_t * qs = xb->qs + 4*ib32 + 2*il; + device const uint8_t * signs = qs + QK_K/8; + const uint8_t qh = xb->qh[ib32] >> 4*il; + const float dl = d * (0.5f + ((xb->scales[ib32] >> 4*il) & 0xf)) * 0.25f; + constant uint8_t * grid1 = (constant uint8_t *)(iq2s_grid + (qs[0] | ((qh << 8) & 0x300))); + constant uint8_t * grid2 = (constant uint8_t *)(iq2s_grid + (qs[1] | ((qh << 6) & 0x300))); + for (int i = 0; i < 8; ++i) { + reg[i/4+0][i%4] = dl * grid1[i] * select(1, -1, signs[0] & kmask_iq2xs[i]); + reg[i/4+2][i%4] = dl * grid2[i] * select(1, -1, signs[1] & kmask_iq2xs[i]); + } +} + +template +void dequantize_iq1_s(device const block_iq1_s * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const int ib32 = il/2; + il = il%2; + const float d = xb->d; + device const uint8_t * qs = xb->qs + 4*ib32 + 2*il; + device const uint16_t * qh = xb->qh; + const float dl = d * (2*((qh[ib32] >> 12) & 7) + 1); + const float ml = dl * (qh[ib32] & 0x8000 ? -1 - IQ1S_DELTA : -1 + IQ1S_DELTA); + const uint16_t h = qh[ib32] >> 6*il; + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((h << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((h << 5) & 0x700))); + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * (grid1[i] & 0xf) + ml; + reg[1][i] = dl * (grid1[i] >> 4) + ml; + reg[2][i] = dl * (grid2[i] & 0xf) + ml; + reg[3][i] = dl * (grid2[i] >> 4) + ml; + } +} + +template +void dequantize_iq1_m(device const block_iq1_m * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const int ib32 = il/2; + il = il%2; + device const uint16_t * sc = (device const uint16_t *)xb->scales; + + iq1m_scale_t scale; + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + const float d = scale.f16; + + device const uint8_t * qs = xb->qs + 4*ib32 + 2*il; + device const uint8_t * qh = xb->qh + 2*ib32 + il; + + const float dl = d * (2*((sc[ib32/2] >> (6*(ib32%2)+3*il)) & 7) + 1); + const float ml1 = dl * (qh[0] & 0x08 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + const float ml2 = dl * (qh[0] & 0x80 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((qh[0] << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((qh[0] << 4) & 0x700))); + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * (grid1[i] & 0xf) + ml1; + reg[1][i] = dl * (grid1[i] >> 4) + ml1; + reg[2][i] = dl * (grid2[i] & 0xf) + ml2; + reg[3][i] = dl * (grid2[i] >> 4) + ml2; + } +} + +template +void dequantize_iq4_nl(device const block_iq4_nl * xb, short il, thread type4x4 & reg) { + device const uint16_t * q4 = (device const uint16_t *)xb->qs; + const float d = xb->d; + uint32_t aux32; + thread const uint8_t * q8 = (thread const uint8_t *)&aux32; + for (int i = 0; i < 4; ++i) { + aux32 = ((q4[2*i] | (q4[2*i+1] << 16)) >> 4*il) & 0x0f0f0f0f; + reg[i][0] = d * kvalues_iq4nl_f[q8[0]]; + reg[i][1] = d * kvalues_iq4nl_f[q8[1]]; + reg[i][2] = d * kvalues_iq4nl_f[q8[2]]; + reg[i][3] = d * kvalues_iq4nl_f[q8[3]]; + } +} + +template +void dequantize_iq4_xs(device const block_iq4_xs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint32_t * q4 = (device const uint32_t *)xb->qs + 4*ib32; + const int ls = ((xb->scales_l[ib32/2] >> 4*(ib32%2)) & 0xf) | (((xb->scales_h >> 2*ib32) & 3) << 4); + const float d = (float)xb->d * (ls - 32); + uint32_t aux32; + thread const uint8_t * q8 = (thread const uint8_t *)&aux32; + for (int i = 0; i < 4; ++i) { + aux32 = (q4[i] >> 4*il) & 0x0f0f0f0f; + reg[i][0] = d * kvalues_iq4nl_f[q8[0]]; + reg[i][1] = d * kvalues_iq4nl_f[q8[1]]; + reg[i][2] = d * kvalues_iq4nl_f[q8[2]]; + reg[i][3] = d * kvalues_iq4nl_f[q8[3]]; + } +} + +enum ggml_sort_order { + GGML_SORT_ORDER_ASC, + GGML_SORT_ORDER_DESC, +}; + +// general-purpose kernel for addition, subtraction, multiplication and division of two tensors +// pros: works for non-contiguous tensors, supports broadcast across all dims +// cons: not very efficient +kernel void kernel_add( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int64_t & offs, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01 + offs; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1 + offs; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) + *((device float *)(src1_ptr + i10*nb10)); + } +} + +kernel void kernel_sub( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int64_t & offs, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01 + offs; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1 + offs; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) - *((device float *)(src1_ptr + i10*nb10)); + } +} + +kernel void kernel_mul( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) * *((device float *)(src1_ptr + i10*nb10)); + } +} + +kernel void kernel_div( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) / *((device float *)(src1_ptr + i10*nb10)); + } +} + +template +kernel void kernel_repeat( + device const char * src0, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + const int64_t i03 = i3 % ne03; + const int64_t i02 = i2 % ne02; + const int64_t i01 = i1 % ne01; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01; + device char * dst_ptr = dst + i3*nb3 + i2*nb2 + i1*nb1 ; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i00 = i0 % ne00; + *((device T *)(dst_ptr + i0*nb0)) = *((device T *)(src0_ptr + i00*nb00)); + } +} + +typedef decltype(kernel_repeat) kernel_repeat_t; + +template [[host_name("kernel_repeat_f32")]] kernel kernel_repeat_t kernel_repeat; +template [[host_name("kernel_repeat_f16")]] kernel kernel_repeat_t kernel_repeat; +template [[host_name("kernel_repeat_i32")]] kernel kernel_repeat_t kernel_repeat; +template [[host_name("kernel_repeat_i16")]] kernel kernel_repeat_t kernel_repeat; + +// assumption: src1 is a row +// broadcast src1 into src0 +kernel void kernel_add_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] + src1[tpig % nb]; +} + +kernel void kernel_sub_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] - src1[tpig % nb]; +} + +kernel void kernel_mul_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * src1[tpig % nb]; +} + +kernel void kernel_div_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] / src1[tpig % nb]; +} + +kernel void kernel_scale( + device const float * src0, + device float * dst, + constant float & scale, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * scale; +} + +kernel void kernel_scale_4( + device const float4 * src0, + device float4 * dst, + constant float & scale, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * scale; +} + +kernel void kernel_clamp( + device const float * src0, + device float * dst, + constant float & min, + constant float & max, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] < min ? min : (src0[tpig] > max ? max : src0[tpig]); +} + +kernel void kernel_relu( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = max(0.0f, src0[tpig]); +} + +kernel void kernel_sigmoid( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = 1.0f / (1.0f + exp(-src0[tpig])); +} + +kernel void kernel_tanh( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + dst[tpig] = precise::tanh(x); +} + +constant float GELU_COEF_A = 0.044715f; +constant float GELU_QUICK_COEF = -1.702f; +constant float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f; + +kernel void kernel_gelu( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + + dst[tpig] = 0.5f*x*(1.0f + precise::tanh(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); +} + +kernel void kernel_gelu_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + device const float4 & x = src0[tpig]; + + // BEWARE !!! + // Simply using "tanh" instead of "precise::tanh" will sometimes results in NaNs! + // This was observed with Falcon 7B and 40B models + // + dst[tpig] = 0.5f*x*(1.0f + precise::tanh(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); +} + +kernel void kernel_gelu_quick( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + + dst[tpig] = x*(1.0f/(1.0f+exp(GELU_QUICK_COEF*x))); +} + +kernel void kernel_gelu_quick_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + device const float4 & x = src0[tpig]; + + dst[tpig] = x*(1.0f/(1.0f+exp(GELU_QUICK_COEF*x))); +} + +kernel void kernel_silu( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + dst[tpig] = x / (1.0f + exp(-x)); +} + +kernel void kernel_silu_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + device const float4 & x = src0[tpig]; + dst[tpig] = x / (1.0f + exp(-x)); +} + +kernel void kernel_sqr( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * src0[tpig]; +} + +kernel void kernel_sqrt( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sqrt(src0[tpig]); +} + +kernel void kernel_sin( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sin(src0[tpig]); +} + +kernel void kernel_cos( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = cos(src0[tpig]); +} + +kernel void kernel_sum_rows( + device const float * src0, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tpig[[thread_position_in_grid]]) { + int64_t i3 = tpig.z; + int64_t i2 = tpig.y; + int64_t i1 = tpig.x; + + if (i3 >= ne03 || i2 >= ne02 || i1 >= ne01) { + return; + } + + device const float * src_row = (device const float *) ((device const char *) src0 + i1*nb01 + i2*nb02 + i3*nb03); + device float * dst_row = (device float *) ((device char *) dst + i1*nb1 + i2*nb2 + i3*nb3); + + float row_sum = 0; + + for (int64_t i0 = 0; i0 < ne00; i0++) { + row_sum += src_row[i0]; + } + + dst_row[0] = row_sum; +} + +template +kernel void kernel_soft_max( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint32_t & n_head_log2, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + const int64_t i03 = (tgpig) / (ne02*ne01); + const int64_t i02 = (tgpig - i03*ne02*ne01) / ne01; + const int64_t i01 = (tgpig - i03*ne02*ne01 - i02*ne01); + + device const float * psrc0 = (device const float *) src0 + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00); + device const T * pmask = src1 != src0 ? (device const T *) src1 + i01*ne00 : nullptr; + device float * pdst = (device float *) dst + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00); + + float slope = 1.0f; + + // ALiBi + if (max_bias > 0.0f) { + const int64_t h = i02; + + const float base = h < n_head_log2 ? m0 : m1; + const int exp = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exp); + } + + // parallel max + float lmax = -INFINITY; + + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + lmax = MAX(lmax, psrc0[i00]*scale + (pmask ? slope*pmask[i00] : 0.0f)); + } + + // find the max value in the block + float max_val = simd_max(lmax); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = -INFINITY; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = max_val; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + max_val = buf[tiisg]; + max_val = simd_max(max_val); + } + + // parallel sum + float lsum = 0.0f; + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + const float exp_psrc0 = exp((psrc0[i00]*scale + (pmask ? slope*pmask[i00] : 0.0f)) - max_val); + lsum += exp_psrc0; + pdst[i00] = exp_psrc0; + } + + // This barrier fixes a failing test + // ref: https://github.com/ggerganov/ggml/pull/621#discussion_r1425156335 + threadgroup_barrier(mem_flags::mem_none); + + float sum = simd_sum(lsum); + + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = sum; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + sum = buf[tiisg]; + sum = simd_sum(sum); + } + + const float inv_sum = 1.0f/sum; + + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + pdst[i00] *= inv_sum; + } +} + +template +kernel void kernel_soft_max_4( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint32_t & n_head_log2, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + const int64_t i03 = (tgpig) / (ne02*ne01); + const int64_t i02 = (tgpig - i03*ne02*ne01) / ne01; + const int64_t i01 = (tgpig - i03*ne02*ne01 - i02*ne01); + + device const float4 * psrc4 = (device const float4 *) src0 + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00)/4; + device const T * pmask = src1 != src0 ? (device const T *) src1 + i01*ne00/4 : nullptr; + device float4 * pdst4 = (device float4 *) dst + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00)/4; + + float slope = 1.0f; + + if (max_bias > 0.0f) { + const int64_t h = i02; + + const float base = h < n_head_log2 ? m0 : m1; + const int exp = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exp); + } + + // parallel max + float4 lmax4 = -INFINITY; + + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + lmax4 = fmax(lmax4, psrc4[i00]*scale + (float4)((pmask ? slope*pmask[i00] : 0.0f))); + } + + const float lmax = MAX(MAX(lmax4[0], lmax4[1]), MAX(lmax4[2], lmax4[3])); + + float max_val = simd_max(lmax); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = -INFINITY; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = max_val; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + max_val = buf[tiisg]; + max_val = simd_max(max_val); + } + + // parallel sum + float4 lsum4 = 0.0f; + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + const float4 exp_psrc4 = exp((psrc4[i00]*scale + (float4)((pmask ? slope*pmask[i00] : 0.0f))) - max_val); + lsum4 += exp_psrc4; + pdst4[i00] = exp_psrc4; + } + + const float lsum = lsum4[0] + lsum4[1] + lsum4[2] + lsum4[3]; + + // This barrier fixes a failing test + // ref: https://github.com/ggerganov/ggml/pull/621#discussion_r1425156335 + threadgroup_barrier(mem_flags::mem_none); + + float sum = simd_sum(lsum); + + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = sum; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + sum = buf[tiisg]; + sum = simd_sum(sum); + } + + const float inv_sum = 1.0f/sum; + + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + pdst4[i00] *= inv_sum; + } +} + +typedef decltype(kernel_soft_max) kernel_soft_max_t; +typedef decltype(kernel_soft_max_4) kernel_soft_max_4_t; + +template [[host_name("kernel_soft_max_f16")]] kernel kernel_soft_max_t kernel_soft_max; +template [[host_name("kernel_soft_max_f32")]] kernel kernel_soft_max_t kernel_soft_max; +template [[host_name("kernel_soft_max_f16_4")]] kernel kernel_soft_max_4_t kernel_soft_max_4; +template [[host_name("kernel_soft_max_f32_4")]] kernel kernel_soft_max_4_t kernel_soft_max_4; + +kernel void kernel_diag_mask_inf( + device const float * src0, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int & n_past, + uint3 tpig[[thread_position_in_grid]]) { + const int64_t i02 = tpig[2]; + const int64_t i01 = tpig[1]; + const int64_t i00 = tpig[0]; + + if (i00 > n_past + i01) { + dst[i02*ne01*ne00 + i01*ne00 + i00] = -INFINITY; + } else { + dst[i02*ne01*ne00 + i01*ne00 + i00] = src0[i02*ne01*ne00 + i01*ne00 + i00]; + } +} + +kernel void kernel_diag_mask_inf_8( + device const float4 * src0, + device float4 * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int & n_past, + uint3 tpig[[thread_position_in_grid]]) { + + const int64_t i = 2*tpig[0]; + + dst[i+0] = src0[i+0]; + dst[i+1] = src0[i+1]; + int64_t i4 = 4*i; + const int64_t i02 = i4/(ne00*ne01); i4 -= i02*ne00*ne01; + const int64_t i01 = i4/(ne00); i4 -= i01*ne00; + const int64_t i00 = i4; + for (int k = 3; k >= 0; --k) { + if (i00 + 4 + k <= n_past + i01) { + break; + } + dst[i+1][k] = -INFINITY; + if (i00 + k > n_past + i01) { + dst[i][k] = -INFINITY; + } + } +} + +// ref: ggml.c:ggml_compute_forward_ssm_conv_f32 +// TODO: optimize +kernel void kernel_ssm_conv_f32( + device const void * src0, + device const void * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant int64_t & ne11, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t ir = tgpig.x; + const int64_t i2 = tgpig.y; + const int64_t i3 = tgpig.z; + + const int64_t nc = ne10; + //const int64_t ncs = ne00; + //const int64_t nr = ne01; + //const int64_t n_t = ne1; + //const int64_t n_s = ne2; + + device const float * s = (device const float *) ((device const char *) src0 + ir*nb01 + i2*nb00 + i3*nb02); + device const float * c = (device const float *) ((device const char *) src1 + ir*nb11); + device float * x = (device float *) ((device char *) dst + ir*nb0 + i2*nb1 + i3*nb2); + + float sumf = 0.0f; + + for (int64_t i0 = 0; i0 < nc; ++i0) { + sumf += s[i0] * c[i0]; + } + + x[0] = sumf; +} + +// ref: ggml.c:ggml_compute_forward_ssm_scan_f32 +// TODO: optimize +kernel void kernel_ssm_scan_f32( + device const void * src0, + device const void * src1, + device const void * src2, + device const void * src3, + device const void * src4, + device const void * src5, + device float * dst, + constant int64_t & d_state, + constant int64_t & d_inner, + constant int64_t & n_seq_tokens, + constant int64_t & n_seqs, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant uint64_t & nb20, + constant uint64_t & nb21, + constant uint64_t & nb22, + constant uint64_t & nb30, + constant uint64_t & nb31, + constant uint64_t & nb40, + constant uint64_t & nb41, + constant uint64_t & nb42, + constant uint64_t & nb50, + constant uint64_t & nb51, + constant uint64_t & nb52, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t ir = tgpig.x; + const int64_t i3 = tgpig.y; + + const int64_t nc = d_state; + //const int64_t nr = d_inner; + const int64_t n_t = n_seq_tokens; + //const int64_t n_s = n_seqs; + + for (int64_t i2 = 0; i2 < n_t; ++i2) { + device const float * s0 = (device const float *) ((device const char *) src0 + ir*nb01 + i3*nb02); + device const float * x = (device const float *) ((device const char *) src1 + ir*nb10 + i2*nb11 + i3*nb12); + device const float * dt = (device const float *) ((device const char *) src2 + ir*nb20 + i2*nb21 + i3*nb22); + device const float * A = (device const float *) ((device const char *) src3 + ir*nb31); + device const float * B = (device const float *) ((device const char *) src4 + i2*nb41 + i3*nb42); + device const float * C = (device const float *) ((device const char *) src5 + i2*nb51 + i3*nb52); + device float * y = (device float *) ((device char *) dst + ir*nb10 + i2*nb11 + i3*nb12); // TODO: do not use src1 strides + device float * s = (device float *) ((device char *) dst + ir*nb01 + i3*nb02 + nb13); + + if (i2 > 0) { + s0 = s; + } + + // i1 == 0 + float dt_soft_plus = dt[0] <= 20.0f ? log(1.0f + exp(dt[0])) : dt[0]; + float x_dt = x[0] * dt_soft_plus; + float sumf = 0.0f; + + for (int64_t i0 = 0; i0 < nc; ++i0) { + int64_t i = i0; + float state = (s0[i] * exp(dt_soft_plus * A[i])) + (B[i0] * x_dt); + sumf += state * C[i0]; + s[i] = state; + } + + y[0] = sumf; + } +} + +kernel void kernel_norm( + device const void * src0, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant float & eps, + threadgroup float * sum [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint ntg[[threads_per_threadgroup]]) { + device const float * x = (device const float *) ((device const char *) src0 + tgpig*nb01); + // MEAN + // parallel sum + sum[tpitg] = 0.0f; + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + sum[tpitg] += x[i00]; + } + // reduce + threadgroup_barrier(mem_flags::mem_threadgroup); + for (uint i = ntg/2; i > 0; i /= 2) { + if (tpitg < i) { + sum[tpitg] += sum[tpitg + i]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + const float mean = sum[0] / ne00; + + // recenter and VARIANCE + threadgroup_barrier(mem_flags::mem_threadgroup); + device float * y = dst + tgpig*ne00; + sum[tpitg] = 0.0f; + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + y[i00] = x[i00] - mean; + sum[tpitg] += y[i00] * y[i00]; + } + + // reduce + threadgroup_barrier(mem_flags::mem_threadgroup); + for (uint i = ntg/2; i > 0; i /= 2) { + if (tpitg < i) { + sum[tpitg] += sum[tpitg + i]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + const float variance = sum[0] / ne00; + + const float scale = 1.0f/sqrt(variance + eps); + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + y[i00] = y[i00] * scale; + } +} + +kernel void kernel_rms_norm( + device const void * src0, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant float & eps, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + device const float4 * x = (device const float4 *) ((device const char *) src0 + tgpig*nb01); + + float4 sumf = 0; + float all_sum = 0; + + // parallel sum + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + sumf += x[i00] * x[i00]; + } + all_sum = sumf[0] + sumf[1] + sumf[2] + sumf[3]; + all_sum = simd_sum(all_sum); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = all_sum; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + all_sum = buf[tiisg]; + all_sum = simd_sum(all_sum); + } + + const float mean = all_sum/ne00; + const float scale = 1.0f/sqrt(mean + eps); + + device float4 * y = (device float4 *) (dst + tgpig*ne00); + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + y[i00] = x[i00] * scale; + } +} + +kernel void kernel_group_norm( + device const float * src0, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int32_t & n_groups, + constant float & eps, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + const int64_t ne = ne00*ne01*ne02; + const int64_t gs = ne00*ne01*((ne02 + n_groups - 1) / n_groups); + + int start = tgpig * gs; + int end = start + gs; + + start += tpitg; + + if (end >= ne) { + end = ne; + } + + float tmp = 0.0f; // partial sum for thread in warp + + for (int j = start; j < end; j += ntg) { + tmp += src0[j]; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + tmp = simd_sum(tmp); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = tmp; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + tmp = buf[tiisg]; + tmp = simd_sum(tmp); + } + + const float mean = tmp / gs; + tmp = 0.0f; + + for (int j = start; j < end; j += ntg) { + float xi = src0[j] - mean; + dst[j] = xi; + tmp += xi * xi; + } + + tmp = simd_sum(tmp); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = tmp; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + tmp = buf[tiisg]; + tmp = simd_sum(tmp); + } + + const float variance = tmp / gs; + const float scale = 1.0f/sqrt(variance + eps); + for (int j = start; j < end; j += ntg) { + dst[j] *= scale; + } +} + +// function for calculate inner product between half a q4_0 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q4 quants begin (0 or QK4_0/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q4_0 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *) qb_curr + 1 + il/2); + + for (int i = 0; i < 8; i += 2) { + acc[0] += yl[i + 0] * (qs[i / 2] & 0x000F); + acc[1] += yl[i + 1] * (qs[i / 2] & 0x0F00); + acc[2] += yl[i + 8] * (qs[i / 2] & 0x00F0); + acc[3] += yl[i + 9] * (qs[i / 2] & 0xF000); + } + + return d * (sumy * -8.f + acc[0] + acc[1] + acc[2] + acc[3]); +} + +// function for calculate inner product between half a q4_1 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q4 quants begin (0 or QK4_0/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q4_1 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + float m = qb_curr->m; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *) qb_curr + 2 + il/2); + + for (int i = 0; i < 8; i+=2) { + acc[0] += yl[i + 0] * (qs[i / 2] & 0x000F); + acc[1] += yl[i + 1] * (qs[i / 2] & 0x0F00); + acc[2] += yl[i + 8] * (qs[i / 2] & 0x00F0); + acc[3] += yl[i + 9] * (qs[i / 2] & 0xF000); + } + + return d * (acc[0] + acc[1] + acc[2] + acc[3]) + sumy * m; +} + +// function for calculate inner product between half a q5_0 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q5 quants begin (0 or QK5_0/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q5_0 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *)qb_curr + 3 + il/2); + const uint32_t qh = *((device const uint32_t *)qb_curr->qh); + + for (int i = 0; i < 8; i+=2) { + acc[0] += yl[i + 0] * ((qs[i / 2] & 0x000F) | ((qh >> (i+0+il ) << 4 ) & 0x00010)); + acc[1] += yl[i + 1] * ((qs[i / 2] & 0x0F00) | ((qh >> (i+1+il ) << 12) & 0x01000)); + acc[2] += yl[i + 8] * ((qs[i / 2] & 0x00F0) | ((qh >> (i+0+il+QK5_0/2) << 8 ) & 0x00100)); + acc[3] += yl[i + 9] * ((qs[i / 2] & 0xF000) | ((qh >> (i+1+il+QK5_0/2) << 16) & 0x10000)); + } + + return d * (sumy * -16.f + acc[0] + acc[1] + acc[2] + acc[3]); +} + +// function for calculate inner product between half a q5_1 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q5 quants begin (0 or QK5_1/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q5_1 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + float m = qb_curr->m; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *)qb_curr + 4 + il/2); + const uint32_t qh = *((device const uint32_t *)qb_curr->qh); + + for (int i = 0; i < 8; i+=2) { + acc[0] += yl[i + 0] * ((qs[i / 2] & 0x000F) | ((qh >> (i+0+il ) << 4 ) & 0x00010)); + acc[1] += yl[i + 1] * ((qs[i / 2] & 0x0F00) | ((qh >> (i+1+il ) << 12) & 0x01000)); + acc[2] += yl[i + 8] * ((qs[i / 2] & 0x00F0) | ((qh >> (i+0+il+QK5_0/2) << 8 ) & 0x00100)); + acc[3] += yl[i + 9] * ((qs[i / 2] & 0xF000) | ((qh >> (i+1+il+QK5_0/2) << 16) & 0x10000)); + } + + return d * (acc[0] + acc[1] + acc[2] + acc[3]) + sumy * m; +} + +// putting them in the kernel cause a significant performance penalty +#define N_DST 4 // each SIMD group works on 4 rows +#define N_SIMDGROUP 2 // number of SIMD groups in a thread group +//Note: This is a template, but strictly speaking it only applies to +// quantizations where the block size is 32. It also does not +// guard against the number of rows not being divisible by +// N_DST, so this is another explicit assumption of the implementation. +template +void mul_vec_q_n_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + const int nb = ne00/QK4_0; + + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * nsg + sgitg) * nr; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + //const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + //device const block_q_type * x = (device const block_q_type *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + // pointers to src0 rows + device const block_q_type * ax[nr]; + for (int row = 0; row < nr; ++row) { + const uint offset0 = (first_row + row)*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + ax[row] = (device const block_q_type *) ((device char *) src0 + offset0); + } + + float yl[16]; // src1 vector cache + float sumf[nr] = {0.f}; + + const int ix = (tiisg/2); + const int il = (tiisg%2)*8; + + device const float * yb = y + ix * QK4_0 + il; + + // each thread in a SIMD group deals with half a block. + for (int ib = ix; ib < nb; ib += nw/2) { + float sumy[2] = { 0.f, 0.f }; + +#pragma unroll + for (int i = 0; i < 8; i += 2) { + sumy[0] += yb[i + 0] + yb[i + 1]; + yl[i + 0] = yb[i + 0]; + yl[i + 1] = yb[i + 1]/256.f; + + sumy[1] += yb[i + 16] + yb[i + 17]; + yl[i + 8] = yb[i + 16]/16.f; + yl[i + 9] = yb[i + 17]/4096.f; + } + +#pragma unroll + for (int row = 0; row < nr; row++) { + sumf[row] += block_q_n_dot_y(ax[row] + ib, sumy[0] + sumy[1], yl, il); + } + + yb += QK4_0 * 16; + } + + for (int row = 0; row < nr; ++row) { + const float tot = simd_sum(sumf[row]); + if (tiisg == 0 && first_row + row < ne01) { + dst[im*ne0*ne1 + r1*ne0 + first_row + row] = tot; + } + } +} + +kernel void kernel_mul_mv_q4_0_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +kernel void kernel_mul_mv_q4_1_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +kernel void kernel_mul_mv_q5_0_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +kernel void kernel_mul_mv_q5_1_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + + +#define NB_Q8_0 8 + +void kernel_mul_mv_q8_0_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + const int nr = N_DST; + const int nsg = N_SIMDGROUP; + const int nw = N_SIMDWIDTH; + + const int nb = ne00/QK8_0; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * nsg + sgitg) * nr; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + //const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + //device const block_q8_0 * x = (device const block_q8_0 *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + // pointers to src0 rows + device const block_q8_0 * ax[nr]; + for (int row = 0; row < nr; ++row) { + const uint offset0 = (first_row + row)*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + ax[row] = (device const block_q8_0 *) ((device char *) src0 + offset0); + } + + float yl[NB_Q8_0]; + float sumf[nr]={0.f}; + + const int ix = tiisg/4; + const int il = tiisg%4; + + device const float * yb = y + ix * QK8_0 + NB_Q8_0*il; + + // each thread in a SIMD group deals with NB_Q8_0 quants at a time + for (int ib = ix; ib < nb; ib += nw/4) { + for (int i = 0; i < NB_Q8_0; ++i) { + yl[i] = yb[i]; + } + + for (int row = 0; row < nr; row++) { + device const int8_t * qs = ax[row][ib].qs + NB_Q8_0*il; + float sumq = 0.f; + for (int iq = 0; iq < NB_Q8_0; ++iq) { + sumq += qs[iq] * yl[iq]; + } + sumf[row] += sumq*ax[row][ib].d; + } + + yb += NB_Q8_0 * nw; + } + + for (int row = 0; row < nr; ++row) { + const float tot = simd_sum(sumf[row]); + if (tiisg == 0 && first_row + row < ne01) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = tot; + } + } +} + +[[host_name("kernel_mul_mv_q8_0_f32")]] +kernel void kernel_mul_mv_q8_0_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + kernel_mul_mv_q8_0_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +#define N_MV_T_T 4 + +template +void kernel_mul_mv_impl( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + uint3 tgpig, + uint tiisg) { + const int64_t r0 = tgpig.x; + const int64_t rb = tgpig.y*N_MV_T_T; + const int64_t im = tgpig.z; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = r0*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + device const T0 * x = (device const T0 *) (src0 + offset0); + + if (ne00 < 128) { + for (int row = 0; row < N_MV_T_T; ++row) { + int r1 = rb + row; + if (r1 >= ne11) { + break; + } + + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const T1 * y = (device const T1 *) (src1 + offset1); + + float sumf = 0; + for (int i = tiisg; i < ne00; i += 32) { + sumf += (T0) x[i] * (T1) y[i]; + } + + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } + } else { + device const T04 * x4 = (device const T04 *) x; + for (int row = 0; row < N_MV_T_T; ++row) { + int r1 = rb + row; + if (r1 >= ne11) { + break; + } + + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const T1 * y = (device const T1 *) (src1 + offset1); + device const T14 * y4 = (device const T14 *) y; + + float sumf = 0; + for (int i = tiisg; i < ne00/4; i += 32) { + for (int k = 0; k < 4; ++k) sumf += (float) (x4[i][k] * y4[i][k]); + } + + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + for (int i = 4*(ne00/4); i < ne00; ++i) all_sum += (float) (x[i] * y[i]); + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } + } +} + +template +kernel void kernel_mul_mv( + device const char * src0, + device const char * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]]) { + kernel_mul_mv_impl( + src0, + src1, + dst, + ne00, + ne01, + ne02, + nb00, + nb01, + nb02, + nb03, + ne10, + ne11, + ne12, + nb10, + nb11, + nb12, + nb13, + ne0, + ne1, + r2, + r3, + tgpig, + tiisg); +} + +typedef decltype(kernel_mul_mv) mul_mv_t; + +template [[host_name("kernel_mul_mv_f32_f32")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_f16_f32")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_f16_f16")]] kernel mul_mv_t kernel_mul_mv; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_bf16_f32")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_bf16_bf16")]] kernel mul_mv_t kernel_mul_mv; +#endif + +template +kernel void kernel_mul_mv_1row( + device const char * src0, + device const char * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]]) { + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int64_t im = tgpig.z; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = r0*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const T * x = (device const T *) (src0 + offset0); + device const float * y = (device const float *) (src1 + offset1); + + float sumf = 0; + if (ne00 < 128) { + for (int i = tiisg; i < ne00; i += 32) { + sumf += (float) x[i] * (float) y[i]; + } + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } else { + device const T4 * x4 = (device const T4 *) x; + device const float4 * y4 = (device const float4 *) y; + + for (int i = tiisg; i < ne00/4; i += 32) { + for (int k = 0; k < 4; ++k) sumf += (float) (x4[i][k] * y4[i][k]); + } + + float all_sum = simd_sum(sumf); + + if (tiisg == 0) { + for (int i = 4*(ne00/4); i < ne00; ++i) all_sum += (float) (x[i] * y[i]); + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } +} + +typedef decltype(kernel_mul_mv_1row) mul_mv_1row_t; + +template [[host_name("kernel_mul_mv_f16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_bf16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; +#endif + +// Assumes row size (ne00) is a multiple of 4 +template +kernel void kernel_mul_mv_l4( + device const char * src0, + device const char * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]]) { + + const int nrows = ne11; + const int64_t r0 = tgpig.x; + const int64_t im = tgpig.z; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = r0*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + device const T4 * x4 = (device const T4 *) (src0 + offset0); + + for (int r1 = 0; r1 < nrows; ++r1) { + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const float4 * y4 = (device const float4 *) (src1 + offset1); + + float sumf = 0; + for (int i = tiisg; i < ne00/4; i += 32) { + for (int k = 0; k < 4; ++k) sumf += (float) (x4[i][k] * y4[i][k]); + } + + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } +} + +typedef decltype(kernel_mul_mv_l4) mul_mv_l4_t; + +template [[host_name("kernel_mul_mv_f16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_bf16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; +#endif + +static float rope_yarn_ramp(const float low, const float high, const int i0) { + const float y = (i0 / 2 - low) / max(0.001f, high - low); + return 1.0f - min(1.0f, max(0.0f, y)); +} + +// YaRN algorithm based on LlamaYaRNScaledRotaryEmbedding.py from https://github.com/jquesnelle/yarn +// MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. +static void rope_yarn( + float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, + thread float * cos_theta, thread float * sin_theta) { + // Get n-d rotational scaling corrected for extrapolation + float theta_interp = freq_scale * theta_extrap; + float theta = theta_interp; + if (ext_factor != 0.0f) { + float ramp_mix = rope_yarn_ramp(corr_dims[0], corr_dims[1], i0) * ext_factor; + theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; + + // Get n-d magnitude scaling corrected for interpolation + mscale *= 1.0f + 0.1f * log(1.0f / freq_scale); + } + *cos_theta = cos(theta) * mscale; + *sin_theta = sin(theta) * mscale; +} + +// Apparently solving `n_rot = 2pi * x * base^((2 * max_pos_emb) / n_dims)` for x, we get +// `corr_fac(n_rot) = n_dims * log(max_pos_emb / (n_rot * 2pi)) / (2 * log(base))` +static float rope_yarn_corr_factor(int n_dims, int n_ctx_orig, float n_rot, float base) { + return n_dims * log(n_ctx_orig / (n_rot * 2 * M_PI_F)) / (2 * log(base)); +} + +static void rope_yarn_corr_dims( + int n_dims, int n_ctx_orig, float freq_base, float beta_fast, float beta_slow, float dims[2] +) { + // start and end correction dims + dims[0] = max(0.0f, floor(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_fast, freq_base))); + dims[1] = min(n_dims - 1.0f, ceil(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_slow, freq_base))); +} + +template +kernel void kernel_rope_norm( + device const void * src0, + device const int32_t * src1, + device const float * src2, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int & n_past, + constant int & n_dims, + constant int & n_ctx_orig, + constant float & freq_base, + constant float & freq_scale, + constant float & ext_factor, + constant float & attn_factor, + constant float & beta_fast, + constant float & beta_slow, + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg[[threads_per_threadgroup]], + uint3 tgpig[[threadgroup_position_in_grid]]) { + const int64_t i3 = tgpig[2]; + const int64_t i2 = tgpig[1]; + const int64_t i1 = tgpig[0]; + + float corr_dims[2]; + rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + device const int32_t * pos = src1; + + const float theta_base = (float) pos[i2]; + const float inv_ndims = -1.f/n_dims; + + float cos_theta; + float sin_theta; + + for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { + if (i0 < n_dims) { + const int64_t ic = i0/2; + + const float theta = theta_base * pow(freq_base, inv_ndims*i0); + + const float freq_factor = src2 != src0 ? src2[ic] : 1.0f; + + rope_yarn(theta/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); + + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + const float x0 = src[0]; + const float x1 = src[1]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[1] = x0*sin_theta + x1*cos_theta; + } else { + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } +} + +template +kernel void kernel_rope_neox( + device const void * src0, + device const int32_t * src1, + device const float * src2, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int & n_past, + constant int & n_dims, + constant int & n_ctx_orig, + constant float & freq_base, + constant float & freq_scale, + constant float & ext_factor, + constant float & attn_factor, + constant float & beta_fast, + constant float & beta_slow, + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg[[threads_per_threadgroup]], + uint3 tgpig[[threadgroup_position_in_grid]]) { + const int64_t i3 = tgpig[2]; + const int64_t i2 = tgpig[1]; + const int64_t i1 = tgpig[0]; + + float corr_dims[2]; + rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + device const int32_t * pos = src1; + + const float theta_base = (float) pos[i2]; + const float inv_ndims = -1.f/n_dims; + + float cos_theta; + float sin_theta; + + for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { + if (i0 < n_dims) { + const int64_t ic = i0/2; + + const float theta = theta_base * pow(freq_base, inv_ndims*i0); + + const float freq_factor = src2 != src0 ? src2[ic] : 1.0f; + + rope_yarn(theta/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); + + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = src[0]; + const float x1 = src[n_dims/2]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; + } else { + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } +} + +typedef decltype(kernel_rope_norm) kernel_rope_norm_t; +typedef decltype(kernel_rope_neox) kernel_rope_neox_t; + +template [[host_name("kernel_rope_norm_f32")]] kernel kernel_rope_norm_t kernel_rope_norm; +template [[host_name("kernel_rope_norm_f16")]] kernel kernel_rope_norm_t kernel_rope_norm; + +template [[host_name("kernel_rope_neox_f32")]] kernel kernel_rope_neox_t kernel_rope_neox; +template [[host_name("kernel_rope_neox_f16")]] kernel kernel_rope_neox_t kernel_rope_neox; + +typedef void (im2col_t)( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]); + +template +kernel void kernel_im2col( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int32_t iiw = tgpig[2] * s0 + tpitg[2] * d0 - p0; + const int32_t iih = tgpig[1] * s1 + tpitg[1] * d1 - p1; + + const int32_t offset_dst = + (tpitg[0] * tgpg[1] * tgpg[2] + tgpig[1] * tgpg[2] + tgpig[2]) * CHW + + (tgpig[0] * (ntg[1] * ntg[2]) + tpitg[1] * ntg[2] + tpitg[2]); + + device T * pdst = (device T *) (dst); + + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + pdst[offset_dst] = 0.0f; + } else { + const int32_t offset_src = tpitg[0] * ofs0 + tgpig[0] * ofs1; + pdst[offset_dst] = x[offset_src + iih * IW + iiw]; + } +} + +template [[host_name("kernel_im2col_f32")]] kernel im2col_t kernel_im2col; +template [[host_name("kernel_im2col_f16")]] kernel im2col_t kernel_im2col; + +typedef void (im2col_ext_t)( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + constant int32_t & N, + constant int32_t & KH, + constant int32_t & KW, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]); + +template +kernel void kernel_im2col_ext( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + constant int32_t & N, + constant int32_t & KH, + constant int32_t & KW, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], // tgpg[0] = D x IC x KH x KW, CHW = IC x KH x KW + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { // [M, 1, 1] + const int32_t KHW = KH * KW; // KHW == ntg[1] * ntg[2], KW == ntg[2] + + const int32_t d = tgpig[0] / CHW; + const int32_t chw = tgpig[0] % CHW; + const int32_t tgpig_0 = chw / KHW; // 0 ~ (IC - 1) + const int32_t HW = tgpig[0] % KHW; + + const int32_t tpitg_0 = (d * ntg[0]) + tpitg[0]; + if (tpitg_0 >= N) { + return; + } + + const int32_t tpitg_1 = HW / KW; + const int32_t tpitg_2 = HW % KW; + + const int32_t iiw = tgpig[2] * s0 + tpitg_2 * d0 - p0; + const int32_t iih = tgpig[1] * s1 + tpitg_1 * d1 - p1; + + const int32_t offset_dst = + (tpitg_0 * tgpg[1] * tgpg[2] + tgpig[1] * tgpg[2] + tgpig[2]) * CHW + + (tgpig_0 * KHW + tpitg_1 * KW + tpitg_2); + + device T * pdst = (device T *) (dst); + + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + pdst[offset_dst] = 0.0f; + } else { + const int32_t offset_src = tpitg_0 * ofs0 + tgpig_0 * ofs1; + pdst[offset_dst] = x[offset_src + iih * IW + iiw]; + } +} + +template [[host_name("kernel_im2col_ext_f32")]] kernel im2col_ext_t kernel_im2col_ext; +template [[host_name("kernel_im2col_ext_f16")]] kernel im2col_ext_t kernel_im2col_ext; + +kernel void kernel_upscale_f32( + device const char * src0, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant float & sf0, + constant float & sf1, + constant float & sf2, + constant float & sf3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + const int64_t i03 = i3/sf3; + const int64_t i02 = i2/sf2; + const int64_t i01 = i1/sf1; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int64_t i00 = i0/sf0; + + device const float * src0_ptr = (device const float *) (src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + device float * dst_ptr = (device float *) (dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_ptr[0] = src0_ptr[0]; + } +} + +kernel void kernel_pad_f32( + device const char * src0, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + const int64_t i03 = i3; + const int64_t i02 = i2; + const int64_t i01 = i1; + + device const float * src0_ptr = (device const float *) (src0 + i03*nb03 + i02*nb02 + i01*nb01); + device float * dst_ptr = (device float *) (dst + i3*nb3 + i2*nb2 + i1*nb1); + + if (i1 < ne01 && i2 < ne02 && i3 < ne03) { + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + if (i0 < ne00) { + dst_ptr[i0] = src0_ptr[i0]; + } else { + dst_ptr[i0] = 0.0f; + } + } + + return; + } + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + dst_ptr[i0] = 0.0f; + } +} + +kernel void kernel_arange_f32( + device char * dst, + constant int64_t & ne0, + constant float & start, + constant float & step, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + device float * dst_ptr = (device float *) dst; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + dst_ptr[i0] = start + step * i0; + } +} + +kernel void kernel_timestep_embedding_f32( + device const char * src0, + device char * dst, + constant uint64_t & nb1, + constant int & dim, + constant int & max_period, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + int i = tgpig.x; + device float * embed_data = (device float *)(dst + i*nb1); + + int half_ = dim / 2; + for (int j = tpitg.x; j < half_; j += ntg.x) { + float timestep = ((device float *)src0)[i]; + float freq = (float)exp(-log((float)max_period) * j / half_); + float arg = timestep * freq; + embed_data[j ] = cos(arg); + embed_data[j + half_] = sin(arg); + } + + if (dim % 2 != 0 && tpitg.x == 0) { + embed_data[dim] = 0.f; + } +} + +// bitonic sort implementation following the CUDA kernels as reference +typedef void (argsort_t)( + device const float * x, + device int32_t * dst, + constant int64_t & ncols, + constant int64_t & ncols_pad, + threadgroup int32_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]]); + +template +kernel void kernel_argsort_f32_i32( + device const float * x, + device int32_t * dst, + constant int64_t & ncols, + constant int64_t & ncols_pad, + threadgroup int32_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]]) { + // bitonic sort + int col = tpitg[0]; + int row = tgpig[1]; + + if (col >= ncols_pad) return; + + device const float * x_row = x + row * ncols; + threadgroup int32_t * dst_row = shared_values; + + // initialize indices + dst_row[col] = col; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + for (int k = 2; k <= ncols_pad; k *= 2) { + for (int j = k / 2; j > 0; j /= 2) { + int ixj = col ^ j; + if (ixj > col) { + if ((col & k) == 0) { + if (dst_row[col] >= ncols || + (dst_row[ixj] < ncols && (order == GGML_SORT_ORDER_ASC ? + x_row[dst_row[col]] > x_row[dst_row[ixj]] : + x_row[dst_row[col]] < x_row[dst_row[ixj]])) + ) { + SWAP(dst_row[col], dst_row[ixj]); + } + } else { + if (dst_row[ixj] >= ncols || + (dst_row[col] < ncols && (order == GGML_SORT_ORDER_ASC ? + x_row[dst_row[col]] < x_row[dst_row[ixj]] : + x_row[dst_row[col]] > x_row[dst_row[ixj]])) + ) { + SWAP(dst_row[col], dst_row[ixj]); + } + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + } + + // copy the result to dst without the padding + if (col < ncols) { + dst[row * ncols + col] = dst_row[col]; + } +} + +template [[host_name("kernel_argsort_f32_i32_asc")]] kernel argsort_t kernel_argsort_f32_i32; +template [[host_name("kernel_argsort_f32_i32_desc")]] kernel argsort_t kernel_argsort_f32_i32; + +kernel void kernel_leaky_relu_f32( + device const float * src0, + device float * dst, + constant float & slope, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] > 0.0f ? src0[tpig] : src0[tpig] * slope; +} + +// ref: https://arxiv.org/pdf/2307.08691.pdf +template< + typename q_t, // query types in shared memory + typename q4_t, + typename q8x8_t, + typename k_t, // key types in shared memory + typename k4x4_t, + typename k8x8_t, + typename v_t, // value types in shared memory + typename v4x4_t, + typename v8x8_t, + typename qk_t, // Q*K types + typename qk8x8_t, + typename s_t, // soft-max types + typename s8x8_t, + typename o_t, // attention accumulation types + typename o4_t, + typename o8x8_t, + typename kd4x4_t, // key type in device memory + short nl_k, + void (*deq_k)(device const kd4x4_t *, short, thread k4x4_t &), + typename vd4x4_t, // key type in device memory + short nl_v, + void (*deq_v)(device const vd4x4_t *, short, thread v4x4_t &), + short D, // head size + short Q = 8, // queries per threadgroup + short KV = 8, // key/value processed per each simdgroup + short C = 32> // cache items per threadgroup +kernel void kernel_flash_attn_ext( + device const char * q, + device const char * k, + device const char * v, + device const char * mask, + device float * dst, + constant int32_t & ne01, + constant int32_t & ne02, + constant int32_t & ne03, + constant uint32_t & nb01, + constant uint32_t & nb02, + constant uint32_t & nb03, + constant int32_t & ne11, + constant int32_t & ne_12_2, // assume K and V are same shape + constant int32_t & ne_12_3, + constant uint32_t & nb_12_1, + constant uint32_t & nb_12_2, + constant uint32_t & nb_12_3, + constant uint32_t & nb31, + constant int32_t & ne1, + constant int32_t & ne2, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint16_t & n_head_log2, + constant float & logit_softcap, + threadgroup half * shared [[threadgroup(0)]], + ushort3 tgpig[[threadgroup_position_in_grid]], + ushort3 ntg[[threads_per_threadgroup]], + ushort tiisg[[thread_index_in_simdgroup]], + ushort sgitg[[simdgroup_index_in_threadgroup]]) { + const short nsg = ntg.y; // number of simdgroups + + const int iq3 = tgpig[2]; + const int iq2 = tgpig[1]; + const int iq1 = tgpig[0]*Q; + + const short D4 = D/4; + const short D8 = D/8; + const short D16 = D/16; + const short NW = N_SIMDWIDTH; + const short SH = (2*C + Q); // shared memory per simdgroup (s_t == float) + + const short TS = nsg*SH; // shared memory size per query in (s_t == float) + const short T = D + 2*TS; // shared memory size per query in (half) + + threadgroup q_t * sq = (threadgroup q_t *) (shared + 0*D); // holds the query data + threadgroup q4_t * sq4 = (threadgroup q4_t *) (shared + 0*D); // same as above but in q4_t + threadgroup o_t * so = (threadgroup o_t *) (shared + 0*D); // reuse query data for accumulation + threadgroup o4_t * so4 = (threadgroup o4_t *) (shared + 0*D); // same as above but in o4_t + threadgroup s_t * ss = (threadgroup s_t *) (shared + 2*sgitg*SH + Q*D); // scratch buffer for attention, mask and diagonal matrix + + threadgroup k_t * sk = (threadgroup k_t *) (shared + sgitg*(4*16*KV) + Q*T); // scratch buffer to load K in shared memory + threadgroup k4x4_t * sk4x4 = (threadgroup k4x4_t *) (shared + sgitg*(4*16*KV) + Q*T); // same as above but in k4x4_t + + threadgroup v_t * sv = (threadgroup v_t *) (shared + sgitg*(4*16*KV) + Q*T); // scratch buffer to load V in shared memory + threadgroup v4x4_t * sv4x4 = (threadgroup v4x4_t *) (shared + sgitg*(4*16*KV) + Q*T); // same as above but in v4x4_t + + // store the result for all queries in local memory in 8x8 matrices (the O matrix from the paper) + o8x8_t lo[D8]; + + // load heads from Q to shared memory + for (short j = sgitg; j < Q; j += nsg) { + device const float4 * q4 = (device const float4 *) ((device const char *) q + ((iq1 + j)*nb01 + iq2*nb02 + iq3*nb03)); + + for (short i = tiisg; i < D4; i += NW) { + if (iq1 + j < ne01) { + sq4[j*D4 + i] = (q4_t) q4[i]; + } else { + sq4[j*D4 + i] = (q4_t) 0.0f; + } + } + } + + // zero out lo + for (short i = 0; i < D8; ++i) { + lo[i] = make_filled_simdgroup_matrix((o_t) 0.0f); + } + + // zero out shared memory SH + for (short j = 0; j < Q; ++j) { + for (short i = tiisg; i < SH; i += NW) { + ss[j*TS + i] = 0.0f; + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + { + half S[Q] = { [0 ... Q-1] = 0.0f }; + half M[Q] = { [0 ... Q-1] = -__FLT16_MAX__/2 }; + + // thread indices inside the simdgroup + // TODO: see if we can utilize quad-group functions for better performance + // https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (6.9.3) + const short tx = tiisg%4; + const short ty = tiisg/4; + + // broadcast kv + //const short rk2 = ne02/ne12; + //const short rk3 = ne03/ne13; + + const short ikv2 = iq2/(ne02/ne_12_2); + const short ikv3 = iq3/(ne03/ne_12_3); + + // load the queries from shared memory into local memory + q8x8_t mq[D8]; + + for (short i = 0; i < D8; ++i) { + simdgroup_load(mq[i], sq + i*8, D); + } + + const bool has_mask = mask != q; + + half slope = 1.0f; + + // ALiBi + if (max_bias > 0.0f) { + const short h = iq2; + + const half base = h < n_head_log2 ? m0 : m1; + const short exph = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exph); + } + + // loop over the KV cache + // each simdgroup handles blocks of Q rows and C columns + for (int ic0 = 0; ic0 < ne11; ic0 += C*nsg) { + const int ic = ic0 + C*sgitg; + if (ic >= ne11) { + break; + } + + if (has_mask) { + // used to detect blocks full of -INF + half smax = -INFINITY; + + // load the mask in shared memory + #pragma unroll(Q) + for (short j = 0; j < Q; ++j) { + device const half * pm = (device const half *) ((device const char *) mask + (iq1 + j)*nb31); + + const half m = pm[ic + tiisg]; + + ss[j*TS + C + tiisg] = m; + smax = max(smax, m); + } + + smax = simd_max(smax); + + if (smax == -INFINITY) { + continue; + } + } + + // Q*K^T + { + for (short cc = 0; cc < C/8; ++cc) { + qk8x8_t mqk = make_filled_simdgroup_matrix((qk_t) 0.0f); + + // this is compile-time check, so it does not have runtime overhead + if (is_same::value) { + // we can read directly from global memory + device const k_t * pk = (device const k_t *) ((device const char *) k + ((ic + 8*cc)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + k8x8_t mk; + simdgroup_load(mk, pk + i*8, nb_12_1/sizeof(k_t), 0, true); // transpose // TODO: use ne10 + + simdgroup_multiply_accumulate(mqk, mq[i], mk, mqk); + } + } else { + for (short ii = 0; ii < D16; ii += 4) { + device const kd4x4_t * pk4x4 = (device const kd4x4_t *) ((device const char *) k + ((ic + 8*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + if (D16%4 == 0) { + // the head is evenly divisible by 4*16 = 64, so no need for bound checks + { + k4x4_t tmp; + deq_k(pk4x4 + (ii + tx)/nl_k, (ii + tx)%nl_k, tmp); + sk4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(4) + for (short k = 0; k < 4; ++k) { + k8x8_t mk; + + simdgroup_load(mk, sk + 16*k + 0*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 0], mk, mqk); + + simdgroup_load(mk, sk + 16*k + 1*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 1], mk, mqk); + } + } else { + if (ii + tx < D16) { + k4x4_t tmp; + deq_k(pk4x4 + (ii + tx)/nl_k, (ii + tx)%nl_k, tmp); + sk4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + for (short k = 0; k < 4 && ii + k < D16; ++k) { + k8x8_t mk; + + simdgroup_load(mk, sk + 16*k + 0*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 0], mk, mqk); + + simdgroup_load(mk, sk + 16*k + 1*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 1], mk, mqk); + } + } + } + } + + // cast qk_t -> s_t + //s8x8_t mqks(1.0f); + //simdgroup_multiply(mqks, mqk, mqks); + //simdgroup_store(mqks, ss + 8*cc, TS, 0, false); + + simdgroup_store(mqk, ss + 8*cc, TS, 0, false); + } + } + + // online softmax + { + for (ushort j = 0; j < Q; ++j) { + const half m = M[j]; + + // scale and apply the logitcap / mask + half s = ss[j*TS + tiisg]*scale; + + if (logit_softcap != 0.0f) { + s = logit_softcap*precise::tanh(s); + } + + // mqk = mqk + mask*slope + s += slope*ss[j*TS + C + tiisg]; + + M[j] = simd_max(max(M[j], s)); + + const half ms = exp(m - M[j]); + const half vs = exp(s - M[j]); + + S[j] = S[j]*ms + simd_sum(vs); + + // the P matrix from the paper (Q rows, C columns) + ss[j*TS + tiisg] = vs; + + // create a QxQ diagonal matrix for rescaling the output + if (tiisg == j) { + ss[j*TS + 2*C + j] = ms; + } + } + } + + // O = diag(ms)*O + { + s8x8_t mm; + simdgroup_load(mm, ss + 2*C, TS, 0, false); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + simdgroup_multiply(lo[i], mm, lo[i]); + } + } + + // O = O + (Q*K^T)*V + { + for (short cc = 0; cc < C/8; ++cc) { + s8x8_t ms; + simdgroup_load(ms, ss + 8*cc, TS, 0, false); + + if (is_same::value) { + // we can read directly from global memory + device const v_t * pv = (device const v_t *) ((device const char *) v + ((ic + 8*cc)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + v8x8_t mv; + simdgroup_load(mv, pv + i*8, nb_12_1/sizeof(v_t), 0, false); // TODO: use ne20 + + simdgroup_multiply_accumulate(lo[i], ms, mv, lo[i]); + } + } else { + for (short ii = 0; ii < D16; ii += 4) { + device const vd4x4_t * pv4x4 = (device const vd4x4_t *) ((device const char *) v + ((ic + 8*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + if (D16%4 == 0) { + // no need for bound checks + { + v4x4_t tmp; + deq_v(pv4x4 + (ii + tx)/nl_v, (ii + tx)%nl_v, tmp); + sv4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(4) + for (short k = 0; k < 4; ++k) { + v8x8_t mv; + + simdgroup_load(mv, sv + 16*k + 0*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 0], ms, mv, lo[2*(ii + k) + 0]); + + simdgroup_load(mv, sv + 16*k + 1*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 1], ms, mv, lo[2*(ii + k) + 1]); + } + } else { + if (ii + tx < D16) { + v4x4_t tmp; + deq_v(pv4x4 + (ii + tx)/nl_v, (ii + tx)%nl_v, tmp); + sv4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + for (short k = 0; k < 4 && ii + k < D16; ++k) { + v8x8_t mv; + + simdgroup_load(mv, sv + 16*k + 0*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 0], ms, mv, lo[2*(ii + k) + 0]); + + simdgroup_load(mv, sv + 16*k + 1*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 1], ms, mv, lo[2*(ii + k) + 1]); + } + } + } + } + } + } + } + + // these are needed for reducing the results from the simdgroups (reuse the ss buffer) + for (short j = 0; j < Q; ++j) { + if (tiisg == 0) { + ss[j*TS + 0] = S[j]; + ss[j*TS + 1] = M[j]; + } + } + } + + // reduce the warps sequentially + for (ushort sg = 1; sg < nsg; ++sg) { + half S = { 0.0f }; + half M = { -__FLT16_MAX__/2 }; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // each simdgroup stores its output to shared memory, reusing sq + if (sgitg == sg) { + for (short i = 0; i < D8; ++i) { + simdgroup_store(lo[i], so + i*8, D, 0, false); + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // the first simdgroup accumulates the results from the other simdgroups + if (sgitg == 0) { + for (short j = 0; j < Q; ++j) { + const half S0 = ss[j*TS + 0]; + const half S1 = ss[j*TS + sg*SH + 0]; + + const half M0 = ss[j*TS + 1]; + const half M1 = ss[j*TS + sg*SH + 1]; + + M = max(M0, M1); + + const half ms0 = exp(M0 - M); + const half ms1 = exp(M1 - M); + + S = S0*ms0 + S1*ms1; + + if (tiisg == 0) { + ss[j*TS + 0] = S; + ss[j*TS + 1] = M; + + ss[j*TS + 2*C + j ] = ms0; + ss[j*TS + 2*C + j + sg*SH] = ms1; + } + } + + // O_0 = diag(ms0)*O_0 + diag(ms1)*O_1 + { + s8x8_t ms0; + s8x8_t ms1; + + simdgroup_load(ms0, ss + 2*C, TS, 0, false); + simdgroup_load(ms1, ss + 2*C + sg*SH, TS, 0, false); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + o8x8_t t; + + simdgroup_load (t, so + i*8, D, 0, false); + simdgroup_multiply(t, ms1, t); + + simdgroup_multiply_accumulate(lo[i], ms0, lo[i], t); + } + } + } + } + + // store result to shared memory (reuse sq) + if (sgitg == 0) { + for (short i = 0; i < D8; ++i) { + simdgroup_store(lo[i], so + i*8, D, 0, false); + } + } + + device float4 * dst4 = (device float4 *) dst; + + // final rescale with 1/S and store to global memory + if (sgitg == 0) { + for (short j = 0; j < Q && iq1 + j < ne01; ++j) { + const float S = ss[j*TS + 0]; + + for (short i = tiisg; i < D4; i += NW) { + dst4[((int64_t)iq3*ne2*ne1 + iq2 + (iq1 + j)*ne1)*D4 + i] = (float4) so4[j*D4 + i]/S; + } + } + } +} + +// TODO: this is quite ugly. in the future these types will be hardcoded in the kernel, but for now keep them as +// template to be able to explore different combinations +// +#define FA_TYPES \ + half, half4, simdgroup_half8x8, \ + half, half4x4, simdgroup_half8x8, \ + half, half4x4, simdgroup_half8x8, \ + float, simdgroup_float8x8, \ + float, simdgroup_float8x8, \ + half, half4, simdgroup_half8x8 + +typedef decltype(kernel_flash_attn_ext) flash_attn_ext_t; + +template [[host_name("kernel_flash_attn_ext_f16_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_flash_attn_ext_bf16_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +#endif + +template [[host_name("kernel_flash_attn_ext_q4_0_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q4_1_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q5_0_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q5_1_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q8_0_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +#undef FA_TYPES + +template< + typename q4_t, // query types in shared memory + typename q4x4_t, + typename k4x4_t, // key types in shared memory + typename v4x4_t, // value types in shared memory + typename qk_t, // Q*K types + typename s_t, // soft-max types + typename s4_t, + typename s4x4_t, + typename o4x4_t, // attention accumulation types + typename kd4x4_t, // key type in device memory + short nl_k, + void (*deq_k)(device const kd4x4_t *, short, thread k4x4_t &), + typename vd4x4_t, // key type in device memory + short nl_v, + void (*deq_v)(device const vd4x4_t *, short, thread v4x4_t &), + short D, // head size + short Q = 1, // queries per threadgroup + short C = 32> // cache items per threadgroup +kernel void kernel_flash_attn_ext_vec( + device const char * q, + device const char * k, + device const char * v, + device const char * mask, + device float * dst, + constant int32_t & ne01, + constant int32_t & ne02, + constant int32_t & ne03, + constant uint32_t & nb01, + constant uint32_t & nb02, + constant uint32_t & nb03, + constant int32_t & ne11, + constant int32_t & ne_12_2, // assume K and V are same shape + constant int32_t & ne_12_3, + constant uint32_t & nb_12_1, + constant uint32_t & nb_12_2, + constant uint32_t & nb_12_3, + constant uint32_t & nb31, + constant int32_t & ne1, + constant int32_t & ne2, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint16_t & n_head_log2, + constant float & logit_softcap, + threadgroup half * shared [[threadgroup(0)]], + ushort3 tgpig[[threadgroup_position_in_grid]], + ushort3 tpitg[[thread_position_in_threadgroup]], + ushort3 ntg[[threads_per_threadgroup]], + ushort tiisg[[thread_index_in_simdgroup]], + ushort sgitg[[simdgroup_index_in_threadgroup]]) { + const short nsg = ntg.y; // number of simdgroups + + const int iq3 = tgpig[2]; + const int iq2 = tgpig[1]; + const int iq1 = tgpig[0]; + + const short D4 = D/4; + const short D16 = D/16; + const short NW = N_SIMDWIDTH; + const short NL = NW/4; // note: this can be adjusted to support D%64 == 0 and D%32 == 0 + const short SH = 2*C; // shared memory per simdgroup + + const short T = D + nsg*SH; // shared memory size per query in (half) + + //threadgroup q_t * sq = (threadgroup q_t *) (shared + 0*D); // holds the query data + threadgroup q4_t * sq4 = (threadgroup q4_t *) (shared + 0*D); // same as above but in q4_t + threadgroup q4x4_t * sq4x4 = (threadgroup q4x4_t *) (shared + 0*D); // same as above but in q4x4_t + threadgroup s_t * ss = (threadgroup s_t *) (shared + sgitg*SH + Q*D); // scratch buffer for attention + threadgroup s4_t * ss4 = (threadgroup s4_t *) (shared + sgitg*SH + Q*D); // same as above but in s4_t + threadgroup half * sm = (threadgroup half *) (shared + sgitg*SH + C + Q*D); // scratch buffer for mask + threadgroup o4x4_t * sr4x4 = (threadgroup o4x4_t *) (shared + sgitg*D + Q*T); // scratch buffer for the results + + // store the result for all queries in local memory in 8x8 matrices (the O matrix from the paper) + o4x4_t lo[D16/NL]; + + // load heads from Q to shared memory + device const float4 * q4 = (device const float4 *) ((device const char *) q + (iq1*nb01 + iq2*nb02 + iq3*nb03)); + + for (short i = tiisg; i < D4; i += NW) { + if (iq1 < ne01) { + sq4[i] = (q4_t) q4[i]; + } else { + sq4[i] = (q4_t) 0.0f; + } + } + + // zero out lo + for (short i = 0; i < D16/NL; ++i) { + lo[i] = (o4x4_t) 0.0f; + } + + // zero out shared memory SH + for (short i = tiisg; i < SH/4; i += NW) { + ss4[i] = (s4_t) 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + { + half S = 0.0f; + half M = -__FLT16_MAX__/2; + + // thread indices inside the simdgroup + const short tx = tiisg%NL; + const short ty = tiisg/NL; + + // broadcast kv + //const short rk2 = ne02/ne12; + //const short rk3 = ne03/ne13; + + const short ikv2 = iq2/(ne02/ne_12_2); + const short ikv3 = iq3/(ne03/ne_12_3); + + // load the queries from shared memory into local memory + q4x4_t mq[D16/NL]; + + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + mq[ii/NL] = sq4x4[ii + tx]; + } + + const bool has_mask = mask != q; + + // pointer to the mask + device const half * pm = (device const half *) (mask + iq1*nb31); + + half slope = 1.0f; + + // ALiBi + if (max_bias > 0.0f) { + const short h = iq2; + + const half base = h < n_head_log2 ? m0 : m1; + const short exph = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exph); + } + + // loop over the KV cache + // each simdgroup handles blocks of Q rows and C columns + for (int ic0 = 0; ic0 < ne11; ic0 += C*nsg) { + const int ic = ic0 + C*sgitg; + if (ic >= ne11) { + break; + } + + if (has_mask) { + sm[tiisg] = pm[ic + tiisg]; + } + + // Q*K^T + { + // each simdgroup processes 1 query and 4 (NW/NL) keys + for (short cc = 0; cc < C/4; ++cc) { + qk_t mqka[4] = { 0.0, 0.0, 0.0, 0.0 }; + + device const kd4x4_t * pk = (device const kd4x4_t *) ((device const char *) k + ((ic + 4*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + const short i = ii + tx; + + k4x4_t mk; + deq_k(pk + i/nl_k, i%nl_k, mk); + + // note: this is less precise than the version below + //mqka[0] += dot(mq[ii/NL][0], mk[0]); + //mqka[1] += dot(mq[ii/NL][1], mk[1]); + //mqka[2] += dot(mq[ii/NL][2], mk[2]); + //mqka[3] += dot(mq[ii/NL][3], mk[3]); + + mqka[0] += dot((float4) mq[ii/NL][0], (float4) mk[0]); + mqka[1] += dot((float4) mq[ii/NL][1], (float4) mk[1]); + mqka[2] += dot((float4) mq[ii/NL][2], (float4) mk[2]); + mqka[3] += dot((float4) mq[ii/NL][3], (float4) mk[3]); + } + + qk_t mqk = mqka[0] + mqka[1] + mqka[2] + mqka[3]; + + // simdgroup reduce + // [ 0 .. 7] -> [ 0] + // [ 8 .. 15] -> [ 8] + // [16 .. 23] -> [16] + // [24 .. 31] -> [24] + //mqk += simd_shuffle_down(mqk, 16); + //mqk += simd_shuffle_down(mqk, 8); + mqk += simd_shuffle_down(mqk, 4); + mqk += simd_shuffle_down(mqk, 2); + mqk += simd_shuffle_down(mqk, 1); + + // mqk = mqk*scale + mask*slope + if (tx == 0) { + mqk *= scale; + + if (logit_softcap != 0.0f) { + mqk = logit_softcap*precise::tanh(mqk); + } + + mqk += sm[4*cc + ty]*slope; + + ss[4*cc + ty] = mqk; + } + } + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + // online softmax + { + const half m = M; + const half s = ss[tiisg]; + + M = simd_max(max(M, s)); + + const half ms = exp(m - M); + const half vs = exp(s - M); + + S = S*ms + simd_sum(vs); + + // the P matrix from the paper (Q rows, C columns) + ss[tiisg] = vs; + + // O = diag(ms)*O + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + lo[ii/NL] *= ms; + } + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + // O = O + (Q*K^T)*V + { + for (short cc = 0; cc < C/4; ++cc) { + device const vd4x4_t * pv4 = (device const vd4x4_t *) ((device const char *) v + ((ic + 4*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + const s4x4_t ms(ss[4*cc + ty]); + + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + const short i = ii + tx; + + v4x4_t mv; + deq_v(pv4 + i/nl_v, i%nl_v, mv); + + lo[ii/NL] += mv*ms; + } + } + } + } + + // these are needed for reducing the results from the simdgroups (reuse the ss buffer) + if (tiisg == 0) { + ss[0] = (s_t) S; + ss[1] = (s_t) M; + } + } + + // simdgroup reduce + // [ 0, 8, 16, 24] -> [ 0] + // [ 1, 9, 17, 25] -> [ 1] + // [ 2, 10, 18, 26] -> [ 2] + // [ 3, 11, 19, 27] -> [ 3] + // [ 4, 12, 20, 28] -> [ 4] + // [ 5, 13, 21, 29] -> [ 5] + // [ 6, 14, 22, 30] -> [ 6] + // [ 7, 15, 23, 31] -> [ 7] + for (short ii = 0; ii < D16; ii += NL) { + lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 16); + lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 8); + //lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 4); + //lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 2); + //lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 1); + + lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 16); + lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 8); + //lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 4); + //lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 2); + //lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 1); + + lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 16); + lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 8); + //lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 4); + //lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 2); + //lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 1); + + lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 16); + lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 8); + //lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 4); + //lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 2); + //lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 1); + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // store results to shared memory + for (short i = tiisg; i < D16; i += NL) { + sr4x4[i] = lo[i/NL]; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // parallel reduce + for (short r = nsg/2; r > 0; r >>= 1) { + if (sgitg < r) { + const half S0 = ss[ 0]; + const half S1 = ss[r*SH + 0]; + + const half M0 = ss[ 1]; + const half M1 = ss[r*SH + 1]; + + const half M = max(M0, M1); + + const half ms0 = exp(M0 - M); + const half ms1 = exp(M1 - M); + + const half S = S0*ms0 + S1*ms1; + + if (tiisg == 0) { + ss[0] = S; + ss[1] = M; + } + + // O_0 = diag(ms0)*O_0 + diag(ms1)*O_1 + for (short i = tiisg; i < D16; i += NW) { + sr4x4[i] = sr4x4[i]*ms0 + sr4x4[i + r*D16]*ms1; + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + device float4x4 * dst44 = (device float4x4 *) dst; + + // final rescale with 1/S and store to global memory + if (sgitg == 0) { + const float S = ss[0]; + + for (short i = tiisg; i < D16; i += NW) { + dst44[((int64_t)iq3*ne2*ne1 + iq2 + (iq1)*ne1)*D16 + i] = (float4x4) sr4x4[i]/S; + } + } +} + +// note: I think the s_t can be half instead of float, because the Q*K scaling is done before storing to shared mem +// in the other (non-vec) kernel, we need s_t to also be float because we scale during the soft_max +// +#define FA_TYPES \ + half4, half4x4, \ + half4x4, \ + half4x4, \ + float, \ + half, half4, half4x4, \ + half4x4 + +typedef decltype(kernel_flash_attn_ext_vec) flash_attn_ext_vec_t; + +template [[host_name("kernel_flash_attn_ext_vec_f16_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_flash_attn_ext_vec_bf16_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#endif +template [[host_name("kernel_flash_attn_ext_vec_q4_0_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q4_1_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_0_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_1_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q8_0_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; + +template [[host_name("kernel_flash_attn_ext_vec_f16_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_flash_attn_ext_vec_bf16_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#endif +template [[host_name("kernel_flash_attn_ext_vec_q4_0_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q4_1_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_0_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_1_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q8_0_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; + +#undef FA_TYPES + +template +kernel void kernel_cpy( + device const void * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0); + + device T1 * dst_data = (device T1 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x; i00 < ne00; i00 += ntg.x) { + device const T0 * src = (device T0 *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + dst_data[i00] = (T1) src[0]; + } +} + +typedef decltype(kernel_cpy) kernel_cpy_t; + +template [[host_name("kernel_cpy_f32_f32")]] kernel kernel_cpy_t kernel_cpy; +template [[host_name("kernel_cpy_f32_f16")]] kernel kernel_cpy_t kernel_cpy; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_cpy_f32_bf16")]] kernel kernel_cpy_t kernel_cpy; +#endif +template [[host_name("kernel_cpy_f16_f32")]] kernel kernel_cpy_t kernel_cpy; +template [[host_name("kernel_cpy_f16_f16")]] kernel kernel_cpy_t kernel_cpy; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_cpy_bf16_f32")]] kernel kernel_cpy_t kernel_cpy; +template [[host_name("kernel_cpy_bf16_bf16")]] kernel kernel_cpy_t kernel_cpy; +#endif + +kernel void kernel_cpy_f32_q8_0( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK8_0; + + device block_q8_0 * dst_data = (device block_q8_0 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK8_0; i00 < ne00; i00 += ntg.x*QK8_0) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + + for (int j = 0; j < QK8_0; j++) { + const float v = src[j]; + amax = MAX(amax, fabs(v)); + } + + const float d = amax / ((1 << 7) - 1); + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK8_0].d = d; + + for (int j = 0; j < QK8_0; ++j) { + const float x0 = src[j]*id; + + dst_data[i00/QK8_0].qs[j] = round(x0); + } + } +} + +kernel void kernel_cpy_f32_q4_0( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK4_0; + + device block_q4_0 * dst_data = (device block_q4_0 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK4_0; i00 < ne00; i00 += ntg.x*QK4_0) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + float max = 0.0f; + + for (int j = 0; j < QK4_0; j++) { + const float v = src[j]; + if (amax < fabs(v)) { + amax = fabs(v); + max = v; + } + } + + const float d = max / -8; + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK4_0].d = d; + + for (int j = 0; j < QK4_0/2; ++j) { + const float x0 = src[0 + j]*id; + const float x1 = src[QK4_0/2 + j]*id; + + const uint8_t xi0 = MIN(15, (int8_t)(x0 + 8.5f)); + const uint8_t xi1 = MIN(15, (int8_t)(x1 + 8.5f)); + + dst_data[i00/QK4_0].qs[j] = xi0; + dst_data[i00/QK4_0].qs[j] |= xi1 << 4; + } + } +} + +kernel void kernel_cpy_f32_q4_1( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK4_1; + + device block_q4_1 * dst_data = (device block_q4_1 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK4_1; i00 < ne00; i00 += ntg.x*QK4_1) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float min = FLT_MAX; + float max = -FLT_MAX; + + for (int j = 0; j < QK4_1; j++) { + const float v = src[j]; + if (min > v) min = v; + if (max < v) max = v; + } + + const float d = (max - min) / ((1 << 4) - 1); + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK4_1].d = d; + dst_data[i00/QK4_1].m = min; + + for (int j = 0; j < QK4_1/2; ++j) { + const float x0 = (src[0 + j] - min)*id; + const float x1 = (src[QK4_1/2 + j] - min)*id; + + const uint8_t xi0 = MIN(15, (int8_t)(x0 + 0.5f)); + const uint8_t xi1 = MIN(15, (int8_t)(x1 + 0.5f)); + + dst_data[i00/QK4_1].qs[j] = xi0; + dst_data[i00/QK4_1].qs[j] |= xi1 << 4; + } + } +} + +kernel void kernel_cpy_f32_q5_0( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK5_0; + + device block_q5_0 * dst_data = (device block_q5_0 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK5_0; i00 < ne00; i00 += ntg.x*QK5_0) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + float max = 0.0f; + + for (int j = 0; j < QK5_0; j++) { + const float v = src[j]; + if (amax < fabs(v)) { + amax = fabs(v); + max = v; + } + } + + const float d = max / -16; + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK5_0].d = d; + + uint32_t qh = 0; + for (int j = 0; j < QK5_0/2; ++j) { + const float x0 = src[0 + j]*id; + const float x1 = src[QK5_0/2 + j]*id; + + const uint8_t xi0 = MIN(31, (int8_t)(x0 + 16.5f)); + const uint8_t xi1 = MIN(31, (int8_t)(x1 + 16.5f)); + + dst_data[i00/QK5_0].qs[j] = (xi0 & 0xf) | ((xi1 & 0xf) << 4); + qh |= ((xi0 & 0x10u) >> 4) << (j + 0); + qh |= ((xi1 & 0x10u) >> 4) << (j + QK5_0/2); + } + thread const uint8_t * qh8 = (thread const uint8_t *)&qh; + for (int j = 0; j < 4; ++j) { + dst_data[i00/QK5_0].qh[j] = qh8[j]; + } + } +} + +kernel void kernel_cpy_f32_q5_1( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK5_1; + + device block_q5_1 * dst_data = (device block_q5_1 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK5_1; i00 < ne00; i00 += ntg.x*QK5_1) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float max = src[0]; + float min = src[0]; + + for (int j = 1; j < QK5_1; j++) { + const float v = src[j]; + min = v < min ? v : min; + max = v > max ? v : max; + } + + const float d = (max - min) / 31; + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK5_1].d = d; + dst_data[i00/QK5_1].m = min; + + uint32_t qh = 0; + for (int j = 0; j < QK5_1/2; ++j) { + const float x0 = (src[0 + j] - min)*id; + const float x1 = (src[QK5_1/2 + j] - min)*id; + + const uint8_t xi0 = (uint8_t)(x0 + 0.5f); + const uint8_t xi1 = (uint8_t)(x1 + 0.5f); + + dst_data[i00/QK5_1].qs[j] = (xi0 & 0xf) | ((xi1 & 0xf) << 4); + qh |= ((xi0 & 0x10u) >> 4) << (j + 0); + qh |= ((xi1 & 0x10u) >> 4) << (j + QK5_1/2); + } + thread const uint8_t * qh8 = (thread const uint8_t *)&qh; + for (int j = 0; j < 4; ++j) { + dst_data[i00/QK5_1].qh[j] = qh8[j]; + } + } +} + +static inline int best_index_int8(int n, constant float * val, float x) { + if (x <= val[0]) return 0; + if (x >= val[n-1]) return n-1; + int ml = 0, mu = n-1; + while (mu-ml > 1) { + int mav = (ml+mu)/2; + if (x < val[mav]) mu = mav; else ml = mav; + } + return x - val[mu-1] < val[mu] - x ? mu-1 : mu; +} + +kernel void kernel_cpy_f32_iq4_nl( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK4_NL; + + device block_iq4_nl * dst_data = (device block_iq4_nl *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK4_NL; i00 < ne00; i00 += ntg.x*QK4_NL) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + float max = 0.0f; + + for (int j = 0; j < QK4_0; j++) { + const float v = src[j]; + if (amax < fabs(v)) { + amax = fabs(v); + max = v; + } + } + + const float d = max / kvalues_iq4nl_f[0]; + const float id = d ? 1.0f/d : 0.0f; + + float sumqx = 0, sumq2 = 0; + for (int j = 0; j < QK4_NL/2; ++j) { + const float x0 = src[0 + j]*id; + const float x1 = src[QK4_NL/2 + j]*id; + + const uint8_t xi0 = best_index_int8(16, kvalues_iq4nl_f, x0); + const uint8_t xi1 = best_index_int8(16, kvalues_iq4nl_f, x1); + + dst_data[i00/QK4_NL].qs[j] = xi0 | (xi1 << 4); + + const float v0 = kvalues_iq4nl_f[xi0]; + const float v1 = kvalues_iq4nl_f[xi1]; + const float w0 = src[0 + j]*src[0 + j]; + const float w1 = src[QK4_NL/2 + j]*src[QK4_NL/2 + j]; + sumqx += w0*v0*src[j] + w1*v1*src[QK4_NL/2 + j]; + sumq2 += w0*v0*v0 + w1*v1*v1; + + } + + dst_data[i00/QK4_NL].d = sumq2 > 0 ? sumqx/sumq2 : d; + + } +} + +kernel void kernel_concat( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int32_t & dim, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + int64_t o[4] = {0, 0, 0, 0}; + o[dim] = dim == 0 ? ne00 : (dim == 1 ? ne01 : (dim == 2 ? ne02 : ne03)); + + device const float * x; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + x = (device const float *)(src0 + (i3 )*nb03 + (i2 )*nb02 + (i1 )*nb01 + (i0 )*nb00); + } else { + x = (device const float *)(src1 + (i3 - o[3])*nb13 + (i2 - o[2])*nb12 + (i1 - o[1])*nb11 + (i0 - o[0])*nb10); + } + + device float * y = (device float *)(dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + *y = *x; + } +} + +void kernel_mul_mv_q2_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q2_K * x = (device const block_q2_K *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int ix = tiisg/8; // 0...3 + const int it = tiisg%8; // 0...7 + const int iq = it/4; // 0 or 1 + const int ir = it%4; // 0...3 + const int is = (8*ir)/16;// 0 or 1 + + device const float * y4 = y + ix * QK_K + 128 * iq + 8 * ir; + + for (int ib = ix; ib < nb; ib += 4) { + + float4 sumy = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; ++i) { + yl[i+ 0] = y4[i+ 0]; sumy[0] += yl[i+ 0]; + yl[i+ 8] = y4[i+32]; sumy[1] += yl[i+ 8]; + yl[i+16] = y4[i+64]; sumy[2] += yl[i+16]; + yl[i+24] = y4[i+96]; sumy[3] += yl[i+24]; + } + + device const uint8_t * sc = (device const uint8_t *)x[ib].scales + 8*iq + is; + device const uint16_t * qs = (device const uint16_t *)x[ib].qs + 16 * iq + 4 * ir; + device const half * dh = &x[ib].d; + + for (int row = 0; row < N_DST; row++) { + + float4 acc1 = {0.f, 0.f, 0.f, 0.f}; + float4 acc2 = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; i += 2) { + acc1[0] += yl[i+ 0] * (qs[i/2] & 0x0003); + acc2[0] += yl[i+ 1] * (qs[i/2] & 0x0300); + acc1[1] += yl[i+ 8] * (qs[i/2] & 0x000c); + acc2[1] += yl[i+ 9] * (qs[i/2] & 0x0c00); + acc1[2] += yl[i+16] * (qs[i/2] & 0x0030); + acc2[2] += yl[i+17] * (qs[i/2] & 0x3000); + acc1[3] += yl[i+24] * (qs[i/2] & 0x00c0); + acc2[3] += yl[i+25] * (qs[i/2] & 0xc000); + } + float dall = dh[0]; + float dmin = dh[1] * 1.f/16.f; + sumf[row] += dall * ((acc1[0] + 1.f/256.f * acc2[0]) * (sc[0] & 0xF) * 1.f/ 1.f + + (acc1[1] + 1.f/256.f * acc2[1]) * (sc[2] & 0xF) * 1.f/ 4.f + + (acc1[2] + 1.f/256.f * acc2[2]) * (sc[4] & 0xF) * 1.f/16.f + + (acc1[3] + 1.f/256.f * acc2[3]) * (sc[6] & 0xF) * 1.f/64.f) - + dmin * (sumy[0] * (sc[0] & 0xF0) + sumy[1] * (sc[2] & 0xF0) + sumy[2] * (sc[4] & 0xF0) + sumy[3] * (sc[6] & 0xF0)); + + qs += nb01/2; + sc += nb01; + dh += nb01/2; + } + + y4 += 4 * QK_K; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_q2_K_f32")]] +kernel void kernel_mul_mv_q2_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q2_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q3_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int64_t im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q3_K * x = (device const block_q3_K *) ((device char *) src0 + offset0); + device const float * yy = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + + //const uint16_t kmask1 = 0x3030; + //const uint16_t kmask2 = 0x0f0f; + + const int tid = tiisg/4; + const int ix = tiisg%4; + const int ip = tid/4; // 0 or 1 + const int il = 2*((tid%4)/2); // 0 or 2 + const int ir = tid%2; + const int n = 8; + const int l0 = n*ir; + + // One would think that the Metal compiler would figure out that ip and il can only have + // 4 possible states, and optimize accordingly. Well, no. It needs help, and we do it + // with these two tales. + // + // Possible masks for the high bit + const ushort4 mm[4] = {{0x0001, 0x0100, 0x0002, 0x0200}, // ip = 0, il = 0 + {0x0004, 0x0400, 0x0008, 0x0800}, // ip = 0, il = 2 + {0x0010, 0x1000, 0x0020, 0x2000}, // ip = 1, il = 0 + {0x0040, 0x4000, 0x0080, 0x8000}}; // ip = 1, il = 2 + + // Possible masks for the low 2 bits + const int4 qm[2] = {{0x0003, 0x0300, 0x000c, 0x0c00}, {0x0030, 0x3000, 0x00c0, 0xc000}}; + + const ushort4 hm = mm[2*ip + il/2]; + + const int shift = 2*il; + const float v1 = il == 0 ? 4.f : 64.f; + const float v2 = 4.f * v1; + + const uint16_t s_shift1 = 4*ip; + const uint16_t s_shift2 = s_shift1 + il; + + const int q_offset = 32*ip + l0; + const int y_offset = 128*ip + 32*il + l0; + + device const float * y1 = yy + ix*QK_K + y_offset; + + uint32_t scales32, aux32; + thread uint16_t * scales16 = (thread uint16_t *)&scales32; + thread const int8_t * scales = (thread const int8_t *)&scales32; + + float sumf1[2] = {0.f}; + float sumf2[2] = {0.f}; + for (int i = ix; i < nb; i += 4) { + for (int l = 0; l < 8; ++l) { + yl[l+ 0] = y1[l+ 0]; + yl[l+ 8] = y1[l+16]; + yl[l+16] = y1[l+32]; + yl[l+24] = y1[l+48]; + } + + device const uint16_t * q = (device const uint16_t *)(x[i].qs + q_offset); + device const uint16_t * h = (device const uint16_t *)(x[i].hmask + l0); + device const uint16_t * a = (device const uint16_t *)(x[i].scales); + device const half * dh = &x[i].d; + + for (int row = 0; row < 2; ++row) { + const float d_all = (float)dh[0]; + + scales16[0] = a[4]; + scales16[1] = a[5]; + aux32 = ((scales32 >> s_shift2) << 4) & 0x30303030; + scales16[0] = a[il+0]; + scales16[1] = a[il+1]; + scales32 = ((scales32 >> s_shift1) & 0x0f0f0f0f) | aux32; + + float s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0; + for (int l = 0; l < n; l += 2) { + const int32_t qs = q[l/2]; + s1 += yl[l+0] * (qs & qm[il/2][0]); + s2 += yl[l+1] * (qs & qm[il/2][1]); + s3 += ((h[l/2] & hm[0]) ? 0.f : yl[l+0]) + ((h[l/2] & hm[1]) ? 0.f : yl[l+1]); + s4 += yl[l+16] * (qs & qm[il/2][2]); + s5 += yl[l+17] * (qs & qm[il/2][3]); + s6 += ((h[l/2] & hm[2]) ? 0.f : yl[l+16]) + ((h[l/2] & hm[3]) ? 0.f : yl[l+17]); + } + float d1 = d_all * (s1 + 1.f/256.f * s2 - s3*v1); + float d2 = d_all * (s4 + 1.f/256.f * s5 - s6*v2); + sumf1[row] += d1 * (scales[0] - 32); + sumf2[row] += d2 * (scales[2] - 32); + + s1 = s2 = s3 = s4 = s5 = s6 = 0; + for (int l = 0; l < n; l += 2) { + const int32_t qs = q[l/2+8]; + s1 += yl[l+8] * (qs & qm[il/2][0]); + s2 += yl[l+9] * (qs & qm[il/2][1]); + s3 += ((h[l/2+8] & hm[0]) ? 0.f : yl[l+8]) + ((h[l/2+8] & hm[1]) ? 0.f : yl[l+9]); + s4 += yl[l+24] * (qs & qm[il/2][2]); + s5 += yl[l+25] * (qs & qm[il/2][3]); + s6 += ((h[l/2+8] & hm[2]) ? 0.f : yl[l+24]) + ((h[l/2+8] & hm[3]) ? 0.f : yl[l+25]); + } + d1 = d_all * (s1 + 1.f/256.f * s2 - s3*v1); + d2 = d_all * (s4 + 1.f/256.f * s5 - s6*v2); + sumf1[row] += d1 * (scales[1] - 32); + sumf2[row] += d2 * (scales[3] - 32); + + q += nb01/2; + h += nb01/2; + a += nb01/2; + dh += nb01/2; + } + + y1 += 4 * QK_K; + } + + for (int row = 0; row < 2; ++row) { + const float sumf = (sumf1[row] + 0.25f * sumf2[row]) / (1 << shift); + sumf1[row] = simd_sum(sumf); + } + if (tiisg == 0) { + for (int row = 0; row < 2; ++row) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = sumf1[row]; + } + } +} + +[[host_name("kernel_mul_mv_q3_K_f32")]] +kernel void kernel_mul_mv_q3_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q3_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q4_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const uint16_t kmask1 = 0x3f3f; + const uint16_t kmask2 = 0x0f0f; + const uint16_t kmask3 = 0xc0c0; + + const int ix = tiisg/8; // 0...3 + const int it = tiisg%8; // 0...7 + const int iq = it/4; // 0 or 1 + const int ir = it%4; // 0...3 + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + //const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + const int first_row = r0 * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q4_K * x = (device const block_q4_K *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[16]; + float yh[16]; + float sumf[N_DST]={0.f}, all_sum; + + device const float * y4 = y + ix * QK_K + 64 * iq + 8 * ir; + + uint16_t sc16[4]; + thread const uint8_t * sc8 = (thread const uint8_t *)sc16; + + for (int ib = ix; ib < nb; ib += 4) { + float4 sumy = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; ++i) { + yl[i+0] = y4[i+ 0]; sumy[0] += yl[i+0]; + yl[i+8] = y4[i+ 32]; sumy[1] += yl[i+8]; + yh[i+0] = y4[i+128]; sumy[2] += yh[i+0]; + yh[i+8] = y4[i+160]; sumy[3] += yh[i+8]; + } + + device const uint16_t * sc = (device const uint16_t *)x[ib].scales + iq; + device const uint16_t * q1 = (device const uint16_t *)x[ib].qs + 16 * iq + 4 * ir; + device const half * dh = &x[ib].d; + + for (int row = 0; row < N_DST; row++) { + sc16[0] = sc[0] & kmask1; + sc16[1] = sc[2] & kmask1; + sc16[2] = ((sc[4] >> 0) & kmask2) | ((sc[0] & kmask3) >> 2); + sc16[3] = ((sc[4] >> 4) & kmask2) | ((sc[2] & kmask3) >> 2); + + device const uint16_t * q2 = q1 + 32; + + float4 acc1 = {0.f, 0.f, 0.f, 0.f}; + float4 acc2 = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; i += 2) { + acc1[0] += yl[i+0] * (q1[i/2] & 0x000F); + acc1[1] += yl[i+1] * (q1[i/2] & 0x0F00); + acc1[2] += yl[i+8] * (q1[i/2] & 0x00F0); + acc1[3] += yl[i+9] * (q1[i/2] & 0xF000); + acc2[0] += yh[i+0] * (q2[i/2] & 0x000F); + acc2[1] += yh[i+1] * (q2[i/2] & 0x0F00); + acc2[2] += yh[i+8] * (q2[i/2] & 0x00F0); + acc2[3] += yh[i+9] * (q2[i/2] & 0xF000); + } + + float dall = dh[0]; + float dmin = dh[1]; + sumf[row] += dall * ((acc1[0] + 1.f/256.f * acc1[1]) * sc8[0] + + (acc1[2] + 1.f/256.f * acc1[3]) * sc8[1] * 1.f/16.f + + (acc2[0] + 1.f/256.f * acc2[1]) * sc8[4] + + (acc2[2] + 1.f/256.f * acc2[3]) * sc8[5] * 1.f/16.f) - + dmin * (sumy[0] * sc8[2] + sumy[1] * sc8[3] + sumy[2] * sc8[6] + sumy[3] * sc8[7]); + + q1 += nb01/2; + sc += nb01/2; + dh += nb01/2; + } + + y4 += 4 * QK_K; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_q4_K_f32")]] +kernel void kernel_mul_mv_q4_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q4_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q5_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q5_K * x = (device const block_q5_K *) ((device char *) src0 + offset0); + device const float * yy = (device const float *) ((device char *) src1 + offset1); + + float sumf[2]={0.f}; + + float yl[16], yh[16]; + + const uint16_t kmask1 = 0x3f3f; + const uint16_t kmask2 = 0x0f0f; + const uint16_t kmask3 = 0xc0c0; + + const int tid = tiisg/4; + const int ix = tiisg%4; + const int iq = tid/4; + const int ir = tid%4; + const int n = 8; + + const int l0 = n*ir; + const int q_offset = 32*iq + l0; + const int y_offset = 64*iq + l0; + + const uint8_t hm1 = 1u << (2*iq); + const uint8_t hm2 = hm1 << 1; + const uint8_t hm3 = hm1 << 4; + const uint8_t hm4 = hm2 << 4; + + uint16_t sc16[4]; + thread const uint8_t * sc8 = (thread const uint8_t *)sc16; + + device const float * y1 = yy + ix*QK_K + y_offset; + + for (int i = ix; i < nb; i += 4) { + device const uint8_t * q1 = x[i].qs + q_offset; + device const uint8_t * qh = x[i].qh + l0; + device const half * dh = &x[i].d; + device const uint16_t * a = (device const uint16_t *)x[i].scales + iq; + + device const float * y2 = y1 + 128; + float4 sumy = {0.f, 0.f, 0.f, 0.f}; + for (int l = 0; l < 8; ++l) { + yl[l+0] = y1[l+ 0]; sumy[0] += yl[l+0]; + yl[l+8] = y1[l+32]; sumy[1] += yl[l+8]; + yh[l+0] = y2[l+ 0]; sumy[2] += yh[l+0]; + yh[l+8] = y2[l+32]; sumy[3] += yh[l+8]; + } + + for (int row = 0; row < 2; ++row) { + device const uint8_t * q2 = q1 + 64; + + sc16[0] = a[0] & kmask1; + sc16[1] = a[2] & kmask1; + sc16[2] = ((a[4] >> 0) & kmask2) | ((a[0] & kmask3) >> 2); + sc16[3] = ((a[4] >> 4) & kmask2) | ((a[2] & kmask3) >> 2); + + float4 acc1 = {0.f}; + float4 acc2 = {0.f}; + for (int l = 0; l < n; ++l) { + uint8_t h = qh[l]; + acc1[0] += yl[l+0] * (q1[l] & 0x0F); + acc1[1] += yl[l+8] * (q1[l] & 0xF0); + acc1[2] += yh[l+0] * (q2[l] & 0x0F); + acc1[3] += yh[l+8] * (q2[l] & 0xF0); + acc2[0] += h & hm1 ? yl[l+0] : 0.f; + acc2[1] += h & hm2 ? yl[l+8] : 0.f; + acc2[2] += h & hm3 ? yh[l+0] : 0.f; + acc2[3] += h & hm4 ? yh[l+8] : 0.f; + } + const float dall = dh[0]; + const float dmin = dh[1]; + sumf[row] += dall * (sc8[0] * (acc1[0] + 16.f*acc2[0]) + + sc8[1] * (acc1[1]/16.f + 16.f*acc2[1]) + + sc8[4] * (acc1[2] + 16.f*acc2[2]) + + sc8[5] * (acc1[3]/16.f + 16.f*acc2[3])) - + dmin * (sumy[0] * sc8[2] + sumy[1] * sc8[3] + sumy[2] * sc8[6] + sumy[3] * sc8[7]); + + q1 += nb01; + qh += nb01; + dh += nb01/2; + a += nb01/2; + } + + y1 += 4 * QK_K; + } + + for (int row = 0; row < 2; ++row) { + const float tot = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = tot; + } + } +} + +[[host_name("kernel_mul_mv_q5_K_f32")]] +kernel void kernel_mul_mv_q5_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q5_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q6_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const uint8_t kmask1 = 0x03; + const uint8_t kmask2 = 0x0C; + const uint8_t kmask3 = 0x30; + const uint8_t kmask4 = 0xC0; + + const int nb = ne00/QK_K; + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int im = tgpig.z; + + const int row = 2 * r0 + sgitg; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q6_K * x = (device const block_q6_K *) ((device char *) src0 + offset0); + device const float * yy = (device const float *) ((device char *) src1 + offset1); + + float sumf = 0; + + const int tid = tiisg/2; + const int ix = tiisg%2; + const int ip = tid/8; // 0 or 1 + const int il = tid%8; + const int n = 4; + const int l0 = n*il; + const int is = 8*ip + l0/16; + + const int y_offset = 128*ip + l0; + const int q_offset_l = 64*ip + l0; + const int q_offset_h = 32*ip + l0; + + for (int i = ix; i < nb; i += 2) { + + device const uint8_t * q1 = x[i].ql + q_offset_l; + device const uint8_t * q2 = q1 + 32; + device const uint8_t * qh = x[i].qh + q_offset_h; + device const int8_t * sc = x[i].scales + is; + + device const float * y = yy + i * QK_K + y_offset; + + const float dall = x[i].d; + + float4 sums = {0.f, 0.f, 0.f, 0.f}; + for (int l = 0; l < n; ++l) { + sums[0] += y[l+ 0] * ((int8_t)((q1[l] & 0xF) | ((qh[l] & kmask1) << 4)) - 32); + sums[1] += y[l+32] * ((int8_t)((q2[l] & 0xF) | ((qh[l] & kmask2) << 2)) - 32); + sums[2] += y[l+64] * ((int8_t)((q1[l] >> 4) | ((qh[l] & kmask3) << 0)) - 32); + sums[3] += y[l+96] * ((int8_t)((q2[l] >> 4) | ((qh[l] & kmask4) >> 2)) - 32); + } + + sumf += dall * (sums[0] * sc[0] + sums[1] * sc[2] + sums[2] * sc[4] + sums[3] * sc[6]); + + } + + const float tot = simd_sum(sumf); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + row] = tot; + } +} + +[[host_name("kernel_mul_mv_q6_K_f32")]] +kernel void kernel_mul_mv_q6_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q6_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +// ======================= "True" 2-bit + +void kernel_mul_mv_iq2_xxs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq2_xxs * x = (device const block_iq2_xxs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint64_t * values = (threadgroup uint64_t *)shared_values; + threadgroup uint8_t * shared_signs = (threadgroup uint8_t *)(values + 256); + { + int nval = 4; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq2xxs_grid[pos + i]; + nval = 2; + pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) shared_signs[pos+i] = ksigns_iq2xs[pos+i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq2_xxs * xr = x + ibl; + device const uint16_t * q2 = xr->qs + 4 * ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + device const uint8_t * aux8 = (device const uint8_t *)q2; + const uint32_t aux32 = q2[2] | (q2[3] << 16); + const float d = db * (0.5f + (aux32 >> 28)); + + float sum = 0; + for (int l = 0; l < 4; ++l) { + const threadgroup uint8_t * grid = (const threadgroup uint8_t *)(values + aux8[l]); + const uint8_t signs = shared_signs[(aux32 >> 7*l) & 127]; + for (int j = 0; j < 8; ++j) { + sum += yl[8*l + j] * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + } + } + sumf[row] += d * sum; + + dh += nb01/2; + q2 += nb01/2; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.25f; + } + } +} + +[[host_name("kernel_mul_mv_iq2_xxs_f32")]] +kernel void kernel_mul_mv_iq2_xxs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq2_xxs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq2_xs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq2_xs * x = (device const block_iq2_xs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint64_t * values = (threadgroup uint64_t *)shared_values; + threadgroup uint8_t * shared_signs = (threadgroup uint8_t *)(values + 512); + { + int nval = 8; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq2xs_grid[pos + i]; + nval = 2; + pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) shared_signs[pos+i] = ksigns_iq2xs[pos+i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq2_xs * xr = x + ibl; + device const uint16_t * q2 = xr->qs + 4 * ib; + device const uint8_t * sc = xr->scales + ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const uint8_t ls1 = sc[0] & 0xf; + const uint8_t ls2 = sc[0] >> 4; + const float d1 = db * (0.5f + ls1); + const float d2 = db * (0.5f + ls2); + + float sum1 = 0, sum2 = 0; + for (int l = 0; l < 2; ++l) { + const threadgroup uint8_t * grid = (const threadgroup uint8_t *)(values + (q2[l] & 511)); + const uint8_t signs = shared_signs[(q2[l] >> 9)]; + for (int j = 0; j < 8; ++j) { + sum1 += yl[8*l + j] * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + } + } + for (int l = 2; l < 4; ++l) { + const threadgroup uint8_t * grid = (const threadgroup uint8_t *)(values + (q2[l] & 511)); + const uint8_t signs = shared_signs[(q2[l] >> 9)]; + for (int j = 0; j < 8; ++j) { + sum2 += yl[8*l + j] * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + } + } + sumf[row] += d1 * sum1 + d2 * sum2; + + dh += nb01/2; + q2 += nb01/2; + sc += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.25f; + } + } +} + +[[host_name("kernel_mul_mv_iq2_xs_f32")]] +kernel void kernel_mul_mv_iq2_xs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq2_xs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq3_xxs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq3_xxs * x = (device const block_iq3_xxs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint32_t * values = (threadgroup uint32_t *)shared_values; + threadgroup uint8_t * shared_signs = (threadgroup uint8_t *)(values + 256); + { + int nval = 4; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq3xxs_grid[pos + i]; + nval = 2; + pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) shared_signs[pos+i] = ksigns_iq2xs[pos+i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq3_xxs * xr = x + ibl; + device const uint8_t * q3 = xr->qs + 8 * ib; + device const uint16_t * gas = (device const uint16_t *)(xr->qs + QK_K/4) + 2 * ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const uint32_t aux32 = gas[0] | (gas[1] << 16); + const float d = db * (0.5f + (aux32 >> 28)); + + float2 sum = {0}; + for (int l = 0; l < 4; ++l) { + const threadgroup uint8_t * grid1 = (const threadgroup uint8_t *)(values + q3[2*l+0]); + const threadgroup uint8_t * grid2 = (const threadgroup uint8_t *)(values + q3[2*l+1]); + const uint8_t signs = shared_signs[(aux32 >> 7*l) & 127]; + for (int j = 0; j < 4; ++j) { + sum[0] += yl[8*l + j + 0] * grid1[j] * (signs & kmask_iq2xs[j+0] ? -1.f : 1.f); + sum[1] += yl[8*l + j + 4] * grid2[j] * (signs & kmask_iq2xs[j+4] ? -1.f : 1.f); + } + } + sumf[row] += d * (sum[0] + sum[1]); + + dh += nb01/2; + q3 += nb01; + gas += nb01/2; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.5f; + } + } +} + +[[host_name("kernel_mul_mv_iq3_xxs_f32")]] +kernel void kernel_mul_mv_iq3_xxs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq3_xxs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq3_s_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq3_s * x = (device const block_iq3_s *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint32_t * values = (threadgroup uint32_t *)shared_values; + { + int nval = 8; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq3s_grid[pos + i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq3_s * xr = x + ibl; + device const uint8_t * qs = xr->qs + 8 * ib; + device const uint8_t * qh = xr->qh + ib; + device const uint8_t * sc = xr->scales + (ib/2); + device const uint8_t * signs = xr->signs + 4 * ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const float d = db * (1 + 2*((sc[0] >> 4*(ib%2)) & 0xf)); + + float2 sum = {0}; + for (int l = 0; l < 4; ++l) { + const threadgroup uint32_t * table1 = qh[0] & kmask_iq2xs[2*l+0] ? values + 256 : values; + const threadgroup uint32_t * table2 = qh[0] & kmask_iq2xs[2*l+1] ? values + 256 : values; + const threadgroup uint8_t * grid1 = (const threadgroup uint8_t *)(table1 + qs[2*l+0]); + const threadgroup uint8_t * grid2 = (const threadgroup uint8_t *)(table2 + qs[2*l+1]); + for (int j = 0; j < 4; ++j) { + sum[0] += yl[8*l + j + 0] * grid1[j] * select(1, -1, signs[l] & kmask_iq2xs[j+0]); + sum[1] += yl[8*l + j + 4] * grid2[j] * select(1, -1, signs[l] & kmask_iq2xs[j+4]); + } + } + sumf[row] += d * (sum[0] + sum[1]); + + dh += nb01/2; + qs += nb01; + qh += nb01; + sc += nb01; + signs += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_iq3_s_f32")]] +kernel void kernel_mul_mv_iq3_s_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq3_s_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq2_s_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq2_s * x = (device const block_iq2_s *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + //threadgroup uint64_t * values = (threadgroup uint64_t *)shared_values; + //{ + // int nval = 32; + // int pos = (32*sgitg + tiisg)*nval; + // for (int i = 0; i < nval; ++i) values[pos + i] = iq2s_grid[pos + i]; + // threadgroup_barrier(mem_flags::mem_threadgroup); + //} + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq2_s * xr = x + ibl; + device const uint8_t * qs = xr->qs + 4 * ib; + device const uint8_t * qh = xr->qh + ib; + device const uint8_t * sc = xr->scales + ib; + device const uint8_t * signs = qs + QK_K/8; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const float d1 = db * (0.5f + (sc[0] & 0xf)); + const float d2 = db * (0.5f + (sc[0] >> 4)); + + float2 sum = {0}; + for (int l = 0; l < 2; ++l) { + //const threadgroup uint8_t * grid1 = (const threadgroup uint8_t *)(values + (qs[l+0] | ((qh[0] << (8-2*l)) & 0x300))); + //const threadgroup uint8_t * grid2 = (const threadgroup uint8_t *)(values + (qs[l+2] | ((qh[0] << (4-2*l)) & 0x300))); + constant uint8_t * grid1 = (constant uint8_t *)(iq2s_grid + (qs[l+0] | ((qh[0] << (8-2*l)) & 0x300))); + constant uint8_t * grid2 = (constant uint8_t *)(iq2s_grid + (qs[l+2] | ((qh[0] << (4-2*l)) & 0x300))); + for (int j = 0; j < 8; ++j) { + sum[0] += yl[8*l + j + 0] * grid1[j] * select(1, -1, signs[l+0] & kmask_iq2xs[j]); + sum[1] += yl[8*l + j + 16] * grid2[j] * select(1, -1, signs[l+2] & kmask_iq2xs[j]); + } + } + sumf[row] += d1 * sum[0] + d2 * sum[1]; + + dh += nb01/2; + qs += nb01; + qh += nb01; + sc += nb01; + signs += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.25f; + } + } +} + +[[host_name("kernel_mul_mv_iq2_s_f32")]] +kernel void kernel_mul_mv_iq2_s_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq2_s_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq1_s_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_value, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq1_s * x = (device const block_iq1_s *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + float sumy = 0; + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + sumy += yl[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq1_s * xr = x + ibl; + device const uint8_t * qs = xr->qs + 4 * ib; + device const uint16_t * qh = xr->qh + ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((qh[0] << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((qh[0] << 5) & 0x700))); + constant uint8_t * grid3 = (constant uint8_t *)(iq1s_grid_gpu + (qs[2] | ((qh[0] << 2) & 0x700))); + constant uint8_t * grid4 = (constant uint8_t *)(iq1s_grid_gpu + (qs[3] | ((qh[0] >> 1) & 0x700))); + + float sum = 0; + for (int j = 0; j < 4; ++j) { + sum += yl[j+ 0] * (grid1[j] & 0xf) + yl[j+ 4] * (grid1[j] >> 4) + + yl[j+ 8] * (grid2[j] & 0xf) + yl[j+12] * (grid2[j] >> 4) + + yl[j+16] * (grid3[j] & 0xf) + yl[j+20] * (grid3[j] >> 4) + + yl[j+24] * (grid4[j] & 0xf) + yl[j+28] * (grid4[j] >> 4); + } + sumf[row] += (float)dh[0] * (sum + sumy * (qh[0] & 0x8000 ? -1 - IQ1S_DELTA : -1 + IQ1S_DELTA)) * (2*((qh[0] >> 12) & 7) + 1); + + dh += nb01/2; + qs += nb01; + qh += nb01/2; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +void kernel_mul_mv_iq1_m_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_value, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq1_m * x = (device const block_iq1_m *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + iq1m_scale_t scale; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + float4 sumy = {0.f}; + for (int i = 0; i < 8; ++i) { + yl[i+ 0] = y4[i+ 0]; sumy[0] += yl[i+ 0]; + yl[i+ 8] = y4[i+ 8]; sumy[1] += yl[i+ 8]; + yl[i+16] = y4[i+16]; sumy[2] += yl[i+16]; + yl[i+24] = y4[i+24]; sumy[3] += yl[i+24]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq1_m * xr = x + ibl; + device const uint8_t * qs = xr->qs + 4 * ib; + device const uint8_t * qh = xr->qh + 2 * ib; + device const uint16_t * sc = (device const uint16_t *)xr->scales; + + for (int row = 0; row < N_DST; row++) { + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((qh[0] << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((qh[0] << 4) & 0x700))); + constant uint8_t * grid3 = (constant uint8_t *)(iq1s_grid_gpu + (qs[2] | ((qh[1] << 8) & 0x700))); + constant uint8_t * grid4 = (constant uint8_t *)(iq1s_grid_gpu + (qs[3] | ((qh[1] << 4) & 0x700))); + + float2 sum = {0.f}; + for (int j = 0; j < 4; ++j) { + sum[0] += yl[j+ 0] * (grid1[j] & 0xf) + yl[j+ 4] * (grid1[j] >> 4) + + yl[j+ 8] * (grid2[j] & 0xf) + yl[j+12] * (grid2[j] >> 4); + sum[1] += yl[j+16] * (grid3[j] & 0xf) + yl[j+20] * (grid3[j] >> 4) + + yl[j+24] * (grid4[j] & 0xf) + yl[j+28] * (grid4[j] >> 4); + } + const float delta1 = sumy[0] * (qh[0] & 0x08 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA) + sumy[1] * (qh[0] & 0x80 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + const float delta2 = sumy[2] * (qh[1] & 0x08 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA) + sumy[3] * (qh[1] & 0x80 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + + sumf[row] += (float)scale.f16 * ((sum[0] + delta1) * (2*((sc[ib/2] >> (6*(ib%2)+0)) & 7) + 1) + + (sum[1] + delta2) * (2*((sc[ib/2] >> (6*(ib%2)+3)) & 7) + 1)); + + sc += nb01/2; + qs += nb01; + qh += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +void kernel_mul_mv_iq4_nl_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values_i8, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + threadgroup float * shared_values = (threadgroup float *)shared_values_i8; + const int nb = ne00/QK4_NL; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + const int first_row = (r0 * 2 + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq4_nl * x = (device const block_iq4_nl *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + const int ix = tiisg/2; // 0...15 + const int it = tiisg%2; // 0 or 1 + + shared_values[tiisg] = kvalues_iq4nl_f[tiisg%16]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + float4 yl[4]; + float sumf[2]={0.f}, all_sum; + + device const float * yb = y + ix * QK4_NL + it * 8; + + uint32_t aux32[2]; + thread const uint8_t * q8 = (thread const uint8_t *)aux32; + + float4 qf1, qf2; + + for (int ib = ix; ib < nb; ib += 16) { + + device const float4 * y4 = (device const float4 *)yb; + yl[0] = y4[0]; yl[1] = y4[4]; yl[2] = y4[1]; yl[3] = y4[5]; + + for (int row = 0; row < 2 && first_row + row < ne01; ++row) { + + device const block_iq4_nl & xb = x[row*nb + ib]; + device const uint16_t * q4 = (device const uint16_t *)(xb.qs + 8*it); + + float4 acc1 = {0.f}, acc2 = {0.f}; + + aux32[0] = q4[0] | (q4[1] << 16); + aux32[1] = (aux32[0] >> 4) & 0x0f0f0f0f; + aux32[0] &= 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[0] * qf1; + acc2 += yl[1] * qf2; + + aux32[0] = q4[2] | (q4[3] << 16); + aux32[1] = (aux32[0] >> 4) & 0x0f0f0f0f; + aux32[0] &= 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[2] * qf1; + acc2 += yl[3] * qf2; + + acc1 += acc2; + + sumf[row] += (float)xb.d * (acc1[0] + acc1[1] + acc1[2] + acc1[3]); + + } + + yb += 16 * QK4_NL; + } + + for (int row = 0; row < 2 && first_row + row < ne01; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +void kernel_mul_mv_iq4_xs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values_i8, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + threadgroup float * shared_values = (threadgroup float *)shared_values_i8; + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + const int first_row = (r0 * 2 + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq4_xs * x = (device const block_iq4_xs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + const int ix = tiisg/16; // 0 or 1 + const int it = tiisg%16; // 0...15 + const int ib = it/2; + const int il = it%2; + + shared_values[tiisg] = kvalues_iq4nl_f[tiisg%16]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + float4 yl[4]; + float sumf[2]={0.f}, all_sum; + + device const float * yb = y + ix * QK_K + ib * 32 + il * 8; + + uint32_t aux32[2]; + thread const uint8_t * q8 = (thread const uint8_t *)aux32; + + float4 qf1, qf2; + + for (int ibl = ix; ibl < nb; ibl += 2) { + + device const float4 * y4 = (device const float4 *)yb; + yl[0] = y4[0]; yl[1] = y4[4]; yl[2] = y4[1]; yl[3] = y4[5]; + + for (int row = 0; row < 2; ++row) { + + device const block_iq4_xs & xb = x[row*nb + ibl]; + device const uint32_t * q4 = (device const uint32_t *)(xb.qs + 16*ib + 8*il); + + float4 acc1 = {0.f}, acc2 = {0.f}; + + aux32[0] = q4[0] & 0x0f0f0f0f; + aux32[1] = (q4[0] >> 4) & 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[0] * qf1; + acc2 += yl[1] * qf2; + + aux32[0] = q4[1] & 0x0f0f0f0f; + aux32[1] = (q4[1] >> 4) & 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[2] * qf1; + acc2 += yl[3] * qf2; + + acc1 += acc2; + + const int ls = (((xb.scales_l[ib/2] >> 4*(ib%2)) & 0xf) | (((xb.scales_h >> 2*ib) & 3) << 4)) - 32; + sumf[row] += (float)xb.d * ls * (acc1[0] + acc1[1] + acc1[2] + acc1[3]); + + } + + yb += 2 * QK_K; + } + + for (int row = 0; row < 2; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_iq1_s_f32")]] +kernel void kernel_mul_mv_iq1_s_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq1_s_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +[[host_name("kernel_mul_mv_iq1_m_f32")]] +kernel void kernel_mul_mv_iq1_m_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq1_m_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +[[host_name("kernel_mul_mv_iq4_nl_f32")]] +kernel void kernel_mul_mv_iq4_nl_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq4_nl_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +[[host_name("kernel_mul_mv_iq4_xs_f32")]] +kernel void kernel_mul_mv_iq4_xs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq4_xs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +template +kernel void kernel_get_rows_q( + device const void * src0, + device const void * src1, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg [[threads_per_threadgroup]]) { + const int64_t i10 = tgpig.x; + const int64_t i11 = tgpig.y; + + const int64_t r = ((const device int32_t *) ((const device char *) src1 + i11*nb11 + i10*nb10))[0]; + + const int64_t i02 = i11; + + for (int64_t ind = tiitg; ind < ne00/16; ind += tptg.x) { + float4x4 temp; + dequantize_func(((device const block_q *) ((const device char *) src0 + r*nb01 + i02*nb02)) + ind/nl, ind%nl, temp); + *(((device float4x4 *) ((device char *) dst + i11*nb2 + i10*nb1)) + ind) = temp; + } +} + +template +kernel void kernel_get_rows_f( + device const void * src0, + device const void * src1, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg [[threads_per_threadgroup]]) { + const int64_t i10 = tgpig.x; + const int64_t i11 = tgpig.y; + + const int64_t r = ((const device int32_t *) ((const device char *) src1 + i11*nb11 + i10*nb10))[0]; + + const int64_t i02 = i11; + + for (int ind = tiitg; ind < ne00; ind += tptg.x) { + (( device float *) (( device char *) dst + i11*nb2 + i10*nb1))[ind] = + ((const device T *) ((const device char *) src0 + i02*nb02 + r*nb01))[ind]; + } +} + +kernel void kernel_get_rows_i32( + device const void * src0, + device const void * src1, + device int32_t * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg [[threads_per_threadgroup]]) { + const int64_t i10 = tgpig.x; + const int64_t i11 = tgpig.y; + + const int64_t r = ((const device int32_t *) ((const device char *) src1 + i11*nb11 + i10*nb10))[0]; + + const int64_t i02 = i11; + + for (int ind = tiitg; ind < ne00; ind += tptg.x) { + (( device int32_t *) (( device char *) dst + i11*nb2 + i10*nb1))[ind] = + ((const device int32_t *) ((const device char *) src0 + i02*nb02 + r*nb01))[ind]; + } +} + + +#define BLOCK_SIZE_M 64 // 8 simdgroup matrices from matrix A +#define BLOCK_SIZE_N 32 // 4 simdgroup matrices from matrix B +#define BLOCK_SIZE_K 32 +#define THREAD_MAT_M 4 // each thread take 4 simdgroup matrices from matrix A +#define THREAD_MAT_N 2 // each thread take 2 simdgroup matrices from matrix B +#define THREAD_PER_BLOCK 128 +#define THREAD_PER_ROW 2 // 2 thread for each row in matrix A to load numbers +#define THREAD_PER_COL 4 // 4 thread for each row in matrix B to load numbers +#define SG_MAT_SIZE 64 // simdgroup matrix is of shape 8x8 +#define SG_MAT_ROW 8 + +// each block_q contains 16*nl weights +template +kernel void kernel_mul_mm(device const uchar * src0, + device const uchar * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne02, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup uchar * shared_memory [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + threadgroup T * sa = (threadgroup T *)(shared_memory); + threadgroup float * sb = (threadgroup float *)(shared_memory + 4096); + + const uint r0 = tgpig.y; + const uint r1 = tgpig.x; + const uint im = tgpig.z; + + // if this block is of 64x32 shape or smaller + short n_rows = (ne0 - r0*BLOCK_SIZE_M < BLOCK_SIZE_M) ? (ne0 - r0*BLOCK_SIZE_M) : BLOCK_SIZE_M; + short n_cols = (ne1 - r1*BLOCK_SIZE_N < BLOCK_SIZE_N) ? (ne1 - r1*BLOCK_SIZE_N) : BLOCK_SIZE_N; + + // a thread shouldn't load data outside of the matrix + short thread_row = ((short)tiitg/THREAD_PER_ROW) < n_rows ? ((short)tiitg/THREAD_PER_ROW) : n_rows - 1; + short thread_col = ((short)tiitg/THREAD_PER_COL) < n_cols ? ((short)tiitg/THREAD_PER_COL) : n_cols - 1; + + simdgroup_T8x8 ma[4]; + simdgroup_float8x8 mb[2]; + simdgroup_float8x8 mc[8]; + + for (short i = 0; i < 8; i++){ + mc[i] = make_filled_simdgroup_matrix(0.f); + } + + short il = (tiitg % THREAD_PER_ROW); + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + uint offset0 = (i12/r2)*nb02 + (i13/r3)*nb03; + ushort offset1 = il/nl; + + device const block_q * x = (device const block_q *)(src0 + (r0*BLOCK_SIZE_M + thread_row)*nb01 + offset0) + offset1; + device const float * y = (device const float *)(src1 + + nb13 * i13 + + nb12 * i12 + + nb11 * (r1 * BLOCK_SIZE_N + thread_col) + + nb10 * (BLOCK_SIZE_K / THREAD_PER_COL * (tiitg % THREAD_PER_COL))); + + for (int loop_k = 0; loop_k < ne00; loop_k += BLOCK_SIZE_K) { + // load data and store to threadgroup memory + T4x4 temp_a; + dequantize_func(x, il, temp_a); + threadgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(16) + for (short i = 0; i < 16; i++) { + *(sa + SG_MAT_SIZE * ((tiitg/THREAD_PER_ROW/8) \ + + (tiitg%THREAD_PER_ROW)*16 + (i/8)*8) \ + + (tiitg/THREAD_PER_ROW)%8 + (i&7)*8) = temp_a[i/4][i%4]; + } + + *(threadgroup float2x4 *)(sb + (tiitg % THREAD_PER_COL)*8*32 + 8*(tiitg/THREAD_PER_COL)) = *((device float2x4 *) y); + + il = (il + 2 < nl) ? il + 2 : il % 2; + x = (il < 2) ? x + (2+nl-1)/nl : x; + y += BLOCK_SIZE_K; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // load matrices from threadgroup memory and conduct outer products + threadgroup T * lsma = (sa + THREAD_MAT_M*SG_MAT_SIZE*(sgitg%2)); + threadgroup float * lsmb = (sb + THREAD_MAT_N*SG_MAT_SIZE*(sgitg/2)); + + #pragma unroll(4) + for (short ik = 0; ik < BLOCK_SIZE_K / 8; ik++) { + #pragma unroll(4) + for (short i = 0; i < 4; i++) { + simdgroup_load(ma[i], lsma + SG_MAT_SIZE * i); + } + simdgroup_barrier(mem_flags::mem_none); + #pragma unroll(2) + for (short i = 0; i < 2; i++) { + simdgroup_load(mb[i], lsmb + SG_MAT_SIZE * i); + } + + lsma += BLOCK_SIZE_M/SG_MAT_ROW * SG_MAT_SIZE; + lsmb += BLOCK_SIZE_N/SG_MAT_ROW * SG_MAT_SIZE; + + #pragma unroll(8) + for (short i = 0; i < 8; i++){ + simdgroup_multiply_accumulate(mc[i], mb[i/4], ma[i%4], mc[i]); + } + } + } + + if ((r0 + 1) * BLOCK_SIZE_M <= ne0 && (r1 + 1) * BLOCK_SIZE_N <= ne1) { + device float * C = dst + (BLOCK_SIZE_M * r0 + 32 * (sgitg & 1)) \ + + (BLOCK_SIZE_N * r1 + 16 * (sgitg >> 1)) * ne0 + im*ne1*ne0; + for (short i = 0; i < 8; i++) { + simdgroup_store(mc[i], C + 8 * (i%4) + 8 * ne0 * (i/4), ne0); + } + } else { + // block is smaller than 64x32, we should avoid writing data outside of the matrix + threadgroup_barrier(mem_flags::mem_threadgroup); + threadgroup float * temp_str = ((threadgroup float *) shared_memory) \ + + 32 * (sgitg&1) + (16 * (sgitg>>1))*BLOCK_SIZE_M; + for (short i = 0; i < 8; i++) { + simdgroup_store(mc[i], temp_str + 8*(i%4) + 8*BLOCK_SIZE_M*(i/4), BLOCK_SIZE_M); + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (sgitg == 0) { + for (int j = tiitg; j < n_cols; j += BLOCK_SIZE_N) { + device float * D = dst + (r0*BLOCK_SIZE_M) + (r1*BLOCK_SIZE_N + j)*ne0 + im*ne1*ne0; + device float4 * D4 = (device float4 *) D; + + threadgroup float * C = temp_str + (j*BLOCK_SIZE_M); + threadgroup float4 * C4 = (threadgroup float4 *) C; + + int i = 0; + for (; i < n_rows/4; i++) { + *(D4 + i) = *(C4 + i); + } + + i *= 4; + for (; i < n_rows; i++) { + *(D + i) = *(C + i); + } + } + } + } +} + +// same as kernel_mul_mm_impl, but src1 and dst are accessed via indices stored in rowids +template +void kernel_mul_mm_id_impl( + device const uchar * src0, + device const uchar * src1, + threadgroup ushort2 * rowids, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne02, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant int64_t & ne0, + int64_t ne1, + int64_t ne0ne1, + threadgroup uchar * shared_memory, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + threadgroup half * sa = (threadgroup half *)(shared_memory); + threadgroup float * sb = (threadgroup float *)(shared_memory + 4096); + + const uint r0 = tgpig.y; + const uint r1 = tgpig.x; + + if (r1 * BLOCK_SIZE_N >= ne1) return; + + // if this block is of 64x32 shape or smaller + short n_rows = (ne0 - r0 * BLOCK_SIZE_M < BLOCK_SIZE_M) ? (ne0 - r0 * BLOCK_SIZE_M) : BLOCK_SIZE_M; + short n_cols = (ne1 - r1 * BLOCK_SIZE_N < BLOCK_SIZE_N) ? (ne1 - r1 * BLOCK_SIZE_N) : BLOCK_SIZE_N; + + // a thread shouldn't load data outside of the matrix + short thread_row = ((short)tiitg/THREAD_PER_ROW) < n_rows ? ((short)tiitg/THREAD_PER_ROW) : n_rows - 1; + short thread_col = ((short)tiitg/THREAD_PER_COL) < n_cols ? ((short)tiitg/THREAD_PER_COL) : n_cols - 1; + + simdgroup_half8x8 ma[4]; + simdgroup_float8x8 mb[2]; + simdgroup_float8x8 c_res[8]; + for (int i = 0; i < 8; i++){ + c_res[i] = make_filled_simdgroup_matrix(0.f); + } + short il = (tiitg % THREAD_PER_ROW); + + ushort offset1 = il/nl; + + threadgroup const auto & id = rowids[r1 * BLOCK_SIZE_N + thread_col]; + + device const block_q * x = (device const block_q *)(src0 + (r0 * BLOCK_SIZE_M + thread_row) * nb01) + offset1; + device const float * y = (device const float *)(src1 + + nb12 * id[1] + + nb11 * (id[0] % ne11) + + nb10 * (BLOCK_SIZE_K / THREAD_PER_COL * (tiitg % THREAD_PER_COL))); + + for (int loop_k = 0; loop_k < ne00; loop_k += BLOCK_SIZE_K) { + // load data and store to threadgroup memory + half4x4 temp_a; + dequantize_func(x, il, temp_a); + threadgroup_barrier(mem_flags::mem_threadgroup); + + for (int i = 0; i < 16; i++) { + *(sa + SG_MAT_SIZE * ((tiitg / THREAD_PER_ROW / 8) \ + + (tiitg % THREAD_PER_ROW) * 16 + (i / 8) * 8) \ + + (tiitg / THREAD_PER_ROW) % 8 + (i & 7) * 8) = temp_a[i/4][i%4]; + } + + *(threadgroup float2x4 *)(sb + (tiitg % THREAD_PER_COL) * 8 * 32 + 8 * (tiitg / THREAD_PER_COL)) = *((device float2x4 *)y); + + il = (il + 2 < nl) ? il + 2 : il % 2; + x = (il < 2) ? x + (2+nl-1)/nl : x; + y += BLOCK_SIZE_K; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // load matrices from threadgroup memory and conduct outer products + threadgroup half * lsma = (sa + THREAD_MAT_M * SG_MAT_SIZE * (sgitg % 2)); + threadgroup float * lsmb = (sb + THREAD_MAT_N * SG_MAT_SIZE * (sgitg / 2)); + + for (int ik = 0; ik < BLOCK_SIZE_K / 8; ik++) { + for (int i = 0; i < 4; i++) { + simdgroup_load(ma[i], lsma + SG_MAT_SIZE * i); + } + simdgroup_barrier(mem_flags::mem_none); + for (int i = 0; i < 2; i++) { + simdgroup_load(mb[i], lsmb + SG_MAT_SIZE * i); + } + + lsma += BLOCK_SIZE_M / SG_MAT_ROW * SG_MAT_SIZE; + lsmb += BLOCK_SIZE_N / SG_MAT_ROW * SG_MAT_SIZE; + + for (int i = 0; i < 8; i++){ + simdgroup_multiply_accumulate(c_res[i], mb[i/4], ma[i%4], c_res[i]); + } + } + } + + { + threadgroup_barrier(mem_flags::mem_threadgroup); + threadgroup float * temp_str = ((threadgroup float *)shared_memory) \ + + 32 * (sgitg&1) + (16 * (sgitg>>1)) * BLOCK_SIZE_M; + for (int i = 0; i < 8; i++) { + simdgroup_store(c_res[i], temp_str + 8 * (i%4) + 8 * BLOCK_SIZE_M * (i/4), BLOCK_SIZE_M); + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + device float * C = dst + (BLOCK_SIZE_M * r0); + if (sgitg == 0) { + for (int j = tiitg; j < n_cols; j += BLOCK_SIZE_N) { + threadgroup const auto & jid = rowids[r1 * BLOCK_SIZE_N + j]; + int joff = jid[0] * ne0 + jid[1] * ne0ne1; + for (int i = 0; i < n_rows; i++) { + *(C + i + joff) = *(temp_str + i + j * BLOCK_SIZE_M); + } + } + } + } +} + +template +kernel void kernel_mul_mm_id( + device const uchar * src0s, + device const uchar * src1, + device float * dst, + device const uchar * ids, + constant int64_t & nei0, + constant int64_t & nei1, + constant uint64_t & nbi1, + constant int64_t & ne00, + constant int64_t & ne02, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint64_t & nb1, + threadgroup uchar * shared_memory [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + const int32_t i02 = tgpig.z; + tgpig.z = 0; + + device const uchar * src0 = src0s + i02*nb02; + + // row indices + threadgroup ushort2 * rowids = (threadgroup ushort2 *)(shared_memory + 8192); + + // TODO: parallelize this loop + int64_t _ne1 = 0; + for (ushort ii1 = 0; ii1 < nei1; ii1++) { + for (ushort ii0 = 0; ii0 < nei0; ii0++) { + int32_t id = ((device int32_t *) (ids + ii1*nbi1))[ii0]; + if (id == i02) { + //if (tiitg == 0) { + rowids[_ne1] = ushort2(ii0, ii1); + //} + _ne1++; + } + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + kernel_mul_mm_id_impl( + src0, + src1, + rowids, + dst, + ne00, + ne02, + nb01, + nb02, + ne11, + ne12, + nb10, + nb11, + nb12, + ne0, + _ne1, + ne0*ne1, + shared_memory, + tgpig, + tiitg, + sgitg); +} + +#define QK_NL 16 + +// +// get rows +// + +typedef decltype(kernel_get_rows_f) get_rows_f_t; + +template [[host_name("kernel_get_rows_f32")]] kernel get_rows_f_t kernel_get_rows_f; +template [[host_name("kernel_get_rows_f16")]] kernel get_rows_f_t kernel_get_rows_f; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_get_rows_bf16")]] kernel get_rows_f_t kernel_get_rows_f; +#endif + +typedef decltype(kernel_get_rows_q) get_rows_q_t; + +template [[host_name("kernel_get_rows_q4_0")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q4_1")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q5_0")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q5_1")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q8_0")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q2_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q3_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q4_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q5_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q6_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq2_xxs")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq2_xs")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq3_xxs")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq3_s")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq2_s")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq1_s")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq1_m")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq4_nl")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq4_xs")]] kernel get_rows_q_t kernel_get_rows_q; + +// +// matrix-matrix multiplication +// + +typedef decltype(kernel_mul_mm) mat_mm_t; + +template [[host_name("kernel_mul_mm_f32_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_f16_f32")]] kernel mat_mm_t kernel_mul_mm; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mm_bf16_f32")]] kernel mat_mm_t kernel_mul_mm; +#endif +template [[host_name("kernel_mul_mm_q4_0_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q4_1_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q5_0_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q5_1_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q8_0_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q2_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q3_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q4_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q5_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q6_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq2_xxs_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq2_xs_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq3_xxs_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq3_s_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq2_s_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq1_s_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq1_m_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq4_nl_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq4_xs_f32")]] kernel mat_mm_t kernel_mul_mm; + +// +// indirect matrix-matrix multiplication +// + +typedef decltype(kernel_mul_mm_id) mat_mm_id_t; + +template [[host_name("kernel_mul_mm_id_f32_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_f16_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mm_id_bf16_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +#endif +template [[host_name("kernel_mul_mm_id_q4_0_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q4_1_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q5_0_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q5_1_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q8_0_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q2_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q3_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q4_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q5_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q6_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq2_xxs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq2_xs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq3_xxs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq3_s_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq2_s_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq1_s_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq1_m_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq4_nl_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq4_xs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; + +// +// matrix-vector multiplication +// + +typedef void (kernel_mul_mv_impl_t)( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + uint3 tgpig, + uint tiisg); + +typedef void (kernel_mul_mv2_impl_t)( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg); + +template +void mmv_fn( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + int64_t ne13, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint64_t nb1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiitg, + uint tiisg, + uint sgitg) { + impl_fn(src0,src1,dst,ne00,ne01,ne02,nb00,nb01,nb02,nb03,ne10,ne11,ne12,nb10,nb11,nb12,nb13,ne0,ne1,r2,r3,tgpig,tiisg); +} + +template +void mmv_fn( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + int64_t ne13, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint64_t nb1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiitg, + uint tiisg, + uint sgitg) { + impl_fn(src0,(const device float *)src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,shared_values,tgpig,tiisg,sgitg); +} + +typedef decltype(mmv_fn>) mul_mv_impl_fn_t; + +template +kernel void kernel_mul_mv_id( + device const char * src0s, + device const char * src1, + device float * dst, + device const char * ids, + constant int64_t & nei0, + constant int64_t & nei1, + constant uint64_t & nbi1, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint64_t & nb1, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + const int iid1 = tgpig.z/nei0; + const int idx = tgpig.z%nei0; + + tgpig.z = 0; + + const int32_t i02 = ((device const int32_t *) (ids + iid1*nbi1))[idx]; + + const int64_t i11 = idx % ne11; + const int64_t i12 = iid1; + + const int64_t i1 = idx; + const int64_t i2 = i12; + + device const char * src0_cur = src0s + i02*nb02; + device const char * src1_cur = src1 + i11*nb11 + i12*nb12; + device float * dst_cur = dst + i1*ne0 + i2*ne1*ne0; + + impl_fn( + /* src0 */ src0_cur, + /* src1 */ src1_cur, + /* dst */ dst_cur, + /* ne00 */ ne00, + /* ne01 */ ne01, + /* ne02 */ 1, // ne02, + /* nb00 */ nb00, + /* nb01 */ nb01, + /* nb02 */ nb02, + /* nb03 */ nb02, // ne02 == 1 + /* ne10 */ ne10, + /* ne11 */ 1, // ne11, + /* ne12 */ 1, // ne12, + /* ne13 */ 1, // ne13, + /* nb10 */ nb10, + /* nb11 */ nb11, + /* nb12 */ nb12, + /* ne13 */ nb12, // ne12 == 1 + /* ne0 */ ne0, + /* ne1 */ 1, // ne1, + /* nb1 */ nb1, + /* r2 */ 1, + /* r3 */ 1, + shared_values, + tgpig, + tiitg, + tiisg, + sgitg); +} + +typedef decltype(kernel_mul_mv_id>>) kernel_mul_mv_id_t; + +template [[host_name("kernel_mul_mv_id_f32_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_f16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_id_bf16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +#endif +template [[host_name("kernel_mul_mv_id_q8_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q4_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q4_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q2_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q3_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q4_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q5_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q6_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq1_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq1_m_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq2_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq2_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq3_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq3_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq2_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq4_nl_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq4_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; + +kernel void kernel_pool_2d_max_f32( + device const float * src0, + device float * dst, + constant int32_t & k0, + constant int32_t & k1, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int64_t & IH, + constant int64_t & IW, + constant int64_t & OH, + constant int64_t & OW, + constant int64_t & parallel_elements, + uint gid[[thread_position_in_grid]]) { + + if (gid >= parallel_elements) { + return; + } + + const int idx = gid; + const int I_HW = IH * IW; + const int O_HW = OH * OW; + const int nc = idx / O_HW; + const int cur_oh = idx % O_HW / OW; + const int cur_ow = idx % O_HW % OW; + + device const float * i_ptr = src0 + nc * I_HW; + device float * o_ptr = dst + nc * O_HW; + + const int start_h = cur_oh * s1 - p1; + const int bh = MAX(0, start_h); + const int eh = MIN(IH, start_h + k1); + const int start_w = cur_ow * s0 - p0; + const int bw = MAX(0, start_w); + const int ew = MIN(IW, start_w + k0); + + float res = -INFINITY; + + for (int i = bh; i < eh; i += 1) { + for (int j = bw; j < ew; j += 1) { + res = MAX(res, i_ptr[i * IW + j]); + } + } + + o_ptr[cur_oh * OW + cur_ow] = res; +} + +kernel void kernel_pool_2d_avg_f32( + device const float * src0, + device float * dst, + constant int32_t & k0, + constant int32_t & k1, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int64_t & IH, + constant int64_t & IW, + constant int64_t & OH, + constant int64_t & OW, + constant int64_t & parallel_elements, + uint gid[[thread_position_in_grid]]) { + + if (gid >= parallel_elements) { + return; + } + + const int idx = gid; + const int I_HW = IH * IW; + const int O_HW = OH * OW; + const int nc = idx / O_HW; + const int cur_oh = idx % O_HW / OW; + const int cur_ow = idx % O_HW % OW; + + device const float * i_ptr = src0 + nc * I_HW; + device float * o_ptr = dst + nc * O_HW; + + const int start_h = cur_oh * s1 - p1; + const int bh = MAX(0, start_h); + const int eh = MIN(IH, start_h + k1); + const int start_w = cur_ow * s0 - p0; + const int bw = MAX(0, start_w); + const int ew = MIN(IW, start_w + k0); + // const float scale = 1. / ((eh - bh) * (ew - bw)); + const float scale = 1. / (k0 * k1); + + float res = 0; + + for (int i = bh; i < eh; i += 1) { + for (int j = bw; j < ew; j += 1) { + float cur = i_ptr[i * IW + j]; + res += cur * scale; + } + } + + o_ptr[cur_oh * OW + cur_ow] = res; +} diff --git a/enjoy/lib/whisper.cpp/arm64/darwin/main b/enjoy/lib/whisper.cpp/arm64/darwin/main new file mode 100755 index 0000000000000000000000000000000000000000..eba180d04caa3053366bedbf490d8416a04e721f GIT binary patch literal 1779208 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

`sC?S2RIMrjbk^H$Q=H_`#f37|*(IX5UiZN)n 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

SqGy$9m&`&GlwE>kaG7Uo5wK*BQHP#(* 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

+<&lQ{odrMNdF|F4_xGFp4)OZW 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%0Ay-8G-R^yN*o zxFAi%hq!@of|kS3H`>JdiitkvVHc^$WAF(mIf*JYRWFo*=?WD(WfOcgHoORxm-z|p zP<%NA31VbtbUS6QK$0iaAoP=-YLGmk8v%_sw-T*D6r`u5LO+l=NiXpejl0lG==RvJ zGId?a4v*riTo9>I35a&u;wxS4m6~^eXpx}VqVa0EKy*TbXg};PD$6ilUxmSW+8V& zvGX#Oo*FB=KzX!3twZqv)AAhtjj}MU0ep%~@<4S%d{u9`D~RlEht#NIWUn2sFtTlu zs~rrO%nB@5XF5-4b=EkE*PeIvu9FSn8>WGq^m*0-ANOov!kwdvRra&$z^c+a+q?c%tmt0YJDXvlB zMN445C5{_(BuaOkC~XK7+ja?|f=(z8$)AzgN%BD28FJ4k+9WJ}+!>J?*$2u%^36qx zhNG9N(@Rm)F!=0Eqac)`^%O`Z7?@T-+bb2RxPf+S8Z)8Hg)%eWEb&qbjv#`E{HRLR zsO+OwH5$I3a8VFniGyh(;7cUEK$mZt^dwZ8R`LWnX_aor;>(@rhyWlFUm76wNd;*_ zsf#bM`G9DF=!7wlpWrLskZV9Z3*;x!2{m`&FOa~dNh|oVK$KnZ>96(e(0+p-MawIO zyu6bSInv7=!%d*d7C#)57X?|5Y>l$CJkiOe90xyzkdFO(Ce&Bccn^$)Nf@mhKaFO% zMs+~({em5c*Q6Jy{G~^Ef#fSXX2r=Rxv~)*SVgV8+6K7;*`FH3QvrF#%cG!^CebJf zc|xUOOC@A}Al))8wU7s5XIf(O0ig>3p@P;(v{)d{f)+#iP?obds!-{vP{|XDV>%&T zO-EB>D0wKc4`bXD5w6pfTvE%ayFyVw!ShIAJ;;Ugt)aFamWMNnkn&7)498-AX92^a5R-^@9#I z`IB1m0tP8NKNMdNAIZWbAzbjuC*&c32s$Y$Kg*dl4cG!HBWSM;$2U#hw7Ayn80 zDv)Wy+Aazp+o0t>bP3KUNT>KW*gOsPQRF5IimH2GVf03lB(N9e2C zkXPsi$&DK094wbEn^F_1&rphIgkxkM{DcZCJ#2!XQ1c)@!9y;W_LpcJnNBD-qNQ$r zLb1&UgaXSGnj^m?5b{8)ith@Mq^?Hys%m6sEBTd))Z?jX6zvxyIS@x}H4+hY8?1yQ z@#Ro^l_6S=MKdz3=9-VWQ0kIPY<{5C#rFeILi)o4I-&9r%@+KGW?3)z>aQyxko9e- zkU=Zc@FNFyZ-fdup~?w8$7C0nOq7`A@)n&+s76T_fl%R6Cxcce%$G*$h!D~=AXFc% zmymJrU4Y$Uqa4&*C6kc6MYB(Qs<6L6Swt;pg`Sad@D*DA5)xFCiZ3+;E@_!&U{oOZ zF*&jlk&LAugv~-PSQ;mhQJSKawU&y!8`V~5?Tv1%XlEwB!Dl47EW=JI+fVT2Sbkuc zU!mF{JB5|L!b(r!#82oj;>%oo6hlAIX7Cl=e1Y@@<_9`q(H=-&1N>fK2j0?2|kUMVP_P$ z*9R0k4bffCtBew4@|bfvwvIK zS>%*xnOhEoeH0|N=!6=DJkX@&iB^gB9_SoJ+qZVH!HKa2mGer;QV73dSF!9#L}a1( zj+Zc^T3I?9E|QjG+S*dd6O~X3!3m5&aN=e0W(x$NpHT6WrBNv)wFr`hJW$%n z-Y6>B2fdjH+a!++BfN~{Rz3qO)o?Gl%p#^Mu(_W3CudGbRJZHV~QQiH->3$sh^C+O&4*6>>Yan~*0uY-R6F9zvdI zAlWB*q5<(0KiL?~kq=3#5cX;9>_1>!vDgo>YRj5e`x@THyX zQ<&@0vr@9(oJJL1Q7qOVQc85V*FMQpn5ZUH*;nRC9i>pO)GBWkyOKJAO}h<#8f@4l z!wtVlun{)}!YnM4;zr(89UBRT1MII0DZ&hP9w!uKI-%Tz{Q8WfF22-4etkf(LmsI3 zro+ZQ!*L`MPOb?ZEjgB+t;0bjGAe$^1D%%il}^|vd7>50^1x&pJo~q$okdQGmbv9X z*hfKPi%zIf$OBDUo@kY5?}5%yw0&zA8=M$hP&u!ZEQRnZb`{H>L_`*f?|2C#s+Fa) z;UZ}{rmZcNJW&ay5S+jW1Seh=Z?-@X`Uw?3SsIl>G7j1~U5g-D$OEOF?2V$5ebAeU zuubyFFv817ZsjwuQVsW#%PeBL0-MW9Y}*?{O}fDkvE&kmbD=5G@u)^p)WfPmzeI;X zhDjb6I_8QYHDfYhYy*)=p6G}mo(z&OtW9f|ULm(*y9s%s!&dg*3SpntPTnO?bh4_Xwh4P#i)|DuWQmpoJr%~nN;A=wrIg}zohO@zeHtPb zE!|C!<7%cEDww%DrZS(c~aJR(^iQTL43szULekcPN?|F#%L282VdIBK83k1Ju4;q z&1qEO6~$r=BBex!d+n1vg^6lHm3?KN)KLocO0Du%u`8()U{~E2sO~PL`vx1g8`AxS zjoTL0?Tn-#GjHs|MRi{zP;B!dg#sgBzTz`T!bAwfOfM02q8g~&EmvpiI+DOw~uL)zP4l#qs2R7R*>mzg+`sRi<7+Dg{fPF7a5SajGZ zs6AT6{BU3=HnC>di@>%llg;^NRyO!g61wH?@?d$WJY2rKoGOc+@t#_5w>R$;oYijW zjCYQ9COgxe_ja-8+$*KWm;=ay(-kG?j0r141S(V<5tAHC()kV2Wy9Fhik8_P1JtGYp7ZDu#Sd`t;O)hYPy&8^g!`o@v4ngr8U)HRSh<}tgM5L zLyg0Yhgn^DvtV`I&icBC6_%AXudv>7kX1HX-j>$ck#eG(D}SNPdy1Y8>+PwYAMVL| zM|*eozOQ%AE3etYNyy8GPShK2!`fhdM*!Lq}PswQhs8I>`U#FxoxXJ;aJV+D)5Tntqg3 zee10gw=SfWeFtk>EBocQz5llS_MNwXt4`yFa}9u{);kDEEx+dB>iq zJwM_#-yH8@-4Bg#-B|ngjNi-p|Az4g#vkMucy!|^s2yw^EDsJI>~cIDJb38fVILD8 z=BOw*E{5*84WSaqk2#`s#VGt3F z?E&nWxQ=Inu!NDv4@pQGiOEz*Xv+wLU?kzk)a?ZdF3>au4&s8F(}D{enSxt*j*n^&9UBxxtFHfhtI$$OG`?EC$#wYOeKjFbM?Ph~Im+UxmSYyH+*zt>vZ zYPC8rPnN7Io5og-xzb^~j`?EfvUWMLW{tZ$gqc%ex7r={s9l4ZqjqT7?5V=+F*_^{ ztHXg=q;hJU7VXZ_3@eJ?hEx@>$`>d))+b!TEu*-#(e9LY|@6L8WX)iZ;o$|t0puPx`}ekN#}%rLYNdM$0sKz*CubuGqh5k zqqCT$*6GdZnrnmCgc<#eX{L8(d}eay=8SH(VQzeGW^Q@z=A3GtW^Tv4cYbPKSZG)X zFL)PcF?+R`y^bZ{QgdoPwV1LjJ6E<=?5oD>ebQdQNE|o{ss|u>Zst9KMv}!@M zq*_*OvRSWJ8`MV3`3ALF-J-Usooc^2td3&tPpW4y{}kJQ>oUN zG!~6rBs?yrh#!^$MrPNXCEcKKI zOT(qn(uLBc(&f_C(oL)_YJ=WjFc`7MG+>o!G1v@FgWnJ|NQQC4q+!}HW0*6fu=dy@#prmD88zN!i9maVF*s=Mk`m9xrS z<*D*k`Kv-zQq@4!RMl+NeAQA_s%oWbwd#7+deuhNX4S1KwNYy{7%PlbMx(LXSZfrG z4MvmEY-}-Fj8>z~*kyDYT}HRjWAqyR#$IF47&c1Ah%ss$H%=O-jMK&$bmOs>ZadtCwwXM3l`c$>E+EeYV_Er0< zgVo_`sd}I~T0K~Ot$MC{u{u?~QGKhrqNcjWRAZ^J)^yd_YaBJ68edIsOuT$3O|_l1)>>O_cdfJ5UF)g!*7|FEYx`=Y+QHh{+J)N1 z+EndI?RxE2?XB9dx~4j7U00pG&Qa&8^VIq3f_0I)Xx(((LfvxRb+)S0nr_63 z-XNMpv)CfqM5pKnr6Ms}Wk#G6Q&{D1h@0X~aa+{ZSJYS4*VdcrJL|3W_IgjfufDfF zSRcmfAE}?NpRZr8U#;J)S2gGx3=I_x#s(34g1Mok!Pekx@HY4xq=t!xnTENBg@#na zTEh+O7TXP4d~2t=v9{6FXl=ALb~V}?U5%bbUt@1$q;a}&p>e5kwQ;?16X)4IdY(Fw$M`|#e%`Ik|*=cs0CG)s>5Z=16n2c^Z4za`S5QM)PK~(4ub9w-~UaHME#pT3T!^&K7Tr zzeQ>pm-o0-%Ua8gmYXfxE!vKXj_M9mhrPqq;py;o^mYV0!X1&0rH<8(^^Psjc`A#> zqO+7*DlJA!wWY>VXQ{U|S(+_2OSk2e#c6R{JQlCTZ|Sv2mI2G4Wx_ILxn`NSELu{Q zHOso?hDF<1(OK15-D&EybhXs=Thfpr^;%?p4e=)S-Y*LtWK-j>alvQ zL2Jk=SqH3x)(Pu1>#TL&x@b*V*R1Q-Ti7$zHm%KItFTqsjJ9f9txdFlv!{)TPZ62G~=Ck>2L0i}+*&?>6ZPGSno3_o^7Hmtllx^9zid}cpcGI?PQ*~*( zO1rAMj9oQdbzSvcja|)M9bKJWwytjM$j&ZTm#53ywRQOc%)Y7TVQ!0lBw1Li1>Zo)W9d(X+N28370xQq5Y^5aXRT9onw(8ev$Mr% zaax@=XP49NbU2+(m(%U^IK57v)9>tc2AyH2+PUmpb*?!#o!d^8 zOXsR|8C`X*dRL>X(`9p=ayeaYm&fIG`CTEGtylEcdmFrs zUX!=UYxXvKEnb_q%iHa>drx^CUZ>XuF398cdVOBMx7Qo=hP{$E>YemXd#`zCytCdp z?}9hwz3#o?-SlpGZ+dTeH9oCR=PUJ<`;5LCU%juzXY+OYPWhZZx6kAA`g}gWug@0( zS0(u-eY3uK-=Z(&Tk);?ZuwMxwO{Ku_$&NXextwIU+XvdEq<%t=I`>`{SLp=@AA9- z9>3S`^ZWh1{-8hXm;4cb)IZ^$_Rsnk{7e3nf7!p{U-fVLHNE;?V{cur*lX%->TT|| z^>+8#d!4-*Vq(pDL&c>Vl=g%Ahe=A8ZIV1)GDmpgrgWcjyiJgHkXO z91Knc=YosDRB%1G6}%O!2vvt_LmeSYs4L_Nc|$&Mk<+1t&~j)qR1vNW8$sdLh3msj z;pT8hxHD`EcZW}fond#_6ZVGv;ofjxI24w`Q{n0GYAG}7 z+LX4Wo02+G8Zk!1NK?cdX^wP6Y?1EBsfaV;j(8&8h%eF`>5E8_fyj7dGBO>Ri!4Q! zBP)^B$XaA0vK85mR1ee+mBM8l+cvSrda>7MjYN{pkJnVg$Ufv>m$&SHDAYN~e1GG(1|PI;z!r-D=A zsp!YHT$(w*BsY8*ZkLduLZ9~z_UzWTex=p+6H(R zHMkeUjB!SsX_zt3w9Hs$Y%|Uo_l$o=nu#)=W@ct?CN;A*a|7JX_KbE`H(N1VHCsJv znzhVYXS-(YvyNHUtY@}&HaHueot|BuU7g*W73S1)`Z>d#aZa3Tm^06{%-QCgbM84W zxT8t%M{{$jxwW|);F7lIwDT47)$=v;wezNV%Y4_oecm(go9~^E&JWH{&o9g`%`eZd z&Tr1E7BmaGh0=xc1>-`^Lfu0BLgPZyLi0k$f^EUE;9PJocow`1{)Nzjv@o@BZDDaC zwXm|VzOb>dwQy@eyI8SUwOG4oTC^^9E!r0yi>^h_qHi&>7+suRTv}XSytSxW(k$tg z%9o5wHA_uP9ZRQ{oJ;N{&ypA1nt!QpDYz6`l9r~Ht}QJtEiI*%R+iS6ZY>EZZAzaq zq{>qjsj8GQRh_C$)u&9U=2T0{lCq|3sjiegncvpH? z!Yk6s^vc4@^2+MU=89%jw_3VdzFN6zT&-EHTNPL9R~uKGRy$TZS8c1^tEX0-tL|0L zs(01D8d{ZBBddd}6RT6J^Q()isnzSN>#JL<+Uv&art8-0UDxf`9oIeAeb`$u zU%H;UzMST1jo@k<*395+ZEMao_nLRjzc#)$xi+&lx0V98dt>e9+V+}uy>z`|y=uLB zy>`8By=&dR?p*h*`__BcgX`h->Gk>b#r5U&)pg>D4L8bf)ZS>gVFq_>yWzayz2Uzh zflr>iF>_kaR8v`5Bjp+^DX6a`6 zX62@Fvu3ktvw5>~)3)i{bZ>e#y_^0`X>)LMVsmP9dh^=m?B?QTYI9{%yH&AOy;ZkW zzh&C8Zgp*)+H!4qw!B-ut-h_$*0rtqt<=`?*6P;!*2dP>mT*&jQ-4$8*jsKoZ@O=K zZ~AYJ-<-TTb93%y3S9gR@bTL>wYREn)!wSVWx8d#<+$a!)q5*=D{?D(YyQ^qEn!=| zt=~3mi`xy`#Oph^-P_*n@$Jd&neDml)b`r;jqRIx{C}13YVyB`5M>epMFzMgY(gSH zlHqJAV7?5{tMWq*2(gMR30zdARO_mZJc(cnlL>aI?P>>;3r<5aumqWa3KHgg>0pzl zSwr$>k`SJfWrTi62}6(-OlYPw*EF-5c}+^QqFL8$XcVcTfyoW4wY88PnzUvnKkU-l zAwh6Ke&B;7F{~ZePHLyMGmsuEY1f!sQKuuxwNclhv+25ZPMurVr<;J3aXu|)Bq?Jx zJ`+rm#ug@P?9$trT-&4f>4W+(oQ`M>~^ODde7&kPFlp>y3?&fObM2 z&<%Nj+t_EE0PjB!nW(l}UtIyos90?QXYZ&Uuij=dQe90cWcYU;}CI_kV>X)4K5tHoMy-zIS0T&C(0 zJz^NV_nf!{ew#~IE9;H*^^mc4*4yfx_3rw<`ic4}@Y(`+Y|dR<8yt+Q=CW5^V<|KX z#>Se)dVCJHqp=fQb$6q)(cReBIMF!OI1jn3)}%L8n5s;o$zrma9HxkA+@xyKfMf1x z@`E?lnk&pzW{cTsc7PM!HmjO7&E?IhW&^m}a6yS}9n)7dL1U3Ewe@!RA-N5uWw)u0 z6>zv4;BeJx8E&dPf@KMuts>zycGh$@ zLdt7{7R1@sG*zcG zr^-)tDE2!;bKHSS4vBlANEC z2Bbwv0L88v&o zs)t^zbILZ=4GP%}4cWxh)YLpA@ak#pw0^o`x@uYkZET%(Opi~`O{=bHu9aVFhW<>L z(au!NRDq_o&Nx87s%AB_9kbGG!<=uf7gXpCCZR8djJ|T-2>O$BY@PGA`R;k=ynDWH zegbm)c}VWH3l$4h3zh{dsLb94)uLvxe6eG33zB>_Wcm7~ilwS0amm7@`r}K>ORAIx zv|vYSCAFRsmb;e2%c>R4O8H9DO2^8r6=BuB>RO!#U8IGizX~)_%bI1)3O(Kp&_5mP z5@;KPOx18o=H?C6hGwIDqhn)sV`D?utle}%17HT#;D+QsLlw-(`@cpg74`}b2<1X0 z^nVS)TZG4<{W~Fa3#Xt5Al+XtG{Hl{Ww!TE3A4hyun7I%9|(UW+!Ed^{7>N{!e0q5 z2%i-GPIy_^t9qlVQT2%GEvm<%8#oEAz@X~Ct3IH5LG>xs->AN+`o2n~E`c7<08QX) z)HUil^@Hj+K{L>y?qqwvOFg0fZCNj{qW+Njw)&&$qw{wMWM)cBHSiMhm4;x37l zTq&6@`CQ41C4xo`-QixQJ*?K$Y8o^a&51N+;L{{Dmo%3($MMSPiUXQ{(n{b5$(scf1~|2c7DCipsUcmMrYPNsyl|=zY}@` zzb*`o!G!L&bu+q@Zd>;u-6wQk(bepE)1G5{I`(w!aqSu2^Y%S|xaUvzd}Yr|do=n7 z^sm>yQU9?15&c#Dy#9}%J$Rq~&-8z#|F&LJ+FW`BI)nbw%cUPLeWCP|rC%yF80rm2 z4IPFqgV!)@c)Q`c;X{Ux8vfOw-}{=quiblWZ|7eB-kW>Bu=g8#@wxYXP52bKbKkT3 zet+Kw_I+vJKkRGVZ`(h({}1+mZ2xEXmy~JC_LS+%>dIQmyk&i5b7h-l+hw=QK3(>e zvX{y#9;kny&X@K{@1^@(zuumuh9#jZM;dQbm_)S8y@UYM-vgyz=mR_K!Wn3XdxWP1zwit!1)deggy(=G6T-CcJJ1sUuJ8_Mic`Xh@J{HC zHiiEIY5g|7(zAbd;sj_@zSPlcZeuK*x?Qk7|#>QtiY zAyu>LDD=rzl><5^uj*-45R~M3)kW2BsIIAIRlloRRc)*OTyeJ9l`P5IV zgX#hGp!%}Bbm(q6Bv*B;Y84sE&}lyCrAvfWSl)*aUU8uV)? zKqsFDo!kRDc~tkD?zeQ~x;aqG*LCmI-PCYWyUq@p$R)mcFy}eVCJ<#+>|S>33n5 zqBra_R6>i_Xm}H}c#j#58!Uzs(B_?jKCjpC9JG0}hW}<*G5n$7U6`?dWq85xMZ>oY z-!=T$@C$=#uV!!g-nzX_dr$54?v3ufu=mE^kM4bb@8|ZG?%TU>|GwINuiMwUuVbHM z-&6aN`{wq&bKi}9@7eeMeIML+d*7$_eRkiA`;7Y^+TXsvWB-Z$Z`(h*e|rDg{!i@x z>-|ER26Mc;tg`G4Wn$TZvi7phGJBc3tiMbun<$$qn<;xo*+SV$*{!mVmi@1?ua*64 z8NO2dz}^SSA22`QdLZ<`4 z^!u;N?|pK-`~ZyOfBET8od&$wznAXuH|2>pY%&_HZjZjyfKD!ZfMCjYd$H09aLPY@ z+NXr@C#{It|NcL9NhPm~{#Ief%==ZoK`>~m1ozaG+uZ;We$EeJMSqVTs{!}Fg)V79 z*J?CWF8;!o^V<=S70a_^1>|`t{+XQLKD^arhcsrtJoC(xczsmBH^zU---D&4ZE}`l zc%CRd?fIk9X9bvjW&QTUUzK@(qrNHgLcW7=M})GhU(QQbctI~q+}w`1x5)8UJkMZ5 z3;mi5$2*`>hw9k6o;YIi2i}cjX_zPdoZ%05@EHdmC&5Eo?v8&kaR#i^; z9u|HNe{1jJCkPD(1mVnY{^pr8uRD|XLs-$Dx%EE-njMnS?9F&~l-gbIERE&aNLRt6 z>veGQuc`c?;^ogHc)TSCvvOVv;#OARe=al&sX|yLwL*>12>jCRJ#^%t<{)OugTf)u zeS+}(=fCt1w2snG%^&QEZ9!0sP3cK#=t*hlsW@8JC`<{5w`e-bqm)a2%1cv$!l-PkSKy;`RHsrlysQq2SKy$hQZL0*S_M7@7Aiw2w+w!Q zhn}<>(vuvB0#+{_PM{w>sUCV#ITdh}o}QGR_CTtKp40|6X5g z9EI1xQTyph>0bv&a8O$M5&Q%b#SsjYSAm=IQ5^MiHe3XE4IIT&J%o1zD}^h4Nw6x8 z;>l0#q$ia}zYg|S5XR*vE0FwD2>qx)`Vm6Xk2({-vpvbffk0c^n?u2HATk!~Pew;# zf&SpokS!DYSRfD^2}|~V8wF;<+gcL?!MGF-j3(puvps<}6eSIhCa(k%$zYPDx3#}H z5Xhtogr!JuY$%E6kc1RH?E(Bpu?ieJOUSCPy)_UR3It>Q10(UkFp7x|MPnQ+IX|U{ z@0z0R(LmtRNIV<}jf};@!T1$>KSACem(EL<1Ic(WnoLkbvtVjNts^5Bf&)@8{Hm$j z(SqS%vVQv5<6mG%h6)7<)FzN^fG|rC9h?(;*o;Xf%T#>AKo5`f+Jg z3MK<1F)1sRQUm&yV@wQaH*zVK!5ls(XkHX^tV6Q?5UP`-c|qu|;1v2x0TMI*?+?;G{=S{_{^6WAB~J=+HO2prX`d3p zpFb2zRVm>?mGI#4_4Rd&pwW+vj9}xa7akLaR70w_LbgZG+<#6%SpOgI4g<(xA*PC{ zuHak{J#+sddh0zOaNzMa;XLGYk`QB0@@M`b`j6lBr^1i#-1)$r)!93Ld{x+2rF-2& z&FybJil}x~yXyToVe&ihUBbH&XG`wqpFwz1=*vp|9P=N`3Nfl~;&c;1_os05`#yi9 z|2|Cvw9D_ks$YrI`p?DM{}<1d#k<418}Cl!T5jsxH{e=5+%BB`uOdqN&%oLLmjEdb zQ*vK(-tGg-1R)MQ3n^<`;CJ5p#e4B+BywosZ!0$c-uxBKM+D(g@S^m?cYnU(?VlBH zpL@qw<|4yMG5b9nOa`;xBfk4f%|tj5smP|Ey8^P?m-ZxLvSC1 zYeeJU0jCBr^4oCb=!kd0dC|~HH1tKdkAX4$pJ?o7!06pWV^5=@9|E&^8V%iphW49AX_b%V-zURBQ_VX8iF8;jl=WD-s@fYGR`hKzY@{2EvFZaE?_Olm%CjPANXO34! zUnzg3^_9=O^3p5wue|RS$DPqT<#$@|eCEzecjoWB@6Nb!ylVWlDipPXO2#A}7M}U40VS9NK(D5x$-@X-!{lh{VknvF;&gWi+ zMP7|c5B;iH^(E-%UxwavMKz=Ppz5Z|2O99QFaTMBUO0-=z+ZxX|7B=tSD@GZAkG2y z!G`Wd?V7evBWhlRKD}>`xaY+^YkT^1qV7fAn(lqjo4y3SeJixCqp;|EAGDt@m3*e8 zwWPdc6dL@g$*F5ob5rk_TAW&*x<2)XQ#Yozrnaa4Wa|A>e>U}@slS-|$kfNCK0ftV zQ=gdn>#0vq{q59er#?URcT-=S`tsCQroJ}ykD9MTjrmQ@w>00@{FCONq0s!U=3g}b zs`;Mg-!%WO`QMtCo`1>u{pY`L{lW7;u>SD*A6kF({Ew_Ze*VYSpFIB)>rbEmsrBWJ zm%sILU z?}wqa{BY^<(huv8>p#5bZF?Tv^HpeM-==#|_f_pXwQtitsQs$uozNsdsQGHiJ4=R2 zPD6jaujG5`PpRLne!F@I8uA0`ed_PQisRj?x2uw>u*was{1MoCRKfo9N6_JaL3m#H zfUp6|eG0fU3he2_8s`8ebpVH2fkh(lsT>%^e+s|c-Vb3<|HWirEEzd!zjS)It*z|{ zob5Civ9@&VFjCoCi5ZrEuV5knne6@*&+p0pyLkRYc6i+THryS!pTm6zj(-0J_cHVG zGJXL6_u(k-Pi05tQ@S6+{X5)0!%-REg8L`9U&!uX@cbLueFe||1xI|VlC`B6S<_in#$7KtQy z^M9X~1HOUhKg#~E%g-0{p7csEQlDl2l(FiAX8>*#?lN2l9JYt_J}AO(hHHf*9*};7 zC$!hr&6?(c%hT{ANqB$zrr}0z5Wun-HivJ4EYC1!Wq+`N*M>V3P8+ipK#&2=#{AxEIxi+PU|za8c@q z>Oe>i#Gx+|`$uAlWPFT*lwQg-qcy7;V#O3i4^Zd2>dM&&{kjfJJl)bLip(%%o| zS{&0Nw?h+{fw2GwE5U|9ipNLd$7Ha?XQG{X zV>B!!gF{eqQQ|-(J~B+2Ku`lTzQqeimn5aj$%18(Him(nK{{5+q2b)d0J&JWf?dtR z8G`9`=Z}f~WAV5YOQy#q%m*Zz5YGd-u=t6|fnW@OBrz^w zmJDOwVLA;5FN@G|UO*WlMxA9c@D2)`3673prqT$>tw5@r#x=fIx1@<-+4Y9mq2?9wP4oP7KCk>g1$T;+{1~9^GSvg~K zTTTZ&J+?q+SKDJOpNvZi2qzsLF%}#KP&hUugGFJH;Ba*4$}#bb`!rs=*qdc^bVxFV zMT|!ngFr1Pmh=QVa3qGbub%V_L7rP`B03yCA0HVT#ZZJX-=Rwdc$hl?5DNfKVg!d0 ze0(!Wu}{ULmqqBZ56MXhK!oNoIlu#QmIBHR^cj^%9j>eo)IFJ60`ZYc$}7~;S>Egzbe9qXZ+1*LdQpji zH#8sEQ`ez#TzQM2VJIg%E{RxpV12a3K^KE{Y#= z%+8Udh{Bk`V+!Xew4zY@LI}abcVYvD7eoafQ4kL>HwvvN$WeGjVG#va6c$qiCujy1 z+Gu#5!k9sMKvosNQi>^z9~4st zL!}m4QRI9@u!nLLK_DJg5QiwL7#i`o+{VR6AQmH{E4#&6ff-VS2TCJgD6$ATmYoG= zQbvcNB*fOZGbEEyP6Ihmfpjc1lXh&BGg?{oj*_{0CPgwjEG3fCD2$0owg4t4J2n^( z#?DK*A?FhiJyK8r>|P+4=vRo`U_3V}EM?+`q~L`sFlYvwl~s8Jl1i9+CzCNqxLI=o z1COOC$3n43)9gy2*k4O?IE7-{+R_|s!RYohb5$t1{n28Dvt^+;+&sD{;5@o0v~-vxMD|99zm7F`^87F`^87QGAbJia*aEPhwu(YT^>mF-}=^gL~FyYxJZ-WB-W zd!FUr1$f#;cLAP77w>r%UA*U6^e({j_~Jd!;)??hB?+TfcfmYL@@ne>rFpgKC#Tu9 zuUVQ`K_)rPtC#aCT|?y%slLmkq9m`jjh0jDuS?7M7tA-OOo(Na(MI+9Da%%Wa^ni=b>JOj-G2LWM#`(EEpP+NGk|ygm_Zy z4~{0s;*$6#Q{qiI`l4JNEmcmMs325FTrns@Pr~)X;-x4Q17zGV2KB+vm_f)>?Ci`K z3^5I{aIx*Nj<>ctkFv(4AxulJNrSutFeyfcZ0zWwkgIJLpyh2%lDd>>oZNngEzpIY zBjs;_V5UEY#*q}4(eq;?V+k`A09~-u#ll^ro-U_ z)DWmrjwVEs&PRu#yn<2>I&uSp`QQ_=(9^BY5afAEZ30NqTh~)N#H&|Ddh)=$wzfUC zYc%hQ!&K!F`tvC1qnR!oEoMsVcHGye=%`u1VIIKr)CdT*wjlu3FqO3YdX&GN@thXV zSlkEU@>?lb5(z1uBqasZXQZ+P_85e`z95j=^Sam$nCq2+0y4)Eqaz6^EDuzX81z0G z!C+<<1+otV$mShs^c6p8QUpLA0Mr4ybqC-oM}tGr=YkA? z2uwthIF%~v>+d^hPGvM_P}%)fMal0IDoQFOhNWRPEtplnAxsK4vvXmZZ?0`VEyd0! z2Nd*YcpnrJbd?h^)j1ouyp^DV&6m8T04q7A1@iDU z9;GF-_l^5mY-t;lw;A9EWCd({QFb(pQ7k%?y9+{-$@jZLHYnVPf}J(qB|6`b20)m? z$3&r18VFvD0*2w>6+*(X7%b^vWduaLG$6&Y3^~MBF?1yfBqUs7T@Um+AHyMUZoN`( z0J2<&!LTl!37F5ft!V5b5(A|v2W>hc-eI>8g`rj?677#t5QZNH1*|ts3DFFp2OZz$ zGeWV75lxRVbD>Vf=p`2hX5}GM0dgmcW|=_9wn5@mH5W_{sS^yGXx8$Kd8ra(uz^Y> zaLcQ55YC=EYZERp;Oesp8V+55^76qa(3LWBib!(SbNaMkHjklHm}>=+&7wIkRdcgR zHpMv;u$;D^Jj>@Qp9u$_AR0xk>6|0rIcstG0hVaK7?mzHbNnXzEN0tc4$2|93%xmb zKn%$-q|N1~7ezut2Sk(-jtP<|5Z zX6S65z5N-bSWW}-(AH--94HULCOIw7*P7{p5!^*F8XpPET|fiYKQekn9t4>AFiJCl z0iz1dAYWRrlf$*c9VR-JGQ?m4xs#Sjk8*x7ENLbXLr%qDW2N0bT%>MP&FjcyP3|je>1K*}3=CSEl9^0}IywCHmhfeeMrus)579HZKvA$(;^ ziZapJf=76*41Rig6Y?s75CXu^)f{3}*8LXI&r+ND{N;$<&*o0+GYW7VncLEpr|Xet zJ)cME>7alk!w9V7g)4Jwl+oL*LYO_#)vUVgLTIM3!0hRVZZX$mWox$*QF^Xhd_rvH z^kfJWAsA)aWQqG7rCV``NDSipt>>P)uXNcE@`eD0L=x-K6PyE=0YV316}-T^B70@K za6o*v;M^qgwOOFQS#qB;Du=(7A`<(S0j9bHySI`hJT*y_0n43jhxdW9@B8^ao z!6{zO^q!13{mnuG+b3oRM*}F(VlgQ$z>J#B<#hH8S7*kqprBt?Xja)-q2a=dsU=f{ z3`kZ8AnnY=6WlPW2aHAJ0*GSNws4|&8bt9l4Dh^-`tkuW4Q5_c=K=8qdWdxppFFs~ zM|w6P@IK>HS?MziOQwXe6D|S|%k5ig3){%B^2o<^So@SQU{wT?BRFG_kRx*H272sV zxJbD3ENoISaR!9;7A)Q7X9o`8r5V&46X75m8|FfThuKqLNG}!)jTa0}MhXWjJ7Au0 ziEhto7Wj1Kz0)RK%<7jmT61{-kM79?@XqMY1n}t%l;vF(&o74uWR=4MvdZBBdF3R- z`31=#StZFKSw+bqd1bNQ&207zIT#hvgO5Ux>xPqYOBo4L2?yh5Oi>IS=J)x8*d){D zwzECwTmdW#C$UJmENA%Whgxx18;0F{zsDQ(ArF8cs7;CH zTYXkEJNdz)rO^ai7bxkau;Qg+@TQb;f%av#>~&+^>an>4T||(B0v>`0mKZP0D6kEO zE=X4rPhVibt`=1_srU?4ej`ga^AXu;GiHMXB zpukMF+%@-v!(S}QYqvdBEY4-?>9#m*#iAWH*BOtyXtdj9Iosnn*JC4|6kL=pvKsQq%x#b_c5iiu9%4PaqQ9?B`C zU@R|^jS7Lq#!X?H=(Y}l-ytRsTsjHwbjo({30aE3g94T$~UPf zC{3kWIWnD?w`fQ7<3#qkERJq0nU6#MDq|gSwFY8%A*wzmJ}sIag;482&I1fc+hdUK z!>s?Za9$9Rm-RIDatDcN}>Yj}(Jj6vXkVYq+cKMWo!7fzfz+vCPqD|WFR3P9Kqj1^n&#aGL)G7DoZKYFa*M5!=nLYOK+I+GR@~e zv!Kj{!gw9!{|IdTvyj3iz}fsl;xf-+5HrxEE2ODUcol@{D_ksE9Mg^Q4NN8^}~1Wzy? zhv<Q>b!|btpYDA~z^JHadip%}jF1<-2sCOjJ&jWr|}}X5|MuNMHeiLx<9GQU@?vOGYuQlqiH_h8K8eQ~xT*)-o{B z2|cDakQ8ZQ{)lEnP1{c4cql<+uz4EvEG$Rara^ODemyR-2|%YjVu1@6Nmhu>hQx{& zEx{OmBRa47^$Jsnji$pBlnX>Dc;-laGuRqVV#mLz0{ z!mL7=8Hm;9aM?~++%~H~hBEZ0O<;y3_yZqomIX3TrY!hFhrGxfosv8$$R`x|Gl2&` zsl`lt@kXY)ERdq;SQZ803{~`~K!*;a049n7i@>o%1OhW^L7LXUk;_LIknkMko}=(2 zVKdx{zwP*oPm>82tCd`vU^#I@=<#%t4qLF=y+V)EMb0gpK6g^+v7ZHD(1QeL$OT;I zp6U_K*equSi|Zt~Wkf>N5wJNumeYdE=CE1Z@*~h`Iq@VB73d%obK1iL&Yp9f5nN|_ z0y!QYchYsvckIc*cb9|>SKs0ON%u@3^V7=p|!2pO*6 zBzP$Xx#HpVS?!jSXfn7#CbzPm?aF%VwYkm-J?FaIi1ejBJfrKJ!zR!l{(9oH<&1*> z@dna$2HLEG{Y?7_%ohHTljbIBw+aqSC`!zp%6q$&C-*pbVIF6#BS#C zoMm3tTei~ya8`sWR5J6so_f+7fO|~fDxNbIMcG5XPCL{4koSbA$9?Wh8#AHFytn7Q zAI^Jk6SC4~`40;xT<3av0=Bbm^u0fD8ZQNcc+Z`4xC5-4ELO{zrv%(0EeV$&z9JC+ zYQB6R7COLnaLo@te&yg3mm!(DB3y2Pdj#&++l6n;T)!;f7`_>M8V;w^0|r?1_?thz zOfGPN{yq{DK<_}?%@d449|r@0;1Ipas;jh*U4z2Yk>wYl5TRtDbGqpmvbSeh<>Qdq z{&XUyQfH?56zyyA3%;kL&){*n<)U!q;M<5fE`0!1P{3L|$=%$5=cM=ug(&BMv;FCE=-2>7u;T-C7YMzulhVvX$2-$N z1=_+C$j=63eCe{##_ZJXEHyKK;~8a3ILfIQ#VIw)X9!qSkmcj20?dqcfN~a+cKR!g zqLX%_q5Dg7O-_bm3wE?lChI0v8X6xWywGfddZ;NinSY z;#U}K@}C31&Hgd8o*e+8!0fmD*aKG%Jg20{qy>tnOCdi?6CX(=aN|-E<9-Dfzb61I zOSL0h9$kur(0&-xwpp-rVlO&*Ryb?J-h@?9a9hrH3$)^~Wv|D6^2|BARX9l@^e5o- z*s%@K{v&kbo1Q&S*?YRVPflv{IfVa+9YxxHBA4|`a~q1ygUk)fmxVC0SW#ND7g;fw zWj_!L0Hc`PkcoBWS4a!F3SLofrzLXWW=X6>GBhIF89U3^-Q19eMV5n>KN3B15i2te zVS0KJ?llWADxmKZFb;;OEGafJc76bcNsvT>U1HWxG9Ub=glzmF($pgTu*B|yAZv!; zMG#fYToi^5iq!|om5mnij197^5grz02%ysephfHs80;A<0cM+L=0*XEBn*o&thkHWTtP9}Aj|Jn{jU!5#vgkrFQ-F+~TYu3i1!Do;qY6hyI?r@Brvs4;y1Wc? zgj07a2;TQXc=I-)k)S#QBtM6w8jR#%KRDaBGdtZnTL}Cm9CA1 zq`r-tb`hW1pac;X7ZZ9k2$0(rhKmHcOk;$4NKUPN_^WhN<3G+C{5>W%277K3Kd8S?GQ#YL1nR3=WM_Y6>ksG#7tH%N0Zj!KeC8I zWdqp;jL;Yg^EV;7Lw>)TJ|vpahcMKJa4cK)O~U)9^Mu``;$ykEup=$|RwUCI={U_E z+QTCO$UyT;$xB8;cS?qJG|PULSHTBWp3Gdda9R#KXR*qL2OdcADpJ0Mp zAQE8+N(s~w3}|t0g#lT1@eM+kMI>4( zQ!`b>)c+(wh|n!rafz>tZyLQ0s{i!4T=VUi=8h@k`RU_N&?P} zz)(}x2J9$$NA_&ND(<2qC^8^!keCfkMlcEz2;B#|fLim)0I^jraRremMD1wJ0|+WKz=+e#sk`oGNINHrSv=2iFV28uKW2?)0KjARfn|c29uA zOuHmtNE{j6y%d&+9iQ5zB>5^t=!%pL1FBXq;+_*HY&|_Rqw}LIose8WfX20&G-X;b zMbaA_PD@}p<#VTvNAR7iKm^|s+k}4T%VYd6N>VO1WSVgnb?^zA^tt45b_5a6X-yN0 zz&ZgVekOTjN)`F8M227>g>lnfhS1F*9TekvOB+nKSvPW#Ionw=r+|Raa`296#it$O zv1}a@*$K;6M#A2A1j5KGq@<&J_hbZTR_?9Txy&aU!)2@{VCK$fDpqwS7<~;gkp5=2 zptOB`p`C=4gZazK$)Oe4CL?bz8FHLL`H>B749D{2t(8|)iP$mPSipCM>g=%B0LNQQSWD!_cTmfK|NmmG% zOdP+oRBnVk50#P1FhLohckA%Xcwm@iZiiX~p-=W{qD*1R`u8xge;krl@vSh)J_ZWA zt@U7Aa|<<$M>Dgktmrl#-6lu#(?OZs?L4|&j^+o+GSP>5G+E8E=EgWH%bFms%DY4L zDq!Kf8qZ$@E?mdTiJcRCa4o$u(x0U=1e8jQCeFZ^F8~GNWr0HctMjAE>IXIJxHN&un$8EplI}9JjU17)JCU&fs#9n``LKW(hTVz-7A)m!*(q~ywtXl{QewOT64ia6-%&W?ahy5farud76^22~qj+c0Ts*`I>+pSA-@gBo?Pp#A1+-hxzLaXQPo8J0cfD zkualTsnl*;LTw4VhLaD zv7fQ#gazZnhq|B<4%m;LIm4L8VxnaELV)a3enj5Bswf#}>mfJ7hke-%+yrz+aLU5K zZ|z>EaGs@0)BF6D8CycgkQTSHM2ZP!!Ei{z2#B3=X(LgX#1x5TR!ckMm?Wu4sZ1D^ z7gtOJfuqOlCUz3_GSq-DUKX|S=E5>gg5B&z+=(E_XHB!reKH{+vE+`3$;SregAzNq zSwdZQxi!HgbKe+Ih3#fGVi@g66n7bbdm?5=hS4miCP2aDkQRX?MRII9R8c07sD?f& zz~BnNB1V=C;G#CVb{^UI5#QahfE~%9;Uhaa)X5La9^l4o*eSW?Rffq+Cy~1`e1!z1 z*|?bQC%RVy-#dWi7St`c-oO{=a@k-waQfVdCz*AA1J2*k$WTIFQKEs(zYHqNjbvX~ z2nAu_C*x&WSVd<(W}lW<1{zifT)DjjHF)F(LR?T1kOoSJAdo_kj0rh; zc}zZEj^Spa!b~@!IF49Kky!CY2LdEn2=oI;v{YFeiYH_v`s&H(To?}Er3=hmdxwHo z&>zH0bBc_Oxjep1f5W>!!S7HB<3o`W`!oR0hat#=Pr3;4Ddu}WzIC3ik_8@of}ciL zn#@xsuHduk@sSuw*a{YP313D}7sNj|A+us~a#VI6SERr;!VDEY`yNGJ0@RyMz>M1X z*k-MWSlO96n5H_9WC|xTj+EccJeX7#a=rX8MAj>Cn31SGC%SD`QeiMt5!+d758v+; zcxgi%9aFv_k$5_*2+|nvQ{gb1p;D~2PS45Q?DFL^_{s?upG+wsh=LRSkkZPV%hMs0 zMAE%xIW)adu(^Wmdl<&NxLJpP>;yD~Y;6DV&IsBK61x}15IDP#bO6uH&jb*5(Xjv- zq)f||v4_l+J}9EFFzGInhjnK@j-JZaN&7<1VwBciEAvE2uSBGC7Eh2Puv7B0z@oJ& z5wMYnQ)AeiQyL>97;S2_nx-+!OorKFOEb$PQ?CW`@U4gjQO>ET0GJ|JDdc`?R7m6k zm1Gr9y4-Aup|XZ6Ho#0~z(yM(qxhaiPSt#2qljX~@b1{Xl-wyp(+9Ynxkv!l34o|| z^Yd5i;(#--;$rkI-@`b4B7b5FM$fe8O8mwN+KX}^W;hl|z)m~Kr-mS79Sh1V8m7cU z^goOhfj2T5!#Yd5aNa7=<2Vf=wf(HagF`_vVEBC`ldEI}A0k36Q*TZbn_TJTaWpO+ zRECG{dtn!dFak&(Vv;7)m0E23j*oFe3m8iAODzP$Ll21zS`qDHBH)Ke7|bDtboptb znoW-$dNk4e3{KbpEF?TkA1-NYJ%rDbH6u@Z>!Eghr9)1J(;k$ZK1Opi@yszn*gb&& z$_J$Ub7M~y!xq*fc{s*LOr94sZVBQm)4c*e_8yYD6FrG(I6TEFl~Hsj zeXGnIAf&Qy5U(VYi#!_@tbG1vIM_cBmPSEojUB?*XV`b)NHLa+fwW)I>VQ)q@gQ5~ zIUSs#*qFo>pTrWVHp26aY{c$t5BPjc8B!#&Xk1%hm#8yL15mI!!fN^ai^=(9;7K;| zaMB4^A+x;(@Zlan%AXVVC~lO^&Uhqn_B79W0mWqA*z9Ds*Px5Y2q!>;$;L|2$FXXN zYG!vC5s-wbtoPMDbL!libJUp8kfYe>(HjM7%XI*=`8bj|$mC}BlrlUI7+@GsXI)&sv}o-`b|)BBgIEd>c@So!4TC(8m&(OX zuwIQ_0U3vHO|knZgkdQh9UB(dfh_@N9-;aliY5kx{sDZ338`?l47W83u=$HoaC{6C z1@9MdtPBq@H((54P8&~-oriK1M=r+jWiccig%JW3gEfE@vEi{K(m~Q2ibAY?36&x; zia06^pu$dvm5W-#Q31fS+Ccs#NmGw<2c!_}G=#AW@gQb6GSLyu3os-DizD+ZlPX;4$Tx7+euh0MiLX!}^2VwCX3PuM}F3Tyg@-JW;hrJ2P?w8O^ zmN70RM*vPR0fn-F@28=M!swTnG)m>+Gh^q`dj#-ELN4REAg(4zTnY|EDFONsSHTIR zW3fSWD6Ge01Atn%Ffc4ZSUUh&oN#3%J{AhX76d&M6@rm?^gF9!?;D|8xTnJqq3C2g*NPyKtHW3`~2u?0Si7=2H zVdD-X4Iy>~{f&D#P%Um6gT2()W!$ zT_{u8MIob60BEmL7Cv_l8v0cseHMjy5#t17Z%9fE*wWLQ22tl$a5%=A&<09}Ji zw*63wf!EJM*-R7DM~eBN6sUoBejfHK!ch7iXVF^1$xHk)kN`i`fRENOku4LkDc^(R za;D4)1{hIdwSbK`8k$#W(TeChg}7Rnc3ljBe8iU(iH$88%L+uQ0GCQ-1p-dWO215Y znbJ@2K-x=lk(PaAkPQTnQ7F@l!PhXxD1_x03k%2tbNVVpW<{oq7|9ipkauEcP00+9 zgbg~=5As#RtS5MCr63-YUZXe)(hr69LIq=rc0Lzy~wR@PiPfQ>!- z3JjJ=vq!kcZ+GEMB0+jiYgi;n_NcFv3m~y2ogWM05I4U#Spk@WaSFI_Qji`rjyY+` zJ}y5X5E&a9VnxW3VN)1K9H15mNuaH9>=;Ln(Og_B4T7Iuf@9(6NM6CgF{o9;QWAHH z<#$+KsZ7mH#gJq-yF@ab8crw-NBZO^AC!F5;T_CF3F#Or(G(%{V_(1>1`Vk+mEX#U zX!JfVbU??_4>y$#5sD@#&taItijT18K&DuT^@hY9#qt7h6D}PB&x@rp9u13-6A(Wy zLn2~Fq#(I*BHB)i*sqqCH~m-38w!H(gOnq;qwWu8+((G(Lw~irKzUG?`FRb3#p^@o z(~TD7C5oP&U~eRh^5X?yGhdpck#>1D~Eve5ZS=shW% zzFx_NF_+XFfJ$Sv&dKqqr+pvjOGAOLhAw8-?YIn{~&P$_go}V3xs&sv9Qf0*{v^p zKZoHq(Te>9JT_}WbF5t0GC8z-)`2z!0|K3qJpEA^*d&-{(1L(64~jv$$R1@FnDFi( zjKNKbXGHv=VtBiiWsraW7uVC^92VFZbQc5>fV&@j4;B`1lC;!CMxckp!9Xni1QITb zRaPc8{zP8j>KeWX^KwuGMo5O6ieTq1`{Plj+!rC>Ky6pBv9L>q!xAKPbiykpK^l(a zXa-aFfq9Tn2vltNSOO4(QN|}bAHmuLqBD7LY!nz$C>CdXxP@zxcvCx85q6t25`Y_L zE2=4i4mtvn5VkZtj)_j3eWyy>BH~HhXW;0;m|~%&#Sv$|C>lo@3PhBCBKjm6lO@g(qK9zFc`l!j zT_V5oeAglaAkB6b%RU=Xs9atmePKHcR+7mnWIY*X0)3rZd^61_peD75Y9=WgB(of> ztQAU8(*u*}6V^yhb*9A=DxeE+5K+KDih87xTf$s!x;+89_P=qR9; zvbvuNSeV5QE-yH1!?o%8%owYcN}=2KM$^J=aKe{pI%5LTo$+|^)?mG2lja6*t&^%i3x;jNC9{*x5qxFK$l8Gl!CRGuBHw_fzSCB zW`YW(B*DdQo@R;UHR-;~JT3!>^Ci1MK|t?PKWo$dwC4Y3?``0#I?DXnsU@eplfR%tgml}2YurMa%d(FCt{`7V`#&U);?j@O_na0 z$SWaoXOcRsb3M%~D+_L&~W(0M@vEf>8`Dj+H5|_(k!&1S(;w_luN_ikLyydvMTg@~3ht<-X2GKy*oEZ9BG?V_`J`~L zZ*6XFh3^G-Hn*++T5Xl}4mUT#xK0JG$;i&Q-pUv-7W*9VuJ22yD+ry^Utw63Z`RIKS6Z0+k;GHO%u z;zmWKSp-|UB;%6gV_zz88p2elwn+}RD)6-)>oaN%lEDKVfz2UzuCYjl5G?nxIglXB zdEh&CeW*gJ>&*Kul`2)Nvt&>#?U|&?nKXKTrIxC&spPk&dD4@;b|#RpH)iKMzfDbKH$@NB4>Ea7YT^6_qP-I01-e0CIRF^lm~ zx(-%S!4)N#a>1*VUT*n-7I=Op9*5}<)(ok6D4Ra6dilm2OMktK*Dc3ZY>~&+o8>mC zg)3LuO}tD?N+>#-u9iKxHC2A^yk$$_Ajyj$-~>%hYtbaB&I_I(rC`X9gF<z+j`p}*kx#A_gR=6aUCgpeqLTR6x+AuY}Vd_wF!_>9#w`RlCzP=4p zyEeGDtXx?yA7Na-YSnbwglD4mrq$+sEvXE{%6eVYlA2z6%T+DQr)_{=>f#|CxA1|l zaLoqRZ{RWj@U}vZ4PaO*QNSu7iW626%e7Llq5uf`4iS~$+mygk}bl(B;ViC|d)?vL6!Vz3>y}T3``YXS#Q75(wyvK`F{MrkzRO`EeNLEDX?H0ybM?AQr9FKyMbY836R-Ak4a>(1&|XSw zY_v*wt^qC#y6}9zB~8t!mnVRUfCk6@sCi=OBji;BdIqa}0Tfz;X9(;y3IyT>V$AYD;&G1w{nUG9X8U?v^W1Umy z%5Qsxb7=AyI9$>vZbZvzLqI16)hWDZfUu`WqM0#%e0nVRcKKWg-N5kZ(=EUcw04uj>7?$^R;|w-X>8gdd z7|+CEEw2=U;i(+w!t-t@E;ymV)|#QibzmI+Vhv#focI;z!{^k?injaGpwoC9*2-)ADmm_ z+Ftj8MQ<2SXVt9o4m_x$4tyl|>h-wX7>?S|o$xkxazt1QX-fAD^xEtqNP1&)y0wutc8P zghyAI4BJz8ut=-@fmS+Z(r>vS0tp^=SsE2rtgNZKY35C0jaar29uv@&g0Jp1X%`my z!NTGc9KK-XAPkn;J7GaW=Wx=6MQt#|YlPQ&z_TLLeFC24d#AuB4+=OXgr#U{C|$gK zVY65~|IQ{Tg?GO!o(E66T|9pYel3HC_1?C0nONL}znYibp_(o1gqb(K!n!kfJQEGa zgc<(EIZ)Wl)l{nLvS~LSNM0DC!R`Yu zt)=HC!qcL$9V-cIl{5?Dd?&P`YiHHsB~iGa0B0}w3m<y;({I;0&7FQ2iRu*5K2%Xk`S>+~~rZZdXm^(6L7r;k>Rj%_9xb zQQatmYjc!ioIX|I%*PRdHa6O8TI)FusQQ0RD7YvBy0v($T zsd&2zNfv0G~7!HOmL(r+f^&`6w-&tUjrcRscp}^P?)}^9$ zxN&n09_p{3F@44@l1nwEB&-#O#rmkqc)2XErjb30;gW#UixK(u3VAUaE{OEOPzaV8 z!$sJ>BrH%?SN>354$sw@wVDrrd-3?l2l0+!5%mBAtl)qhQ>?r%Gh?F^%*P1@IBRLW zy9p+8q!H}Tbf`Ej0UEr9rQE#6=G+piTrvCZ>DN})uDDrs4lqFg;}ST#k$b;9K*{yj zc-1HK3VWm5%@p!*f)8|XtkO&=diirVTrA6|P?ez;WZ2?-vk;zTbqv7xsl1$yWORN9 zXK1kOn<-I&8x^ot7ngw}%9Y^wgBFA1FS$~pVr`ZBQLTQ|WPVh@kiKI;r9rs|mq9Vn zc$Ja*9*$2R4Dj*-zn_BV()2aAEM~dKsGUeY^N#ufwZGs6H(0)%B_{_Z*3q8iaKaIu zmR`>@h;TBD^&#J{fhR+-$f1lz&$vfqQjOPT<#GsIEDnQEKG}w@WIc=>*1)K$djKAC zlzGaS>=9sDRu}XUxZmRrZ=3|kMuKZiXh9dO+P@YTETod1uzUr`eA+C3vly(YmYW?( zSQZL*1a{!@28V#q&7zywF98QWO^knD3-h9CF$$8p+=>b~EU7S(^b6K^bimK9p*H{z zJnluhiccSd_+eg`x*)md(%?$B-f}nfK<^;Dcqr4yWljz$U|r)JgIdN{aeoR{zgMK- z=Hp}q9+PJ*muZ~Q*b8@C4XvNC5GHF)cympj44g zcMCf4n1M$unDCKp87`6Z3wI?<;Lf`P=5U+uUbb`xg@ItX+!$CZr?QwNHwIETEvC5S#=ttb`7cAljKJnV-w@`D zMdb#(!3!p5pf!}^Ng=Rwrq*f}xiN6RCdhVGK5#!e%4(2QE|;6i8d79A5|h!$g_>X; z9xa5;1P;6qcd`>YD4?M~M3Zm#LN@e>NKij;4+^|Tyc}+?k-GE_C(5yzsQv>|j+?Zi z&Y%vg#re_lfwkpHC|nCSf&gb4Q!l^!&?RUH<#JEKsY}>~3cxitPz$gjS4-n<1lWf0 zgdF{WNsrY@Xl>;iP_AZ7$Cyx*M>Duy+P+r)f=j#bOLib|o&eK}{K=kW zblsIa53uTjW*p@VqSOX$P%iIE@f-*eS6*9w1H2eb&qyd17^jRqqbN^gVD5@tG1O9@as zN>a(yIN=Kl@J4&mCZ*xtkBkedpURTX6u=Qe_CFXGM>(cXYve2x`e1c;te6v~R!bVS z0Vg@?;0-2lQ3G0n_XP~m#ONA1!KC#UJ)2~&Di%>2+;$en%%nv5N~rA)P2os&!+ zdI^grX*DApq_JCp*ZaX0U0(4CH0h(%)iI#+$Q^jLXF5`3fr&V{O$$ywlQPN&lF30* z1ud5RGJ5}vGEN>I7WBj*ZNbvXPFVU4NpCmupE+Q7RZvZ;sX=+FQd)`EM*I5c{C%C# zJoRBlsX<3zHggpvCev48yXb(s$mHry+`ZsBK_3h|!7FIMnZT^0lvJ6~$3=43B86!t zh3}fdVSv;I2R2scIlS50pu-#6rLnc9;k_L6v5tlubjC-RFU$;2%qeMD>c-3OD&>`s zD(Na5Tr&;LbBG1SmQpzC4$0TD;%Lm^9b2(HEKAkqA({h_ilGI=b*v7!9wB+I@>IQK{tlGHQ>+CC5vYI~Y%pTh^e0m0<34h{mA9h3C*cINS@(52tu>JSsCyKkc&V9J#4xp3iRLuM83gMdM+^c4p%%2z##VYMn+Du5Xv`8HYT zmB2sj_izkBT40#t(E=2IEy$#mz`)3(1StMWkVz|nQIkgrQ2do3lU4$QGmjEELL)U? zft-|-Tpup?Om%Gm&IcZVOSo__fLDxk;lwNSB;Cedni0KH`d znWg${oj4fu_z4uH)b`V?y!p#%BAe>&eo}!4K4ZwpT5>D7eL37BqEmLiYM_=DIq;-G z477RZDf))t799ETXgp(t8>{8nBs3{pcH~iMT%Kgd&>T(5s*G_h$O5`-f)gr0m9Dwa zO6jrbycZdj0K-Tc`Ko*=mAn_pLg*3K!v$lgQJ7LtM^SW@(n-S^yy=`iYGBOcXG!D? zk~&pDBL$iNL2j>@e;QWPNSicT(o{fFMkFMq2IDAaNvQ%U*U!5cT7wK^j)AlglI5%n zXcnoU&&4H`7_c7QOOo`L6~KHDjD&O-TRIhQo0%$`v2gcWIY@s@cuWfA=ROyo5n|ufAJ@)%8o?+1n_W_B)q-r< zPT@o!mJ!iyG<;_d=;U?nit)}bR zYxQb1*=xbtCz?XY+!+Rn^yOr}@G55uaWw(IgA~^K$O)HLoNz(@RQp=lN7MB;v z?9jW{XCJZUygnTDqvD#YX26u(41AD-=eVUi98nMFaLGBB?pcD{g38x+yYTq)q4ssyVa>r|0(LQTri!WcxFMBQ z*UH}{2i3X0eq>JRI+!$rE^ghl8P)ac=k&n0)G&2wJ&n8POyx6z(sY@aHdVB^WBn6w z5fAC26+rxA+!4#Y8rKe>XFZ>pCst@ngDz0L|UXLfuQOs|^7i4s@4<(>6w z-M-$Ak?L8suwtusq!q8rt{+}oTU|NmmalhVE&d=pj=i&Iz`go)aK=GHLF3j%c>E5` za}N;X)yxSuNO!}-HCg;>nnuRwpG{5CSqr{C8@mnpj%~Ob-ZLoV#*6cUav@k5Tw*GN zN7u*(Una1gqXN`2pPVkF8GIa$33>RE&*~E91pz_JTIJaeE)zxFFpY}$mbT zzbQdiSK*=s%+f<4-8w61xRjZ2mp4=j>Q)3?x*iniR-Eu-M-{f>J)-bjCfLibu6G}b z3iw|jt}cTR;Mx_y!}N0{UeHl9{Q@r(gKj}nMkxVH16Khbhm5nTD?8TL8;h8MA+zMR z0)Hu9nsvlSmdV@p=EHJ@lz?aG^mp|o7Y+=`?RvQ64tKULhbIRn;Y!TNt@06mjq?3L z0xu%NU5A6ish$R$mcDIhV0f?|$nX%*Th}ju$rbrTyZ+Vp!k~3ICbb^k_Xp#d6zuB2 zQxCU!4&vgT)Ixc4V7<7zd12jhT5X-|hgDnnEEq5X(=ucj72Vwrch|x-p=8&xBp>TX8W!JjOW#Ad-xqP&0-Dq=+jC zi||f)Do@$23Otx%@^pHo*`)*X;fjSau9lv5C1Fg8Pfs2gs+SpWAH-FEGCcISK~8Z~ z5ezvY|4qGvNxXh7D<4@F4)@E9*3$(&)S^gOycFD#@_eNTY0G8TP_LX|K^#XyBVCrH zo}+%CyBSs>)WZt=LERQ%$He9XRRGy-AGsG^2n1EKJeigi4XuH~24S4cg}eF|<7_N6 zODHk3Zx+m_pzo9oS+YVS%ZgPNFb^Es??|pEiadlv{mZQ;SfEHN2M30hwBuTGNzPG| zhI?>zJK4pKENSnDRle{9C0rTHG^z}09#B`DGVIod;hBsuxMDu|jSF^>eLn4WMnltO zkY^Yj){C@k`U^&qox`|S+>49K;Y~)p>APY0*@tQ9gVU8RA%p{eli}}b_}j(Xy8#36 zhXCcFApF7aP(J)!Nq@~iZ!RJlVl(hGUs(j@jtDvMcV$pCJH;XZ7|PF=^k%8CRRoH# z9B8is8F3Amx&df&0q+!nd?*tj6GS=GmoJ*zHeDpn+$6;AJRy#Ol1<%U5k9z`>x2B8 z))tBLHw&>HaMB$@MAj9F#zrAZ0Mme_fMrX-3Bcy1LbL()oC}FGZvQbPHUmyN9}+tN z_W;XItI10EI4lvCR6^Xc8AR0CliH55R#0tRuR~Lvh zVDZ!fu@$g(ut4m7q)3cDRv^v+Hom_=YhmJQx+{02?2Uik>Z??=4Yr0C4;JVZG+ti^QT2Ma5RYlBc3# zC*Z+PMa3v!=~tuTB;bnCs0h6S^c;_hNr2ma5*4L@n|>A*a{;%Uii#${(ceTx8(_)V zsMrEn`}?Ta4mkM7sMrm7{!gG6a8V#8&H`=&485~RR7PTA65ym*Ow0xBipNAV;O<0B zbOD|POyl;eV&VYc=}9qh6!64VF>w-b_7uRWPl9*@&jNb|N0r%V$6Pp0f0d4~Q-DVS&mnfjMC9F2o{otUz)cT>UckAJ#>8g8N$-e>Lx7W? zh>7!n4Nu0zqW2VulOF~@0e3wW6B__aJ`HvON52>oqktQqh4=wWzXpD9D-vzbLwtZ` z-;If_fL%voVlQChk7ME>;Pw-c=l4Q481BYiXSf$ zeUsv%5^(nAanS%c`HHyc0xZ2XF4BN|d*WgvVCDUw2e9#hxHtgV&=(g+0ZaSi;t1?7 z#oq+IuzmFVap7(Uxi==nY(V$z2~qlfu(K^8RsgPeZ$k6|_B@^tn*e8TPl#QB%^yk# z@dWTanSfkF{y&@$b%48{N{D8_eY+E4JK*g73DNWci2qPR90WY_ec;;xe*H2bP6D1k zlMwC)A-`u6ViDk>za+#CKoKkyrvOie3PtEc(7y8uVV^1zQ*I~}gMfSL3dJtK9rcA` z6mZk*LUG_Jus5$zL_PxY^9#jfz~Y8NQMn8JTu>-R0FN&Qe!#NELU9amC*Uc-Nln22 zQIKC%C{8>L{HqH^^T!|`=|U0T4gNh;D5iW8`ja;niaNj*j~0q;fP3FrC{}z5^t}uG z0_=Ksq1X!8@*eOHaOC}y z^NY}a7J{#UZHu6d0B%|g^e;hP?|^*~uxlCA3E<9q!6(4<3aCrKxho;J&lbTUL5R3G z5!_OA8Fu;kd*SOS9KPn_fyfa~Wk3Ym0%B4h9JodTA`lOXykZcWQY7-zfTKmiX(<-@ zo8WKuMI!&uMZzh*SctBRMgAl>5KVcN2=z@8V#_2EYP(d3o=b&u1n}6U;-bn|3nz4i z2poU|rTZEYZhlILzNbXs)KkJa{1M>!hzM+igXg|oB2fHMIIetD1de=EM7BL65_>Ok zoWT-DY$|br2LX?iIL?&IozULP9kKs%Cvf}LiJI%3L7$2rpiez(A=;66u0?sJ^tR!5YyI*!}sh|)I4+0^NX zEuB!_?G&EucARsoA;umjFmgZm`~dj;fa8qzfzN$TWK%!b?sozw1{~+WLr$RO@0?KA zBVhBbj&R@V6!ts@xqi%X7X7^=HvYYHaoIZ@vFjbq#p$h1Vcol&z{z(x;SJlIK*{4y zxc2={py3H8c<2cyu;&9#NPNh-H1s6+{3O)bPNgbJRWw!`;R!mliza^N6$K;9p}K$mmr2e zg6=qgLfQ{XiXvjdSSHwR!q6Nrq?3xr1+0+Ia-1EHqd0^z1bpmT8`v2|G> zIJzw03@#6dzUF|_@VY?Y@XCO*wfF-K}&c;=NP^cqNnC=LKN>&G)p58#P z_WnTNNM9g$Y)!x^83+W=4nX;Xf#8Orz}1zhK&UnideVXLt~Ugr{|W?;JOr^n6bPSv zV<5EqO@WKrHU;8)r-ddRFAF)fmHWXfw4qbX|Z743@779#xEEF!; z5(>`U0(@@|h5Mce1;t~f zhn%+0gUshcp)Fqw1&)6yB;wD8f~TJa-3LPX?w3QMuCIjh<6jL$ri_O24~&Llr@t18 z9(^v9-}m)UY{$V+bjv@6q9f0ToKw$-f|I`y3T!wO3XAWAM9FtT&bIG_0(<@m;yM!w z?D`$}|A&w`{fAJn=})0R*`Gs^y}@v3FdTOFhr{8@{BZu+{4flN!+~897;i?x`6C5k zrz;u`9FK-$=VM_}91rI=Cc@5{L^yx2FdW=o7!HV{aOlj%;b7w=7^_YS2c}#S7PBu2 zJLyZpfykv{r}k3VzBC*d1w4FdIDg}1VQ2KRuxKa==bwka(aV8;dDuDk>acLH4qv|M zy0F-MU3l`D>tU>18@}Z9tnjP5>cgVzrtmdK7KSf5dwW=%yFDD=HWYTn8^P|QVbSzx zI3D?Ac*=@>VbQWL93Ocxd~M~Q!lL$1;rOEK^RC-HEAPs|1$koUZFw+2$eVijc%FME zo*!yV2#UmU5;zao7@zLNl!=OW&0xG9bb&Zo4y`#M!p^il^l#X zqX#2-#m6I|$WJ5Trk_Uw2Ywz2Pd*um?Kv3+9@+yJYL46; zb;LbU(fs;oplfB+*|jnnJiIa**tRMf+`THAx1uAOzq=zEEbWYnvd(C5ZfDf#g5Mhe zC&Lij!MZm`^LjQ#^UrUJIwOxpgIgYrhIYO+nrPYz=Skb5iISZ_-x-ZHd>DNCaI|3C zN22*BJ`xQ#J{=7m{8%)+V^1{y)Sjq_d@>rG{7H!KlTqkfqGAtVEu4cb`c%|8@~LR- z;Af(tvVBpfbbmB|+x}>%;fvAytzV2fC0~k)kuO2)&%*iFvw#NxzZ?y0{7N(y9|hkI zMgyVeqrsBrqt1%wqxrkw@67YjK>8ce(28$HgMHrwy@w$mhojNa??gjW{wZ3JJ`&9z zJrZ^H|8q1y^u1{8{P*Ga4*`!w^B4Uq)XR^e&bc4MdEfDVzMt>3w?f+@i z>4Eb>aU$w$J`oKx|2!Hw^Q&ld=dYuIS~x$fI~5H!o{Hve{$12L@w;fC>})i;==ag+ z#y>=(p_iihO)o_YcKkV7&?sWgq`X)`S2PxBE{x^xEQ}S@T@)*r{Hj>A;gXoM`;u7j zz$LN#$fdD@Etkb2rITX?yI&K_Kl_?kX!Och@YIztXV8s_oo>u2h4aI)K(YE+cqzjxB0eM==h>oplNX|@7&T@WXiHw-ifmqmrll<6UkWcY%&(x*B#3f_s7CJABcrY*2KbRAB=@cQ?Xdt z+E{30BvB1s`fDa#vIW14d@^%Z1XJe7bmt(=oFUJCrufz(D!{3pw#safP!QR(m1)=9+fx+iup~%5l zwD0*?Xzw>-(MjKmg;snU^7rjnwCp>v$eDkNz3RyKV+HYliHUtbfI9qPtYE{jSgiS9 zW8uc1#0vKPH0G53ELKno=b}e`9&?I+5ex78CHMp9q$htFb0(jJbK{dxFMy+f=KxE8 z6>~QK3eHslj{=5Xh&f#^#KZ{TUckm*1OKn#9QM~>=1z$RR$LoT9G(^rADbQzjF!c3I9VQd$|~Z)xfSuemKpJq zcxBvau8bG-RmGisRdG>Q9nW*$9)H!z$K!bipNNY+JK~A>KfvMV3-Qp-1936()wokT z8W)R3yL2${FiwASW!Y8FG@Hg#R+lxvczRau1koc*Cm|6sR?nYED@Mpkq9lCkq8{9 zOoR?q!FEj|ba+l8P`UY|Zb;;vek>6_z9ms~;_*b$(T^qqEgwtd zZT?I`?E6e2(Dd1aIP%%VYvZ3!{1v=itu)K9|TV{zf8NatQoA zln9(Xl!&hQRw8=(+X->@+lf%$cM^fg-%W_E-%W&P|0v-c`%xlv?06#5_OnEw_~!{{ z(JvF>$>(4m;9MfubuQs-ekl<-_{Ri{6%qvp&L{Gw{3Q|C^Or<)n<$L#3lxSM!-WOK z`Go~;q%hW1P$+r|3WFO83ZthJg$1*V3-h-W7Y6qh7e=Q{DlFK3X<=~BrG?Jq%L;>) zmlZ~4UtSoly|OU4=*q%K-BpFb#;XeR`brC(ZKZ{QMbio+8>ScLRn`?o2X8D4_sl7D z4$UbHx7|`0Oy5!%J2byA@6@8gK+odBywT-_d9&{>jHT}>Ea~+rEiDQjDTT6WMZwDJ;iLlQZsFWIBz^|-wUr`p8P3(h zpBR8S+$Ukq_$m@x~ZqoDpVw;8VP@ zkP&8BT!Z??49^Z-i-oi7@Ri@lM7j#=97oF)n9pX1ts69>#kaS1`Vg@%4-=8Cw`vG2X}6 z%Gk!(&e*}&$=Jo1Wb9^K&Dg`(%XmNI1B`u)YZ&_(2N(w#A7mV2OfjYzhZ)y0u45cw zT+jFh#)lX;Fh0!qcZ_dj+{pL{vQPcVLfaR=iE89&7MB;!uT4>LZ+_z}ikj2~ru zn(=M~pvaJkIzN#-B3&jPV5H&l!Kg_)Er3F8#TGDf`aiz-5QBD(k`KM}cI zEG99wG$C1j5krpeL$V@^#o!5KsLbNpAnCJyjS#iB&wRz-frI4bpI z`_qP3@*(~{#og{V-e$F!Oj!ZWoJ6xE6rrb&M?% z+kiIyM|nK@?P6do7S|`KU0i<}w>QFY(*A_(&74~mQobomKH!nq4%aNuZY5l^FtM8D zT@U}oysi8y9SBRg^y>-Z_Y&TaLw=G+-W_DQ`v^x^&uot0WB!6S|GVXLrXC2v}{1&nwc`M-ubJ+K`zjFg5fB1Hi zJI?r#9P-ON{-0S*@&`Ua@_QIRoJ?{#VDwRURvcG5?iWE`5{b6`x}8=ILd zy_mNDGl#sl|C+s$_$Racjz-%4@zG+iR4jfk^%RSj82`)|_;)JLV~jEuGG5GhDdQE4 zS2AA1IF)faV=d#2jB^jj8hqBGS)LTFy7AC!q~|;!1xH`+Zf-)_#wup8J}VN z4C6t@!;C* zk1_t5G5t&O=QM9CJj2_OGgKaDEM}aMg{)^(igz+lIYQ}oTI~Z3n_Ai_!TV*8}6L7|R)37*{h6GrpDa3C5=xKg;+P#>0$1 zX8a9fyEaNESKQexk@w<#a zVEi%T3yi;I{5_*{mg1QH7eX3`6pISprg25FsOD`NC%}0t_sg@GeiP#@jPn_3Tu?0N z_+Biwe4p$*%lLD~7bUux!(wwU9zh2)+v@m}A>{aR@_v$2{0eihXULP~czjT(V5k7#W(q%&_c18{Q;Ca@v`l) znG3e3_zyiv@!_l)e*F9-E+O_m^~&T9KK;t%N$b?p-wRS0=H^M;h*nVE%Iw-3V`nzg|GRqjE+>BvFdk(*!FY-h@4v&i z@cuh9Z+q`%dB#)s;I@DM)OD$n_Y}iA>taFkYVJl5mY+jU(RGZHC!?@kEG9GlUY2UU zMIRx)W3WCF`HnN5U_8zEA{N4RuUTwQ+5h9m$$p*G<4W!LwVm~zW%+ZA@qZ&bQy8~1 zDt(ilA$@<4nzWzAyU5QS%zr}Zf&2Z?HRY$$v!C^lU-~-U6HGtB{we;Q9M?Hd9JCGB zmDtV(#xquaTv7?JN|ftjJO^8_z0vDWM-Dw_ zSWoCu($m7YkI}2=2VC#oxayv!{M21WdbTp2V)W|SlEa^ktf#Vs^rRX0GkW#JKQVTm z53wF`Iq6x!xR=qZ=eitvia$ni?S3`s5m&H2Mz5YjIpSKudd{$1?PSt3!sylW`W*i3 zWIa=+kbEg4-Zwi|`x(li=M?KXwvyx~w-B~5di@E#ckDb@?xy@~Wx1n_C2$|@SpHPx z(6g2GxUD3&nehzc*><9?0J{NqT4{gJB?+(&a+ew(K|A~B@;@ZJ{ zI~jK|dh;{LcBwyfm08imdiJxN+r{xQZevt&eT(Dr`oCT2Vg3V*ql{jEw&w8X1na4N zfczL?JizGHbJEJQj;rk%%Fp2|;}C1HIKp_8G42w53S%i_8RKlm9gOO@*z`VXXDT0O zF%Hn*#P$^58~GFt|0L6YJDK7>!}xo~KQRVggXP-Kt$T>S8Sab5dR@Wz5^TZt#y>LtiSaz+ zpBewc_*X_DPgsgKDu1VZl-dv6g$bYHjrd>;u)pyT4(H+X;Ag1a@TPolhFQLz%hh>> zSAG|lOSPcSTmCecze-xmF2CV(WFL?A`0>hrkjpVU`0UU-$(h$RsLF^@=BlbTe%!tJAS-W5My{p)Px&8w%H#h)`OOvoRX*jje9G_eDR1*B zANDDK%%}WGF25{C{e6MUbJg#6edJ%@@?7onyifVXUl_lAm->|7%;mZKzuTw0kIQrI zKO4DR&C7cCkF8vutN(b4%X9UApYpN)oKN`=xI9<>Pjh*$`~>$?{;$Z zH~Ew=^C|E3Dc|T*{y3NCs{hY$d9M2TmXG{NF3;6|&ij;4`V!?gmwcH|c>|Z{@_&_2 z`C6ayclwm?=JH(mea@%+xKH_uKIO&FQvPz;zuu?3!KeH_pYjo(@^|}`@9`;rp35ia z=wE)x<+=L5zxv2eK0x`))qmaKQ@+fne2q`}W-ia=|1O{MQ7+HbKmWj|{4|&6>feH2 z9>4#4wNH7KPx&IB@>ZYnwLax<_bK1yQ~s<^`S*Ov|BcIY?VrJ~P=0guUz52!m;5X) z&((h}^(pW6DgQg4^7nChF8@F6Q+~*&{O3O9f8_F9`I+?9@%zULpYlaM)*ZO`)_i2 zuKA~9T>hFI$M+YxJXd^?=P3WV+Rrsyo~!+7eC&VJr~IH#`7eF!2mg`c&lTS_KIQYdJXiba@F{=9r+lZ6{ZXIt6F%kQ`SI)j zN}uwZeacsHd9M6E>{I?hpYkvJ*gx)5{wJUESAS#t_EGOs{(7JCH*opYIr@hWa``nm z%D?7Q{wtsIf`<#+j%4|930__q7VAMhzZ;Zq*^=J@fI`jj{Nln-)wuH*Zg zeahd*<+tDgT)cUy;N+&$pT+-{1JGP4&D@#Y}qI)TS@) zmUfH9O^nkSpJlv<@xK_?FkaS;{=#$e8S5D5GY&95#P~Uu+r-xD>g?!i+aG`DZ)-vyuDPqcat<~vc&`s*1EYI0 z(p~(LpTQ=CVzGg-X&G&=km%xu{ERZaWIEnq=MoXV5Bv;&zFhgaC?r3ReE9EQ`{3#I z|33ZEPKJwTvKmD6`&pL4aZKrRe_adBQ6pLtk z_F_aAMdWAnU3ACeHC@T>-u|R}+igo4Tj$@oWXYXNTN@V4Z){z%pm|gYy2)zTvKg`Wg^xPbcrq>T9QQa^Qs%EvO z-PNnt^tJZ1_jTW7mDN<6Wz{!{R^4HC8G~G|F@9dj_ zO{W!ihKioSL8zp0LO}ld`kakW7hhmg^sfxrCdO@Y)8y_iJBHTQ&cVLn6#k)zq@~jB z>E6!P_Eai4l(rPLwk~gOnBRKOf@RAWLqF6y&AskAx715@Z=T~;S5{S3R$}IO$G4Q0 zb`JD+mAPwDtEaiG%T04eiE8_P3R3Bz;ZEp^`UX01|L+_aOt$t93=FoWhk83704=nW znBdNs;hK?0Vf(H-+&OOl@S2X~kUP-ru5IrdPNv-U?lf$7B_AAa?@#x>0TMINPu#7@ zpBf%a4wZNG4Rk)>rh4Cy)O*QYcK}26%vqTP+|jyx{=CKot;-j`et}z6EvsOh9vJ%# zcf*F<9JpJJ%Rns`BU=WZLU=Q>!|O{RUUCaYlFbY+XP?afEc|p8MhG@6OITQC##Bd^5DX#P5*AuQ)zEezd+?1i*Wa}a2$mUS zs5Q;hcqM>fNg#tIQR|fef+c|rR{S%)5;%?da%(1H%kg9uiW~hh5qIw>}8n+f7mXFo%bPf$mbxFwLC<2MwZT{FvrW zhwhoW%IY%r>UBc{{i|KnN2;a3jKTIU7>BREdYUnsMyV<{SD?fFaIkVIXbj5A0uu0( z@dC49<$%gfjx~~FO>e)<5tct})dUXcZ_1QqG*`P_Yl!?XfhW7zGhRS;tNgNCC9_)% z$C_LjmX^#6SNUfcj~%%(oC)zlno`foT4+M*1F4=_p6-!{RTyq?W5QA^J9Jp{%?_}Q zpB-Sx+4eYFXctf1s5!D>oh&5ifliL*h{w!a$@;&)IljUgx}f$8nenTk@!M~XTJkh$ ztN`Cy!a+)|S{kECTfG8zjMOuNBI*^reIXQ#A1yHCY>#){0j0X(!N!Gz^uO5fQq)so zM>D*p6pj(StEOeTy$kIUQ&yK~9&cbcm@BJ3Z3rZ(54?Wt9uUgSyyk2wYM#eBVi+yM z?8#K?NV#w-;no_*t<>0u((7||_G2h853VD%<2NZdUXIkt@bPqG>;&L373}LINTFQK z%Qp>mx)S zD|nxp$2k0I9#voO*4e@5toa!;aIT{{In>`iw4Q26&w)g-tg2#G-3>F{j=^Z6>q+42Z-%OZ@sIIMXXX9)N zb+Z|zJuo_Ny<^5K-jiyxHOMZ==(%pnjMvi-R{0#HB!_HFV|ONS?mEMrRSTo{+@WO> zEtTbJWRS?}ipp8l7nVpFGlwkaWhh~sz40Qh_Kg@g{36zSPWnM$&m9xCkLAV$ncTy< z{qV`i@K7=ZY_cg;m*W(Z$%G2lC3{!*z|2$19ZC)YH?)srm)o9lN1$D_LsNPX^4}qw z;w;|RaQd!lmTn8l_Rbz;SkT>_>`eErP4=yabjxh_a$_Sa<2T_{XFHtuQH!gZMQxU7 zZhL>13#Ub?GUYzFxULsQ_q8~_ALBR(jW*M1f@eH@lB55ZebNR}pu(DoL{DW;%Gm^W z$kWUy1x*>d1voE{MSfZ^$c&B)9qH(kzf5li^H<{^#c;w4&y}lljAS5zP{nxOjH%4* zWzZn+$lV~_npfDwUUu`Usi>{NZt>-`ubwsSsRyWe;b9@uEZlOp2lfF}CR3m3{kSc1 zLo)gM2G+UMGguPbf~)X!l3R^z(^<_H_9WG8jYgtRUdL{6nXdIgm~0%sdU19#_f&}N zSg~K_!$ckYtTF~|IG35@BnPrkJ7y*GF)oFj1I%V;4mGNCxbS|)>_%!UF0_*W|GZmc zV^Xb>+n9N^20pTibsbwXa6Zirr?_+XDyGk>YcX0K&WGo2 zbu+a`dWhuy&$POk6RplOllV7nbv&vx2KLnI=qOz_es7%BR+SX?$vhm$90uWn$@u*w zUSWBe4OX>WV~mg2WpcONS!1?b|Nii09~5U*%zW8{t_S<*h?q%h<}g?0LPp^{VXPq* z*I@P#tIQo9#FGo-;HW0FxCzMtg+08>Iy}N&?Q?kaJ3zv9ukkA$FO>NlAm#X{=6df4 z2rsGSuI%O>7)itbfqobS52s*Yh_g13gXGYfWLIxHoOAJ*QC{knBipWlv^zL7&;?i7 zQ)3U2yZZ*()3B3R7gT7c(brT|qPbV6F^IWm$*~G>$(2PNFtz3#Y!9!&qc`nP;Iq4W zXkd6y9?`32>A^>xUv7cH%&l~uCcPnbJfy6er3Rkt&@?^91o?3?Tsp6B%|Hrf(XWPe z3CXM7?9-YG+;bX+lWuyzP4^_-{v=cb{D$fvy|C4V-YlKVko$aUrGK5O2Xt$QFTGlZRbl7cRfph7KvFp+t@MT7ivP#t97&^vG zwtHd3Ju(7wnd4meVjeT+86zt1GwM{n@!*f&pNp7<;S17%t_~@ znJSlb?nq_iW?szBGAk|qS@B7V8v4U2US_Yu9E_I&?{1fUs`oeC?P@ZUHUG1_9oG$a z^7ejLa{>FE#zgU4IXRLB)fhXTQC^7;Bv2g>ukU3#98mvG$Xj(ng z+Xct=uH=Xu;NcmR8f&T3Lia%qRu0p~kdxCTHBu0qml{(&z1?Y~xTQGYNv|6)Mh|uN zv~pIbkEfi}pKuo}XH8&bmK-_5+Fr~Lj@Dp4+c-c}wZhETxW`4{kjeKZTBY1N1_1Lo zDZd-XavkfTLE<7H8Y5+PLi5tQZd~0}vvl*4t;iil(!(w^oHekL5@r!w)3DqG!e2Vj zU)~4n(A$TUZngL08WdPNbRpN1t+p&j6DW$O_eR!gTl@Qb(uOSKG+I(>G*;x#mAaQX zP@n@}YmZJGc3<3LTKQxJuSZz1W?H&8RNs+PZR<$x{nJoR{N+}0vwWI2jHebQZeTy%TJ-J)w0Z;la%W;Bbtr{Cx#&|>9m?0CcQY}HnJ7_* zztEqmI<#{mN`OBU`;BM|eR9#KsvG4ml)4e^+=zB=06Q-F1UGWv7fOIn@C)srKQ8)H zU3mlPbkV2kO0ZRpxp&d0YP@FS)}i(~uu~1WhcC2`sK&NXjcuU{+d}nBw1fUsp+D6#!B1mH;pRPK2Hx$}+KT;Q z>%3+27eU_xH^eMiytH-x{MLr1+Icvf#JNj2&U6l}861W=x6by#_Kx1Z-t_v+d>q_o zf%9@haK*K^Gi4gmd*rOz)->#ra<}0fj&_;KkxI{}%&i>h?ly_t-Ci1&BhBUlK3N^6 zJZZ9dkw!YTd^dbZCrMxl(z11`a#JVKY@JBMKht-jX`RYG+QHv8FL8TmN~bBC?I-C| zI*C`&Oh1XHbm}dNUgcBE6NmN*x9QJILn_itS<_ENCyi$8DjVb{l@raY6SqyBnwNf= z_LT-NP3bgcy*jCkJXZ3Wrt_(2h{%ViX?DF6oxW{elJe4!YTHIHvvrb2+dk2BKFI?4 zX6hum)~WeOgUw5&UK&!7X3A#!N%}COnpe?GKZ%Cl+K!@m{X{yI*}O#e(vWJ~mg%(m z5TbbN9jQnoKj|0IygJFU_EYnc2GhRM;H4>@rY!QReUs#{ls*(E=_iWvQ`3}AQ`Xd} z@~Dt}Qu2tTQ_IsY+cwg)pGud~V(KKCt&^;%dRH8%MeD@h7^6bdKG8_0woO#qHqx|C z;w8PPTk|TK>8G-9`l)DIC+au#YCkpIOT!Y|HfqV%N!D!pL?b_yU1iDCNi?lf^O6Re zm$vZ6b*k7^WHv8xdud3u?NGGl{;u??e3BiM#E%&}(UeZoq-b70kxpgWCq*Nj zTAn=6ei9#2m7mHd(rD(MWR;(|MIW+m>Qq{lPQ{6ck=ne(?WG|VX{Idx9%D!hBVxMw zI>)&mjbibXawOG?v$Z(3=B2){1Jv37q$3usy2DGWx)I0lwrq6=oD%Rr*3?+t;gyH8 zr8=)XYQ$3tQzvR1ODEF3I?+nDyw^6`khVR3l1H{Yd6Z4_+Nrt`DG*PV&gu?tOvou? zGU6nf9S_o^?;f2LrO8VX+4)pan!c+DfoAC>x?P_ta$BCF^wKDLTc?WB%7`sb(d#y^WD!lB zSjs9z&kVe)`8pY%F6FE_@87FZfUCSel{5NST zB0Hbd9h_2xtQWA0muh7p)L6&+FOBpStU)5yL_BR{isBHi>8b&^Kg4$*Xukx%{E zekx0*ywYgW$a`}?QdyJ!WcDM{N3BNHho(th*)J&?A;qp}6qWXq=&ID@wf6(!AZg{h zq7iy^Vw=H#TBovN$}1gS8s)^+N&0jfL0O_z(YAmsqNGB8_~oY1B>>O-EzLuIQ#tWlP%UI!2oE)YOUA@z0DMy`g=E_Bq-j z4fw6)l}1g|6kDgFoAN|MiY-r+Y#RDy`bpVDX_HrF(@R5Zy51;ml+^n>+Esh3w8gnY znzBW)D-TWEnueCNpNfvC>}#6Ly|klfloitsQL=R+UE0dXlMejW@>H8LPJ>THWc#V8 z+E3Kwja}1J`=FdtHqCq@U3qWnM2+N^@>6l?x>S;A4P-NYou-?)LwRb+I(D*R*AYfY zewz8z)^+X_4Jk?|(TL)uk!I~D@+wY~mmW=fIy)^Bp8qu*MMYUU7r;5ys2|1}& zw4X>LUPYrV(tgvUerM)%1@Hyb|dSO>Id~9Rr^WXR2!;3iKaXwokYWLq-&b; z)NG%~Mf}p1w6ALoOO(9QXYy%I^fP;HfkE*u0+1_mc=mK=Rdr?=fYk?(b&6PhQ{-w3 zQAKIer01Ctu`W@)g{J7*Flk7|$ZeXgVUvzouz4w?*)*^3D5+~h>*Su^uupYo+ab?w zKZ%y@C(^xsnyp6JCYtRh((s>Zi6*aVA(}?*#Ef0FXOl)5!d3$-po}<)Zrdk~cI-&Q zKU*h7pRJRk^74A~L0LC-qCWiRjh*QDt#vAz={wPEJ4hqC?Wdx9vA_39)` zHZOUg<3#=RPuo^BY1@ch)3fE#TNOL;(RVh@ZcB<+=9%-PXy~ggj})&R%99y8%99RT zo@lo3#B1wBnzZeSopSHxC93Hs)rZ#(Y6O2gI*DrQq$q9QRSVH}RD@ogif-B`nw?{! z$v884M;iUvei9A8ZTlRPA&)$E9jUBk`$;9XPTIT8e5n21ldTPrf#cPLZ#pF{ObUukf-?n|EN&7~eNb}l89%(z1Ptr!-+kUDZ!}f`C zZ_=nHvSX(xZJiXQNhABZEs%fI19O2|&5l#)Fmp^a{I>In6pFyqiB!9eROW2o ziJGmGG}^q>mdB!*b*Uu1`6RmZKU2qw=9MS!bv!ETUO$meIutKSQuecH+K%GG_|1GO zI%>7$u|(Gg@lp0{KK93GpCoD5hoT{x^0E6+8K8#-ycnoQfuWV%tO`>!zQYuIm$NUO$Ou*Adc)4zh-y z8LleRNDH64F><AA1okX*JN1E3*(xh#VpG5b{lLp%kYNWbEr0k-`vHV2; z?U;x&o95L?k$ZJ2i>7@=GkqtTZJTJ>u_K-Sbeyz}-!_fo%+x#OLe`s=PojI}6}PFA zG}?BMCVltlRIOgiD`_*IM6+#^#_T#$bTfBILrbh#tTmXk(XC$(&#S$>iw>3=3pqSb9V0Qr6H(bn;Z`M4H!kMKjw1 z(a5?PJJIo5$4Q>sZBa*K`bqk-{Y1LgPo&sw9=Fhnl$Uj>B4OK^*iE|fQ`1m0)fzq~ZBPSTLAlPuZx?R=0VSuy#vPr8njHgBFZUHeHiJ0Hq2*s=1d z=w?2ZN2X7@=CvKHIr?YnRNl)xbA2irqLL>XecLp&Z|4)ah|`wGwxs(YiiIe;Eub8= zF|SUg(bP#a)S-P+RPRg6fM}B9wd7@KnN}epxUSre9f0IVm z?buaqq8FN1wFMm~@~MnyK9x;Vr|G?lUDHqp$t#-aC((!ke3^VIx*5BoAu8XAhToWH z(+*|X>!-40`b7F{KPgK(N5rG3rk`4))=4zJ#rX-eMKskn7Mk%Impzmliu z&9?TdwHfi`<`Kjp`CHZO6 zRP35YztB&UhB0_`Ql4#{WQFpn8Hwuty57=oyvE!-W3f|`AIbT z&ZgP*u6Qw8lb7hWPHNvajiLuxqmC$-cI=c*^xTwJ`>SaiHIgM;C)NaIMfs`niNUO=K^k&m^y&=z7bwqs#MWE%0TlLANtnE8$q}F7{PIl0H(>_s=pX{g_ zLyan*nkMs}sUt-vH04!^O*3s12inD7+E3h4(xy*Hqo}k_(kJER{!Tndl`&d=s+{PU zv=wbf(NKf3gEaML`bjjBuzAtCsS|n7zNr&=Sk~}UN2KaVQ_T9HypadWHf0C3n)@c% zArG{D$_DDTY2>-`9X0BII(Cz;{M0o3MLwA{FCUd<>!kK*%9F3APV!sl19cHi<~Wm2 zqEqHg``RyUN71tRu*CKgDPBL7m!_Y@qxVg!ajJD&r>Y-aA5@R3_LQHvO(oin_8fdS zVkbI%D|t=RaVi?3$)_Un>Qqr_UWy36O&aPOo96WsImw!qS2WX4iruVt@`b)%{_0V6 z>peVI3!Y+XuOd|K9z9aO3CSaqrfSWk$!w0H6MeOHVvcAp)bgm2vT4(F=1jV5^_HJ# z-78NSwQZv$*v|43y|m@gAFrR}c{U%mQm;%rC+$UE zJG38V`-!pJ@~F|9Pomj%NtUzoiFEukV?rBVKaqx1n~yAc{Uk5Fej?TM3AK6ajcC%2 zRqu+PEpO)o`G{Bhsc7DMC%UY=O#397oe!iT#f*n&_-)5dIkM|R(QMzzlC4u&%GOET zW=yD6+BbYBn%54suxy=Nca}WWvTX-z&8&B7*D@cTI-)FjdC|+UXttkZ+1ozRR(9@@ zX2(vk*me}nTkk~2T~yrJW7~$ z$Rpc#Y75?cQZ~JLQc;;YDI(i8+8xVJ(yDophyH0l6-~->o6|IqHDXtEGftw>xAIfd zytXO&Y@O70ZF!2`OGDk+w6Xle=JlC<&me3oN_xefg)2kD? zO`T-Jwxej?dMCQ9yNrFJN&8teGw;Ypf3}}Q!*87@Ma!1A>kawPvNv|3XZuMRG3_9y z*)LIcx!$Zg!V;w0J}FDKPSTo9%g!g+GwX;b-h5IGd-=F7J$_O~?0gc<_8n>w{?jAA9fGomX{ajeh4>Je?llwIMdT*v62A9=VXbj0VyP^yxDOhoNCx5~%TA za^m#mzn?j4R;^W4Ys=U`C!F(Iwxrr~*Jajat-YU%Bz>)MRJ+wD*J1Uk%;$X3n^;!v z!q(i0cTVb1x0hz-NjXG8Bqg7XDI!3Pt<+&k7>ufLE6;qydK9ysQ zPfVYalaBdy#rk||9rXA_=gf*Tb=W)koS5+$eb0FGb7HGcovS{HWu9TL>UZ6lXXp{> zJQ+FnXzDW4>@&`+*s4cHvq!Sz*Um{(Q#mP{=uy}bU2_-O?HQ%p6YD&g`xei9&!PD8 zSmO}m*<24{D^FFq>nhV~&n&y1y!LvMWsNVcHTS@B?!wmGh1d9jb$jBu9y;dN$}{lQ zp6qAt)MMnFdtkku!i~ROcNK&7ojcETo}t}&3a>ngb)Jmdc?w&366e31Cy!U2M7o~$ zx9lOZ?eSH)%3U6-Ph$M+xhqoFCDYswMX5Z6nO@;3yw;9bubr@3BVxiUPvM=DJXW5> zx=&?;92-yK-6tdUJjJNSQQc}igHP_!#Ac5I%RB>Ptjtq5zs?>7#_us-6YFs}H#K+Z zD${CD%^s(&E!sw`&NI$spTa69VtGEK!>?=Z>QJ{QT6yx=YUlex#I?Gmz6Z|lnWw6; zh1J;9v)Iii@g83@QhBPvJ&vN+da53^@4_ngz%ox^R^!5xxX#Vo1MBv^#?rGK7oS9P zp43(LIgTRd+!=#iN9^WP(W*~*?e@~FapZUP>2)465_@Wmqikv%Wdp46l)t*(h1raZ zIKudK^5l_oUwk_MVlN-rp4PSQVoAL7j7n#Fd90kc+W9Z^LdW7Ho`G8|=Q**}-e$4r ziGAiNdorE<2#nt=Cn8l(9&7H>@)=9v2>!#A&&UW#tsplzGx$=NX);&tRW@ z2A1n7ta2A-+zU_Q`kb6}%&!#_(~MEaxHq5jQ0-Nxj&YK5k60nbsq0;sn9lf7rR+0S zVaFIf`&2Gu&wuinv8d<7W<4iHY4#{^WnXoXs^D<>k| zr)rXYM*Lh)V!|s=;ngRx9$S+Ly;RSz<@Xw&))f;{<0zZjcg5z{Y_H=j%xX9KCOzX` zcoNs=4d9QT1=e4y@Nxc#SWN{Hs0j99zfyT6qSZYbT6Mt4~#L z#kP3%+LN`fxv{o{8K(tXeNwM;3a^=yu$m7s{_D9D>$MY7bJrx+8mk&>J%!i!#4LWw zlNdiUcTLC2Q`PLciZtzYT>CD}YV7;G`aoP#wO5rpR=LZTUu!*yD1&UTD4Ba?nQJU; z%O_*^oQM&vacEsJA-$flGN*2E%=QzTy$sCik?I+^@%J82tlRU<%w2k(&*GE#YR_s# z?y|4BPYkw;Pg<|`oqO=gaftD=`xIVz66-vbWv#ogl_zojtMTi4jkvv@W4*TARizqV zSmjQv$0o+lp1UTu@>GR;97US>kiGATg{N?S?Yeaqq*rT9OnBuPc+OK;%~P1=Ip&xc z5#+e=RQ8!Cwd*=!1R^!IBCS3nTJF6yEKlBeQne6T45MHXo^;icHO!Q(!qxVDu1i zgi)*JKJi(*!18jOBVxeAaVfjHWyTF-ntX#$)a#Mz+{A%OR-b`qPQq$Ei3y*v1MBq^Uh65$azm3y4Y zJc+IKq)%yAU7;1Db*-@w)OhSm@iYzxm| zlxIX(w~xx_*t&;Vc`DN6NniRm;{=xDOsvjQ;A9r@h3V^x%~=RN^3S;kPOjCSNROkM zWIfr}dJ+>};|s4oiS^iH4pWc9mfvf9RXJlqY8+*=@{G<;dq&W|70dZZZ>^{BniDa7 zR-ekWVxCXQU3#@2QKeiDVv3)A%45$x&|D{B^f2v-b)Upoxjvs!&1oM|Skdq~v02Z+ z$Uo0#;QU_gYdxi>?5m#6bf3y-=1whntZ{lhrKc6&eJWD6SCrhhs1VOgo)H;X>N|DA z!_T=q$f|MD!w6i@E*=6iSI z88|&ePJxj{#dxOcDf`S*_R1^U3$OO_SmVeeu*Op!v#vZ=P7$T+39mjQQq`p%7R zukH&%q*;9i%j}c3iWNSm)~rWh^qPGNcm6(~#576Oo^g0?#*v*}V^TdeNt%Uy* z(oi(&iHqha`>eQXmoaAF?RmapGjwVY4yo7xpuUakJ%%2sOza0E6-Rp)n03UVq#nKnHf}` z!s(&fckW_DH0$wr?R!j3*OhkI>&WfB?t$@p<~i}nGq5~M!t}MqAy#K8baOugW46^^ z`DaYJD^KB-C$S!fSdXLWz|5pQBy9P;#;0|~gv^o=@{hy}UjcS01W;@XtQw5qixh@jUaf3Tqr$SDwVgsQL_#x%N@v z$x|Lx(cl?aucvTjT6L9a#>8mGrmZY%?!ukFuQ_6@Megxro_$7??lUT%^CU(u*{(uBUc1dYE%ZnR?w`Xy}QfDva2p?-Qq_+D(isDyDNQhB%8)X1Us1PFCZHqpD_~ zai;qeUUMSW;}Gj{sAF^7c#37sJ?1`hQjKdq#OSs2R7Tk+weoz63z5n_@ZKZg{5m-) zBg<*jGqUV@wCp^U`J5%{D9h?IGS5CE^X@Y;ueyxEng(~Vsr8sxou$BYodP3^>XT((FFvvFbAOn!9W(&xj1$G@oMbvAoB`!o%dm2%6f8sZZ5s zu*^Kwx5`r<87q8F%Q~Nduez1H^yD}D9QmZ&smr;c_S6l{%t`g=dV%KL!=J4Mt7kCJ zvp6yOQ0$4($MhMvqE%g~R#O^AyLLJ26%+=Q+8~ zIKtN46}!e4#;?`B=Pu@EJNiCtyM3I=KIL)7QFWMMt!Lo5p2GAseDX+0^{LpaPsXSI zv=8f!smfDNHSatbhyUm|bcLx_855HA*hT(B>{L%iqK~<@X&GK8&xvK9)RS)Y8ThKp zGm~eq?3g&b^luM6JUF`e+3xJg;q&M5`$G?I-WtC?^v0h3V^~T1H>P|r<$HVg27Yfp z$%iL_@59rS;m1o!zx&Dl;Kqz`crtw*o*abVd$39J(1Di`19FLhqiM5$WBNku;05L* z_Pv9oe}E(Be(&%k^qCRlkq3{%o^seQa>U+;#%fkOU&>K8uDaoiGwJcr$>E2r!EeN1 z&*h6gqrQ@rhsn-evg$^epX4ri>Z3X%hMi0Hv0nja-HfB;;TO2_HXKJD171c9)?n0% za?BNFu7t2beQlNu_r1tEJGkSF_e>oRPO^wv@f|8kIWg;@1KDe9J2v8t7@U%*33uJdiBlXl z+$AD5A`Bk3Pg@N*cc}D~Ig=iP=VE>&i!bGvCCLLHv&Z$yDzY~w)33|4nK8KPr(W!9 zs?@My&#a!T+T=@AGilWvdD#9odQL6+Q+!@UBOayj%Q;TC_trWSI6D(KWH6aAa6J6l zEV?g~)emxIw#EZ;^p9+#f0Q|k(y4RBnsdeYIZlLfLUw~YGmTtL_8LNt8Dre($GoOI zxYB|1d7l4d zOQz}{S+jOChODH=&Zt)0*BQ}ppaVDAeVOc>C@)Uq@bkLiF3oED#_xas$;U^Z z|LWHte|Yrar@y^&^^J`D`orIU^y!snXAdvN!!O;D>wrNuIWcdpDy9W^=e_&t?ud?l*1S0$op^)M;?Rn)IS9883UC| zdN&7O;*rzg-n+^E-H|t{oZ=lPo#PhcbZ|tp5sz~4q8vS-9I?@*qz@*Z6Y=Ae$4&5^ zzGgp>QL=w`@VyD{Q8&sn_Ut9Rz~`(Lk7xYTr<9vH#T zjKSmSYpw}Ycf~X&pk&sMvS|N7yYLk`B9EM?xH49!@J-S{ID_y zjwvp+;_=j*y}^VJUa0hljqC<@%E6s-?NJSn`XkOouBz;z?Ew zB+t3h@wCD5u#Xv~PUI?CHI%FxQjXq8t}&uMJQr(CvT~xFxuYY4N9-TeiTwiHa5U#i z$C0CXc6-X<%d`d_*8-w3$CP7Vko@kLT^`3QQI5JxR-Y)x97~Sa+`FQ-+@nID^4xcg ziO(hFSyRfSq(DMFm#aV(4jo9=eS;3?YOon#~v;@=7;-4#G@QM zu)_?$lp{9xj+_VgjHn~-CX%n&1Kd@(FPqjPE4FaOmON)y$C??+!Ar7uNmi{TD?iFn zPsuYzo-3Y>k!ui;o%F}jrvdyUtIN?1>}Q& zk%#RDDF#>Jw2Au?+Qb}7j#_bgr+&pAal zh~o;G^59-F{qjDQb8KEm9k`bScgj&i?j>Q%{bTCn^+8{=CX|Ca_mXKdd&_&Am@Dod z5rcBngZC?QPh_^UCfq;5FXiCNdza}e_E6f!eG{t_dnje*H|L6bM)>7E5nOmL5;Ma+ zBl6?DNZ`B|$#VE1p8LVQBslV3B)Fp@1Lyt`IQNXu=bjOD<9-qGxL?fcAUhtlW;dg^ zl*5-~{7YJbEr!^Co%vjrBqN*y~A|vpQpN-70rZV(h7s zgD*1jnI;~!l^p!IHdQO)`C7~4m=npWFQ+~FNjdgyTLr@xCtrOg9@kLHtpCh|nMEFq z5?m-peP}gxV%E8uxW97E+R93{ob? zOS1B#9JQhxy^%a;SI4RYwx4<4Ld@e{5*D0AIJ9z2ejp&aXja_q<4 z8KP&DV-_gK{zy4yUGjXMfyZ&J=B_g9Lpk!}jH&Ln^CUd>9^&9-HK&}PBja)GMRu1k z^f+Ttcg|SE;EZYZYD3zsG;P!C+b+e zq8#f;vf@$3r}5xKM{g)cev(yN%Dfgt&+X2~IZ}>wKsoZD9M>z#`1E*lkKhWLvDv>I zgZqJcWh-s)We*}huIU?z zRIbG18f?>6V$Ai)bFq$WR~x*zZ%2N1$KrX|-GIwnPwFdoK-PTbVOP1K7qdt`bkT9H zsffXq7c%=d<(PYWqz&8rQi;EK@{h+Sr)LjOcAx(KPapmE=%YXGf3`c=yK(!Cz=<6F z_QQ`q|J82q`u@Sq(|qQWcINDKCwIqJ>}8tY{Na;N{_yG1N1y!5$49@pnxoGbYHr=o z`^@&^g__AEUavWAAFM%zRF{nH;iK#A?VpaBEV@3!6WiN6J?-}NxM1+O<&%**Cv=AK z3wL5wPmvMF=OH*TcIQNlX!a?r`$QCcEIy5Wvp1~STQ;knaqm1WQmqs9tWGI+VLgt} zl_&A6%dAM1T6GbrdeTmst36JQ zzDti^yB+|{SYDgdVfAW{3^S&glcMK(4C}JqiH3)2FApnLd4_%GDSS(}=5BhW?m}3* z4WG8=8>gj5@PK;s+==!1q~_XB=vkdh9E;NOA-2&Y+FLB&lX2vX7JG}-;#j05ck6Jg zon=&fvOf4IxeJ5W=F?)=wH=vPdwJZ#mUZhE9u}-rd#DHvJTRc_KZcnseo_)o< zmvwEbnypTXl6)FNvP?V&)^c~e%-z6J-wb1gdK|Au<|$o#UF^ZXa{_z(8@ba;yG8B0 z;cdPh1Epqf6`3`r9zLxeji>Nt@A`$4VO`J4vGTMmYo5%p*F%}FdRC9ZlXdA6BZw_lk7PIK`gI&U%&$Ps3YIVwz{cJ@nY}y82YS%86LS(Ofg{ znNP-YJts~{J`)D64Fj_1wR*}vzGi!3-Cn({K8f*T<{sVvqNdfS)v55L)<&F5cv|hM zy;;}X>2dLC80tP|$$4rbx=+QoxuKqP=X_3#QuQfa<~4J73|=cHe8oCX>M^I)zSh|E zILSQ@B5(2R^<)G^%ADl2<|ED3XLzXg^3XBklxj>{e)M_@UE{OQ%_nltGiR3SW$8O` zt5VaoDz!Lf-QvW|EI!Go`1B~n-mon_vTC_gSNvz4EJn-IFtcxZR-?+({Lyc!onfrj zf`P$`tvngK=OnDf@$8FFXWw&I<}JRMR_@$U6L<2^2l7d|2TooQe_-%XF?yV_rAKVb zC%{yvp}YFD>{}diFMX$d_{h4#D^JHtK8BG`%UyWQo%t|YjU#l$*4(Lyj~1WE;*+^| zJ?6gj$gEpE`+AKWmpJffYoq6Gk!n9RHH|0rme|H<teG=LBS!-|hsNCYS^<8=vr{wNaq677`2=jrS2CNx8#nv%zMe*apo}UB&_CcyyYY7$s_8P>*>1Pr!q?1 zO^;}*yJN7eeGeSpYkWqj+=*=XG!HA!Ry)OE?xh}z(zr`^6sh_2X{Px|egh}7Jr zwdjG(T2EOo_O@;cC-te+SQE3sQ+={)3jne4mFp0!W%xotl3*$9i!%gkx%Do){UoU zRqQ?bf}!@wC%nxM*G<^qG_aIU!nS-`_EAsQrS+&s!g?H=nVkF3UE@QSIq9Ck^t4(> zjT{r&b2pZ(bFpWX6{Bv^b5@H_MXa3Y5ue?D;jX?dxl^y#PFTyG)mV5+bLB}q+iTvd zz3Nu$5fv``5;N4UTIy+7N7md+R% zGGA5=M#?^UYuUK?gMMH@|t&RG=LCw?pxx`_lG+(l1mW?O;E&Z?tCB*B((9pH`FT=fEmY>UEyNpx1d?MlHT!-RGJ+ zku`UpL}V~?Qr@ge$7=4-wNQ?c-$s!j$MAk?1>3FG~VRdeJ#98Wk!dIVGyR?pV%&)1& zIHJeu(|g(bjvRF++Y`e_i6f-uP95T%r`T6c!kSNGy6PGC+9R)giw~6bE8Gq1ap)0x zt55p1JT)!!W;1W|HL+Qvj4}W4nQ+wv>nJd@21=e26WXy{&#Y_wn|K2tA+F{9Nd(e9H- z=SghQQ;mI=oDJh|uc4e$8Jxo@)T0*={~Ke&8JnbV;erfveq+vGW%i=y*vx1 zXOUMucB9vm7(G;<^3t(|r?K4NX?Uv>FpKZkDEeaD%6(vEK0~+0moB|dp2pjzp<_H# zbC>SwlgR3Gk)b3IAXX1?TZ7<-&*EX^&S^3ZjOuGs3+ zYSeOPtbC2MW5X7Eo6r`=Cb9R39_eD$tvxcmp1an@GE3yR(-oT&yQ{osN`-+%xB?g6WVnx zR`c2WZpZA?;?uiS?1{C0u)fT+>KW4wpT@K1X&qYZ>2>CVxcs2k!qafCbIhG%rrWX1 zU3#ift|xGHv&Oe5&>nf3o-{kQ#gkZ>8`;~}W{)VT9Qgv8B>RD-9y?ZgL`?YVlOA)Oq`Sref|^Y3re{^!@QEx} zU3$p&)Zs_REOx0U5%#3p8(QiSn$@S!&XXuVR^2sD?VFh)cW_^L+T^r6X}!d;X=t%I z4Q)PQs9CH&iIrKRo~l%QTI6+>#Hi(Ij9Ndy$7XTt0T#z1ExD6@@3Cc6a#uE0&-{^n z^XYiuDGXmzo;cFSf+5=KlPtSWRj=7wMg_A-8$Ol0b7Cg(5j-bmd0IU)mU~oi?|Z^V z?t$@pk0(Y+xhIUV$IJ_lvsssz#ZP$}#(oq`nyXJ*uez&GA~km* zTRb)OEk3Hz;#f7BPhwlS+dLpv&WYIKlSq%_Ypd5&vsC)ddA0Z>4y)5^>=2v0zV}4zITBTF&p_^;xSgA)~y+?+(ItgQ>#>uL@V4JzCdRdoVnQO<0uh`1d zSe3aWL!Xhl*|lQrsbG>N62sxb4Z^|Z?MoW!!sf+~y?HMVJP`m}kNYlim5zuBAL zf~g|ydc+DT)2eHkmKsx!A6?J*^xTbA?NLMudqri1W<4f`ILW7Qex30HG z(J`Vcw)RMs?|A}k^)S6wW5>$Oi;b_@l2e`e(A(f?Q@hraRa$u3S}1vf_fjKH0`uwh zG`#slls>Z-x!2QJZq!qF?XfX$vtSdqVpflZrx?^cIU$)lE%}js4y^S^xWyVh3T(Bn zb$31FRO?Ax=O)jmybSmo*1!qXTuPQq6EUJuh-W}ev~^HwLJou?vI?y~N=)1GI#F3}CF^qo5E+B9_O zr*!Mg%X*2;mA%X-bvJmjpPi?AoYscfZq^e%*Lp5%lR5U8vmKFjYx60*abiY2j<8x! z=-A9HKCO2(PiEQsW>}9+y>%UtkM%Cs$*{$qOnYo-Zsl%XH*{Oyt-{5pRd^$J$G3Eg zPt$AlaBRt4IKHO&cC5!)>JB}YbIIND)xOnOdZ=EFO|4CzroZa;+*$XYkN2X^68%}1 zyUz`teQj6_n}z06RjN5Tmgn2-dmPilnYNBxx8|wJ*F1&w*z&si^xn;xM;v|RdN|a$ z14Z>VeUg9oiRv|M=_Ngq>4s0^)$OTWFnDA?J4XJCPm8{x%bYTI>TSdU)~|6kA2tug zp3yr`0KFbKHtv0v%MX8b!w9}7nAD^Jc{jSszryG7}Gn`_hN zc!}@q3nyp4Vr!4cF>x}6Vmb13jFCr=5>|XpeAY8CW9pm?(=1e7I+OW!`vtH>Vz>s`AyR@X9H$?9(yCsy>PL z+zqqxHQiPZ*_yr9hMngzE4uPzm23Qnl;g;2*OO-V={+tvITmZnI2pFYHlBG830?6| zIWZspD?B~h1*2Y>C9_tYvrk6BN44+k4GLDZO`moq*+>1e&yiEtWA=?F5KURu6;^nf z9+_1=X0zqf;8hpQnmv$)Is1jDGbr}J@KNKacB3AVi>>R_ql6Fp!00sMBy81deRo~U zpxKjYw=cb=&Ozb3KjE!adNQ zyYL?0(9}2AT4QhYNVa5E^W-X6;t=a`)XUZ*T@jitqjyfis!!D5qiJ9)|lh)lQGb(*E`yNLVxAIh# zOP+`!2APwv8k@w)zw@+&>MW7BeN>+Y<-SXg`P3dczQk9Z#-6PD&})mM8g-v$U2CVx zw>Ye5_epG>C7+t^lh)lQkqtd$y5w%`7hPy>VM`oxsxxnSH%@^ue$-Q#)jng4yYwBp z^vJ4IU5itED)ORd9!l==X*DfAJyykh787?(18S7}PFwSs<0~V}Y1l`Wsm4}u;nk;N zGq1_XFy&NylGWmqHEunUJ+-q>qWoB~RnPd8+=*D9QjZ)1)9O>29V6Ovrw4wly0ylp zwB)m~*RdL?2fs9*n&ni_WxdkMs=mR~dtZDiR*i!weHJt`TRt~<8q31n8Lb%EwtAW_ z86=)y$*xy>b!gSInW=rZEZf|8=G~|2S7Q@fc^b-jnEjwn^SfX`3+7q&+-2Q-n%6C? z%$HX^@kEULVet#*_6ZwxFW8n(YC5N(YjdNum9W((tGW7AKfO+Fk9u0?Gk0OD9yLcj zlRbOV?OErB&Ax@Le_wnW-h2Y#4d~EY7ES zSB1wqN|@EI>A`lc&8%B$XFgl)7?s)N8Vj>HC3nZ0&+ssFC!$y#BVOxC#6D8(0?D-t ztn=h_^jVTWeCCj#2Z zr@FkX&B&<4XO^a4?M*jxH$9>&Ph`YcGbhWZ&5dELM#Av5`&5-GPqD0d3Tv@Fqs6CZ zPoF;-;E zVqpBjU#OJDF)C@JcZFu^$8%&9M98^XwBX6#)&9DvQJ?( zj#+8TTJ)Iv22Za^>W8cs?l!fBr>%kwpEfnk-mu1r zSg$*dt?p?ZkvH{v-;Fs=RZi6Hu|3D?(^(dKv8*)~R(TQwvgGdUt50>kaPn+6^w_t? zlX2QCT5O9y`z8!uQ#}IP@@aWBUFzqxWyi?0VqT?%C$v$Q8s9yXIGiMC4h;U{qxc+n zitkwI@xZzsD+E5do~BFd9-r7^52mZ0)uZ`Thf?nJX4U9etC8uECE_eT0i#m6PC_=Y zt_Q!CWA|xz%~P4zJcV^V@UX8P6MbaUNJ&*Icsa=dc#zU6vYH5fm~ z5u0U}RJpuY`fT@lh|<5+OgT$1;kkHA!= z$#de+_1Y&4d8u|83+@B6+I62gTXl)`IEIb+3@deM^-1f>$uv=c%#&L9=Y1bOtxk(i z_6{G#9=3CC+}^Tmu?@>TO1eG1G0JhITjRKW+3Sb}p7V69#F@G?A7Pf`SVy79O68nf zx75=xt5Wlc$go{~vMQ+`vakIh8%}7AZJIdKeTH_9FRa#+m~pbT5#EGu`NWyR(==N> zse}4=J?6Obv?{fn3~TmQxfR>?DF!8X^rz2_CcejJ)e)!l$aHI-@JElOo}SH$S&get z&vMaKon}9jIp=1<7M{{=Jjt=mjm2m^GR*R6Jc+fLr>=cgPO50Zlx6R`uk4nS805L3 zp6P~9WunUG9tCc7_Bu^$&W$jAtv)Tw!ZUPp?v9n*i3y+i1V;9qCnM!q)REB4NsQ)v zOucQNou}D@Y4d4wyJFBwefL=G-sneQ^jqw$$1QjDea#(w7N6GlZm;ZX9ANOf@I;N5 zdMj!KJ>iw7Fn;a27Qe)?+*94%mc3kf_S{X^D%#?- zb>w=>d@{DLuf$0VDtBRd7G#UBt?!PLfAOhEE4HP#U#4@Mr~#pxvmYdq2|KVShgM;*5fdn#+`cj z-1OONhht_{ayM-8Y0)=)ns&Fhy>|AW^OX90fqNVoI#n%?c@CDoA35-mOE-S+Ik#i^3 z;|S~XiJmL_YESCjC$Yxet(V*l?>rGHbFy5>J^3_@2yAoT17GavvD%Y2y^egCw{>#$ zNn2`HUDKX5HhXGzp9U>Fg{ItPZ&hw_R_-3F=k7hKIhl2fLkyoKj(Sn&6FRC=&ONZ~ z)3M^y>Z7`q9tGa*ts;q&^va%Ue2jamr|F_9ohPkxp3>vjnR{U1(|Gbs_bIG$HxHnd zeab81Z1_a&)7&WU&NI;JQ|Ri`@Wp5Cv2+lp>!GUPzVM{=hHmF>Rd2al)i-jt{?*zu z%EHMQb)RGdKAk79rFOs?cV}6AnjQ3d?!=8js=Zj&xpA!2NEp60orS-;4xPI}`a}PY{pgWqTgCdMfjpyH{h)9p-kf_yjA2YwP z@H9Q?p?MaGM5LTgptVP)Z2Dc7XEv}>53^qC8R%kfGg^EiZ`Pz^k_5$8v>2T=RrEQ_A8G49o;;q;Jv3Pbh{GrVKQr}xP6J!@Y(6qi*9E7^(=e}7a2nXEx9yW2t1kOd@`O)fmS>7147QD@ z;kkCSH(oV&VJ)`nE7}VC_Ue=I(=17stV$f?+F~2?UeD-o(M4>2lsJY_ zJH>Hq%cuNSUGL|ZMIEm`S&h{vGj07)MnH2Mt4OVpO%gMzv&1NCo?_K}LeDrQ?l`uO z)u+4`P8O-wlm2?{!kGK-fB(tHN1y-d*B^g)^x>z!y>j)9e>}N=ev;u|fB5^4KE3kn z?BT`X!O_Lfc4tra&yT)(dUkyD)#GPB+kN``KYjGuqmTZ$|Jl_TBCm`QlYB5_P#N-p z4-<6`_Ckm0hK^BpeP}~}#^7<-zw#Wa(MtghxEH z_ISo<=$M7&VeEiM9y*RZz;Is+jLGir&pP11>i~vBhjQ5N?;Rwa1K<&Z)eT=ZOs;43 zaeK;P&-&~QoG}!eIQ?okkrVKUfipOa&4KdNJ8+y;2w$uf?dgkh*h-cyYeW5r!I}W_ zI#7<>DNg)g;P878bwl)_Lpf{_1^A4?xPQ@ToMOo$I<<BY|7yac0&i{peyGA3G)&$cn%-wT<|3vIQ-5v0XcLaxeiI--^hu! z5rgN#hD4?w<&^udpRuVhXPrDkAB<8Ss56dJt&(1Fr%v!dXGd(Sq3ct|hvi}QOfht< z7_4t_w^}=Q$zcz+&WU(%w~~*w0u9Vzt`$^g9mnjWRz;3n86x!QD|!HaMb0t6WUN8( z8tVWV4Vm#G55|yRtAXRT0>`Y|Vi|d83Cc!t%nTxowF0)oo^t45WhET7i+Y&ttQALwTD#^FW`_&Up@TTo2N~DSLkAYRaL5-j5iRsULap7`doE zTq?uYjKPIHV=z6%;827<<%lPF_8f&ydeavTViqaGh37{(>ci$n-c$-5$}@)5D(PWy zk6O(bh@J58%QVLNfDFD~55>#13SU;!q!)gzzOlXlMjlq@fukPI!)gmWVu1JH$T~7d zn?Lgvb*KH5BQ_0VzA2;ZUIWUxR;WX)37EvZ(wusXXRd}0{RU27ifuW049PQwO#bZpb=Lokxmq1BBa)+#V#8J6{PkpPpy+;ql4Z}X!L{2{o_JhqsT0>}%X;V|HuNI~vrYRTWcjixjD3u}qEGOa z@Q6W5kq2e!&lo%ozZ9d-l*2D-m1NdI`v>_>ooS1TmKZ!%3|1Wnv(G~&$H2vLtZk3S zJ_RRwsrxQYj(rzezBkZo>=RZ6-zOwT-iSQ(={NGD&r&Ps&2zZxh&m)2s*IYzKJ>|H z>PI|+IR+~l_EufDx6IwInWD2ae2^4s#wlRt(CK6XoE`x&>d#IOV<= zBWi^hKF83d+Q`Fd^3#qgG?xm3WLjXP2pmU)BUg@j5VG z)M0XG-l5ODLB#Ya<5ZGo43eFC@H=d16gK9-?NQl;Bc|c3N7%9+^f_xqzo7@d9)mLz zHV_97$`M2I%r&^$jHDPgC(cW9*i62}gD-MJ3!*-#+E_!BWs6uyYvw`XVZ#$)BRSRq z@yHeFjrBqGz!@X-86(dXk3)~~B!l{}F&b`9Ie1Wxc*qm5Vo+wh=m&EL;{AmEkYSVL z(4o_qJ<6d^85Z7uhL|xJ0LVBuZNSlEp#QK*xh6dPGVjn=8naeBju?_7U&c^u;@E7B zht7?tL>YNGSDC5sPIDLgaLMJ(5Sl-Z&7(8Z7zeWywfUu9;={NEdN9ofvbS78pF=ixU=s5butWwX% zoUl}ZQx1I+oH!1QtM$0dt|5MoRS7-I*l}hxbB%Zw+4U{5$CEs3W!A&qth{cfIb<9q z*?3^=c-ger+z)v~9h14YdaZEGvg;hRaAbPGcr@gx!)0gj&{ZgxR zE@CiX_@x}aBu9N1Ch9{Tvxc;d7_4dVqC8_z4qvFx@P%p(UzDTHM#}QA%BEWBIP}O% zTv+v}73GLwy%{>H31>;T{2&@HSR)TQ1({J(C?`2=5XE(%J@lEkuSc7)se>9|-OO6i zKI#ZI?u+?N8Qxrne8U&%;(u^roFPMN#2_giGhZ5n9%aNCIDEToYD0!zlEV)w3;mSG z;KD8=rrU743mftXUzDZ8ZbTlG=~ulWznKSQ=*eDk=#h(Jz-Q8-Jn^W3)y-#5^2~$B zF*B577LC@hp^A7&T`?q!6XlqD)*l&;TJdZTMp7jEgUo!E)$NzvLeJDA%6jwB>I7Pjak5l|A)*=pf$Q7kJ@xKZpjM$isR*^bpzmtK zZ-&i`ZR>I9Ge-EOtk|eIh~!#vn}~j}ZBvdt111AU4WS=-;DqbL4tUg7exe^dhm&4k zicu^2oj3|Kbiyx#1t(y`mNIQ4hK^-V8K340IShN|9_!2M;Oj>6tPkgv>jpfbKV$GX z)`#R&D__qDkzycr!qEiJk31r8l^W{rp{4v*iRnBX|L-I<*9=M$H{5t!9j%C zI5+LdcjCdrdf+(a@JlD*heFOn$MQuPO|W?ENA$pYlkkX5JYra#$GSnSFw@a<)+*-O z>NeICxFi`7M}1+T;5%UlCze!+Ln*T&ez1 zE1Q#aF1T|RVB~!wjpz+dBsum1l8E(hJ%(+>;4%Ks9>$)-G&}~(hdt{Vu_;em%27|s ztsmnYavU)jJ93}#SQ9KFuZaa8^3-QeGY_ky`?b2cJ!(a7Q7bZbneddSj%77;5GB=$ z6A`{_I$X~tV8}BDnS?&&m}7P@Y9)Tr4-yP}$N*$?W?7}gQfgZ1D`IqD->eqlNCpd2wI&lozMHo+ay zl0CGXBXM%H#|DriKh6lMZn)&!bDSCb9p$Nq9ES}&yUY;LbIKVHeY%;~TJxIpreCY# z@C(K+vs&SoRfu?$GoJIX?9JX7x{YMnNLCEW_#FD-SNPNcld(Q{F6uxcQ3uHp!?fJ5 zok{Z4i5gI&#+WtHx!}T@1m9U7(@r>SJRWN`ZEK8NE6UQd2ySl?+^=N$r5rVo9JZ=Q ztU*SP9#Y1U@sb?Ah);X?8#*(FMR(l1j(%7cgD=m8ubH3Cd)g~wZx=3o%2+HGLvo%g zy_ltAwFxxbHP{g)SK~GhnQo^Q)kAT^%zsY5y9kzdTTxJC@JjeT3P;z^F) zB7*Pd%qXsdmR-W*8e`d|YZQ;;8ekc@jdg8Y*BC?bnCZN3Gr`d(mdobNssa7TgU1nH za_A8bd&&_5RZn>M1vqplGw+DOiiR)AQD1T#eHuKh>H}vDW^GZsSm%Ie9#;2s4nABD zu?NmZD<|tg!KXfyVr@d4d9d!`%lhHIB+Eu})CzTQU#u-Sjvh=u#AhDVgO8!d`1V-X z@bHVCC7m22@`ifiN*ZMi;yC>BT=+$;9k+faIrOc!1D~~}lN>|GiXmAsC&r5AiX26?+`l4fT9~g*c>~cd=N{lD$?& z#A^uC&h$ibH? zQ;zjydB?s0Kd7B%1b*@wv^tD)P%LuP2l0k4mNxRB`jjWm7&8ynWa?3le3ALEXN>SQ zXFVc6%II^dmGa`eTCLm{YXu|A-RkDCDMxGwbT;Y(2Set3kM#jpvF(O_-c=^?7AZ;m7Eu7~~#)Est0ePz=8~&t!um4Te1D0@X}7vK@I~Z6$j;3wu;_ z%qT}RW|VT|!4^cHKq=|u7~nc$P{x6AlpOYxBk>uVa>OIou(jfhJlN>q!tz86$%+R5^N!U=F zI*8)+q~EB|jKRRvPqWJsj~<|-NuK!h#dsN4Z0pm&kp<)#0}+N_%3)7A>`@cPtxsb; zvL@2Eo(&uxQw;0J&|?VswSFX=dxQ1@a-4E-VsEA`In{o|^~ZWM_Xe1VqphL1R$Fkz zAP)W(TXNI@6$d_Rg{;Ot0fu95pe$c3NbCia(bLhhX-jGK!bvuwm?pllOrd_%X#oPapFNjzt&qjg4$=FD@VtEdUM4;{t`oU(XW7SJiR zO6O28_d8=lN--#hFJ$NOSdHLEnRvvos=HswQL7n)l?r>9vk9YaSdl~aS!W2qwN^gk zIA{OehH}^=%J54$@<4sGJ~TV7!&;>^h;!iRdLkf>k|QUEn|Q>qyoc@N$Gl;XYBf3X zT-aN6eJ&}(pZCdzX~@XLWlY7;L1okILgr@TdPr;Np=-mQ+efSw+DA?^Hd;Ve=7)0b zISz3y>JIy%2m67;BFVJpUP40nm*k1lPs|ndpzL~#7kUggaoWf)@yMGzCLWw@B1??P zk>_SS%A@BaHo7@tOP)Fr4|TQtA`cyh9yy8^@rZ|h0hW%{)@RAWjroSgz@ZO0VpvW6 z9A&>YSgpgx>N(d0$9>jq*v=SCIy!&*?(JOm z_;0)@;~>d_vuvuNR6>X9p@V3{mhxPKr~^*LY%r;iQMDvPFX{vP&_Okm95@5#JajBB zl<{f4BnLk806&}x9m=6I^Po=7gY}77k{r2nX-9n!!`BLOW7E8z$YZPza8EMz(_9T3 z)(r=vCUXrlp8TRV$uGw>a8Mt%bTeZx+2BG)!I3f!ylxaDC-BYlGuDR{$n&E-dv3Y= zEHaI0PkGh^N25Np_x*~Sfy>A>$v8^2f|lDbr-&h0z9>fw$$`^$<~nV~FZw~U)1I<( z=i>IcM4d4XUMt90pUMd`VkS9sP-*B#3^R`zH@~tc4o%g;{7yOiqDRmPeU>0}D9?Ui z5e>d*?BGioM;1e}d{GWxDAcf}a?BNFsEs^y9Jzyg%n#$mnqa(ygV(H2tQEwYF%Y}N z;Bmx2hVF|YB8G(<_>9e3g_tl&K#v zcpSO2zBuVUP`+FTR(Fp_Ie1u|V{I`;lA$(Yz$d0xe!&C(V>U=Da;F?Qaj}FB{e}+Z z&_N#1i9A@xSRbfa@&&%`%W5)Y+RLxiB-Ss$&_{kO+=#(r06r&{Rm=?Fz^$VLkM%*a zU}!jmp-&kRM+{h7Oxu5S;5O4Q;pvOnj`~23x-r|pE%OwE$HB$2w-`VfJjv35#?Yrc zbto$yaq@_MU{0VG=WK$^uhn#{HN^9IBMyt90}GcKB5=yNA2grmrZ3{t9^BlQWjN%i zPqtHsu_F(Q?&mDJ$CE4@$x%=1w8bEc;4V4ziRT!0cG%!3$>A3njo6f@PSnaY2F{Mm zewal$7k+2%tPbm|H9vbpJYt*Ip;PnVImVQ|9VA)tsDsae2Y0fFT1gIl^E&#$bCZi5 znJ+S*`wzJL+GZB9e^^Go{wdFO4v)}}o?8dU^%XJPhS?&x#k0)Ez66VbGhXOWjyhZ7 zBL3XiHq2ugi#G@SX zti#ZWJaioPO?BE?}(+4BV$_Fw@UuaEil{7epgYoK~& z;pSW^y!0qXJjsDizAPX<+!y80nOvzuu2CyGjd`Gq+IdZQD>3DmE2~eeLFAG3QFOCK zUpOWs29HC}Y7+C#IwTo~Zf^tUvN;=a@L;O6jXW@803vtFkvn5dIe0MF*rzRTpC!rC zXRbINF?h^b=ALM?;WJJd{|Am5J73b6{fE8d;52mPGx7jFY?veC+qFIMB_8o4&-@~u z&BCxXgOP{LKspzE*(5}dJW%T3i^?V$2ayNFDHET0pgY5cey1Mi&#o(K+K{I{h$Nk9 z%O#(Cj@Eh%)CmEjZ!BTtK^4VjemLX#K|Sfj?4hvcC-UHN_+s#|ryTZFz|p7)j*^`5 z$Qw-4?4sw%7vo6}y&ZljhhNF^D|zY%SGpwE$U`B*hVi2&@H=K2Hc5^dwYiwHo^%id z`Vqrw;&UZA@&%JQ?;QA9pSdRBYvRbub-3vAT-hSDbC$c?SiWPXQ7ZRqc_$qlyDj}p z8GJ_`;5xVR<#S?-7Ge zA_nCgL&vg5O7Io-R8tJ2;V~%FUi%H@;LZt%EPADYXXy@XO%Y`wH-LDA*cN2 zx*Dj}R-6y~Lzpp(1+3v4bcUP`Fzq_1L+XXns(;|-`hJvn`U_w~ia z+d`}fBMedvxjoEyLSA^?%IdD zYxi*W@{g~+dT{@p^QZUTp>WMeT(_^^?)KWnou^-&T^Chi+{p`b|U;l3Z z7MlI+A|>Ny`j^a<`?=;PwAk5B02!JUhzXU~6e_w@dwJNRojH}L<1osMoizwz_o z@ZO_`=NBi>A3xohbm!s4?)(C+xVJOQ-8X-}bN|`N`O(>v8xQXvoqn-@>r0Hyf7&{| zwtw*Mb^NiRYx{dQ?ECFQ`*!Q5eY^3VeLK|A!GRs^@A2EdeKG9=JAHVY$W23TncZ#s zy1x(TjsM1)!6bb8htEHJe|PaUCJ+A~KDt0Do;(BPv;W|LUfccUWOwK33C8om5Wo2PWOs1_=+4E-8zJm|!Afyy?kJ!pAH4DBM`y>=<;l_M;lUM*^BGpI6-On3 z>h7%_#_DIg^RFL0z1W@I{~2ODJ-Krnu6A!?O?-9L%LI|@&%<23@)m5b{`?KBx>q8z zf2)%D`p*5+ACSwpPnMVPWh!^~w6h(f_XE{VTlK4z@X3v%y;{S&_aEK+=7{+2t><@N zwxMMv_!p=4ZyjAAuP5j1bB!=hUwwXe_x5fdo#&2~25NV_54*Gbw)5Y;_QCP)o!$Pe z>tFLC@SMjR76-6^**m*~o42l?t_ly1p>XZ?^{+u|@$pP^`{2&`H+vD8zdP@Ddx%J3 z?|0c_QYTTF{o)t9+gO!M#Wo5~A_n~kTm(LPy1RnX?9O1a_j7!s!S3wsw_{n*)GWR@ zd*|TGFAmVPcNir1*6zxa^DoZ6#A>pbJomthajEgX86R}x{cMbt=k^FR z)@9It#dV3{*{>}hLxmLnHbZsrw;8J41JsMt^x%^5_|Z<&l|D&tVZdx8l*x<7sanGh z);6hLhaYyHZeFrU0smXg)8W=UdG9xNBW*U^vc6@vfeYK_mdz$@iSZZwc2B;B`db^@ zDgVCT?k#Mm*FJdiHJB!2ZaB}69{f21-Qb3{Xngf`QrSO{4o5(nGMzx>?l<9O$9)m^ zOxoCZL-pNuJKVyYJimB)=iY_glia*^@%8TR*~R(p6r1Jqz1^LM$GhkI7G<(wJ#Hi6 z=U=1$yu6?;AK;OKl6ZS}@YdOGclGKH8?uqUitUoW6lo5&vPyoqi*NaPdw`XGn+mO{F!=MpdnG$dl1yO)*hY<_?cXKp$B9uI~QJ z^7S#C#Xv3OL@9(5nBBh22`{*V$_uVH9NoQ_zrs*`KdJxFd%*TJ<>t}f?3!}p754yi z^+lHkoPNFZUoZV1_tKwx=H^DBd&{x%rTxP${M(mY{DFVxi@#q$wjZCwNnK9Q%cAEa z%pD&{_#+70Mqm1FfB)8{xBEA~{Nn7VH+ZLR_hr~d_iw#*cK=J1_ShNxuw^|s`sdAi zbl|U2*7Bfj)@5Fw^qdKvE{l^8H73hrMqbm=64qe*oOeX#a(s+u8Xnvi64&$ddmiij z-ktj=c)WD~OTXaJ_Y>6ikPofyzk@5J)fw`e@hB8qGUDUp!PTF}4UTmk7kWI2#6A0i zeLgP5_XB+2f9KW>+~vIwAs(Uf)SjL4GkD0|IfH_v>Dy{a>Y$;31D*H-^JY4ho@S*$p7pKY|QBv3k?iu6upcGRNcA|HAFJdlZI8 zw5ZmB{xJGhl8)guiI?;>Rv{lOft4ly3nqVT^NapE)oa+EuAlO$u71Xz1Utp@GX*7@ zH(*=)c-|RPaEv|CT9x)QY!!#uNZT48<9+Xqtv;aQJXwBqr+lRi?yX-MFVEtK+`F!P z?Ryyq4^@6}e_UX3iS?)Y&mP|AgSuzjun%^4-Q!4o#?E^5&5fgfe|COxV4LZ`|7^$k z`sQbC)3Kc%SF_k!pPpPid-`zq?|9Ph1_I0Rf7&-}uK)h_-rL{sX}w#ASAV9HhTa(H zf3FMg{puwf*d>8e4cFJ)$=>sOd-izp;OdAmZR|o}3xOuiCY#_D2bAYko}b6_fZO*N zz+YvruiJ4H76Zl||H-+Jh`;h+PdMA&g;j8%agWQswgBLG9gi3Owp-d#!I!p7d}M0DfmnS37kZ7(USN~|t8o)*b+eGV zs92J|^MbzJeecHYcYkD=ZoA=E4=H&k9=Fq*j&xUTH(qvE&9aUUdo8oPlBtBGQ11ir zh6FyMJsrk~3~b{9#Vq4i6{X?jbxTj{-fwnIj{#rl3X`Un*K~FdYYcZe_qF8m{d_D# zmDlg*UwlK4yZM)Ob>phvG_pK+YHWST{N(#A_p>JlN6(+1*EOS8QT-Ik{PM4);$;e4 zDew-FJ-l&f|E9gV^2dM1&hblbgS%gTfP2{Eljplfr#lNm0ryCJR|(cjn%cOJDUY_* z70mPQ>@KX>mv{Wm%dbyA^+WN%tKU037qNexq7#om=jSKq_F~ED+0*k2-ksSS zSwP|8?oOt~TP>LFoAUVyq8~%sNb=>RJNNJs65qt&Njy9`IX=hz7B8fHrR0C<#U;Kh z;{o2(qe(ode1v=RcizDLU9cRxGmv4A^a)3KD z-eW_+GpBfjiT60Yz=rp-P(28n!)oL2u$kL{?qm?}HVm(9pT7F0^T~0&t+tSPqq2AX z<|!{_Qa$I3PzSeh0ecGrbZ|580ep89GgauXp5pC72yK+gsjF8ox0vW7Q+b<3xs5kC zoZWwW@5^{{%-x)yef5x;e`5mPW_9rV{EJLwAH}}U7q{?cE8l6iuHblY#mhXkMMB&? zkhUVfsU6t^(QNq0Ze{nj+ESe|dci@JZeR1e->p2z!+$-d$P zKii@%-@MLI>(_f1-jrANuI1h--a_>)`^;r)_X_tWze(ZV^d(nutem~)r$4}Q9;=xf znlEO|>dk$;YOd`iwua4NPe!2j-j8}Iuc=}KFR8vTMJRu#6#tG(`0(-@5IgmH5pUdp zEQ{EmTsXw_Y}_l{PWK9nfv@_n?${Gqmz=(8iyQASd3(p(I6bR?1^B{S5Kw?uzXPGP zc?)vcc4D^zd~cfm{UE4JK?%j^qxAl+3k ztCzf|xUqRpv43Dce&PMeE4JYvZcmuT zE7trlY&W;US?gE0vDvOS-W&VF)%&nJ`)>7q12`oy$Gks z>=AG9?T#!tE03PEsk~qZOt&ZJv7hS2oUi#X)7}b*NBURezU(_}vTF!jKkOwY3-KN%eK$+llv$4F0SCmx_r}v(7iWzn8D`W!vUfUF`1Go;r)i!E2o_+c{s-U#jyfZ=MI2 zZJs#sdh`6Qo2Q<{D!brv16udcc?*gkec}4Ejb%I|^qqFic=D-lo8R#P>$d!Yo22T$Y?rnzRR3EG`O@dGuo~kHgLq!O+;wg(zjfP; zO)fS~JXQ2IHwe86arpF`p)H^577;#Q`CVaWPxdcc&^Yn;S-QYI-{4ChagVZ(w>Q1H!_^tDE$2b@A7-_82UxeK z6>mmv<44}?fdyX0_~?)OpB?@7!;e4z6^*ix_@focH>gcN4Ea!>d_%`oi9!W6w5>_Z;#`7!=ESfXY5&3#Bw@e{|+Zb{OgmMRaOUS=7BO8T!aG#g%?(TNp_Fl@}53`$LyF^0qSgme1ul{K5(j9Gt!EVAK${XhoxvTAK z{9k@sYX;xGulb9u5#if6HaGYVJKK$;hxhAN5HH2^%q#6}%Sw!^`weaomz*s>_wa&y z4sKBP!+`c=tvay%D)8>fx4%Rz``Sf#?HK(xZ9KV+bN(_>(no+x_4haQv9VsNf3TsC{q|D*!_fauV|Cd( zJZ>C4{}JEy{!hP)V_5|@)3|lsUL!i|YXp}eUB@)NS}eSkzi+Rnq{oy;c+b$h67hXv zx)5nN@&0>WhO@r?kg+ay)H$@b6vf;6`>MQRS3e_V*FJ>j+xGo3^dnfPSf^N}xb^t| z^@2Qk`0RoGcA}$m{9c-)M^BGWp8D^gvEMiJ*&qJ&`OzQ#^xF^rbo8swexu*D)ldBP zL!S9>+}mLAzdCt%@)WG89tj~|_%?7lg9`tanwy`k#P@$ngdVH2LJe0JAnmyH6k8IlgxX@0hxC54Pt!{xH<>*#q;&seIplEzqA& zp8j=ra*AInb$0Ub;ti*5zurgk5$IpByEpEvWeNH_?(sW%{I`+4K*N8ZU(%q6=Y{x# zZ}_p4^9vQ(F#e(?-aYXrC~n=rPyfBSdw3GR=I#X=DTuAR)rbFTwioy~+~C1w89eT8 z@~9eHJgUYPkE*f7qtqjQUEbxn;1}AB#%`V&uX^YJ)CCeNBHG-M@2t=?8#a*c%SVZ;#SId zUjL7Fg|>xvw#Ub0Quyn(0v`iP;dyzu8Ef}!pD`Her`S#Q%TK&b9fn~r(<$%UoH~qj zwzn@GJU+2ScG=E&^!VZ_^tnm$q43_}TMzGo1H}W1{D~ttqsV8_*gxfWiNpQrkow39 zrbvw<9paa?P^80sf9&L*xXAN{YmPt-d+&}mM(t1{J>f?*iJB*hqGrj?n}7a_k_(Q? z_2>8*_C5R*8+K}w-u@*=;rjFFxCQ6V&aQ)@{RX5x6*2t^7CaZ=eDyrRTUW1upm8M| z@ZwKQ&qZlP~4uBefjle zFx?`}i^(O$`Zk5vm%-PU!Pl2T`+ch8qV>HlgV%nb%OD=LzP=2;z6`#;3_d*BdL&kE z3I4W^246qcvqu(sxcK9LtoI|ly7?p7{|`O5d+P_fs^N*(*H^XISGCtywbxfQ%)sks zFfZbDnemj`OFo17`l^Os;`V)?vV7;eT-D+iaLqr~@%aZ^FXufyd3eIKq z`1EbBJ$>s-PxkWGnO=F?+kWNAUf?>@3r~C7FFfG|BE0aV*PZr$$k(09uHDypdzol= z#uuFIWuo2Lc$o;a_$tcohkFQtx0&-*HhX<&Z}at`&tGDrHJx!0;|oak3Q~QwC;kxB z@yWgWl&|+%h}6@}(=t1hp? zW}UQKm)BQ^&LwYYv7dn&ZzjRy+dh+xNeveLnHJvZ4ZodT2pBI?B86tf_RlXgO z?ET zRpyD{}3=fUF_CHF%$4!4m`)t$?&UPUj5>MH^XcX!PArb&wk({eb)rR8NZNj?-Xx( z9SL2^8^0ys0sdy?kA(U@XyY#uUa{|Q<4;{ZzH%)kacLHKSM1k+&lHxw@QH=`yxev8 zLy2@p^7twKXzlsQ`|lfh{ApcI));$@{O>>f_+O8H^M?;E2+O{(-V5gK?v+OUWs0r0 z9;RyZhveUS{#Hy@Eq*OXQcLv*`rLlBeS7`05J!FuSW8j&|Fsrn@Be~qgVgvvuIG5OzWv70Pw#wsKD>U;zpwij{6?-vch66r{`ursf7$JKckW|mcklk% z-qe3%@7KErkB(37pF5eqPtTq_JG=Ld_Kvl0KdKS->3zp$_-*cuHlB0IfBS%1vOn%I z%@5kXU&iNWf8R^;%j{F!)l0_x>W4k&vRe-37rit;OTfDABpr(JS9kM1O!SA}e(3c( zC;8;*-}Azrt|0S1#CHWfop5P)o;s2W>5s>T+Ns86t*}Ng~Wk4e(dYzo;{8c#>-RoqdZ^5PhgD`_VO2;UH6~7 z8Yk>^FP?~>xH>z}cPQ@P{`3)9!afe`a*fx;h`S1C#*YYDKmBQwx31#nvdgWlUaP)pPY>`%nZ^%U+3QyN$t(Rh*8j`i zyLPv69BZTB{VV28mi2-ckpM`^j4V6LvEoF>mK;Y)viH)_#s*1{90?Z^04XYt&u>4^ zQ`Og*9?SrwE|vjX1ZMhHUEN(>Rb5?$ts-cZKdmxGbXA2`qx7IveQ#R@Cmp&2T9hLaKdl;xd{GaFXJ#Sjio$t*r=+rUqQR0*NNfFLE3B$)Xj9 zRD3U<6ikb8VKgmG&gklgWgu!1bXoR63Sn*|v3Y=d9A(aK8_ z-NMD;pq;8(Qme~Pf|52esK!nd#^t{59p?R666PRViWY=zjgs)nnr1k6*b?;4Ah-60 zlhXj~;FhIrYcs>y5{?Ukq*l9p%CyS;&`dA=*}9wF56!aKsaz|aV>sjjsnW5y=I3W2f0G&3ZOU( zDrwQl@5_;Nrprk^uFa4xX&siUKIbB@zcl8|GTgwp}+3lFYo%AYrnE5 zVS35M-wCo!T!q<(vn*b4%yfA2R`bQ=TLTdMg7^g8c+!Ks=ff zSVVHW9AIaV7vhB}=ngWNP;Vp{vVRc{QzJ(kCZ8DSr@d#7pFH~4<44c`8iLOZLbtN7 zuseq-95>L|7ebzR{2pM8Y5W*u^JhTfdWZe#G{?FBXfW!X4Ev|E2M_o&$O7=(lp_ez zNF@jYAVDyl)dhBI0C*Jo{`w|-szb1ORT?!nS9o#}#YOaNg4>P`J z$t3lNt(E2-)>+&cf+z4|rn@FQGDyF4=9ZHE!V}f8nFHBLehn>iKRfB?h%S2yZ!WXB z;07ynIyiZdoz3Uxvj@Ao*gVfJ4|k3xqutZf!Su90o?PMAXt;Y0vbuY}+xh)*K0CUc z(ThxP+S%{k>)gA)w|7r!3+7hU^n+WOft`0sadli|Sn;#Pe%lPUxp26|Jqq9Vnn9;- zxp75XYOQFBL#X1DQ_6HYoWS|`$_NGAs&)lTT{JFc`*M`n&&^HjT3WmIJn~c4R1Bz8 z%UTwGEeLRAy~_YT=(>WuuoeVfyx=-emo$#456D!RtzQcQM}v^TC<4RMvJN{Ka3Gdp4uk@3 zaNPPS)&Cadfc=bYGBF?UwT<>4;8x^Y17+`v8H}>+6g!967{~=v$NRMb6LGL*P0$0u_9ByZD&`yz!-? z-xk)hrF1z?=iKm0jvsuDmwR7kuW5{cLyNn2Ux%~V&Ubi>$K-vTJ;Zs2tkLqsCme^k zU;J7d=c5J(fGwo)?H>xE#L-#8;vaCtl7{pnE4pr5XY$)0*k`_}j5lQ>>j$ldG5@$(*8^Mw$ zRw3r<>qz!E0wmc=lq1Px9pEvu#rrBrZ#QZq?jIZ-RNr{R(A(5`J}iLC}qN?=N* z@LE$UZowqJQ+j_Euh-cA;fSB_#DL4j&q%g+v`Tx@3ft>g%a0_T;wic93y0CMk3nDb zz3mGqo0x@3U*s420%Hl&7j{JkRFMLu#tGU`NmSogn}r=o6!PeVTFOJMFayu@5}XRc zY}x(X$g|gK4aSUO3f6Q7!NL7_xgErosMtZ|O8UYL#ODa8LNw++M?e)Sas&pG6*=}j zQ&*AWUMWX7399%)yUg!o*o^1>`M}rWH;*t=K1Otr#hJ#v+2Eo#pS(sSkOnzZc_ONs z-1Ooc!5}!W;~c>tq;n+qs;G|Sh8O3kZzUM&G#uU3MijNut?g~M7LL8zR`zOJ*{`i* zzrK!INbl9Qa<8_PdqFEi0hItnc5l*|H4ND%yRIVY<@ z_*;_;@gfo%133s9WOc>zY%V(kqD%fPSxKZKistra%1d@blcmzwx>`0g**2psxw5Hi zav4iE<@aUT{blcTjUuM4Vzjc+W8!w{MkS;M``2}ic3q?0+D37wd4)zLqz4<_vm8ie zul}@B1C(yXCVk)aWxuvB->%fuJ=@eh*VMg4Q|zGQpt84NQ&CbQ<_ZBuO#eErQBDvr ztw!QKo=6C+OK73MVRo|F9By?6dQF$@nH3T>oy~3rm9nq8LI58=VE* zah`2SI-;gL(42lXX>Hd%SwO-vLhBXOUCdeLTM4n%z$C6TBzRYruv}0M;Pb!@nAA3$ zz}uoQP+VX$=mp8*YCnQ*Z)V>hMPk9U{$%)I_9P${tj@8@qe z$g96;AQG>=Gtev$)vEUl8ai=JZi1mux6~de{R72zw*{~)pZxior?MvTyJY(ctnqg3 zTwHhg(?+{Y#Dv1cS88Hs9aIOA?;7*h%X%D6fG`~#UmgtvpkN%U%t3=JX0ZrpoIDv< zB+RCFyMT<;ieI}REFq6US|&pyl!&>0e>#N z&$*Ja-SVbn{VgHWFYWiO0pJmsGV=4O?)F2BUbEwb)YR_QCgUy-j}_=JSDEHYIZJN^ zLE%o!wZN^|Y68q$<`wed?%a@ES5H<)u-$BJK(LiLUO=)fLs4g)fR3&%Bsl47foXyj z&?HNs@sr^ZD~MRs2t=ByEJ<+^_H%Ir%9 zh^03M;$C5P1Q(B=++K!0-SR%BNK5TumFTS6yD;l8qPuRUY6ZIa%j|S)P}3QrbMcz; zx0xj+=?)|xlLr~DbB`IeOr|L(BWT{+nI#i@JxP|jldU6p(@Ell!{S6yqN#&j=5Jgv z%j0mZFFlpaJb}%1ktYFpJGmSm(e1ue3*XO2mqRK><=`qipH84inrDZD`J2IDoY9II zH<&N>d+kiF-;4gFb6>aGS=M?x#AO>$%D432|Lh-6@PbNN+Mne^RC=5rp?0{_JR3|0 za*O|BKfAaD2Qfn=7*3zKO1CkhyQm5V6Fxz1hC-2 zeV(5WbL*OuS^DPy{v7f=I-`g^=^xD}Q-UJ(98IS1_<24VAI~zx6JVK9jw{u;nSGdJ z4?4?F09329opp9Q_xZPbPrmlsf4IN#Sw6-k?t$Sk1Q)%F-ne%>nfKmWhEoUEBob$v z*~MY+=yE#UHU){QZM4nkCFT`)*5Njp9AM0D89G0>W0~@Izdp9-fubJoA055eCn@+@ zHm>c`-|QEYKN12#H5Y1N)&_-vjgf0L53nd zA%Ucb22B)Z1!}^>X4blZz8$0!g4&&|ecf)izcYImCp*hfm~&>-&sc}w#;5w<`0Q7XvUT?BvqYSWygd`ru}Ai_h1KNs{k(YsO^Eg5owffaQV#I z;jFjbJBqE#Yz0q_h^X zV9oNy*kNt2x-s6n#f|Y^dSgTrpVr1moZarSy#2+uU}rR|9y3U6Idt)nFqn@r0o+PO zYmsFa^d$v>xU>^X`sRisBNu0NTWqssoZ4Zt|Da2NU@xL3I`_2~?1XD#0dvr~|30{bd%fG^4l2n|=Tjp?zh>^B z5rGn0ur-0Al(8mIAm*X;vJ#Jk3ukk2Wp*|gQ6owr+8j(D^=Wa}hbxWKaee}^9|G<9 zU<&2MNRHUg2jf2CFn;!X-1w#-{j~S!*>mhW<^u+7&_6oM=&COhEr0fAGJTC89AjjH zQ`=ckl9~SU_aFc9x2!AXFXPM6A#6Jk^1~OGxE_5gYD`k154qcL z5kNikG(VaT-)1vJ(|yg3LNPEI;{~(}P&ZIc`SIrK&*WAHgXvujjzkxNi-$edUSRlvEbRb^>VOK_pV*An$8yjf9|rM{u? z_Jyw{>QSdbE%o5m<3Ejlf}(&;lW=I556LkNpa_mqh_wSzbj{BCFps0B(91z!@96uD zU&5{9TMnR-bH+p#VICgE*W?ki5v$D8sV&Rr5Rw3=<*w*Ejn=@YPiYD)FwplpAq>*w zj{j-ku-&KS)JABzf0rsf$*1Zc9C=!3VUw$v@-KZhZ}1Tp7J|kE_jyO|b&o#BWy9#W z&!q05vV4Sdd#0kWy)r1tlarI#V9vg{w#9rBjkZwn?zFqXXX-BSytg~uljkUca!?UF zZa!0SyH159E5b__#1E~=KBFQ5DH6CsqJ~bFZD!&Ofib$h<43xMmQ3%A028&Lw8_94 z+al;-#Tn9Vuy@)9ZwSc1V9Pn5U;+)MqPiA9WJ_dI5d?83vi|jp@zfkQx?=>C1V*8_ zG1saa3^ntYk92BG4Iu?dwsMBaEquxkeic@Hq zJNIA8H2|QelVMMS@;^HQPoZ|Pnhi>y6QTql{M_C-u}bn_Dapi;H7*)&j|?tgNX>v< zQa{HeJ}~1G4S_a<(dS}+3rywLm~XP+`7rcjDh!W5UhW6n3q}^sg25MdF2#mikD3x!!R z9qaJO1y@*kcooNcV2d(KWu;&&?c%U!O?DAsE*4`7Im*s?o!{N8{uVuP5!^d1t-S^~_o z%zQ+v6Z|7-F(?otjt=1PLl?NuNZ8JjZyjCrc(Tds&J`@{!b=+=Nnf62mD1`@ z29(8y8;V%gsw@G|RFx&*ntT?LbK4N^*?S(QDoe7VxRwSD1q_;R$Z@r_Fblcbsw_!Z z;#%rqNjDVrDCCVjEOC|w4b^u#iT}7msS$Fl@0~2>DnoZlqo)RJ-8oGxCx~<9remTkCK8RcYuO)ifHaGrl+C`GZ=ARD#bhkx5 zBg4sGdw7RwK+YA97;Q3;{KEu!zYV-XsxTofwpAuju3vd(IWbyDQ#xy!;wNOZc0x(H zDog$HN``Iovj3W<7!JO?zof}1hlsoFd!s3`oR%ReOHve?2$l3wo}|FY$LP*}B_suB zTx*h2MK6+bI;J{nk^&90P=g3B*z}yJIvzZrpyu3&-^8-iH#|6iY zlHByfD{;;waMm0(MlrN;8lKtMO*cPi)ZYENjv1Fixjh;Y%YK{$J=HDGo~f#@Ds!m# z)q*2Mp%A!EUReEdpeSjdBTW($gIqpLWFNLN1I*?Mhl-}CH95yUE7(fqBXd@24}un) zFYa5Zh%?Y1NMh-jlS0#ixF`(sGCz;h>~UIfEEgP9xf&B^QFv88GmFsX2)*2LGACv) z^23)qcoE}`;Mk8lCcR)c!oxl0a3JN9jI-7Y99o6lyeRgQ#c&#S!9zD*d%EByBX<5G z=ruEWe@LdtiJp|B9LsNpUBFE+X5uG67>=8f*$ykLI^JkDJAv(xCh++o&-UDLUUbN} z#M$197iSaLw~YIvLF;#E29#k>QvP!aeCqlPFd^`*1>v-sc{N$g#=RFuIf0i(meGZ);jburDvgd8YJoHZx-GhgHV=f!_a)Ghz?S$I3 zwn#h_b(@B69r73ZQaIDGlK~PxYJJez#@>t;8@rK7w9ll zwghD{j2i5&*by+9G}iJQs3gPb4wA*^4gzZwEV!7X5KW1%0@js}Ng;e0>6?}4Cz1r7 z^O9HS6igf9YsFu}+}2j)!~u!b5%<|)l1>n0bEF3Zv0)SW2fX-RWP)icrEwfN_11G- zXN2=GaXauFSc6Bgl28y)6$K~ZZjDt2rgm&8Hn&R+i8HLT_H>RDpTcbOE9*5c?zIoI$5HNac3vt-ote3X2@~#p3Rzja)b()`r zDO?~Bw>$eCtX#hPn-aYa*IUCiytM`2#&)%F!8*`&(Q>^OK$elQ2CFw(SM*6>@22^S zSxfPo%4+HXOT>0o$+>#ZVbS%hfGG`_A~P3tcIhw`u4f6&E!!fcO;8=HBEAQMcB*O# zcp{(0F<+==MdMN}?an3+0i0!TM6qbu*8Cb;zvYJ@SdRS;S8$LxX zgvACy{o&DFbaRgv+kADxP=UCT3RVP(R^^=pDBc!7WstskQ^q_X=Ce`n;YxrbrEo1> zsV(G5HU7n+o^2gAG_q+`sNA;k1%!sxDUkiH4VY|dMPTX1Eo#>?+tZu0SPW-f(Z^DY z(F;Ut{ymsXz07^w`paLQ{Lp*y=jY%2(EG=;KllFh9sFc8!unx^1hZ#VKy+x(uHQg= zJPdVVs!grZBL9TZu$#760D)M5&(HkCPqARP4mChf099_ty$-luPbwnbF4%H|HC2@* zSZV8BS>$`!{sYqFx4DSV2&x}i8rvY|LjgNEum9ZV<>ZHyLA zl7k!sh1}kIvlefledew#yOF@@I#H`9qE^G`iBuYm%YR(zAtGJjlOgcd3d<=QPXWlf7osZ_RTy2yu=8f6R{D6p1MyA*{_t96m4i;5So;!wz} z1X#G=7)XALbuCNlSsH0p_H}HM$`z9q=~v2wRiQGFPM5R>k+@vYb}i5fxMDZg2n5=I zx^Zz#>EeNLz}>0}VAbKSXLW^32>D&l;*x*pHRf}b>y+x0*^Rj_tt@7E!?q0%dfN=3 zho>nx)w~$|C44i(s)xHB>J!BmkEnPy#7B-eVY7NAPJw?wCIx4fMem)`$}`>EZZ6&3dWLYud&_~{uq;$1%tM)i)5yGrx?$oS?)9DqUZZGSrMP5Yzs zmM#aKf5XX}Z6iYIi?jUn%)X&mo8wgW=RlCuTq4%wZF;RoR1Q?aNH(MXbqf(c+8yc~ zQH@Danq^!qb{LNrQ5y5H#N*wzg;3-z9n^xY1+((s{l7oOQPb&Un$OQh*ND{f0yPYd|2{zsoVS05ufyYG_ypWJf1905C!_3aK0lv5*xiLgud~a;oukQU z_tgcQos9>>;b51DU?Wc+KhNM3a4<&YJK49B^S4s~JNu=S5E9Ah5_f`Xi2>!g)`Idq4c=hijI_Lri*cBwSvN75vz{~yZCe~x0ihi<#f~VD@RtE@ zT--edTd3|28RrMMrH4g{4{@3fO|)2H|!y1%3ykqP0Du;L_O@i&Vrx} z^$da?EvxCIBfhuU|Dn}!`^3U4=+I^eRw8Q! zK_YfKCuqxsutvxdH-n7Sts?TK8+!Bvzgq$=yR3C;cQ@TMKrZ|)=h8L!%{c-;!7C=c ze@=#11pj|QK*Y0A_gtdupk^-3|7o?lY@~nPJICZ3j1D!f6=(Fu|H|yS-p&xk+BuPuX`XbaNnur1Qh!qH5;;L2v-E**cFce1YA#ge|y~fE(NF1wj{ymxml{D zqaIk900hzjOfqxQhgGBL4g%Kndo!W#+CM{HKC^2H^Ax}!$`}IxGZ+|wfR8vv!eL(J z(@2xV`o++8kZJotwLokd-4@jzPw*!jfXMl)qh}_tKqp?!xHA}BBS0D!KNj&IA1>RF z>3Y-<56=d0$BKwJfoPjNhmdY9h)W102+?2YycOf99_?vD5a_TY?$;b#Vd@}Lpv5+s z0&L?-O0^k5?CYh%kf4w$0LhDIXb^DQqXK#hl9@m_sxzfk>v93n)>L70pl(EcrV5xM zp|J|4I8y~oaqk**t^%T{o+e1DfF}kz4NsJ(0-h*O1w2un3V39~kpe-2@12vPq{pB6 zY&Ndm2H70Rt*TKe6+GeDWm{Qklr!Lk2vsyq?eanpOttRE)j6p>8bk!j{McW?SNQu)GwsIl_?o?TbLI!%q)eP39Wg&w*Q^H`xGs~S6u;5(wa#9>#wAp;HMgFv87K80Q3Q+AI#74lenH}sxO2s%7IYk$&1&wZDgJ3N-Q9%hXnqQFJQ^{>2u6Ov2oDLE2|L$z zTbE@CCR+0eR~06?_2I}DghY5uMZgf#HgoV(LIbh|=-7k<-Zw43P*I=h{3f{U1$9Xg z6=qN)_dIg>_-bvLLAY>(rK1FoMe|8}_Yvv6r=cO1jK zo!xPRP=r33IM1;MD{25TI$-U1@qWWcwDEU}c`G&FqqVyP$LaEy#Hga<<~CJBx!A(n zuxg5YcbKS;Y!o__-f@54=LPqLjWVZg6juw-02_sGX#8TMu%@+*7JC|w`8B5<`Y21* zLdEYW6IV7fap60v##|O$Gfx>{jhyMQ?!Os=brde+Qw$U#>yS`jl=#jwYjny`Lr z=2+)-#0ExaTrJK1N=97AjOA(`VNvdQn8IhICmk2zK` zaF-%uC68=2EyS%~npJkygBM?O%=J=^#6bi{q|sB6>*X<=u6~d;G7OW*+~wCd0RXt*fFI&RHFl=XE_judCs> zu7=~F2BTwbqBQl$(L&UO#+p`D&#H>Gn0tN>t)A7(Mk?9BO=B^f1RX|lu?ib2pWs6^Ya&Nwgn z@D$RQ=ZrCK4<%TZs#YxvH5kg$vg16~`P+u|8c7cnIQz;mY%MJeo&k0(T;fuV{9>%` zu&v_DE}R>0W+0QPz4uLq`v$ec=K^e`7{}oX{5rjdD~2ThhL&dbof}Fj*W9 zA$HPb?p+RP_KmS_B`ch0^V-6|%E0BJ3!B)zWk#9dY>xTZ%x# z*^4LJ8T@N>UP`m^2K+s^j;{#nCP4jCyJP;Mq@=?7GUh+Fkv02DUw2;?ZV?M6!!MbN0q? zMll@1cS!xMW8i_kZ3j#iZBmF5xx>JbLRK(GPeUF^jX({{lfsC$!Q*g1g)Sr!qM2we zgG_)o4ekQIw@1_0)!5!1{l2Zp^#UQc$n;8WoOy=J7058->|@t5t-nhCR(cn*xAw(* zQ;Y&1Vr$>zYgD%qUx`(zS*+qN@%tx7Jn9hWY(9VeIC zc6MDb-$e9IPc_R}DYYDxEj1jamfDTMDz+P?mfDR{OYKIfrFJn7>>2j#q}<;ywbX7@ zw$yHvYT6|%OT~;e1(wo%l!kq(Q(L<6vSLwX14R{7#DJdy>FJra$VEFH0J$7YTN z$l=~q3>h&E4CHLx&?7dH;A# zchlbNtre9_3n85m8M5JaeX?6YpETWF(?1Xdl9`3HZxP*#Rksn<5hLi^AWNVOLKM^n zmOmYtv6LdTB91aNq(heYh+bK4-XpkpcIOT#mfELxVHA0crtTXAs{_S?Qm+2Fb`OY?R{PVZK30eypW2+z4W zrK%c6Mw(()UY^ytT6hX;j7+g1DULnP?udhJ*B>R`y zE4m0Tv9CJy?7)*Rw7jUDlq6ppkrRAP;Z+yrm#2-v^?BKR`Tnd<8fK46`W^ z6G~|*LoY?yujw5)x zpWB4N8C8xEQ4cCc5j}Ub$BxEP#9=<4jB$l&Ho;A1MvobcaAjS56yVm}PzV!5W+laJ~I#;LNbpeg_bL%a8#yMb`*%mtYln z#S*qcvqqV47t^db))rWYkn@xlambB(M}yQ>d9R z%VlFtP#&J1j)px!>tuR7m}c@fdAG!(ANrtPZgoOzJR!)5mqy>GNbd4TsTu_=Z?C4Q z9EMV^`fe^diuj4Pl|4_Av2MPL9Eb4WTMqiWeCzNe!&ycaFMyWYj+%K{8-LYxsB z8(2&8%jvk9wUvQ_?IWVIqRMLsx%>@HJgZQW6HHY%p>+vKIZ%^uZkwjir5qkMa`-Fx z_W(bS;myT3E`Yd=HeR3sC0avMBxna72&U6~Fl~(nqu$A|e>!{cfIovQmi9XmPrr>_ ziR2Iz5(|`lXUo$ym zrVGQC}+OPnBb4wJA0*II7>N#{I-Ys3xXi!{U zKl}0T&wD@q{n4NQ-uvd+x7i;nD`chDQlqVzWAzdpjNh_7+y`B{o`1@vNv!|HMztiSQF4ty04Og zmcW`77S2o*V+>SFH$g>Z;K7Xsi&?2gy&Y6xpY8Q$N0Ik4o9=v{*%xMGewbM8b^hiH zRrHPrrctAtwCRo8eDvpM-_nXaq1zk|`mf*iri0<77o<2u2{r=TH5ly*KEm+gmAstg zrXeT~VcYL(A+y9?HErD+J6zz%GOKXSfW}ZJ%Lp zGTU#4{c$pVTPOt&dD?GZ(ZMz1$`@X~4r+f5w`xu5e!YKPuKjhY_N$3%9bTAc)i;kp2_4gE9qkB%-8ph3kP zL1PTaq>Qsks`l5%+I^0<9T5(;StP+=&(0`djfcJ0I;biuZ63pq)9Vc@x2l4|RGMvW zW743Mb3>6S^*VjgZ{DjNEWPWj-SZ6 z9!NH`IC3nEbI3BmP7&n){-0rfAa_?M<@t019+mD4S$5DrIzvmNV{yq66#tgZ?RCG_ zwRnVV;BO&Lm77e^KJc=$vz~amz=?c?>70$DaiOT>s*h-+O*aExnQn%nGJVvam8)QG zOF0+H$s*Xwk&4k+v0N-l`z+=NcTpB|jvHqYxt20J8j6Aj`G(>w$%f)A$%e?}J8;7& zL%yLXORv-Ib+@@X`{KPj`(C`Y{WF7@pUoI!7gEu=hNzFbRH`NkPXsa>OCq_HtG@fJ ztG>m(WOEVd^*NHj02#V*V_T-DP(Q~5O#3`knH}c+SzWe(Nl4d|1ef@Oi+S~^McUGX zwyq9rWXb1HnVigz;5k$%14lR@Hh7|9&uJSL>wAQX;ZRxS`A{=8VO zmr5|jt<}tPKakD`*Yq{z$X%q5vV~^oHVU~+74EPsUo69*`%E^TQK3ma>)S86X2zG$ zr9;E&AHi+2 zj9`>>ph*Xbq|SXQ)wy3zd-^XHd)j;U_{pPxJ%053ujMSy{>m(^?&h};5q?4lN8m!W zCx(5Kt;b;)L31%TA-}6SImD0-%JXNa4#?en_E#E^mTHq|0^H4%Wd#3FsL`X%R46?M zaNW)4&l2DzD&$PxP|(690EU&irP+n_xST>m4$&K-vFOv@e58mun+%U~qUDtOW`tNn>)bz_Tn(~A2!24*1*$Ez1&&X;G%0mSQ|jBA4ld!Z%y&l| zu!bySxlPl*NvVJ2B;nbr7LCdNv2dv^PB!9lR_dRogl%;k82*e${rNP%E>9jX^qdob2L% zbAR*ufAX5vPn*xp0*iryln+0}$JnsbvXeMw7N##VY%#$AH(mlmIP`c37J)&gpg7O8 zg)#ylG8qJ1B@kd!Z-#(>)+4}hG8b%ejP|J%)2iENaT9!FM z7GS2Oexf=kqRp~iM0u>Vk_urNZ|aR7WsWOBP~)*z{wcNy7y^5=v-5d;1*P|*tmlQy%z7^ zgXturzHT@vju1OccZ}%6qXWjCK$PU49cC~C1ng1&HLNsp_@6)a98gb5(?gN+558`- z@MA+go@>_<07SDTd-m5NIGiwY$RLwtYwJ}AP4zf&Z?71q*$e{!Ccq3pj5gJp8aM;` z*-U9FzDr%W`f+unZMWEOR+9!uKqPlXfm)#}$Rypa1yiN9f%K5W!FA#{8&1&MxP<96DWG z_K)u>AwRhsi~DS>ZO{|AB85wQvRZf=^?A^2Cn_M&kBw7+B|4xYZ@SYz#}W1p0~U~`ds!;2X~*H503Ja{75uF)aYfc`#XQw+4IL6A*(s3n|uj9 z^SNO}*?g3P@f;)vS=A8G!zs40Be((1US9?8!@|?opvZ4N=4vK+s$Cw{vLu_}#s zElRXAD{?9m-~ePBvVk7SSv+bj*25f!Qyhc%dBs=3+~OnauoEj)0}uge;#iKY26My* zun0K01j7U@+|{Em1e0Ujgw$x1VkH0PcglH732Aioc9r)Um zBf$c_(ZV4;wM98~G;c7-sX4>~=j}pE zh@K`uit+t0`*v42vLi(FDHmeF3q7&{ZCA3ofJxH>AaZH^<=C_mEUXq_&(CrQ5;Jss zbe<0fcWGz`o%-PDHK_gs%KYqj0&+4&Je9LPbOO^$AP8AVlSn_4^~#E$^(bvWbcZ)8 z-hKVxft)Z@_0)i6*cZ@+V^}dV;0NNn$ZmK#oE$olC)qlyh*k<^WGob-E?y{-P`OTC zWAZ}A;B-IO#MnT}5alzTx&50*@sj=eiqeK|>8UwLkoYN(g+~Wvx}X`Oxw4pbw*|s) zJ6#GyHO#`_#mydL4lJ3S-t=~tYOcvii<4XCsjJw zJKCOWDz+K7i{rt0em;ELbBdn|+se4U^Ow%&MMy0=wAmdy|>#oXdoWFu%Z z;k1R@-u|LF%6j5SrpJRa(Tsi|o!)f5VI1afZ)4ICRIbQJo%^3d)CSq9>ljN2Z5Zew zBj^KI|1p-}aekH0^1~sNgKsk`n6Req?+d9IPcZT(3fJM}lA(G?Mm(>Y&rTWTdu;0Q2=&HjU0`X})fmD~=XjQSX^-2#J%W&Pwl(>21VuY#FWD!p0e=U+4ELRR;_@a36rmf(S<2 zP1T)%N$}FXO8T2pV+C%xDMU6Sso1Hu3Hv=mD^a1%b4Y~wZ1CU#V%VRxs^&uh_qIB8 z8Z!xX^6!@Pa8uNB$$nzo(MPJiH+@gNUZbL)#5r+el@nA@@Es;nbRuP8;&(V~>@si6 zji6Cvxr!Md6uGiRX1++WL(dd6er>`~4|hKaBm#W5u87EF8K8{1ufG9VJftq1C1x$v zF~Y?dIw1_<$~ zmT1^EHvd_JwE*`rT^Hu8+JU!}F3hDjon%1%2iAqXW9^nPA6iQ0y=p0T3)(Hr6Q}K> zb_>r-XtxN+TDxVJPWd|^AxRovERmokGt!czcFT$-#Y$4ozGA!ChB|amin21xQ;|Yi z728*A*SD!#Af{H>nOH7$N@$f`qiT@CWf|gu?+rG9 z3F)+2DZc4X&u1`5gf$zC24K0YH*%#vMyDlrVPI*5Zx|iT5IKBnE4DQfJ<~JDC_h)& zR!Y)BQ_9usJ=rbvr(j80sE!P}`X z;E#zTRF$T1fT`NWz#a!0vS+k#^E2Dx!#b0(&&5)_J>^Tu{URWlr5yHb(V(#>>Bi`x z#^$!)VX1Uu&aaIv!tW=5OVo<6$#{~q-wG-oA&!k|6ag4iiU~bTl$&r+|M-OQhnTwr zHJ9YGHZ+K|`+L^GkD{p~fvl%T%;nLmG^vcEIF}No1W<7{qru}#eyETIxOJ7=Qc#TY zE}51p7>2SszmD`N!Vpz`@Tl&TeQjv_@VsS}e;qz|q9Q*>Pps1^q!KW@v=r9eGBkTT z0@SFkO4Ng_nxDd1h`#iHOO+sYgDAWdL4uqQr)xAfSFATg54Qe_f#C}2)xpJ9;Oh#L3OhKc`(VA?7_PaQ*;`e@|6~b@mYH1U)EXC|X`G{(w z8W7a_t;ct8sclEQWI#7oQSSN=yo!Vufb9Fw*CkfdNzOZRs_-9(Tbiu1`%KQQ6cMnB zFPjE7>UOw~$cee$Dk4LI%Rb~tN+$+ND+SbygfJvv1+rAYube`dYdF<+jyUGT%L^!4 z)%)89t^jY22e3LEn43-@CV>g>02C#-eWY02z>E*BCG9?oX`i2Ic7QNMz_pt4SDMVcX;DWHv3CBQWG8zOt1P!d4oGcxJ&{g(dqHggdDKRtBxPGJ^$~&{rOq;{|YH3=Lk<2{DOsAxH|a?R!VqT&UsC1Hg^KOdQKSuam1m$^L0v! zG_S2U&sp0e_%f^r^&30ecxX|zt>|H=LD*nPa|tivF!=19(BMi?SCMvqAK`-ITI<98 z7V@K!-r4>A-(_(6m>I8^r8>=fy1onCg`|1_L?=4odr^^&p47zOjhiNJdS?gi4-ED} zdlj(%aQ_2?{fGOjfZgeIBfnpT5pk}#;`g^WNdUk~aCZ+rFx=gPRp9R4yZ>R~1^|Hj zv)^L}SL%M;5?5|d{`~x#AA0|I_UGQ8zJp1ja}kz|q8ZPI-eE*4e_4+Zwpy)?N|ur0m$P+%`lZVcRp-h42)mnJs~ zx1~293T`DgzaQYL^@(=~-Gr#%o`2gjF)PE*>zX~*wVlD0R=|kqJGsueAbn|~qF~>c zsN4|jrHP7yePg0>L$H@7Dhl?EiOLPZUY@8JxNk~SZVLC(L`C7gF;Tf8+=hp7a_x&3 zXOr2yH^#Nd*6);36r>ui@Xjq#6Np14YJzu;npC8(LQMentx=N-u8nr^fPHJ!qynruuveib0Q=Uc$%?CJ9L=Z9%D2$QE%ufyz*ojWkjhS4NHbwM_GfE)C+e z;3~azi@+?5$O2EZ>et?NZl?W+@iYlK*E~pz^WPPqgti^VjAtEuh2|aVeo}(3UzX$m@VtrE5^8AtwY5%E=);na9Vd`K$CULSQL5XX5m$y{=irf zPyYo^+1!obz;o~bHkWku3BTa9uRMNriCFI9Gk11*e$L2gk3PSz9sYd zaKcA~U~B9a7=k0x3b_*vUZT7}9JWO-4uoZ&1FT0dUbUfGO63>DRoUGQW??3ARcvIH zQfLgDic97Oz(RDD49?}2j<2H4?PIpXZ9)VLV~`-VNps0KBslvk$04~8rVV}?5MZDj zb;73JpiOeY$|nZFJ|xD8^c3+=Nn2e_mbT94 zjRHE(*2@7!mxhc2vLO6N@@9Fl%!0rbz-Ge;A2JBMx{!?W(b7q#&Y|^AfWKGbT8OE7 zIfMtViv-shp8b_u4ZIB&gQ#FJ8>DanCK?SE#|`3f0Gb$evUYh(u6Q{#xS;`zYU>bb z8${U%_pu;c#nT`B#fm74k5|DgLVLJ`(ds&21-zOo(O|%eh-eT+MITj?A$cbn9$Upz zExwJDOZsrdB>bVcI_Xn7Cvidn*-r5Y0zSVEE@hf^KoE2!o5Zxhc%Dzd?=einL`bkB z{H!P}M^AD_pivz54s$w((%AF8Fm5|I~|uCx9`BugCt2 zeXe}*BY@lSJ2*13f1=1swn2VJOV_AE!Iq?A30VK{VBBJNYBpvWolP3YY5RyLK+1Dt z|L!$pGVDr#zvd(}tRURkNOKMG4ED7!H-8(S?V|-@2(0sFU?Vra*>mHQeMGnaZqF>% zjae1Qv=D0%^#)<5)iEe&Foaz4!U$6_V=VGRM6P}8 z?7qfV;>x^*X?ItO<63&DxVqj(Sl0UD-9+)Ow%%<}d@oUaPmAxdcxC4cU2iG#y@4fT zwoAc*e_ex&0xEntR~>QUU%y_A9I4Ku#+P%|5l8;@YXrz$fNQDFqso_a)e&d@_3Iac zJUi0icYzw(B=LldX0Sq}F-|J|#rdJX*dP71XC)g;GC9_g^ME-!_e{=%>YUI%A!iq;Vx67))j7NS%(;i&F=ux_l~Yy- zR|oslo1MYM&2Z2=p1c`rxDQpGQYKwJOE0%Q5VaCo) z6m^@-X#tPR3;YpN0Hx>wp0~)~dc0{*Hi2%26<@ISSzF{Is zSbWCXdQ$E{kb~}?(P`z|5{RMTD~pXjV#H4j?zJa?5x>)k;S2J{4yTc~ zgjjJA)5ym(FvZRKCjO-zF3^LdQ)#rZ!22@Ct06OWBSwmjnp6hG>P-2SewVY6{l6Vo z$~7!^#5Ox`uk;2B2x9KorB?FIfx}_9#BUlGN$0VeNnjXS5&1~XJ7%8K)m&oJ#K?=&sTNK(HnM_;6eNnTDNPIrvi8ID0r0zRB4pL@9?Tf* zLEveGH^adiMGTsx(_Z8cNdE%qmM!bN6k00jxWCmw9Uausy>H5QgY-S5p^gsf=voGF zFG#0n57g16f#iWHZ&);`{~pp&N0*kLe=zCyg7Sd7gF3pXV-JWD2GcNuQXX)3P)8Sa zSQZeBsKCGUB5<>eLy}|`!yIThyFEGy<%v%(b^Ygjmqv4(}y7;9L#0%IyS zFTxmw=L(E9D_nuGhK17@Ygjmqv4(|-G2QOuYqcXS5Y(BR)mm?vI8BI7;Ywr`>{M_B zCn3HPhaYm#tY>f}2YNnx8_=Hjr*P{!pkp?tpa`h`6yU+kW4HTdHf8v3`T81RzeCBD z+q1exeV9$d1Ogby8`ga%U*l7B+ZpCGUNon)M@YEp46<4`omyvBbk7;)j4Lg<qgN!v^IisA5J#q$FMe17Um~$~hL{wO&sK5@HB#_;bbQ-X8%!Qe}tpCek-V{!j zgK7P*;sg!r{cp%LQMFfQF`;Fu61nm8qdA`#LCr;O36UL&xs9jDMGp$^3_ zpJ5;{eN?&s7A>*>4gwDc=rTNSgT{(m?vT2AKZM3{p*kpTjVI%~Fs|mI)O0);Zf6KhEpcuM4(Kx? z$%(r{MYDwfnKZE4@ufBeh-kylNaYJ$7IIYZVfW}>O1|l6N*x7iqWim4s=<&eY=4v; zAU18csjoqrrl%aSLEs47+=%Ne*P}!luI7~;4x;L%oer{$I0Cbm{mjS~9S=&~CavhE zqoPYdY65aUj6`}W1N-*n?fN<+^i5nsHScAeU$Zd1&`SaWzEFFqK9-hoib5FGql+D~ z^yT9v`m%&)m*OpD@zJDxS)miPmrPga1g2D-mzQLQ6+6-3-u=>@XmpRg*a<1Lawl$o zBpTgmFLwgNw_+z6+%jBxBpTh?D|SK(X(yKQ$Vljf7TYU_AD$NL<-=R`JIP))adWrC zSjlz{t{0niyrC$mt)<1Lmp7rscE~=FMmjuPJJ!i`Yd~? zESEt;hiO>iEJ;}6EJ;}6EJ;}6PN$%aawH*%awGwXawOr1K~2FC38IZVE?6_vuaurO$yj9+ z8X~M?1b1(lfD)|5=&uVo33F?V7(ls;J|UU4u(Xjb$gU&`vL=aPVQWFlsyHt+%-A_~ zrvqs^;C z_IO;hW_CbwU>~E(skU>C+b?*On?X=@^Eb{g$4s%4h7{2Nqy2r}2B;vOA(VKv;Z2AQ zkR-4&&IA*a%?$Y=W)*)D)V9JZz}n%I2H|s*n0Nt*L=E>G`ghcaLsolc0hJr~0J_^a z9vlt%yQTX;548WGQ69+`lrTP}UipIJy_3Bz|EWWH%i)KW1U1^WRHawvy57~^G4AS{ z)=o{+ja4qTb@JSixBR-kDSOWL8!+I~3L;K4#vuC!xnKzlvUb~rIt<#{Zw-SY8M)3W z>VgS@ZQrBwp<-^kdEcaVH$V+*FOE+IPb3rj0!&(oInu=~>qXahz}KvqBg@Nyc-8U~ zX-6Ir+Y;bb@LuK_lT1leM-q@IN5GW$RwA|~2}hJ82}hJ82}hJ8fP?SX%#jf;^ErCFsg{avz5n+jVc{CEt0}jf(y%i?P9S>`zeVpH+ zCAnzKL+<|JY%;t=d^Dcx`MkJ@&%kY27+OvSA$zs8750YwS-4qTp>ncj#h|>V-6!At zSBpQf0ixyB745lM1wX<0by(vuYLwDo_glEP{xJJu19QXLtFUC49YQ~DKxKc-c)4`< zID23&Rl8=uEjw;fXV%LdDH9lgTNXLd|C(TW*JP&^0h{@8P$l6^HGMGyu22R-;rO_9 z9rC@wd9vB}3px$mzj2vya5{%xF!Ii#)kZx~Fc1^Tse!z&Fyu$n73 zKxILrlKVH_FWkQ+{T=V$gl*COjr4HGi_{+<*Z$2th98BBJ3YopeTum4FTJ%14p!XS zX^kfv^h39)XFt346rxPG@ULtRzw6s{1MO9ulC*9Mw|nl~EV`TBJ@7@t9Lq8UKt)rA z09k1o+LR?|o4#&kuU-msVEfMR5aer;8Zr^GaCWI7GbJLlY7q)i2T(Fx=VU#eJbv2Z zbp~>8c)J0P0;Laj?wy3JmT%CPW}D^GRLR-WQR4+(MzE&54C(E|UBShO z099aG$Pkeyc_=wV-xB0lpyrTLcUkEM&nH#e0b}#q({^A)9dpBdnV-_$j4Zsq4=@7# zMI|DeazHIPvC}4np+UFU(|S%wO3G|BtWa3ejWla+&Jne5#1YxjQR68*F2NB2>zex} z91%>P)*R8ABU*Dr=PzH{txJi5*Ild)U2yNn9Xdhws@LUkJGwQF2sA3m5#jwpj!4qq zF-Jt$7I8#Kx6_LI%_pe~5**xsIrFGj9)k(_ni*U(gKK7R%?x_Q7EGqC$uY@JfjRyF%wSqQ2HI7_48D8y7+|Pj20teC znCO{=fiUOS9A2Xx6D^fZbK7&YIZ+`7jTN`U)pcV=9fo@N>yOzL%x^@EL|E*Hsxi1Y zgaVDfOs4*|-!vO*$o2wX7&qhcYPDj(N=hrXG%MI?$_n0CT?U9(QJ1yMiJ&<-6it^O z8jfMi4v}XAGvrH=6*Q&XOk=SUgX0ulC~kSW56lPxV;>(QNIcaug0p#lo*zN1ALeir z0&NGJg@E-&RFJ_n{>~4?o^QOZ!$)f=YrBA$pT-_NbN4)`!iEAH%d|hlHH!`SN19(w z$5z@%^7t;CgWC*v(Ah!=MnlR+aLss$Zwit+QyY%qk|6lsr-Qbf6A1Nb#`#sn6v!ut<2^YR<+05g&x zz9p%;{F2UF78u**7yG^OaLrY(x#~4nz2>SvTCRG(=fX8br_M^g7BSW~$2-=u3V@3g zt;`UrNIpqT>nC7!_Zl1NIetPUT(LI=$X|e852Vae5rSPVVhyXMi9#!H?7azV zB&nz_jhE*Ji;ccvqs&iB0Y6x!H*pO*;c(6QO?&gIy~*6Tj1v#hOmWNBz07q=rhG@zc0X z#EG$wt4cP;aWGxxh&|DDQCLN3gx!r z33_%s(9;6aO%OKr!=rMBbbQri(|<+kJGQrmHIsqHwq)OG|~ zO}7^!rPOd#bE(}3tWvvC>f#=k+KtMV+9g!D@lSUx$N5Nm#1czgRW$|9m+;}CMVk2U z@H5Y0Fn4ARJO5THB{S2fJMSGkZ3q=aNhtP2iBs!^S6P)SFk-vaja!?+&e z-J*rMgI8o7T4+0XMMW853tolim&sVWi$T#E_n_36FzOdT>Cn*zLE$UJ72_)l3SU8U z!&ep*zJj)guOd+V%}_H)R(Hhsuog8ADcCa5YGZ#S?EfY!+B7;~+3CWoj-$(AZ*ZPLJ5^Z>jS7UgVaV?Haut#=#S(K%|Aq4e^m}IRj>Jj34)Mlv%*X#_7piMO+ z$kjsABphLe0E)o3HnGO5H}HT1W@&KTQ(>sGH6;>4WGnM1MB)>_CXe`>C#{Ni1I!ex zCC*D&pZC5m(E4mjM%&SOw&wPUZ0h%b;vSKa!kco~UkXj0nY&Xy`W%zbD0~$vlghmwC#q`V^NksK4g%UV7vycjhG)|M#^|M!6zmpub&bPxC zd)5P(zJVli@D`F%0p*~|6BUJ zf6JZh8e_<{gx~NHi--IIKjp{NpuqDdTzxrRX&sWCIFug{5n-kDv)@LgjeSab96KVF zv3!F+hQngVebvZHP6zb@ZChJ;kx{|Ws)xteYQwi_l7@ z6h~i6X?Pl&o+yQg1h&-ueOpRHv`8tWCrUAllxgb^$e?X$m=Y<4bYChIo(EU?(V(Dh z!D!4v?_-{BkTPeR8`m%L!r5i7QNRNZDg-Ag6gdlk@j!H>H|*+Jy9 zLYwGjMad4BdsmW+sZbK#tSH%yN+McYp(MIlEa`7x6Vpl?k3s%1bB@n2RPh*^bhQIP zx(r`u=L9r&=OoT5y9y?>bVX_eFfBKA;J@W$7hYg@P5`8t78`_jM!$bDhrZ)8v++;1 z6|D(7EuwF&okLx&ooCouyP2WB_WfmQ=b)Brhv;Q$$8d4}yV{AE=CE_%%e6z+Gqr;r zN44Jv?6^NxjhbT)75j~yh#u`f&ydT7cb5x;Iqg5 z(V+D^RR#A7vN7E_rVJPg*(xj;-l6m?TVS>Nn7ysa5(tu2SposhXW>>}(iO)I#aWUK z#aS9O6v&Dm7AIhby5ks@I7Y&p(O8NiFy=@=~Y=8G*sW|Kuq`T#2xYiZ;*q~ z5>a=uP)tu}2%uoGr4+VoL)(&-Y`rx*3#uL|fcS1Mx@rcgIu$jq%i#+J+5)|iCZssM zc6*}NlH(dxPRZems+jl}7dG%0ky1n##J~C*kxNBs!@u%|@l>hklfRM*y)6>AiNb8k zHGVvEFNT-JnJfDNx&~^Q(!cGk^>3Ud(Z?+&QPBk}#pjB%1as79aqD2M zfAdJu)yQW|S;xWzD~eeA`1NlBxzH;&$_tcmvSBSy#7X+?DC3}M3t$s$f3k`=kS_3p zm5Mk?PAkgDv^7%1K@ay%6mc>}ySqArI7*_Pcs=URUQ^z0U++Q2R2Dg%i&8!$?vpko zuwcNsug=9TM-_I)|B{=j)O(?%BtpAZD4CyY;<44w$-4D=H9iJa4Vk;U*#et<{P{l2 zdN+)EkSe`yvF@p<`}0T{On}Fz_A98r3MGa(MuQXq^`7Y>0QnJi&~GM}!($hMv5yWT zj^UHRygvkRqjMM{Pfeba{PYr`6(^U>gN*23e|((f$k-oelkxB^!r)yEq+L|LpCN$5 zEI))LGcB(NGw4K-eR4j}NBO@8lvpRzV+3g&zTL_GH5kIgdOX?59-{|?!SO6R8w}62 z2qG;WPoU?tHNVN{X9SaBAm2``G%r?7^Z)sM>xBN%zLmVfR-*@#P z*gKvN()H7*RlmQcckUP77#&CP%)ZmyvI1S%7BAu_q~1^=J-Q z>YxPGFaRuEte0jS&%`qeTG_-9L7E&wp%!K2BAK1#CseT`(=c2qs+|FvuShtEI}9#P zJ4R#VKw%3OB#AgYnzU-XpTBIBOv=g<&1 zhwALD&jg*kVuQJdzzTEA$V9qZ?LDY8p#-U>VjoV9M6GXYGvx@gSb(V7cn`~?e|f!U zsFAt&>pDgaG*>Cqz&K+lrEc7@wJ2Il2G=H!4G_75=cZDOGOiH1BFq6?z7A`y3;5Pcc$cQ7aH^Rqrr#^1%K{@tp=IQ1+UxRizo8U3 zW)P16qTM9F<9Qy|%}=rYe7IHAPP;4y1Y{}Nq`I~%0KttLKG|e$gP`W2zy65`t4qd{|LzkW?gb?7xj!>l^ z!+0NWianufKF;+;v4P|X3ulflIx5hqD-O>?Frn@OyD(8M0Bcq&=bJALG{vRwvGo1T ztMIa;jF;>tqKHO!k9h;zEJiNsyV#8j&2jtbiZYz|Iqn7pzy_HD(ZWDiu>A`Uz{Mad zL6*VnU9N$xaI_&+nRF6VpQ0PxXDM% z>Cf0i0ls4?2%P2I)R%9B_E5` zvy8Ea?0wt?Aj0gy6K9h*Y66eg;4*+mc(Jr8{M))R0QwF#y7Ht_l5coYiTZE*q|zyL zRRi%Brk~dK+vvg|G%UPC5NTPp48Tm;;NKT3>kDW#A`^VKq-RH+`%e8BY1^5_s@o4J z!lY9-ScB1=I#C1m{MCm2oWuMG-0#M&U(~8<)(;bZV>OSL5GJ7l%S*~mdFieCp}et$ zAj#T7MZE~djWwaC(h^QqY$51#SV+^oV8l+#OW#uGz5~zLDYH=6QUi5;g-yR&<`-@H z^9v79G>zPpfH6Nc36{+KX z97&xz&wrs%hjH$mOmahuOsBh1JGlFbJS8=b0dMTIKTCh0umJwI1Mtdkf^WZ*d?MxBsXbAtiO3s zypvF`ZWT@ZQtDQ{6N~$Ng)`V+&)ox~lBiRAnrv&e=UVMa-zxMw;dK%svzCK6hb{uD zvIKewpT+4usL1`*+&x(O>cI_f9+)Nh(JMXgt(BhSQ=$)ro3+w2LWw*CX!#8(J*hh@ zYWrekpx!K~cK@O26tdJk$UAZYV&ywkQgRZ1y6!(fw!nT?>hdJ{hPu4lzIDLUZ*bY_ z=)>y3C{k0)1fAYC)jguy3uc$ov#1&ZQwX;b-lfL<2KN?Ve?etE?=1v9kZI_y9h8#X zwSz(t+&i$>4oG`+PO~m+Mv7!wB~w|s(1!Uw%%*Lopba9H3d^$**JbBYA|0_lqh9cf zNOMu;!Mre*G=A8NIe3g=azwrKEm7rqHiBm~gkUlgz>V*%s#YUqkkk0Gql>Mxy-F5Y z7n?9gP1r6PWnkIn*9-MknAWiEcAoDQ>aa)7!QDJTOcCRBLJ zEGgCJ(8!qpOLyoCy5_bF^BQFu1!$x%R*pF|2NtN}cP4HAty*K6W+&9sWm{Y^+f=2o zwfA?1 zgXz-1>QRGuF&5qCeY>6r7(ZUy+ovMP=uXYb)hwa1w@>xQf=o!Iik7z5NmXyyh*!|s zb{s&!Oju1x(Hnx{t8w#@^_Y1UC~eL41KXI-V70Wx3|1{0%s$vZZ*7%kAFH%Wo9h$7 zGKK})a%PFuw$AbylaDyXHJy5uEoTb$bE<4jp=zybG$o}Fre9r4(VUD6RkdW*v}fo9 z>G~h7RWQNikgk@{tA+kewXkpv17PaLSc=i(TKo|S5=w0JsLVQP~kB#4_b*>zWv{`IG!MOo0 z=?SLJ_;o(v&AP~F^&NVHL2Div4UJHZuB1*IYqG7iv1@JYS{vIto#w}7zb;FwV{hsS z#w^N@ULSjZt&c770^~v0`q&a$+(C@Ew($o(K}KRuA3rT4RLXyWMyy?OIqWh}2!aUm zt#0r?CJBauO_lwN;ZHcoxVN@0%MLU%MOJo9QG%sGuKXrsOG-MB3kFdDnD z@8_F)eFk+zcPrJtlKc^>eK`lCk>RqWrWFb5BE~pC&~albUBuYbva=TYh>_G|@dnMQ zf)D&^q#ZfKM~vo%SLi?o%66!KMOvh>C_RimnXq?Zd1 zmKPDKN|L@f^E%>^pQ_BUlG8O4gtd=K0+FO+nDJt?DFEs5XjqEZx4 zPETh%7eMC5q$pSgO4Y_%PL-2|s-4aV{$gpY8C8u*108*r;(SHbMhS(g;hwutwdk;@ zCWL;kR5jFks2bi{E2}oDDpU<0-i4|K>Z+>IoS2xFst)9KYHTRETerY=2sp)LD5xr) zspds3V8z^PM*XPdp~;%&0i5y%m-Ed`H0^{FDk0RHk*dCfT79QfR81h6R(6+oCX0Nx z8g9ByVmH~=68lkJf%E&`#qkl#zbk$i2gaY+shl%%b{U~LdeY2bhv!F`U3fA`u~XMiyZ z4+3*bfEc_Aw%G2L0P|X&5kkCqrD}${wO!;QMer()3oo7q<{N=j=!q-*?s5d#=59RaIa2(Dc{zV1@8@w|H~S(?XlOP^FS6?? zieGcq90t=ZDnj1C#*E@pyq@0uTJDm{Mdd?3l2NJHNDM_HRfa{Js!yHmk-02{w~0Vd zp-6ko>&l4;JrM{5T$U%D7|Mm{bn?bUun;_YSzNpgTHlShAP5N@+64T7;7uz;yVhk? z+`t$;4nY*M)!u>gDEQ9Pil`qrC`F3VG7$Vxs)4ga#Dl9a7E&|?OU9WGZDu3~sK2!! zPe96uHCXkSC1<-BBZ&C5v@u%zzO!F!!l>yERFGc;6W`Y6mfkDrclOG9VSQEf!fHzp zMOcck={eY>q7VViwPOrzjy*!5F?M8z<{;&d*fVSumEm-#&&qoN7b-`;=9d6RAI~3$x zD~Q$#qEA~v6w+?Dg+&}|X5;q=W7}#YES5idmVHZaxkTA|;K%ZLJ{co^&qtzP3YPVI zR53-UTrNnE0K8To*}d3)bIMsg3F9_7-qU6%2Kx>!wfZcvEky%`OnpP)9bDf~1a5c- zw<=3LxDB99VI_1xmh4TKA%LQuL{zr64%4ktMtEAz32|FS8qPu3jZHOlHr|fT#9X^dJ+X^@}8Ok z5%MM$HOs1=sA7}*WcNB9s>%p)_=$0uRzPVL!0jJ4ZcFhb7jE98=E-S*s1OF;8KdZZ zX#PG@^xGgUA4c)VfFW2VL;EP}j{*@~S16|vD2_1eT-QeEZwyead6*YfJEf?8DuRjd*TmjD)WEq6fO{%ig zH?&p`2DsC4S}O;CbIL&>S_`#|zh`-|4}sQtuatHwEK1sxX&p1`dqkezWg>Jl=(Un`rPB*|*vIn9jrvvljC} zm8hLXc5aMrQe)}H{$a>Dogy~@BX(QNO*aouIv=Q6S#ZPEEwx(mGO?T}PU==mh zP^zU&=-3a?44V`WBFVyU!|d)}aLUls>dwijwN`g7=UTD0R;;ZRYoCf@%`NL+i`Cs; zFHi(J9aF^hWmgjzx8sOrdK4IAMOpOBQ?dlH8B7-LC-zu$GsFG&qy<%|g=z=wXleNy zWeM7;%2KbWYA0)nm1YfUS?krz5D;_v^V9Lj#4Z(`A+e9j$})9*XLGuTdv%9pM^*OP zB7_I?xdo#;kStK6YMVPrzp+lO&f@MPHn_WiKJ90>1<175tCjE1K5nnlJT8z-*OwXP zhU@#d%xIQcb9EDZgz}nwLw?C&VC%Pg(N#A{Z zr-~>;Yv%pK;ee_rc$)Ga>CGiURXRbnp(e5H#J&5tFsP5Qet|=$J8Q7wMHdyeL~T@6 zOHjYuuqB;hRM*ri*G$LZRt;XH-kowynt_#;Z6>K)bBe{_%IB@9#Abux;Ar0JY~!jY z3>vv?)QC`gOxmlUX~iN3w4qk4VKe(F#bT@qi=S3fj5+;RF_t3;96m+|7EfMKuc{;v ztjZ)MLwc9hSNLg}s)hX`ChDA<lJCEQdi1{lL%WfxEPn^xu*eZFe`^U>)^Z zWS6E+(NcD4ySqP&CJin%@dF9g(41S;qchdm4eMtfx+b)vbe)$keVdTlAUwv=02%6%%9a%NHgS~Pr}wT6#dWb`4E zWmQ>g4WCC%fR^{H;Y(Upa+ucFPk(dQPeHL3D)=P*x1`|v&>Aa7nWNP77GiSXh}=nd zfmUxhU-zUuQmhNR@0Nd9G?RHyk zP9p5&NN-Ya$;29J{^aZak)AL_66bqb=xl537 zUueGismCPnJ=T#EOD?%0^m;HI4~D(bCH~RLSf__zGceoCN9V)$ue{M!B!5GOe0{gb zAtsXFezQJ%)-uy(_O$ox@sme?`TLLm_!|hJ1k56-{0+)XRA*OTEdoWWa-_3_H}7B3 z)uLOHnXng(dg5!CQH_rJ!-3gqz3{`JTqeRff7S&Eb0NDaO)+G5;AF#BDvVv0+t5dO zG4v65vRpVejUUFJUkZOA=SUI@Nz(nEN8+iaz}eVR2ey=R{eV(<8F3R*irkkeg`cJ^ z@NhggCXzOLz?ZI6U^gC&-g}6ACW`}Ce*kKI+%w*>z*1XMkM7QP>RZjni?5D9-x5-6MpEh!SND1id= zuy$BpzFtuR)#eJlbL*6IM&uiRKP#eQlD@1M>gm=kN}_;dbz#&KCU%G)NO9gr&MT5U zN@WybZzhnUY6Ipi%cM$1jUmurIPY_Dp%-t7?MM)99|U6Plad%}-cZ<-;+P;&@qa0}yr54j0&x(1GYEbf$P?=%OhONW51fBhV{}JOPPB1Kvx~vEbIp z=%9PN(<#)lb>G}{+=6iuI%5R(Y%6L@rq`lB(iXY{N8@Y@vOfSYH!2ft?S*X>39olA zp12`qv;gr)dF_CIAMDnjK)k}RUmS;O-N1ftJX|XW3Uf6Q$k)-n9CkweO>m3MrK^iw zeY|DIBfb3KgD40>Yfs&I;9V!W>jmyIktsGt2lTomy(AF2GTHAv{h^qCJI+iv7QRhy zJO-fAz$RQp25JTy>_H1~5q!cS!$|mmfNC9sX1MXeEZU%G9Lqa8lgzql?!m;5q>l!U zO)txEk)XY^v(vdJ+i;L=j;7^Gz~?qw23EGC`t@iYzmRN{Z(pmGG8D)A+#59Eb0-l8 zlfBt>1%XL=yibwc%E*cXVN1F%zY^8Kc4llD7hYgsWbC(?x4^+>_S5%VJba@63am0| zjdNH06i7g71hv-HrJ$Py!940=;NpM-luq1`8myK?wH+5HxP5~}NZ=8Snmoeh zmXF{b=v1iF5=|xrh)Q#5l;f`E$IM~eRMRw32w10F&>A+5_qa$+TMnC1y zKoE3>2ud&ZiCSm}@B>Iq`J&a_f^m)i%@UEW-~{@Dz++|9#2uV(UNgO%2Xl%5#!K?z z0M);Qr-yLEd4ac`@DoH|Q{ZD1iSeQS z0!swd_OC?rTT;No`br6S!#WAixDUKYOL&^AHcArF(Nsm5*=c7aXymEGkL zo3F)46eB8HY^h?3ii#E$D=JYmG!l!7iV+nRBPv={Oi(dJMg9NI+_}5=F1rLs?AP!6 zLo&1X&YYP!b7tnunKNhRj;-IgBI4ldH%R%zraNHA=uQfqq1VkLUzLTX2q*u#P&}zr z_->%z0z(#gw=eu!Q*P3&0L`K1NyG@Ht-z!yv>s2!R^6Fk%%LR=&1u196Ri@(=A&2z z0)fM_6eQ~ty7odU_+aZm1+ydk=>kZva&yONPablyfPx|k16UGu^3p;UZ0 zB1$VpZf8P;2IFLta{o|~g#ti<1%)P=0@+?iw(9Cd3odnX1RNf>#o@M)Wec>HLA{NX z71!Lzi2!D^7Z5OMe6oF>T<_o%+${I9%YqQ0M2fAE%P$WKeo;p6zwyMiJJ;#-27J>c z3gL&eRZuHuI|A8|s=zD{!fyEafrH);A?7 zWH+>VNILC<@*5d&jNyzioUsdOev}JoM$E1bRXCEz^uJL$QthsfRz{LH;)cPrq#e64 zrZvX2#+cUs6{e-!h5xt6Si@yn0Xq(TTLbpFflXdJX_Lf9%r}x%k;jKm>N%%NAC`=t zYO`<5g+jn_h24^s>&~2_wnmd|yEdApij?4#IX=79CLNwhE=V>_o-%KOwAht$6bs*M zd%yw{Fu!Hv=y{&v+m{N(fiMswg@JsFMA(Nd6`BKi_dB{GiWCCeZs3sgL&0r!Drh*L z$%v>cQQ@LI6CSFO8YHCGhytO|>rhJRCMt<^+#i+pM3J5zAua@h8ki`0kr1Mh(eMVc zO|m}5Z}HlFmO*M2DvH-KNNa~Vf%ZyC0d!VD*ls*;QiqxB>m-0pVmnlw1)Z0S7uV*B zjzwfjqz|LfMzRDg+a$swkAgAQ>1qq)4hu&VL5~Uah~qIZZHics12@fMTh6qV zihC%@#F3QvBl3vgG@}0Kc4$PQ1%iS{lua_#WIt+UvZ|orFn}@HMC#CzPc!fTpR&oJ z^N8ReAZa5ammnsg;1WSm>Yz+Qm31^REsRY_GRqY!|wA(%5CBDbcqm< zeZ^`ta&G5E&27~MoS@XwqMgI)TwrqeVZ}W7Je4LI@b@`Ezh0#f++&>6GRmBS@u?T!%~* zb#5L(s?n9DFo77dEEP4B79K;UQq@Z-EsP-5kd3TpFLha?qK48eWk?KF)EKhwDiBm9 z8g8u!4XRm~JHwnGUhGb%rsY#fNUboYnV3uF4#cYeY`NC9OjB!stSzvVAttOn5vSC=BmV`DY$eeGT;>40jo?X zRY)!)(<51-LS0H_n3ZKLg91#Ea+xS20$^Af%R*JR%CZ3p%yrt_X9Ogv zm(d-2JZrAYlq#dRMjao@a!i{x<+mJ!%5&jLAv%}tg2-yga-i4Ycx4bPE?XDO<;71o zrOb=RwSr=-3AMx6k8r#^bJuAV!e~Bi~8DXvDcB zN-zISjmNY%&7@onf!-3q!#Ldx+}yWTl^ANb2!B%I)58YlR9rVkAKFDOQ%96h7#34b zPa$WscM3dqxN`!8Yh|>fl*95i1|+?{v^8S`V9=GL@e; zOF??toKYgfdmy?Rwmif*<0DMU*0f2U+^KXNRwFLrL`nQ^RVU47;`MBLINhW;I#FN} z&~xb=*}42W&-lb?Zs(ciDPSs?RK@I1S>s9+b&nQ2hvG)xz2u>w)^{lKGYLtPh6&iI zEjKejbE@5E^7=gV<`4E1WhzKJ#PG4}P|%8!hTZQUoNY6#KA*$xi$^#vix(Jg#B+IR zI>}+g-0*;Q2ZO@{2~uIr6l!Ss_6UwPT~k4qe$fXO)bsLE(_DNk0RlcQ|Dj2HFa)G< zfnf$J zaQ=+4n#$3K#@IC#Si*&W*C(1ts;G~;75I!V(|sXGl0x`{=p<7G@K*4` z;fW72ofQeiXIQ54?RJYlAlXAi0D#qlQpYfih7_euBTcy63nrs8p@F5lM|oq;n}?=U z$+)4h8kxC>(WIa;l@uCEsz&6Z8C8o;69-#TRUU$Qb1Hh>QdPSK$G?Is!y|YwB@IKV z??$>UhS!r6M)bWKE@=D`kF>C)H5@&wCwZ)gLnBgdRMp4?!Ba_$5MwiJ6~Wsee8oM@ zv>poz^zX<6DpD~JpiHUCBi(#PCb7zts*pqEqzdwhZin;>2~9;S#jjU2j-nx=WtX{{P;BRPNG8q$<3t?Xw+pP4Dm)OgSUL?fe>sqsLBo9f z%0Uj()N?TH9~^_I)2S$5QGC?Wv0FE&qd6CsQR2UU7D5$>#ODosn=%@f( zW$EkRuLzGcMn<9QR&P6yX%AF;;cMKX^xcEEqR`WX&Rfb0*OiSZL)AtI-)TG@DhP=8 z@eT|se1d~#_~YuosSG$t2aX4!Cs(01q#k@s4Ne@E{*>%dmYJfe!9i-ZE>tKFuum{* zWq7naXGnPlIaX*yja=;=N(+|%pRLx8gzEp4+8PXE^or{t69-$Bx?rR#k5V-)OC6E4 z({fyx4rH*-fg=}EWGP0-@U&}GC;C$)9KJg9N7QCwq$vgbkbY-~1_)E=g(OEwn<>*& zI&j7Hw1bt?%0h`*|M+T6mCkYK-2g>z_%|p+m0dz5jIKYJG`c?QDog5MSiPIp!?FTQ z&4dg{j+6Hu=#}4K56vkgyHHzGI{J&$=8{_RAWA*jesI81!IElGp(W)JVf{=&VX0`P zo{vHXk3eYsDAOPLsIV*@MmZ@g*%?Dc7ws^PQuUVL4{23Y%LIiEMx~%rtKNeAL8W_( zk`Yvwp~4jUC$+N6q0lZx2U6&llt3yKog)g6O8*v3AE*Y3q7+jV7x_GqWV(7#m7uD) zXgWbPP!ychKnmN}sC0^=I#la2qv50?K@>%$x`Bt&zEN6EU0A3yDcKVSW>EdC++iEi zikC7TtWX@O(Jtj8vkJxU;ZP}#Sf|KaoB9Gjdo7)o4w|zPa^i&xmXg__YS;#8NQQIx zb_0I=#6iUw!H^b@Y&ykG1s6b+Z4s`)M@A~cpY=NRU!U&*~IJ%OIIaH50U7l0)g>C3qiE&p{{L9oV7040(plj5LkYYzkvX91af? zV5pQCGYEwDridTOAQ<`+x*;M3nTHA@$D>5p&7ttYlj@8ap}9=T!(^i5)269mLr~I_ z*n?9v`S2u7-Z){KV$zP%+~7_YorVuH{F@h=(bVTHNDffjSS11?|-V|(9 zeV-|v(GO(`YAA}pn=%eJ6(}Hag@Ni#329dV5``6jb{yta2B;+J5F8)3idV9u3%&BK z2edF+Mm~dw`+V_jFY_$gk)%yY+$2I>#80mi=*Se#>VeXkPI`_HziuQ;vLK!}h0;kk zkYrf`7?`r41HL-=lHCxjbOW79Y=NpWk+(%dz@n^Q4mWf2EV?ObxS5mOH1C%aPQxgY zjwjmUFSuZ7x@BqF>ILbRi&mvs&O4thKZjSd41DpGmoAP(hiZYlE(TLEgR88mcssUr zvxY(Wjq+GXwqW4Gv_&x*HX=;fBpXN2B$QSn+hD>WpFy~*@c?^>fXZ-N3}u@~SvI~F z7pZJBNIJX*+c!vV5eARz9MJUw-l^%SXCsrm9ux&Xh!6z@{|GQh8YK~U zy2wP}Q6oY@&|ri_NU{(OA`$^nBS0Y0GCBm1E*b)e8UX_Mj(}i=;S$5p-2myLA%Lh6 zA>bM%0m^5I(Mps1acxn865pAze(0(jyH;iUI~g zxaKE33eJ>%Ou`D?k!hvt^M@3;C9U0Dl2NCdgoY3I5(EzzP!PYoK(Yy?`wbu&C}@GZ zo*@yUV2jIjaA{B|36V&?B%0G!w2PdJEDNfTGlkGonh6IHgpQVf;g?Y4f06_fj_X0h zHW@*D%U0ZCeHal8(l;uC=2>XdLt80`8qhjHS%slVEG-jY9U7uxs1Hbiyca0qsSbll zOvO?aq}9fd60$&))&;{ylt@VJs~}|vQAJ-6>v_J00r=oCOvN5-1cxv*|A-g{C2gXp zVr0>xWw;n(QShT-s91-DV>pbph)hE)9ezX%qtb8~D;60;EHHjF3>9mda2gI{T_auw6&3pA(k;e8it3qdXh23Lgz=r@X*#*GKN?R{b(2-+6qiy zC>BdWB!`~-MmDD$`Wj7%Wbj*HL8aIs3PIAu$B~RCI$~{lQ29NGBVTa+NQ6Apb)EuA z1s!D>`!Esm&{l#$6tQRvQt|M&b=0NWFxHAe6vY?k)Qh#lM8!i}O)5|fe$5K==;0mK z_yQJ5mXQ`)h#ICOCM^v^Eq!=VJj4}gkc`R?UL0;R4tvc?ySF|&ZX7@t^EpPpc!kM{ zw1LBK--9HmkfBwpQ=A?<=nj%hA{#Yfs2K-!Hp)xAOjV;nQeK4R5#cku6(|Y_Tfv2O z_sAG1)BuXd@vBo(F3Q<=u z!(Rmw3PUagheYA9Eb}B3MoR_7t`l`$#W+U2hPxIf6oy>N4M~N=vQQ%whFq%+iNax7 zi4h7zF2;sL;jk>V2!$b6TSKC7Sk_X6!jQ|UAyGIiizPx~$o0~YC>);E5Nuqe4XNOS zrWQ+vLgDZ&cLWv+F?fVn9FFx2Au-gFW@u6zt_6#Pg@O{pn%m{2-Qii0NX;=?91d-J zDkNn&HV(Dw7`inM&zgehAU=K@apiL`91h2#fp8$%J~%!{)E^Ghsz5?Q`WTjKyG$$r zhbF|Z#eN~}=RxwvwWa6@bYW7Yttx*1gKQYadrTg`{lOBL5;DkB8IPLeYjlUW{~-jT zFoIKAm-8(U80D*M%Sj#)f3nRd-8Y~#>XYN~s{&D!6AeURsuuzYS{{3e)WnE~*+Stq!AsM8rj%%fWGpT#%|pN}It0VK$f%Gl8A1pS}woG_i~@j1mtvj(8ee1`&N6$%8~~0{g#U z97XJys{W!hzYURC4HCJfl*2x9-&J>*VRX!cqpP$Cj)HEK%hi?W{+qkE!gQNRl0x5U zlW!)=vpRF_{-}d#ghL@}J`$~D!{wkc=UhoBwWuZ>+)d}jtMC_T0Geyy-q;Q}p#i@tW zu!@U3=G2Hs8FgVmQE*a`Ao8#Zqf?ZD6*|I1bc%+PiUg78u`psr!%3afaOgCgo)U#h z>cS!pFW#>R4i8agJr#%o;|Pp_?z$F-62e&nl@aayR0uPH2`^IN@e?h>f$}R3Iz-7! zVk6@4j9?c0^6%+5Ci`IcQ&T} zg07JMrwqZ|h-pb|F2vV3ON-9U)J$H%+osD>8gaPrlVg%F7C~%N8nsHct-``}9vQ6W zIxUdm1glo<3(gIX3$ab1u;fCZio*_d>|G)04RP#U0i~FDha(RP80q9KdaMvE{}&&7 zR}esXdORqf@vnd@WJV=Wkhk;ifGgyj=s;15Q|A<=I2BGxNl#gv8YoI}YM@~ir(oO4 z;#7!7!$}Pk1t&GoaBzx3aCPNELRWOOLomY;3ICU$vgZ=q;M+fgmd%%69wG;|iE@$_ z&zwaL@A6Md!3j^Tf}`2C&na4|wpJshDbLsh(iT%%!{4Ni(Ltmw<>GC6PIl$Q=4es`%hMefwDcqLGr@%L+D9 zLyPoyLLoTL&o9ZB9+6zWGoRxvuRZt+;WR^1(di@a6g zzC?5?o=Qn@AFaaGp=xO^2rP+pp;z@i0-O+#bskBB z;d!a#!H72v$TDJ7JF&r84k~5z7!SvU48m~=>o5<6_zf~Or$Y$IFM9VTqK z;oafI_D7^Gx6wPC*hVv$+Apt9lJh{sQ4YdLl1gG?Z3=tXAZvi04F@rZ0PH+noo zej~;svfbS1@euiq7>~%tbEC&YnC92F`GQ?|o`3eRukm_)QLJcQN><~JHt6f}`d$_@#YQPL#h;ip4D zMC3PeibOQBI|M}J{6>RG1WUU^!bHk1h{*&gGm}zT?e%z^mPDJyWi6m#JII1TsD)(R z11Stbi!r5kB8q7OSGR<|e#CV^lT8~GnM8q5tT7`)_z#+g|Dbtz51NNJdLH5`)y0cK z1PQ}bhPdQl5X%pm$MS>bAzw*pu{-T9yF1_y6{=JaX5(Jt%OnM=#q06on}i-WzAj|R z_Bm{qUrx6@@|8GU@CZ;7KAAHpW95~Q@~3o2u_P{G zco8=87he({yIhK0PO-}e#kw;kl^w1}C&2K;&}LaYIRfN#4nmNT;pijqlKzmF32?yi z`l}Roa_@Ioy!<(V0$RFYO*~zSCX$J(G($jk4zze#Ji4b01e7<(mu`k2r5uP7yx@GYtw^AP z2Pu6s2uNLU{@{W+5EXohTyQ=WOkdRGRhB4&&*31mGZ!yAfAO-#tA8!W!TvX%tDq5? zk%J3Qaowq%|KdZ5s_&HsuivImD`wlkAVUfMp! zSPzY{5{JW{hQ!n*2J6qXI_+Rl=Cd&U#m8elI1?O|J}wk*&!^{n`GYgjQ*FSugfwLg z;@t9nUyu#cr_2s3$Cj!A&Wnr(v1@78r)tw5F?TS1g2m)T6%WOaoSU<;zcC7oQDBS$ zV-y&pz!(L_C@@BWF$#=PV2lD|6d0qx7zM^CFh+qf3XD-;i~?g6_@ASI2}OJ1s`ZQ= zsbLKNgMWtL6Jv3BP7&|N)9?Ioj1?XwLKxHH$td0kmdCTBMF`~^$8-SF#WOa}2KPI- z?QkuO8G7KhXqe$KIK7q`=EDWxs^DISGwPUOE?fX^s-77#;Qk2L4tKnP8E%Gq9_}~e znBf3i>3C*{H!{O6xV1+xLqFUN6PV$wpD@E7IA;vt;EIoAhNFMV3^j1){TDNQ1h;k~ zGrR>|Y0Th*yB}`CB-9Nq3$6?<{d8u? zgS#KD<#hI)b~5{JI^3Gc%uodPH@JOpN1wqAo8dl!yCR+$CQiXGTo;^gDsX{YG>sYd z!WpMCL-KU?-8wigTp`>I)7iKRgg=enFYx=*GXVp4G29loYPdac18~Qm#l|I{#SG`; z*9TVyR}Z%rt`E*QgN-{0E*UNlt_ZFaZu<^#Tt*@@UJbV$t`$z7#EdC$tKkB0rAcgD4cudJyWsY~X_MKwv*1?4T>*D1++%QE za4|DcZ@6`Eo8j(OTf;$^-1zZ-~?`DJkaMf_T;5y+B%toI}L7#)W6Rr*J)H%$M1J?~V|7>Pxh5OAf z(Ldnk&t-;t;3l1eK6MTo|Li$TJ7FHvrp#mGv*t0~{cxYaO+A;5_nym)-^_?s6 z56jZk=?gvHO$(gPRC}Hy)9z=~M5KO1nECHX@5%4e0OiM%99DL2zlWE2MYZQ={gcNCc%B*Hlw9}sK zwz}*QW9H=g?UpQSrah3ha@nc`OQOS;rpzG4;ql{}tbY3}e4i4TiA+`n%x0%28%WxH zK96raV3A{Nhbhci` zc~IK$d7~ zAm(uU?Y=;oD>UW~fnB+Zb zY(kFocgQ_=ju)TC26N2ZkapyeG(?s12Te!$;nNWU(n2FU ze+Xg^H#50s?FC40cKh%u~JA~UR{Gc%nYFix5E^YJmP zgo^oM_=&=Ml_<#pLBVcyMV2elk`V`foau~ExuH|e^237Jw+X1OT$NumR2=p0N@+hr3blOqT*6B~P zjTlQL${I}~$7m82C=(@HEaJ3!rU&w2c$Jf-u?>-SsO}%0Y9=NQe7Zi0m%}2q}IWp&Bv;GPO-QWszs~Ijk8@dw8>98WEi>-)`Mt;XTfb9w-)m z77A5o8YxA1^8iM4CcbpD*sKAoDwo6r(H}idC;u$0MedXe0um6ifw<%6>s4vhkmf+w zRX`>C1D-5M3=!IN& z1CDxYgvJai7?L2>&|t(`Il~dKSfLuBb*;l@_hCr!&aA3aFk!O8jd8w0$s2=lkhbhr zUz$=(n-iP_qKH3XsLu(2;c!h%nzC~$f>pVPpp|s;IwKc`&K0J^;p=)egI#Sw|6Oec zhh4E`)hrA8(j2)j%?WZ)8EdfB*;40FFk4QWRe?DHyU*otqaAp_>cz{1T12T@;5~cw z;xIi9^<5sQQsRU{l^UF2s9GZ;2S?U+$g!as@sQOrit^l@HRRkaAs?Q|GonN($_a9) z(jqjT8fVefNZf!TZ!}q5Jeul%(q{ZngW+fvMARELFiTk8m#w+T= zLWM$8>4btm3<+rV!BG{#K~hTXXfHq|;3Xm}{7AmbjNdG-3&1a5isF~l3X@V7th{9L zGE3T;)vJ~v%nRNTAYd$WQ49LPegvA_ij^6)Jbb_14&<}=!juvEb~iXY6!hFPCrCe3 zG{O=kUwVP>f=FNqSp6F?{W`NSv$zDoTy|Gx4yaDQF4Td3X@dj5E>9lH#RFz+`PYJ$ z!35(r&teu&#`;XDi_6cs*rbqlL{{MJ`U(&7lYqh^uqGEVb~pA#d|bp`nu`?#PCSbk zmp^+I27!3=()$wIMQg0&3FS_)R@Erm(lQ_f5Z%XOg;L(5W_(1kGq02DAnK(zxNdST;HAPK08BqYS@WCLw6U z`v!h(xoA@w__QO$pRm!vf8D&>U?l=VQ))Z}oEe*F-NN6np~lby-8qQNOI@{st~Ega z<&S>qX#6S9Y6Ak&qs<}5=i#<1In=Lw&czx%FF1PgTtSYDU>8U)Ghn=is*|7T_XRu< zcfo5e#av~^Ix4fEz?$L6Gt-*N?~wEWe1`?+@3TB<95N_LMVafU6@z|I;5gVW(A*&7QZdx1TZw)!k6i3|0# zb4Ya%l7?7=%;bB5=4gvxLCe^05G03AZA1 z)oeV>mL%Bd`OHKpKAAK`W#+N zE@2?cR$a6*U4$)7TfHDumE{@h@yRmKfX_d6mlx7YCg#AwwG)uCRguQR9xj2!lAe`r zT?D_oXc1#tIpYg1Sem{R>uV>cBs)S`Xjt5T=~+YVEaWio-fZ}d@63j!(t3zem_mJi z`w-jJ!`YfmV@q(~u)_(pRbbPh=0yYbLU3MiKHMT`2jk!-3bUlIzAesDuYsUzNlSA$ zva&MRC3;r(3e~Z#AGOnFW0DSdHrU#3lgr>Ux~x07GJdlm}i6Qm{AkKXH8u_ANj5_1Aon$O05R;l;nTX_LXzQh!R$pB>SlG@>4KL34Zpd!ArW#dFX0`&YGQ^k~GUa z6Cq{_Nlu)TJZIMI#5oiKxb=y%l4i|GOqrFOKp+TRpPZ1GI6Em}_DsssoPrQ@ia9Yk zDJgMg5_Pn8BS^Q4dVfPN)kV?P`49;)aYk$IVGp+L__7yn(55z*8HsP@uo#IsQdcz( z>Z`130>;U=X!#=&*yV}rNo|tDZ()z?lBrD2tss#&0*6`?1=6fcKa)K@ZWh}=es(t7 zYfNGHPnZ*AWi(RIU%++?91ixuPrzngqVCdi6OCo+E}0&z#N1d6V;TozwIs;>!aPiM z88HtTHl!xPhE7@r*Ks^zVH5xRT=YbWaa#plzk%e7(B6cwQoBce*F(~P+4=5G>K(nYH&e|9%M+oJDAN} zSdkVHY3zfeX7YF17iS+I1?dPTpWw%TIUAhRoGkK?c%hH&KPp5d^K2~aEPPRFbxLC! z`z28)#o=1)J#h4r@M2Xc&(5^?avLknw2zzvNw)OA&rj(vdf|7NMl|e%aGq7E^x68!6_K73xou*fDhXY_Rdku*p8#g z-kxbMWgS0r!G04rN#y?rb$qh%i-n*vmjy#01Uyx}oI+-yl;)p3dNAH`3@l8vg2~u<497`OXXL+B$rRXdlBAr zH*_Pu`j|ZsGuI~xH`}SnU40K-@rZ3ioLg|U!aJ&n% zH#Yci_Ym|G?AGHwxxP#o5M%aovdZI0lX(xas%fI)+TcTs$c2L0NB10hGjX*o_z-Nd zKRjMq=!OMh+%%{NX?i0~PZX~>(!qdP9M3DY3$S?gIg)0hZ zM|@vjlDcYpPvmQZU_HJ7Q2U33bwA2bmA&UgUiP0(VtQ2Z$zRZVg1vVFl*S$?1e#CG zXLp>0YCTAaci^e=Ug|xKd@K~dB6?fbN$72#oFw(Oy(jruFCgn*C&+rhz<*mn-f%J? z%TAUci%<5mTTe#rpAk&U2Q#UC|Av6Rk9nd_9`FnTs(LA)^CKS6hU6Gf&rw!yiLC08 z)rSDAJ3xR9Uy@(*wJ7u|6CkfONrip~$Qw;eM_bpNS%-)Tj&(9$hDMD0{A7tJeA9bS z%G*pR{4VMOEq|iIo4McBm#odOv%*tA)T>VcOS^+0nm;AKN%CLj5O)$pH6WUHQ|d`O{efmKX?kN^86`GkMM6y#3D*4w&D~&dkd*6?x#NU5uU2IhmDAVQ+(EZ zcJ-;C?roep&k=PfhdWO7!@n0Xowrj=|2|%g=LPltekx-BajFFSZ=gWc0Z}?*6P6q7$0Ob2* z2(NgFDE$_m1~?N8R>#jinnaZDoy3l`I<5J%mCbbw~r&5+&WGJUd)ZPS?Oe^rA>rwll|C&>3QD>ruq^@1Xn#UMHC5HwY%j>b0|1&wv1Ev$Hn= zQhyWGucl!qiRSi7$?itx^;0$av_@I8z!eRg# zOh3C0=hrgWy^}LD*^bFJ8@uBSC(aev(F#wV;bS+&1MfXQLqQEY$S-dEnFdoGmio|9 z1=zds=p9^H#omn13=~+fw+Af1lj3!(H=pTPZ3Q*dBOWXN^{qOXM@>N#8od~oz^H{D9i{y7DEO?+gq&j48W zA^|pWz#9JC!;@A~=HoC0emMnJ6n3_4Dk-LEK(W%P{O6BTNh8B5rgGI7yAua2%Ot#B zK)t2Pu{RLf$3y#HCMog=nm zIyx)VIIMOWFy4tb+O=ktQ*yIdH!`fg>gPbP<$Cfful_j@Rq*G64hAqnHcOYEc@&@T4D7{XCY`~w&+Z6u7&jhk>}nbYM#?fH*1kN^xCh0pm=lj%ilSW{;dDFxq|ACJXxn37fv7GP?GYKfwKt z@6nf_Df9Z-T{A!@UVJ(Cdn5qvmw!M>`rqft;q#FeV6V@>?sNyz^#O|gB!hi(7B}u> zf0}_ETfW^uyz=%LXhC-03|<#OCSIBP8Jtv4&k&+c(+pmn=Vy4Z(T`1L3$kyW;m`GY z!70(U@6X`LdQoCqA7No(2WH^dAyt>_^w|3esNZLVW()TRr00DUQcg%3csKtpf%d(x zf;Cqr^vdj7vwxEtJNO<_y0aV2e1rNHGbqj3P5G;oyn;X1fD&jLI@2gRDBpl&ZDuy=+0I*w=FjBWtzv?a`zY@=)cQqt&s^bu>7J5bYSQ2_ubCQnL zYyw>GO$6Q4phK=?Ho`tk%Jk;4PoQqa4iD=^BJduZaA;3L10Fyr&39{%qN@`7L!l8_ zk<81uGZ|HUT8H?)2MDU>Ve&hWJFt5SWzdo(Y*4idBv9@H)BBJY8Cud6A zW7yj*fb|0gA=SZ-UQs#Q4Bb{A>qIQ@sw%(mQAKEg3)CjRaMn zav*lcY;>>}W=qo&Kk7y7?Gr$hy+g%Tcc52GUA-iQHzVtv%{!pnCO4-*5Gf|ul3U0x zzL^m9!K&fulmKf&Y&}P-=3@%C!xTNlm|sr`E4TyT#i+Yf()%fj;k|VZ&AT+ga8}H& zoz2I}jnFIKkwR>t9ttGP$j_%hAejT4_)u*RalMu~U`u-tQ%}QCN2Vi~cIL>vkhRZI zl=cze8uw9s20o##Q1?M_$d{ds9@9>Ny>ABt??YhWUJC5yT&L^xU{n)MZga%h4QKNM z)VH2Zo#>&ng>})>XVX0WJThqQLCyb5swC@=&tM0pXR@-h&}~?Ef;|sn3c8P(SG(Dq z%_@@|?D}LE+dGr@rGL#-u;1_Kk?_k3X(*9vC6e0Xkbo-8lc9DToZ!hDYR z>?`NyI-JPq8I)1hPMEd6fon3fZlQ^0x19sVcE>qjOXVc%cKnIN+2S|JZ|oqyVlVk! zZy}Z5Y-796Nwl#S&PlSdSI$Ycu{V&irX9jPdk0TFm6S*It&qpPIqW+MsiBZM_@w4S z;EnS(SiA}BmU$RJ_X7@MCmxIMA+V}D$*+Ha1KU``Jbb+bu)F5*lCQ!m`|CU#4twWd zAIpw!o3O{`;jFvc582)h&W!W=FoI+|&k3+E&jFu!139-{Pw1CjuUvne3%+zS>Z5bB zALd~VaxVCi&;#9zxaK`aAxZgPCcv-ee(!dAF6GaK+%JX?QNZP3@15&*JJ>(Z#T(jy zy?t&T`wW@%Z=V37e2b@Up15=S1YII~?cAAW=;7vD@+i^G^O??7fZh~HVb7iGgZ9d0 zWiOwbSHQ~Wqi;zCRZ`KNyf~}d&06Q@+N|t##5eNzO71sPJoJ2-?34M(qj$a+-67A) z4gjv4=g`aHO8IjGuV6i;(OLtLm?add7VwGd{sm|W4pGa~6e0~oTz_VsC6Bc%@Mf|- zfT-j-Rr5G|66;>zhrbUIwLED*N663m7J!RgdEO?RgS+NDMDkSKykvg?+kRfIbA#2* zsu0ymfk#?d?R-9&K0iN`bsX5m0%$52GrRX3)XK|toa12+ zoa<$OUkJVVLQoD9&wZ&FBUjPrDBGe~?7oHIfg%bnE>Z-4o(f!GMc0|ity}*EsLn#f zyU2i(6{lfPUqhp!wMa24?ny&u$Yy`SUPlce>OLnVD?g(}ue^|MP7`admjKY$3;bCd zQaRXDX|U`2m{Pq&sRsT^x%b_t$i3)%kdRi15?lH{EthROA23f7WKV+v@SN8h(B%JWa4nQ{TL>1ZlNX}O*t>;7RVc#I4i_^P# zA5{ek4)%u&NVzOY7Jt3~P5BfdT`x27M-Wu}cM2+fhWNTYi#>~=PC32>FSSooe3KmX z(FJ1kzj;9xMjq?IyMiC@xIn0%zDClby_B@N71$UcHNpfh5P$$tbb*Kc!rN*n zUEd>$bWh9anh@X8AksY_O1Jk{SSwiYkx`tUs`*u(c8 z_;ni6n9csO1jG7ngm-jO??5xLzbZ0ri z)5%H@;u@<@-5UBp1x5)qq&3pN~=@?g%a_h}>Pd*kQ03Fy*xmI%S)lF=M)+O7P z5)*?I!-|&jzQr$zVWmsaZZD#IBj0nlc}W&~YKemg@$M2AyD{C(o=EqxFVh3;_NBRG zrbjE&x}{9#%w+?MUF^WGAW=PmOj^DrhFJa$`7N)|4BGWCOo4nW06HnQbs4b#Gs!nx zuk^!G!OX8)h6Ud3h-@o70*UIsAd$)Cwb(oX_QWzTYov4olxq_&p+WM$F>3tmy=7Pk zyKxN7&)!~!ANEfGSM(5Y#b@BmnYlP_=we%zgBtHqBX)d8xnoJl%9oQF4cm^W!UL3` zj$=OXIRGZmW;12WzFwNi?pkKcWzR075hEJrwPkMh`7)Td`)GTU6)*R)s^yZd=#k~T z>31wAIg#x|?oCb9V!h8O#?MVF&@rG2VY`=ma=j?Y=VE_a0pjgOJ4h-Z$eK4VwzH3y z`dIY}+NR>>x~OLZ;JTimEIaCHx^iT@JPsS{S^<$Lhkb(BItZPBxt>#j1W+9x^II;Y z5ng-Uh~`YQPYZPbes*uD$Rtnb1^_6=YwU!h5&a3#6~SEAPQRE2+|wkYEv-7S>1 z1>yS_LKJ8Qnq?1i((WKc zI=0bs`{O`ID`~D@SVe~yu(*F^73xm14+Ku9lSl(=ajqI+yH~-8|BY3&Ao&DP72Aj> z_O1e^rxeBK)N>_tdf6gbjFKJpM4)wrlG1YQ@^#~w35eH2A$nX6Y%|KwU zt(L%FmciNE0Im3j=D%({b$vzPT?fdo{y`+#c9E2*=puPKFTDu-@HB zli#-mgNI7mDH81nCfW_qk}DC-_FM#slYO%~kv()#66->E<$g+B(JNPHKu*Q;+Hx_| zW#D8XSP0v(S`5v77fDQo6<>^nL@5#c-L`e`+evxOrLJ8UOHxA-@woU+7e?Nwl#C*I)$Htx2}ACy=J$JsL-i zYh?8fD_ld(bM+c&A%F84aBOzx8o{4lUqgn8A73KA7RbK21Y0wm$fj>6VLtG*0`uE{ zjdtUh50IQY4kwo&kUoEjw72#8C3aT)YvNCL{Td5gKdbvS2A#D2eF7?Ta?w8Um zq9g4m+xKg}obLOzf0HW%gX|lC))W)B0W-K1GGM^&6|2}kUy6onp@#Fazg&uw2vEtQ z;t1`kr{2`kM<`c3M9;mCkYDpKx-92L9hdS+{PjygulJFn?;nIs-9HSN8U`)}C$+KX zFO|3hYrT{{hsk;`<<^rh>n8i|EtjFe{zTJG{~yU8xP|;0gfM+(POf_cd-yWWJRiS| zuM(cR%!dsxoQw10%bOA#dInjPaHdgIqabS^f_rY^)cym4Il9-aMHSv56kFb>nEDUN zukI$l@>7t2*4KBhMP>fF7LEV#S~ULSNYno=a$rxbC0@<`vR2xHTFYnPZ!RNqGIrBi zSi=CaZx`j&`*$KIFY>#!@?gK}a%9v<8C{E~vRjCf17+lQm4TizSPddOcyOCC_!$IO z@Zg>f^b!Nl{GQ9jApYCsBx*l*xtz&cmv6HAa3Im+^GV&Q6UpmuAWriUp88(k9M#VL z{2SaoKr_!>zd<`-FAr7#?9;U_Iu(H~S8=(A-S?aP4S5#0S!@S@YG0uW4!oqG^j-v) zV&#V5HbwAP2(IJ7Rj(<6ODw4H8#Fk(-V*ZMT^7i5_fdEQE!iK!Q&kH=G`=Drb`!)4 z2=DzHLA-*ezBVecx(q!9;sn&+|AfIZ`^-WzBzwn#Y2EE{B&NiQfY4nxr_~P;Ub#C^Tb#&qpWj(x(+heoG z*YQQ(Q-&9AnC#XL;G?GGt}Z%1%BBnc3a%M-k1>#TB9K7r`s z$0*xI0xaR_uT!Ld#|mDMK!nt!pwcBuXf_9X`|XlCIC7 zuCpEUf;7Wc0cc<=^_2VZ)Ww&nmDf_KoyCe$UqxiqHRH6we*0oZfW3*pCca#(dXAkY_-^TmH6iwyQU?jZXtlN|w}z|OjUgW)=`F5AsYtPa*^^<)L;2o8HD zW229Kk^$`myAC|4J~NkniyRxbZbXjF+i3OHdu>n?&vx2KZrg1G@$RECyY5wB{UPfpah3YwH{G*-FtFU{m>@}PV;`da32#|Wnvgn80 zFUA5~>^v7|VRpG83j$qP7P{P%)J_(5D-PddMzFgw>@b6cO7sCl_F_*R4fPFGx{*tX z<=k(5-k`~19a&%I2l^95QC$-$G`e+UdmZBRE29*}$HM zshFfWWUX1WAYwfzw4a+RRMJ!yRD0~qMgl&e?aszzRRQ|57w}a786VLwRC*87a2}Rn zxT_OpOrIjIlTTiKkD@122frovR0jpF@SsZbfv<8>gb8&0oV5 ziq(8Y_Jml}rod!yXO3Tb*bS)8k0`$Vee$c{B`6X3VGceC&EY@I2?oBKQ@}n)s=EC= z*H0Djw>V%zDJ8hg0W#xKUmAHQBS*KB!V}oz4jJMp2j(VJItRjikN z4E`9vTiOY*;V}S`eWjGoejpl?tUU)ca& z{l*5&*zat>jQzm|A%%U6%&--TWi@tbVI0HP*E^v3r==}+%{I_Z0^5%wYG0$CUfoWE z0Zcu>>YTZ5{_up8{oKl)#6HHpxv&gLwXrYL>}>b>S?qyD*=*N}94p&-p@ZGO%E@kB z?P5DFakIu>d)O0~dRfV3@@mM!p1TZ&9KV4zj}06tE0uM^#%eMkNPb}p`Q6Wv0LAP3 zh0D$QU0|y0dl%PY6}d5C%KO7TE=UM$n;RW~XI0sJga$TOIIA9Dk0Z2}hn7%wT43~| zJ5SnjewE^GC!`DEGc7ObV_XCSSzgbU{QH$5vH&68xg{|-Tv^^xEEFM{KF@7+k4bOE6D zTZ(GDnp&lLYp_***vP55)rV^L5=7m{7gWFP?CNm`Q8VSmFRez4jdhBpKRO!T5Obh3Z`ZsZL_jJ`;qBCDC@>z)X7MiAu%lKTv_ZLS2pQS zwr!+|6XtIleXv}`1_OX%ICAZKvGzUc>-M=5)pxwur}U6j@R zmy=Oe=QiTQG{0h<;dQc|*e68({CRf(P&-V3D!<31g8EPa^=SYHQNX_03xOp1`5dVl zihhYy?SF^;Ce|jWAgzntftmQ;T#)jQH2buENTs*jL8bfIQ@I6x_Dn84KAu~^oG z7ZqIcBo*vudvnPQzYF2T`zh1D8&5?z%*N6xIN^=6i&;cUK;?#HPU9VD1$3Mxh+9z4=UzKlW*XA!_H|B$FU2{BQ%1a4}!aqqx-j|=k z9ztB_O($wB$p!4ue94Oc{yehcugwGIU*%zLxh0>h`0vW68D%HnYxu0)@W!dqM!|jr zb%3-$?3Pocpe+Tc2q#-(mq`k`rGThcTtL*j4bjCn5b-NYL?(5V0vF{YtD8m8Kac`+ zeS%WFSip3N(9eC951LjN0JFD{plu&n&~#mYj8sHFf{NZD0yk_qRtmaq6I$*;g6gaL zxfHY=LH%_URMH@V9!608ebgq+ogyLZ2BFrg+GJ*rZ(72h2S8~9&!$PF`H-?{qM*(f zMNmIM?TABA<-Ryk{uPwXr^x1eWOLIMD5vE(D*Bq^C4d?Pb-hU0)V?aR*@>Xm*C?p% zZ4tBwL8XOUXxM&|l<-5I^X@Cmto@25?9(fxru)8tn(n4eAkZ6|&~)3cpr-rV6*z#= zk31S~rUMw|6=-kT;<@j)Xn{XdP=y@S@LMh=u!nw2M>BT)mdgeo6>MZz{}!^r%ScdJ zK?w%nOOT&&$S;4(43Hph$b%Ry$sSdC8`%r_Bm}T`DDBrs+j#v{D*yVa+~Akpw;6rr zn<)sY`euq0)UX+wU39*Vc4$dq_0VPri*!%ME&x{^m<-^`U6Y_)AiZK1`xv36yCzYt z6v{R4P@Tc(=Lh5jRVpM=SxrfYtmrWB{>?BK<;;a_fAbt}ag71a>}>sSG{nH^$gZnw zvMRfm5YzYt#k72Tx+TJMmEbI|;oTeus*@j+|H- zp1P!peS8n;<4ek|`b%|g z_xzrEX#elb?B?H-)L!#@j8iCBHei<)X1Z=}NyYa5F2EX*M_)hB<7;&upCG1|$F%mV zV~Pqj7$9F$qC#q7MK%6HQB{3BzXR&1CkkN)#;4le-$T#8tx)4-cNc1io~#jZI8&0% z_f=Wz@A;Wm3ww=n>-wB>>-}7vTk(~Ms^n3PVNrKcR4b=Te;8e!zA{t}_M)%U@PhoT ziIQ}`PX*O|HyLudSV+nZ-TXT~JAPiM!H!F|1?b;!r3UiHn^$V62RNN}C;R+LjiRIe zi*hV_A4s$Bs8EtL>wlN)bh2l*Ag1qm>hs;tqiZOr_YOr>v;YAueQy9)AAPVzgA=k? zNcvenMKCTrU>1D z*O}c_qzNMYc#%e`$5TZr%%7t?`#Pw|4ti_@;ZRTPbX>Pp<0pm^aNxcd+^*$hf7}Xy zlBbEX#m}h+`r{PUg72+h{5?#5YXkXZPf`O=tL)thw5+(E34A3$8r7$^YS7Gkwra@c z6Ho0Zjs!%?sN$}vK!SP#`*N$slTBASvfHjkOwV(aZ58+HxZlA28u-w}V)yXLt2KPD z?eABkFKq&M`p4Cx<}XqPT^ziL`)%Cs;C>5yDT4u#!Io=82F2Hi3~soFaN~g1T$=;u zMqa&I%{mta}@#g{f#5~!R+cZ#rY(s(`9?`}9UVvh>x>zMe z-$T&@oCIY&*AhOMVMU!`XFIo{!7zvI-Ue*Beva+frXk%8djUa4TzSnSJ!fm!@j*1Lxo+xO#>s5Ja+3gjo-s+sKmWgV&g4@1Z3lF8ovE`ore8112@}X zWA^3Ene5O1jq6Qm6S(ca`OQ9dw(q~Q*h^b9oT+`kMdM%S`FW5rAtRRA8Ni;;-49pM$&Y$nbwBQqo^73l~SV*`0% z|C@kiC@huW5KvI0!T-&xOEqQM^g4Z+)>wl=>U74~*ohNMv}@OPXrzB_+8%AMwqHA- zE!DJZy6~@fT#cq$Td%Ft1TX^^YGRwm#Tru!H7PZQ6r(XNu2t7Wbv4v$x^&grK251M zCA|xNleS1}YSHS;K!*xVYMZv%ke+Vp)Rx5bYr8Z(8e{!grGRWh zxt%Dt8!+`ix8BgJT@)AJGQLLNyRdou<}z)e#@4HgnVVXqE7zZ3EYui{YwI-q+P0se z5vnwslVdB7EYg(yqCr!x%^`|SB-$I-t|j`F!4<;|{#UOt=ETOv_JI(c5&jiwJ9Le@ zdPAeWTvLc@wj7;Mi;|=MO==%ks4F&fX<}0*>Ww)?M|i7_Xw|o9Dh$QiMs0@%ksxW2 zcK+PHpR8Nwj43zP8R~Vd&yQ=;rj&vZrJ6P9$uXt6c3r!+)G)E^_l1ViW6O_R)1v9q z#rJ9Ik1y54G)ySg4Cq?5(`zOeSFb^1#u{UcDaLgZV`Jjt;+%118so(2F>w=Pj5($R zG$}PJnsQ=lYU*4-#u(#bjm_g*wQ+GP(o?A_vHU;0YE6^28U!rY)M~rYg0J8XI+s`n64(m?}^xre5PL)D%=| zW6)o1^U;A~b9%>jXk+4lZb3{;N||Q5u}BkBr({RBit8I+JidNHkFjEW&$t#{y}r;`eZ;^|Oa4pW zpl{O`8;i%cXp8g>+FnD6u}xn$u47!Su2|oqFV^=PD)c3W>hWFr=GggNnxfR^`K3Rb zUj=k~&oCMX5++XUnO1vdx3=c^9+0YAOMd_Si4z+q7aQVwP@RhLlZy03`jT;#L3ht%S_E>umKuHBE|{7#m0bz~819fs2?XC8wAs z#kU+CU-Ywf?WBY@W2tt2Y;3bGw)Th>lVW3&^|6!U7Ok16@6yF~>FRW?y4WUNY`=Eh zx^<0)fuq}wjIGs{X%;2NHfw?XPdW`ve74k{n~DAy{=xDuGh!t_4?Sj zfIc-fHZ`@+(5)XB@2u6Nr>3q;O2lI(7)OBfF zwdvl})bxH`!}um`dW&Ywnj*MGsi}+Btm(&7xh6Fg!|;e&U71E7+Yq~^MO&e**B9y1 zTa2}aI`ExFZI7YV*gHPG+yIuQx5cIx=_-yW1b{9U2qmPZrqpZG({pl)^zE9Q9N?Oh z6Eg`v=>xh3Lx(msb^f|yLqU_KPv4-cJG$>DZQ4NfPfB$aK&e94qbnU(f{gl&0Stgj zy)(8^(=x77*ALE1^{)hvDjL_K?;B5b@%HO#(OoOSNIHO4y}n*st1mJ%YKsg7NH?Jn z4XBNcZI5dOW7bydLE>UvFS2h3Bkj{TxmT|1(l=?z%`ek689K)|XsdPWy0z_^{_)+~ zf&opnZhjTg==CXadi}(8pnv3t&Ff;yeo=Bny{=OSl2-xey72{z%2R5o{}@a3-I^-x zqSy*;t!7a zQqATfO(o~RYn+{$iDlXtQ?0=?ablgWUDFNr*siap<}=2}uddcqjjz@eo}e#5!KNZ4 zs?<)J)OD)90^OrW({3oyR%+(X?K%+wEqH9#6=51rNTAUryD}a9E9d|EG4u6nF$L3K zi8j6Wc=R-Fp`ljWgX~K6ZJP3!a`aPYH>R=TlPgc`)fFAn_lsg(P3-gv%wP@r?r{S# zeaJhtK~s-u7=5oxTc*>ach_nHHOB%-Uu>ww4AQLW)wWGB#aC$?wBBM}x3*Z*t*g|R z8=7=9cj{w%jjj3>llsQ>>0`aICHg9Kt#Vy#udeQ=@pYOyecf@5+WztD%5~kw$_a&< z_SgY1_I^#(5tzHDHRuO)RVcGzd^I`)qzyxLucqlpeYw{ z)u?(ehSem;T*S0`HWbEs^r87Voj*{SEPM6Ym4!y;!_Y zE0FT574LQ8eL%dQgCoLJzw~q||JTKPK)h#PA;nK$D#bf~E4|l?ciU#^oh_5%?-cJb z;{BiEJx;t&|8EI?l6YS)-lvQAUE+PUcpv{e30}Wk%0FGa8^!yr;yqTpe`@~;M?-z>qhIgg+ ztHgV=c)wq~dpo80m&E&K@!luiOU3)~S4!noiTC;9oxLZew~F@|@qUGPj}z~I5burR z{Za9L!iQ4&_r!bAN7DP(;=S@h4e#$qZIQ|^T_wH8i}!V_rT4|+-6`JP;yobVZxZiy z;{8$a-YDKX#e3{UQhwvElFF+T?^DHlwRm4H-Zx(?!F$Ae%O%qLt>V31yzdt8|Bt%6 zfsbp-{|7!Of}*Gu1VNWBU7M%2DOp-gXf>^9gP=?%nMpHko;ovmD79)8L6;y_5E>Lg z5G#lk1YOD&-4z5~8)SEjA_$7&|2^mPxij~kxs!I+zFzzL?`yB-eV*>Q_nv$2x#vDi z+F6L-NN3Y~FUS1m)5p+jYLNaEI(rFRO!uA#*U;n7hcBQzFMzM4N6FyUHXe`XX1Yjz zYgoC1UVaz+1l`*XucgO43lGpW&%;CX*tg;BF2?eBK7se6J2t^t^y;*2_54q!vwX0Z zo>~f5TJaad%jo${a5LR?EqsTS{yO*(y61ZMd3x=m@Vj(DFT9y9lt&HJ`q}LgEYILV zIF;^^yVxo|lO8KKft8EsF1g349HM7*!oR22`~iNLE_xE~qvyX4e?)h`1OG^84Z!AcY%*=M10#Z@VSo_M8xlNIr49!Poq6E5Z^@S%!FSStMgAA{Rurl?{)>^i%&xOMRbJzvsf*E zBb~H@^{0#IfjP*3C!JFO|C63UANo7wFQ)702)%}Gr1!fL>09Xvdh97E|1LU}ex05` zZ*vv$`{^0G{`zt$Y zzhyZkNqZw*a3H*6Gs+)ofDfieKLsC6H$M%}qC4n-ShdfoKO+8Px}46v4)IBzo%H+?a z=hA71!JSM$=5Y9Px@8Ic>l;v>{{nb1-FPAVl31^gC*jN+;ij~m_41d{J@iUCD+BS5 zi`DYyXTpcv#O2M0^Tn$C<`Q@X<2TZ`GQPmi@)+Mn@6n3#mRBIYfL>Jtchb2{@CLf~ zYB=>~%zuc^rgMLf__=i9_3$dXnf{(`r%$*A<@L~)(aUc@{z0)?A1(B_l}JBB-tkq< zWFFl@H_$!w)ATxe-!|kQq-W8|@-nO{uaZuouM(^Ir_pcFh4lWnBEEw5(p~i3^k{i^ zMT+r!N~h2hZ$o`jX+J&cHl)9gPNu)O9qBjUj`*3Y;LbbXYv^Tn!C%nLbj}?}UvxL( zZ>B5gPwzzh;5~@H?=Cp^Ubwm)UPT{!H$18X@u!K^`dWQI{1QF28-APV$36v*y9fEl z(|vSNFXCUj7x5eES32OVr)JkNBo%;Zx}17vO8fdjDMu zzs>kj>)?zB5T7JZ<*V&kMwipOcd~weLwr8nOy5B-|2yKpq1Vy#A4L9~_Yl9D?s^~o z)gKU_@(=h*y6>OxC-jO9@bM2JeLwA^*VD`B0lJIcNPkEV(aBvXZE8C_1d(;f6WdWhcjag;apYvj+P zTj=xYA^Jrt{WnPe1Km$&^q{<&ZxMeUz4<#h;|atUd3Mq3<6L@p8~6=6X&`guaaKrk|ue`y&0|GhJAF?q3~<; zxN-2FFCzVT`eZtXzLjn`3h9UGb#(flkv}C3@vU@rIy`nQ;%hSDE9l`Y_#JxcL^${o z(yy2Te?{lyz!$!Z_#yi6SK$6%BmP4=`8fFUb%-BzJe>R&xbOtHlFmH|?xmaP{J$do z_}PemogRHMe9Ehc&pHKuly0Fj`VikiUrcYJ-=LSyL;eY`A$@WYd=K4n2K+reNH2dK z={wIt{H|}nt7$*oPdC#k^O1fvT}+`3Z~rFpH=cv|BD#;h zmrnI^{#JVWZ}bqo%UdXK*oXAf=(Qzq8J$%MUqQFhopc-h8oi3%{cV)rO&>+4`cd9& zx{Arj=T{(q%HNTHunNA2o?i`rOsCes*9{Z|3vzv8{vD!s=u5<=l=`w&9@-_K00Y7eDDUur_jskH2MQNm-c>u^!{6s|2cXc zo%12$2kATLRktDiNA%Dg@G&1DebZfV6PQ)>+(8f0^FK%Y)ITHs1A4;CaLE^l_pgI*rCa|3e?hN(6%Gs|eZlMSpXjDH z;QhZu{MfhPYI+6zoLIH5{I?PR8Qn4f_kM-^E$_mIeGQL(4_--^zYp)X3Gqwm3&g7Y zCi=v0;0>Q5{drKl~_NKz~9n`x5bweTV!>U&G(i zn>N8`Y({-Xe*?cvr_wXONB&LpZS>l2kv{te#P@y&zeP{j3{U(K@t*JDm*`=7u`GpJ z{^B1H|2DnpNBFF55I=w0(Rz7bq}#TG^S4F(s2$)Z=ovf0v$jKgBVA6X?1cC)#A^Et z>;fM!3h8@yhZk-SZyp1$+yP#-CtSWGJZdlaUAkf{oW2v{bN7ZTcZPHJh2Nl8?FZkr z3*uAuho_H*lT+a8UE$sX;9p7Q)%x=s2p7|<4uT)1yXhaq@_)}-x_EbZ9sLa5M;|!` z@uO2w-W~Kfde=P=Kc2pjouaB7H0U9NkWj-wW{_^yPFX{RO>&t{jW>o`X@p z*XU97%)JqxMBhs%)2Tm0d;@(Yy__DR8|k_GApHvZae6g9F&Xje>6_^RdXIe(KS+n^ zVR{2ycnFr~wEd92nC_RBk-$u95lMY4v2KrOl<3;*6$00tg7+&~uc!m$&^)R?60Q>1R3*b$3XE}WB z;Yi;XgbyE&`lc*|FQn7xVLE>i;vfG7(r>2EI|Ak9RvbLp}xRoCM5&j#UyVI`v{O|+aN~ax#{F`=0{0(%{?(k!DGW|B)os9S$euezS`@&P` z%?H5c^n``*t#n5P{FW784eynP^2YrJP8X~FBlUOib&T((zh`{G)rh|_9q9{ifxn~s z+TcYQh;R6q>FHJUTeN4p-Sqm}D--FHM!_@bV){CIkoIID{fr%u{x{;?mG)SPljha3J=kv9*2)9Kzv6Jd_CRz zBz(pxh~G@_Gne&$3h~*r|LEQI@v592KMlTyoEapi zH)6H^vu45v79#(0`WCT@@0x}9O?1;7c+#neZ=>hZ?ewd3K>^awI}Pc}Pk~>h{d3_{ zPRINkPlXrKZKuO`(~%QEW{s27ni_gbOU_}-AUg`Z=j!} zCzK+8)|n{ZPY39B`XYLOUPUMSk^fV=fS!F8%4?**qkPRsq_ZAf!_CQ zr0=9pqBqdz(Wzx9?`iRY+j%@=Yv8x&Ecy$&kly1Qq>s>fbTfS>-9`U~?xP>2hv~QI zv5PVPVLFT6)ri0~JKaY=LJ!m5&||}x{~Z^7t%}U2;E9I(=XFq^f28=k10XM$r6Y8JZloLNR{9FMgT94cLqABbr&rS(={M-42GsvUI)(n8PNVlI!}3j~e@++D zQ|NMfHoc7Y(JSa$x|P0+?x1g`d+7)1b@a1z;d!Y4Yjo~XcmrKTe@92?-4Fg`u$LKZmOY|oCUAlY)(tkAUIi^b_<{`Y&_={SUgB z{)S#b?;6DNw9p6B?es*tm!3%v(`VD8u0nkm(_`t2>8bP$bRm5o?WdonBlK%@5B&k% zM}JQb(t9k#@(j~Ir$;xTepBdFdNw_k_R&RjEnQAuM)%M+)5G+GbjsD3-=F9S^qX`( z{W0yQw^@YxFQ@mWo9SQB?ewqd9{Ln|EghgY&`an|^zZ1TYf#@?>16t0I-h=lZlwQ4 zuc1GqH`Ci!V0mU-i}LrS%jsXzOX+EJGkq%EO9$yb`g}U28RcJ17twdnP4r`QC;bw= zntqoabsft4l1`>~s>JfN(g)DpbUNKf=g~v-8T9Diqx?#GJbfXZOJ7G9(|6NL=_lwG z`Y&`h{SSJG{)QfNJ?6h_6_zKBKA6s>C(?d;CLN*ArkBx+=@$B8x`)1j?xXLchv=v2 z)E3n5RXT_M7d`$4#D8bS)4Nw=d5Y*m=?Z!>y_}v!ucE!Q=SGwtrc>xk>1_HYx{!W= zZlRy03vNPrZ_umhkLc`H#Q#VS(tFilc~Wmi{NeNr`WU*EKAGM?m(rtdLH>FxKYayV zOs}MC=!fW4^z(Et{Wd*7e@YM0+bu@@N3F#C_n}khBk2kBadZwnk1nSd&=LAPdO3X+ z-Adn1ucIHO2k1Z3L-gP2ls44&3p$P7F@)urO7Bk>(7&Qv=;?GPeLCGsFQV7c7tkB% zYw6AOU3AK=sNdss7X1pHOTSMqqraxR>0QEDo&owGdWg=X$J~bbok)+T&!V&GYC503 zh%TnDr)%hY=@s--bSwQT-9i70?xDYu zLiv}{Y4lBW5&Zz&KtD_O(r?iH^hfjt`bRqD4$N<_S}ac%eK6Fq_6r5?+dLmx<&)9Lh5I+tES zpH8>Z3+X}ne0nq8M324)^;t!y(A{(vy_TLq576cGFujaUYQXX|(JAyGokpkJi}~l$ zxpWa-NLSDidKtZfZl*ivcDje|q1Vyt=s|jr9;P?ZV>(d3(MzyAsdOrxMrYAe=^1o{ zo=L(T=`OmDex4qp-=fDoj{1B|=hL30 zvOGI@JjeAQzL6ey23|>fR>Kd_{eOmgEWZlBNEh|NuUj63-?cnyj7M%ecs{Y51b<_B z3_R+5)UT)j-it1$Q!N)E{+E`E;o~g(;bOXxzL0LGZ?#;8^iNw}2)}3fTzI?RpnmPY zg%7m69G*h2zY;E>Q?7#jbUu9^9igwHyXd>D^i9a$L$}he(G#vl{73YBdbzKaa z_n68|kO$Zu(vNb$b6sq#u1R@*hnfMu+G#>8t1v{b%|f`cwKv zde_TP{vds%Shb(x4$SW?x{W?xd9=KLd+8n?b$q;r_B6u#U5@xP`Zjt7{Vd%}570@M zA^%r&4L#-xl-ET6Qhea(WuBzVk^U6MkEhSEd@bTD=+5ilrF3=++(ft2ZFJfVh*w{T zRLeW&R`^xAh~7x|(tEE!`lQ>Cej;5!pDI@MUqjc?1N8ND((TCqFr7`mM9-iPp3D~=hDe{ zV15tMY4jjnOz+c#@*3!AbUVF>?xpXbhv>i4Nq1s?`(KUnvgy<50=kY~Mqfv_&@a(z z=-PNO`l0`pf966?U>&qbQ=9WJ%j#^ zZlDipM)^(jWV)R`i|(f{pp)*#{BEaH>8I%e`tNi(z2kM5Ukm*!x|5zw573LmYJc2B zuVs9}J($1e_lPg1eRKnTA>By7M-R}`uV?vmDV=mL%3np=Mdx{1DBr5_^)TF;*Pc)Nz4L4Tk;*5m2k7V+QELv;3yh)>%N@t4sx z^j-8a`Z2nNet}*`_bdNQ&JRZ<>-u~|57FPzX%i4X_9mpyrVpd1(#J%-pDypTs8h7d z=ou5>-_UF5XX$nH>sI=skbZz}r$40o>CvsIU&}P4PoayChmW8e=;P=ndN$ooZ!24B z_r2u(6R!V*=yH0hvYa?`TJXGR6TNu|me;>@eD5c4ilkNPyV~KUbm3;^r$_$)-$}22 z7yg=F{~UapR8W;yu@b(QUUwz@SGxT+c&a>$qtXw23ooG8aDLCy*#SI1ww~_10O_|I zh5S>wJjc=gVZ_TXe(Ca;^ZC9@=w;U+eu6yPpyogIR(Ls`(+z(>ulXL{UivP2`4*r) zPta@EApYDP5x?$LI5&yun_>CUUY)<_I{5E&{`>G5J2C!Zlz$`LeF6L!U4A{%AGkBp zcV30~S=xGs*6rKN__W#`wQFgA7`}oYS^(clcbCBO84X?EG%qZlrO@6~4a;XBwC7jA zKhWj%u)KDzBH#G9}q8(RqOdL`yM`--n0$sQ$?q32g`1x(-+H% zQ|;qUx}RP{7jBREFX_P@;BmV%KRtsUWO^UHd`F~@(EcR&ayp6cH^{K5uFnQqhM}}a zk4E|pbTYkVff%Zk$zkQ zoKI(+2iMa*OW@n+j-~KRbjsfFAlVzs{4&O-bodJR2~UOxu$mGtVv z;YKU{MEDLXo_@y4&-MQ|E4~EjzomQWeWb6Z>NB42zZ^~v&qn$wbcY|FMGwq@&!!tD z!_{w;)IC?343ccxL#Fx_D zpTXzT8_$ND=+X2YR{r&f{{y{r5&S&8hL&F()AjF`aUQiiAJP-vfj243Hf>~oe#|~x z-VgA7%p>U}eou22-LoF?we-+2_&)9L=(Zeq6}_7N6Fu%<$gh4aPOaab4e&O}aO9ux z{&Y6eA4|`tOXx19Uq<#$Y55H0 zA4E6M$I*WJYr%b{2`I;_fd)r$sfYtuKZV1aaiJn29Mz5eF z^ak!fm(u;)qI~&vPF-F({YScuevR(P!SU!LdMF9`J*mi_`wrswq1ViXkD>hq@L6=h z-{Ix-@M-YPbVm{VFg>5;uc!NI&%xY2{QmHGdJLC$Ha$!i)62NNm(c6K$NIdM9=nE%1Y7t-r9;almnEcj1! zALBRBYw4X1#r#*(N6@P#BL6A$_@m%3-Avy^SBygZL-dNB;aBJ+*7pOtoAcX!9OmD_ z`c9&gxV)#)72F;nx`0(l4?7zN3dehR6OK^@(hRGilGK z@X56QBeAv0YJ@7B-^-1u-hoOEevfvy# zX(BwA9$SI(O6hg?!d0|?EqpG$Uhb=?_H`*ep##2#Zlv4jsrMuPemdm=Sbi=~A20m( z!RiOz)bVKiOK?A3u@3%#9`_pjwH5z5yvyOppG6-;C%uaJ$@I9tz$eq)Ouvv;_Yu|d zMd&{I5;|AztEu=FdPWf2_kOzNDy-i>(e3oxbTR!gT|;}uqy7!_-gFcFD|#6{lWwF- z>2ms9x}W|XEkDPj>)%EXF#aLBmwt|Jqxp#Jh;O2kw}bDei%L=6JG(aqq+bq*wnP{*LZ{58ihImUjg`nf7!2O{ZtnBmJp# zHjlUEbPIg}T})p?H~EnNZo07;UQOpR{Tp-|kKdorqpFeq8+v>>yyq`b|4pyscrt-b zTLT|QXYqRPY&wbY)%4iskp3ciBg?yi9`^#`AEYdgvj!Po?|{y@?*6J#wE$ z#eYMOdJo@|-}5NcKV=9$l3wv8oJ$wJ4xddAzX{jT`R~A2(WAJ%ZlOoh57KMy#{TmR zog_C-RQ+D1=hvXVA6oIZBmO(O=ni=Fuh@RLeGa3S(#O!t={fXR*5_<1Kj#;wE13Qg zdNjuyT4>LcsNY@m_^05<>CG&EEnUv`{2txLG8+H57DbRzvt;3x}WZ$KcrhHA^(qb3cY_i zmZz-~@e}CvoZqpu=NQBn&{-_sM{mwXe25;p73=FFI`=lXm2N44AE5m=!%x%mrtPnbc#F|rq=IC^!oX5fS%9zdb*$EjhEBeJioWlt2QD3eOCH!;1}tX@8R|I z0OLQWhZsLP3(GVATckgNUh@N-Lk}{3F5Uhk;wxzXckt!(3J=zAD?P;cKhTkF5WkjQ zwi)?9q}#rRf1p#iy!%Z=eJ61I@#o5W%a8o>`G9QL)6en8*-XEA8Ol4Ip7C2aNcVAn zsi(76A-<8`a67z`-pK9UL3jBP{}^4)>zfzp)$$yV+Wvj?T6yk9`JZ$n^M6J6)*^n# zNm$-NWPgS#%_V@~i1p^hLCX^S_=hrthVfu0;Mv z=wbQ=x{b^88oimv_kYlx+`qn{m(kly#_~4Nd(aa`VfhZD%kRYeC(?e7Umr*3{}J)C z>DD*kv*?a~I7kn@2`{C)cz(Ky9;R=nduO3O-E;%Jmfn04;s@vs#(T1{e4~Dk`RziF z=JDb{dNZ%jj-)rrbBn6I{F)xBf@jj39)M4$^B;uE>Fz(kOKACBMP1(Iblb!5O>{#W zd=DMr`Q=G^i1Dw{+0P^W0Nwl|JVg8HZKq)Qm(nS8A$=r0pFW;Wp--hN?#KGAriZz| z{f6%4{f{f@rFWq|H`1N$@cnc*-EF162l0QRo9MUbRrJ5;E_yTVzXkQ%`DiTfAp3Ls z)BgJqKY^~{{(3Y$?oPzdqI=un`E-QytD?uVz5RwRqJKxH)MI&Ct^DlIJwRtOeJ?$O zUPmuw|LE^@R};$nfbQY(?K`@k?RlqTu>1q;pC3dgvHyJpoy`8n(exO4Hr>zjcDjOooGzmOO0T*I`Pb8f^e1%ja>Rc_x6z|zTzGfcQFGr% z{QmT+LHG!IG_S9w(S1B0vaZljx(_wjgo`TSTr z<7fN{{o@{bXf^yYJ;?dLNpEaM`5Wm*_J6khHI_H^0kqF#x|hHA_e*;C5ya1?o9Tsg zA=5X~2CICpQn51*XSf3uivMe{)YN*rfc4Tla59G3!i|K>8WM#c)Ebc zmuxzj@iXaic`jLPuT$xUtKcBr#`NdY-5hVYnjU@&=~vRlJfA&C7jS>=rPtnz>&t$6 zO%I+&`i$=QBfRr*Sia(i;6v%62jO4S?GM03bl0QsV!GpDcm-Yf6nrPW`5CyEUb7PJ zr@L>1hv<~6;H0UjU(wZYD!uwnIGgUc7A~N>u7}I%c zTj2NTlt-~WhUgCZ2YPuo;zv(I{mUPN_oG+vcsqga{1EZS(Bn74`BwgA*gwvu^Go0g zdY}^i4c$--Uq+Ad!#C5B0NhD8m%+WXhyE+Qf%*SIr_#f8GQIQhSl%=`nO;F3L3dt> z`5j9yqvz7&ncheDbNOoN8CA%C1wEg>ovxuDqmwF-el4BK^8QZu2NC}ny>t=0-E=HZ zZ#ld-ozL`#(?bgpKZR~z0G~uRbN=(`ES6VAcX4|zqx~%J8akEb-A*TQ{X9$;&&B+n zqX+4?>E&D>8|ks0$0<8_3(xC z*bsaz-4}-Mpd)qgqgMVJc#V~R3H%nFwHV$=53~Fq=;m6)kIBRGHB`d~)0;}+bb9J? zIFH`&3ikig=;A-Y3#@qlo@E1_ycdqYm(e-T;Q8CD=>B5FucSAg1V2D$T>(EuulpSH zTSu>5$Kw%Qkb(4{(<=^uN1cG>ZLEj)riU+u52I6Ffv3c`N7{ufi+oo@C^|pUxjb`A^V;zd-z2dVMDRHa%`Kp3nV|Zn_Bmh8~!K z^hqaT`IFaR{`=F*{tO>Q_wamqJl#Q`Nw4MhsiN1@m(WwW{#)r8^dof2C79oz=_IcI zL3;jWi2ugQe>uG84Ag&++vDeSVLjGY4xPj8b27dBe#Dp2ku%{X^l1KGYm?=35Pv(} z!1RBlXK?$xM0fWg{U9AFfxo85u)N)7qW%MAh(DNaVESx2mD_U`-IRjuSwgSi_N}F} z%MibU?hK;*mGmIz_XyoriTD@jbqnDEI+^{AFX%DL(0+D4iS38acOOXS%tZVoI)(8k z(XIK2FQHQzAEKAizolC)!SCPQLif^7(&NrYd>@@pe?q4ojNfm zW9if&&*iy*u2_Qf_tHi5d-PcPN7_RlJ{$F!O6SrO=nA@>zJgv(KWxP>#r*$D zN9b?q0($Q`m|q%w4DI3eJCz<_{JHe_^HBcv^tf~3r|6*u_%(Wv{)+CUcRv~PZ=*Bm zOJ4u{(1E3L*Y8Q zkjr}&-M9+zchjR+!Y|YLH^6_V`&-~)y7^{!hqbnyr#bT<32$qacRakKWj~x``8*^2HAeb7jr32$J6QQ& zHvEp^FAZ;hx~}i`R{j}=>kQv%_)Wv9Mb7fd4c}$>bHf>DIP>Ql4jaDO@I8iC8(wet zOT)XJ>74&~!?}i68h+gHYlgovyw6$A`OPz2ZTK<6+s}9ApKJIQ!yg&WKHHi962pHn zeDFEW^kKujhPU@R)6X${t>FQ~M;1HtpKrL^@Mne(^EvaMW%xS7uNmIC#F>AZ;d2c? zV)#qL>7~x{$_(FRc%9+x{m%SH8$QGERfanauQNPk`0#*pe&-loZFsvfXZneT&osQ; z@Lh)AH2l5cgBCdFmuq;T;l~W`RPM}wu;EFD%M4#=_(8)j8ve@gn4ok1hZ)W>TxR$J z!#5i4G~934v(P#J{S41DTy6LY!;c&OtKkm}dlot8Ki}|T!&ew?HT*s8Qw*PMxWsV1;T48>aVF z>+_%y|GW|3Z}>yQ-y2R^>|EYG4If~5yy2N}lC?hP8}X%vgNADiH^AFi<|so8f;M{?za$!`sw4*Wd1j_c44R96i4M!f>YHV-3$VTxhu1@FFDE-5}D4GX{k)hWs=)59=QeMX_QHBwRoXhk0nf@TtLo#*A^sr2i$n>a8-7-BU(;sDeT&5nGo{;HDnVyoVSEi?B zdPb&aWm+xMpJaMYrsrjn+g_d*WO`91x#i_qE7Qv|y&}^(ndCN|=dUvL$@H2`^4fyu z4Vn67l2;ZyZ^`twOzUNmR~9_#dqe{=y(^Qv65)AYra_thA=5u)`j<=_WZHHo8AOt4 zluX;plqAzmGVLtWE;5alX;+zclWBLE#>ljXOnb^SR;ImW+E1nfWI9l$gJepTNrrJf zhsY$uv7T`<{amKQWI9}?@iP5FrXyrJQl<$q{Zgi*Wcrm%X)>kDlp#~5Oj$BblxdPo zlV!@5X^Koo%XExPIWqlPrsHIqD$_KXj+be=Ot~`U$#jBDC(1NKrkOI$k||%N*)q+M z>13G-WI9ErxiZa@sZgd=?t09l<6#)=F4=pOy|htm8n=JpG+k(mCEFo zDIimsObcWxmnkTd40(HG*xVyS*B%)j_sEdDM~1mQGW6+LEK^9PuuKt|YGtaENro{! zGPLPgBGb7tnfuFmvMm$sGgnC53YpY5tIYl98VOVTP_s;GKl;5)|IWU2o238$Wq*1} z>iVDVQ-71Z|IU8(fu#RfrcY%0RHh-BK9lKlnZA%|Sf(#!`bws6WcpU7?_}C6)Aus{ zAk&XB$?Xo$HZqy}>5dZi@9e94NqTF4{h9o|k4(uj?JJYofA^Q^|H3|etkmP**^f_> z^#8x_%j%jW)#E++_>-o4r{_Q`)6+9beBofJHyjBCs}{^Goik6uO3QsAZzSXkM#3{o^YSEY zim#%gy3`k`4ygcnn8vHh3kNHM6~0g~vgD_hH*c~RMb`QJUMaSwA~2UVoKzPmRr4)# zR-;T+BN!|zE72J<7Su$%k?KW(s^Gb@bW;@Tq{by9)GWhoQ8V0^H6v2(jRY$L;fSxY zrUCQJ42HdB!HR%4&=3qq3TBn+nyAovU!Aw4wyZ1=`Y){Jtmv|MgH^%E2n*!4JaLON zH@0qceJ7SySJeeVYVCPzBW2l%%CC=W8uez=kN`G~iK@;u(xf8Z+OTgyAXrdPI(Jrj znhy4be3jBzDl=B>0n!> z!ZiWkB5!>#Qm!{|q7|~W`--$}`F~I^@T3I`Dl4!Hddnh9Y64cPnG{>?LJon0IVB9kYl9>tvHrMZN8G6~hISz25K%GxM?6PgXSz`KtWY zYGqbe)7mk0cP7;bv+JlKXp6mwUZr@Lx5MU0_$KCvh7eK%p%=w z=S+{=JM~PaM2|FTrDk29wZ<@6Y(z9?p50=S7 z2Yi+8NA$crwXaxdtD|Y>WyszljZQUEz3tTkMfWL{#W-C^1_?FK4s+%mFMD3D-t*?o z&_{Nux2!WPiY!!(cai>Yjr~wvFsm%+_ghQyf2cKO=tE|F<-MVR94h3996O}SG8D{` z)1u!WEc-vWBw2EruNQ`sZpISZDw5`*C zbQjs%KD{d+5^_*Pl z4b@fz!g+PFt}Dx>%MvK9jRd^qveE+~kJlfF9!o;i_1@s(bZ@0=sGPXt(q?$wLmLtV zyM|}F7Lw_0a7~@%t*UUTNtV|o_2LZgthls`Gu;BSylL?%v%KkUfi7iEbjv=`E&D{b zxleKn%yug?+a+a0wpo1bBeL`=G^F~Zz6xKxI;E6lW|%?Y^ht3+u~a2X0kh9_lNvxugvjmC z9jf$2th$y}*M>?A?crcYf3AGwr^E;;Pcu0_gK zpi7nN-h1E5I zDz98$NbgEI1hM_ee$+~s##VOXG{(GiJKUNXj+8Lgw)A`xCN(QKQo^k+b88n!j&(+v zY=>L3^dlrS7iy%WvAP=D*J^`Cu(u?7Trp#8r!kkP5%a|kpk~g*F}9^NGf7n9*-7LG zg(h4dUfEhB6q=b~6dLkHk76=MdIF43akQZvyGV}z&39N#421{ zWj~wBKvy_eU1gO=a`e**#oS{DoDS8WG)G)rqe>$U-bkQIigeFviCH% z+M>QL8DWE32@-Ekr0@sof~781M{MGa8S%<`abIcD!sFM53{c7#NWd#YC^h9?u3}@2 zmDbd9C1anfiJ1F=Erm-vQL!$qKn2I|jw)1b0DbtCgJMO6s+3EOM%rbqLa;;ER9DLd zq2pK}tJhjsmpbTJv{8MKQR~wiztpy5E=#Rrm$szZm2{nwa>G*zBnDDEZ+s^YTIR8I67U1sOfzEt|^va*V5xkRY0amf>| zt*Ma{NZ9R2t};jCU30rvT=pEbRrRe6W0rwBInLTojn+{G5mf={n>ki4!b5>lx$or~ z6<$(RS{|xa_cLAN>*e;W5#e$=80kEq;{1U!pB(M1{m^B(k;>($p&}9-FtFFFV}Oh? z8kKa!d3|az6Qrn-OK`_Jv$D!r(QQ%np+>q;RdV7?JZB`36LNx@>3Fx|WthgOk3P|q z$PFRaaMyhlS>&u9f7+7+tm;abWre+R)QJyN!wu%qM~7LPQXgUB4=#>0F10{>sjo)$ zv%FP-1{vIPU7JYgvMVDZ{s@flEgplJ%-Vg+eDaKe*%0g}=#kExj&zAmzb;3Yghv)x zD!C$YJNT*?w?nK7SI3)?;$%-UHn7T-FjO6SOTBU!EipqZ){J*%=U_jsWhbc3V8ocP^d4Seh!U6mx0pNu)CzjO+N@6X@p%5|@Aup*1Jh z1+|VZZU+y}NgrdlL%1HikS_jsk8ssH4Aq&3#8{l!4iKYSZlF$X7$xYo#8Pd=LMA@1 zL{EvT!)dM{Yk!P8T_!G%mC?=1D2`F;0w-~d>-uHR_?;sbF;YJ1W60WcpXW#su4UE* z19Gd(c12jmahDo3{(w`LEyyc()~w))(nXHTrrKbIU$@PAUr6o-G}Oq5oR!uYCymq} zRGkgkcS{%5RLe6q^5m8yt=zvzR7|zpg_kk@N~Y?fdfE-0;#Cl9RP>MD8s zD+c?Y-gK*~^3X-Zo8eHVLs>S}Ir1raYszDDsB;vgB)5FxQh39Qyft!vORsG8%!eFo zYa-?H_({OXFVC}8g=L&0V9YiaE_1LIWgSUMtJPJ%ePl)-%B?##n6X@3sDoj+F5oSV z_OjL0Lb;3?_$nKugh;kkODk9gHOeaGW=pgPow&{#0*Pj?Yp`0AEofr8d!V;OT3mdY zlH6NYQYp`nm~+!HRaGuA-n#f;TMxymj5Hw`P;(SpTI)BLOKN5H^Q?^V3tv_vJ5ZgO zbwN$7%WM}pdL>qw71CyXYE0dzk=)Od&Vbuy(ESY~byYx(5jqwr6bzTvdFAf8GqlEB zsBl<5_3ca)b_>4xa=TWP3T9ypU@j$HCB@m2_|C5(&E$1p2amMD70 zF4geX$U|Z3;Xl0={Xw5~;8K6e)r9QL!76!NEgBsSlW_Y!7)yU{AXFWfK?TO;ur{7Q zSZBu7TE{tmZB2Zfa||v}5m19__QQ9e!s?;RUq*g8ma}^Dml0Pc{rz&UFA_lyi0N#h z(*1S~)JK~dxq5VuRUHOhl?EC^IqdKb&nDc-DxEbn6dOo(0; z_K0lvi0lS4qApQU(TD^&;);?11pT}K>jL6NZ8S(doe}LJs8z25q6Z!w5Ddvc7&>rl z5-K=oW>f)=jB5CS{XW|ThRQ4bJYERf3RHncI@`69%BHV(<0?{BjrL_L%6Zd7WtDbo z9oH<{4~8l%u3*)W`Jlb6Y+I=9+Fun=TjdKaiH&#RdPO}^R#hFnjlzo<+g$~>%Nj=* zo^_UcAXX)Cl@mR0AhEx;vc~JLwhl;EpmlVE;}=txRi$efT|Wpj>#P>SnWS27(5WZX z9QCpS<)NE!q*|U*Lrc?Ts=*s)fO?ME5n>;pN1g3WLYJcY_0c@laz?0d}iSFVSpZAYnSSnNO)4YF4rfwAGiU}Z*W zbU+%gH$YpDKt`IP-E#R`_1c3AYO8CldOO0@(_?xKJ43Czj?Pf4Pb#4Sc{1F(xD(2n z2?ebNCa$WDc6~+CEvS^CLTf`yi1j$4EhsEqm*}lBNfPb3+tT1=5!P7tfkjK?)Dt~B zS5#a54f!j2HEj)oTDc_3+1XHur5Oc6RnZ|g6%@N(tn}4*OM-gm)Xya7^<@iWakc}a zibVUhR-`S&J)Kc0d-{>ew>C*EeTHlK841ge#<=FojFAsVJLd{T zn9K48qC39s&{qUYY`xoPkiAzc*8^77^_79Wd#SD!^do@Sl8`sL8#7w(xwd{*mDeAP zc5bWq9NzKMMnjg#H_Ylop6Q9^`$)V6T2^~ z?KsWbLR^ZGfir8{=!EL-h4WCZgI$7__(JNoQ7B~Jh1G?Nt#c5nUsUIn$+~P&=Oe4; z`fp=ivGaqv9*gc(Kz!QRc$G>agHg_Es=(MzPdQ7K=ve<)rHJkClrz1fKdn*!m2mvDA694AiJ$ShOOkrj24Hic`R1XkK0c| z;lIX-BRqE+@`_l7dWcBu~ zJo-^8eR#GVOJmPt$Q4|)_*hci=E6ol&z6btwj*(Tr0&|s*P_N(8+|;=mPw9}wb4g} z)a!h*bkQ@McC@3Q743WD)jv6-1u9Dd@)lWiXkWiHXU*Rl%eJhpBW?SlzJjzJxuUiP zVRSc&nH^m!N0{^6TU!CQhQu+6qU0?k_tNx>NbXTt@-C8! zu`ZNil~%7Kx#dxBB)NvmOG&QbYUIad4l*K?uEMQr2y4y~?p}_(pyXPPyrbk=j=ZL% z!p+UGSl(1}4VRVRR=$2U$t{C^JIN8DZmC62mHGx-v=gEg?SW`TyB}JP4sE@9*(NrI ztyo)S1=NOgQr%oe1N$~Ma} zSv7E5h}uJKK}H#h>TxGIU)mDI>Z+E5L5v>T(y+5*4~fr}Z4~3& z5~^VRMp|^+=nz~r*$UQgqdC(!3bvjy*GbfYKQC+BS#^Rm*1EAXZRp?MFkR>(L5{t^H_7bR|VY;&WLm z$x7l}5a-&r($vNk99#R*G*-cC38N=MS*v(1U)|i$w*-TWGvt7*_G7uQs*%fo1n3Q7 z1!S5jRDdl-rBC%6qgQHtQ`TX*7PMKv9qX`qN7Wf%gy?r+Z7KK`tSv;Ha~y@>&DUrO z>8Zp!}Y-IIraWrQ%40olBaOb*5TGcDicd+8p>bH~KLS54v zTMdQl?t@$D#wN8=OLL4*ZEReXR(CR7QaZQ0PN}*bE-9T&LZ?(65!aOV?Z}kr?kVl< zfhk?*?rbVLrRu)8%w4}>?bry5RfonkW!&6V7sn-~v+e1*t4@zgN@ugwDOEdkO&PbA zr0?dQGOnJ|3v)@ym%befkKR`N{P`-lkyc(0H_A23WWM_HpnSL>ByT;*gURTgM~6uh z$EkO#JYHwKToCAo65K+a>D8?XHHc$9ri=@Jd%7_|^>6>pl7qu5N_a1?7I8 zEQ8!_vehhM65JfqAA5++*Dud)t2=Ji3}Dx!m{Tk%?3xrEOsh=#y~Ks2Z)G7PFQ0CzBQBEuXb`)+akYs>j$9k0Q#T_L6d^Yv zx1ts@5R@Q)&DLaB3!AWnk=KOWq?LOfX8jqOc-~c3qmz@lqvo-QkuvMm7M~Tti8HF5 ztfC@d?nL^vccbO1wk|gY<+FLQ3dX`*XQ85H$VY~GY# zGntuj+%XRvBc&R#P;{%UjS(wGg>NzAmg=Gl(d!xYO;lilr8YK>uAHqjV>Q}h+~&iV z0xM)g>Cb>zi>w>1uU4)w{DFwRGn6RC^@tz0C+Gn6Sc`r4(1DKgs1@RM9^RvOrL9U- z%2|q^@`^1l0_7VEwfC;)JvFfeJ%0Pv!m0O|uSm9a= z9phdJ9hIOCIxayK^fw{RRe|eb=W^;RN%h*U8s3g&uvU$uzE$e`F7`A+*S%d0t*94j z)RQ*W?5gmc%2agv^gz~E5v&vm}8MAU07p|_5fo3x- zZmzO!9s3gIp&urZ2V~V37o0`tm+?OO%u*URSV z?U9Q&>=12y#Z@K6n^w7e3$t3fq>c~0#*)nTRmqn$-Qwj*XgS`Vtl#033OMr1xAHIUMWht z-F5O*oP4!(X1#p3&@W#wt&&emltuF9rl-qy&Pw!Az#AzjotNdEE0g-r+(<>FOA)$* zE=#CCl{RAPOi8Vd)%d#8meWs?^uCIE-x77JTzd9(Tg)<1as;c)rI}SKpEaE;Q$f9a zKX0x~TUahNW4RF zQp4BIk{L5a?o)Zo7O67$Ud6+({ zzT6jK#Jos)y6OnZSHnV~>d^Fz=%)ZxjQ&0bVsg`CIpljT`XgaFiz7lk&>|m8(fRBV znbDc6x5ynaA$i$b-F3wL)9v%mG~@nDA0U)PGm3UBwlmIF*^IOjd5K$wx_$CurQH3& zYM35dGwum&CFl=Xr^`Ez^0_l>fu&ugPehRHY0@mJBH{Ej9jot?VEgi5V$W-qYkcuk zmAmB+WKRr)q_yN#VvqPKpW2?}tC2Aazik8l=b!DimG$4KSXiFIsQNEeELzrop<=-* zdC4-8S808I^Czu-TVel&s!6v?x(#`i@^qUVDSt}EtPikC8sDSu+Uzat;#yFRGu)iPSV^zwko6Te4!7J zTb0RdRm>!>%1Z}6(YLd+)Ky_#fqGjnwx+i#=OpTNq>-kj&sv*F_ZrO`@fq>1{z}3lWQh<>^CHjWa%q(bCIo2 z$B$eSGuK2pamc8Fyeu9L>khVTc}LTh1b8q`U3S-&M$A3cj5jx5>^egB$;1a8>14}@ zKx|>RGF#l@{FJK}d>`ECG0w~I%9SUtNVv`AN<~(e`t+JSXsNGR(lgaiOSD6ur+U*- z;UiJ8Wpl|c*Fo|^uYT_p+t|4_;&WuF4+w23(G*oFc`l>YI3%l|SMbZr#4^h|`2iR; zMrLj{IgPNf)vKS=&@C=qS|G3ay(-i>d$%0s=8-gPO!}Hm-%4?ml99&tSS_!D>k3+p z($+XsA}L0?I~+69*9Cb&X}Y#lS@L>Wnf^R`-0vQ2-Bmzdf&Ij;iVOb4;_SzOiKS|c zQm%EQSF31T6V;nk4aVk>=Api)I8%Qd-z(Qx;qc5d`7VBeOm&56Ug;GT+WSS5%4*dI zfM(X^Wy;>|Si`X>*^>*@nuu>)_N%K{db3WrET5<^yyeCJks2^B)YYkTmRz9Qwo)v{ zzWX!OoFm#!Mw)sLPdJoYOOnux}T?5OfHbb)e z>4xuErf9}2b(18oz`i1*anduB4^`&byL3}?l2! z+P3}awP?I49SCD1Xd6brQv zDMdq_Lo`;f`|yhu8(VEUq|jOqR%asm+cIv4Oq>)8%}lW$q}iHG+4eK`NL^u<7UHZk z+q3HbNE`i6iaKphx|~`{8yb8i!Mb#HVATC0J>sNq%wTIdlc}>&IG89Udkp{1`aI3p z2wSy2qnTnICs_#z`&)@tX0(_@jX9d&CvUfCN&kiI=C=Es=DPdnP;>Y3`*6_oSKwdi zbEu|OrLXM0(@&VrA;@{UW$EASn;Vdyhm-S8KoZK!f{VhDMbeuI$^8x;(BQ*22jmD7 z>lH?0y^l3#w_odVy3mO{Ki{0|0gYu|+WQn&Z^)$N# zs2e_N4af+5P+c?HLUe5qBqy(s+!<7{@>Y!Xmuv|AXQaBKx?bHJllS++HELDJ^PYj) zfcm&fD0Y@tGnDr=Wn5mpoi3|L-q!b6D?onUP)b54*ie13Q|MvLRmcd`nOdN8NgK^FpL`Yl6zgUX>GyL zwTn%wKN}`hAUH;M6>+)E<+RjV!6RLQdUIGG zn;EOD-yPGj(T!1~KG`P!ktMcPseE2ctwzRT#o*tDK=~^TlQ%TSk9PP(N|w3|2o{ zRTh-Sq?(j;p!FZps21Zx?Q(ZYnwHcb`whNHxFi^;kWks@Wgg)wYZb}@=(ZvM$_JMu zMvevQMw$Lg?*Hh2tMoIXa)Bl*TIH5MA{8Y|)a9I(JnP_*7Fbm-k#)KA3e>GwX}|hU z`4Aibk{=Y63h2N(`S6qVr+)b#p<(;q>J7-c=-yK&pPg5WqxV#SA4>69Fi}Q zl*r2Po|&JC-_PTRG4(fHWwq$5FW zupr%0U8HveVa=&ym0Q}(beAgYueb2)oJOXCbYv*yrxIi^g^vN-6yEc$MIV~-1lH;Oki-}`{4bD#b^mJQ^Of)Z&k!=lGxZN#{<&YL0 z8z++M1^t0#Yp_Y*9IsQI>I^HUthTCj=9&2!6XRDWpYASji<5m)J<4RQRlIhTmpRUx zc9QzNRpS~s{eM@HG{;8y-&JG_;~W3Gipi$oj{!Q@lw7UyL?=gqh9$8UCYQS2iIH0Q zP12bssiu@BKd~Zx8Z}0#qSDRrT(v8uXIW41%kzlR(U>XsKU6!Jt>XS?jU(@by1KlA zc_-+q$gsz}S=L~HzP(~BSZtZoy#L06>LbVhjRnn93yPmbo~i!KwI6Bpfg?XNGyXWh zlTYl(J;jj*(fRl%To>_;F<`QlAi6u6{h35ebUM;B@{L zRmE+DohmF-iB&P|9*4VPNr0@@`49~6xKV1kT+ z#5Xs!gfd)HBK=$SKy0w8u6mKRO0a?WikR)AjtIByOO6ey*Q;*iu4~r1h)B3NDgoOH zAKiATwk?s&&viyDLsci?yliP~r-LmOhlBo>QmH+7OKEs8c3D8yEaBc^t2x{AmgdJ~ z*8Vh7)#5j;vng`s(PUEeh}$6U7cA71mDpqW>bqV8>LVC<@!g{Qgq(ge9#+3R7o+|v zP>kyOz!s}Ns~n5v7qM&s(kyJrV;@9{CBfIZVzxdgW6P#$ETc2(7whb$sjm<63ydnU z^$7_%bgG}&(LdzbRcE*O^kX)-n< z&+*6^-CAc}`RQLhq@@GYT8afou_Y*p^N}i{U#&l4q&ACf=^V!ornBbFZ{+av3{s5s zwU^j;m#h%m2b!HF%7?#Y)JlCs7Ik3R)*7;YI6x1|=!J=kiGHU$Ru40c-ionGxkuxx z4zd*1r<3*PO!bikr&cyr{m?V3X(hGBWaKG&^%AaJ?`Akh1LRnxo}^lmJ_&!Rx0Yp) zSwBbXKKhcd1oaHD{^=ARA@kh(9B$n^**~H`Bd5n)*t$zWsKgr%t^);Y)=IITSItpg*!J5*6V*>e!ek!={Qp8 z=PcZh5$gV)Tt&JZ1FYklyf-R`8hNQ+9$XmlV1XSN=W zZS3bNxoRlZ$%yA|G>!Ph#Cb`5_T7s+sz$!(8nc}oGaZ#spV(*DP#5DebKKK+YuWbM zqnByUpTla-^LlKS>>Qc7;%-*tXC*wvSeF;h%k?dsY~~n8AXTI2*+LKPM<3JOVoK|f zo$s<@S!S#OINKGXv2mR-whF1twrfSRA=}G{Zy>e`Y~{#deCx24p}H$0RUrP9Xv_Sc zj~m8sd=~rvsQU_lsFv?xY_L(pR!mG}gSLnT329MKT!{siT3|^#5JgPv?nXheyIW9f z#lUXGZoe~g@7=w-_b%)L{@(w4&*y`C=gyp&Idf`GsBbppmAJk%X{?0l@l~!b`8~!( zb&ZCKY=^etGA&mln<10*lWQdF4uC9+$q=zzCQ=}*gd4Cp@V|j>rK(mf3e~)iO(wFB zfzF7Mk)cD6oKMl+8+yW1dZLh_3B86aW2Ba-^ooyCj}rPL>KLc6LH$QyrY7A@z z-8`7!ixYlKfH=<48Jnc>5s5vc%h2eZeDjE#Etbu5;mXDY&mpjI5~VXZ1oc3VBBA_oB<#s> zQUsttfF!2aCkwt2$9r;2m7go|NrI#ynw*?WNS_=FViw>GB8`ABdt8LUQw|UPEitxi z`h?s|aCBmL9yL6EMWQ6-E}#U8E1)x7+dvT?0)ZQPY>v)3azt{pr$kIb8cBo}v_q$| zXN8XOsuOOGaE79yAZ?bHz|D(XeJ-`V$T|SQCuE+i()W?pg4l#O zjs?{hPDV%Mh5`$%(9ci4Vfd9iN0-3Wncp6aGzXwUTZ`U^WLM0wG6{^P;FBq4I)(hCFsM zdWKj9@+(71AgBPiR6Pq9Ap=(ACk{u{$t*?kZ6Ps;3hkVbre6*9MVA zQDmfIzXbk+>lvAa0vrC69p}{QLp|tRxaLT%R+dyCpC``s<>}0o9V8Nm&}~dWl$0dd znhKaK$AGSAXf1I#NV`#a=bS4MM2p5{_3WhXdSd zQ8EWUKeU7~82piz%y8Nf2k`HHa>K zi7rWv+7VPE(2AgMQtd?grAr_Oz{biap)sL@0`VV_knaidg<;=CNV^Xih(e{P11B8C z&E>?1ML{B5NE}EF+$KWkx-cH`1gwerbi{72m~9Xm5}F@6kcdZ!LH~i^ zk~l{g9|z1TFc0()*hi#55Ga7?R&SwQj2lEL(gZRt#8Tmo0-*pRL<|W7LZC-DN+{2b z{A@eozR4xWj0u~|9Z~NBi1I~2zO-H`7Qp3D@)V}ARBB|H01Z>rVgwrWq!|{G*sI(> z$<8YP(h_>o4AOsq?}}^!qnK*sw=Mzst&vJvQONH`;l7KyxNpsd`|z-2+*eIOkhoSx zyHp8_D5ld7AT4CCQ`6W{8r-2NEd=1R#crLG_n$Zjgt7QiDn- zqp>)l5uSkf>q+Ou%0U#Ah=Gz(Vo^!GpbEkwTha40 zQ@P`|vUvg*z;P6=u=9>y{m@>cjpxBH?&ue0r~##6C`DPQ89st+(`=oR@@v`nf_i7n zg)1`|2PTLkgUQQd5E2thH@zTILodJK)4K+Pl+N{noFcET-Mo;Qd#M%%CNQu(k)yZ4v`@O+?qtm zMDh?W{uzLV97vG71mlu|Wl*heY`L_lBC4pyl^AP^D4dpr5K0(1OUvwlyM^#u2P2uyO)W zEG*C;I!1tY1_T{!5yV2{=w3MxjxK1m7*nOEXXThd&xs1w3U#&-h1p?fg`yxRD-G6G zjlfoC2rjGvF@y}Q{>?bR6v?S1gM~C0(zYSTynitzq?;2%g+krv3STiqAIO<#+<*BI ziO)nNI3f_cPaP0tn-}b_!fPsol;SN)?*ZdV&p<6C48=hLwA83MNSol*D+ojhx!{CR zuqaxQWnYyz25J67S!9UpekgV)1~LcWGm1_clO~|2bjpG3jmXSE>p?kU6Vlir`2xPA z+Xb-5p|paCkJ38&--1Hz)_=b$DnourMEWn6384hxSB1iH<4{&L$Y}+<1*}S_e1yys znph$Llm4}9YB#buH=mdhQ zC1{{TQUn2otdU^zL%sy)1jG8M#f{ZrYjPd{rpl-a?;hpwC#E3q6rhj<(6>{f0ws~9 zjzn2C87nCWr>BckYatcxcgiMQprqE35=jL1Btho}GWjaNQErZ9s?4y^8H|K9enDXn zSA>1V$>Ik}_@=rYg>y8@!`h)5h>r$=%I<0b!`_Ys7}kbr0E4teFx5aF9>|P>;+oVI z@74ZJ30SoUR0nuCzA{Ww7jU({Q3hI_k4glXqLk_o5=6DhY8_A}Fdj;9V_6)XbDH3Q zenXLRxFw}Yz!eDCP~i`fia6lDhVpoUhYAEz!PSg8q$pLPB$*IRLm~r02@Q#^|50`? zmLU~k!fAR1ra)s+VS^|*+lm!qH0%hS6haA778rgG$j> zhc+1%@}gW9R8UAY=mV=^RD}Vd6w!2Zpqby$Wf)sF-7EJ(LwQ!KDV^CQ@ur_B(Y*0zx-ZegWA+ z2x&k9AagM~<3KAaOoHJ82_r@cj6>0$$UhtTxJoq@m&$+O(2cX^#tU>eM@)cBiU(N{ z!Mi00>2Vq?R!QZOlxRzdO(`xy3aaH^6<(PZg$L)6SQOb}5Q+Q#85+s#F7g4@#8@n< zmdRyZ!KA0wk%E(h3#=d@73({cd!tw^CNfi(Y6~h7jbtTXfNO^+Bzfil)gqWQ0$3=9 zoQaUa8ew(mwpdL*rI41ASTy*yLc9{9B!geG?MEj-?N62GpuxB5%mOfx z0)=JcmEJ1DqWD^k;SlPwuw)gdA7#)+Sw0Y*poxhPDWzbPQolp`H4TzqxY!W|;6~{q z&;?1L!gUct62pg^Ab{Wo21&6Ax~0Zt5B8Cvd7i1f1=VbYln$zfA1iIAW?!qZ+j9T6 zvT;Hb%uv1=Qk7sR9-z!&EO1FzNOltC=uXJkWxFp%H(%BYdIp1;q18n?KBV9vsRhc6 zR1w1x=RwsJv4RJ=Q>18?5a}g`c#M>a8@8fELX$FygmPP=T)>C8dDzaEMitGP)D;>3;x>%*HC0Tyc);{{R%Z5KR=~fegWF+Iz9>r);D{ za0EnB1u=zyqzH8Nr8aOHlnqV>Z!lA(vL>DwFz)mKoaH?pv3Lc?~mX&?MfL+-M%fdI9pkT+3azSEC zLc%bAm5~?Y*k~dUQk7{CWIq%|Ei(?1TntDRzKkbRQek3QHu?jEffkKPS~kgTr-_vn zFhd|*YMYkJkHj?lu_`1+bchmks8WC`*-kiMqM0y|e$q5NzOZNL_(p?646B}?3QU^l z_ivDz&VtHqh_R3p55_Smx0sD$S7^G4szU?UF0>=VMCJ;ILp{`11xOInXpUV}5PqqB zVou1vgc4QIn}Lm)>4k=_+jiHS{cG?nZt}YJylwYh?gSZmtG+YKhNC zD8M#DARRHNlr=h(&^hz2KPrlTrB{BEX0Cj+%HJi!V-Y5T=EcMp+6$$1m%o9Z)Nv~# z2SB#CQr*f(eh0U6czxrOB!uS*@_<#+xRJ*ROCt(ec~9Uk2!)KW7YzGcQBN$5sGcZ7 z&DyHOH6UR?VkHW)K(+W-=Aryrd0eIUC5}kJs`QNpYmbO5;hh@|j!m$@s$7RkXs9#; z)h$b$3%PpbW>K87sqk{O1r`E(19=KmiVJKG#_HUWaAj_-|DnqfPX+|?6vLMv;KhTC zK|&~n5hc`g-jvZkAR3%q7{?ayi?HdFua%Gm(Odd^bx=f|mBvvUDDMC;(zC3Ll7LN-gkUSEUyAtFU7bnB*07!k(|Lu~N0eoPbtlyAlPyiv3zezltW-fGeN2lHbsigSCqk5rK(n8umr8z)V$RM=Yu+uw+`xed@h~@_Y zv(dq1`EQa~(V#D5$7-s$6mcw*iAz2PJ#CJhRuc!ug)7U^Mdktnv`fUPD}WXRMKFS? zF$tGv@1j0J0uq#3P$C;R_7hAOTwn%7nmv*SKuvEBa0>Js=Qoz(?^;6MttKIIiqj_5Am1m&w^mCaF6eyq;wnLc=vva}a`s$PWbUp@sti zcE}8|stjA|TZ1V`)CYn@OTxT{lf=mMYo$#pFY0Nuq-xn@6x=1i2^G;cMyO_KQK{+( z;=n@j%@yJOjZMN}6{Zn%wZLVG_{5&GW$h263yOCIi9jk2lEqw>uT$Xp#4R193>&D3Eim&?1*B6C*NYo$$ zs>;`)Y$I^=RJr<+yEiC@N-1=!+E%K0Toe+5$?c*!Xe$h->A5V?8@qfxm*6H{u8vD} zH7-~0Tp10JduNb-#R~ma%;mgVv{R00a(fHmNW*{#@fkLkJFLWMj2p5YWO~i~QFu$6$K7LrwZLXx#^bXaiRcic`;a~p(thPK+}Lr28J^o z87Nc6Yjxm9Hl=w*fX+q@EW6ysQ${!0CW<%NYMng!BGT;N3X7;Q8p$}2lCfK%*NS8s zJlTjUE!zrXmwiS`7UA;sDm!ip=HK%5DHENPZM}?cT{s*ft&K1tKExbe%M+pl1CAF5 zMB*1{tspfSm7j-Fh~q@zkfThViCOxOG-*;RQBtP~)tb_DqwzUYIjOQ zm$)hP3j!jmr+S09$aCycTg|{mA$S`jYw!Qi!b4d9OPn#n7NW*GLcf;7bGADx zoQ4pXk~v+GRRT%t_5eE6GZVTS(Z2wcLsCZ=Y5 zbDk;OT)RYZ&=Wq_f^T7J#UyOi-5`b9llr z=WzKv9@hkgHA3b`Pj7q`#euv!^4+3`^-(Lpk)<%lrBs5&K+qHpCH7Y;#Y(JRCu;7H z68R|MgeV^nCCD|gB$5sYrerZ!ARJ^iHpM5< zC=Spx>LSz~Bv3G%;b0?gt`HCr(notkbtOd_02n1o4iXV**4M{rs^uz1log$x)X$=ko%loBD82~com+_8rzc#_CbQsMfO+GTZ_Ua5C$fSK40 zyMzloK!6gEUx8XOZi7l4pN~#PNf(G34PEMR>P@%A?NXR9xdAQYI|M5&Pn?cicF=vj09jY5vI}95 zoRC?2flJn2AoM~Ms7sJ0G;%+A9%RLm3Knc><>4VPeWIiStUOZSaDrM~$$?gn0SL5* z5Sp=;UHHGenCSH28jfH<4TvO?-gr{R9XwSO+>EZU;MN6}qU1%uA5v?CqoNV(LfNX( z+Tgb!)8KBA$2rl$8D2xSXS8&5_5S}b29`t|2#ldkghWDgZp-8;0ZR^CjI0rH=*%2IlQlmPe83bKl7v?~uRvZ|8!HX7lBilYo-OQ}U9NsS*o9Fj<6! z@Bj@>VUxTvN~zT$;4_uS*t%@T`2Wm$DxYSwM`bu8E1qL2*E-{bkzfx&S@Y0ZlZos|%~vIj*0fk` zDKY_Hg-oCzw_){A`2-*dqO2!?&n6Lo&@U+Y1fVhvAZDn|&;GNuDhUr^?!fJ7Y>X0P zSxSnOVqya7SW;2Uve}lz&@0V|07AcJW<-=6hAM3bBm@2E=qJ}qapgAbZY+R$bH<8; zVX>51f>&nbB@V~G7(qD-qv9t4{wzU}a1Ezuy!{7rkqrb=p|KFQ0E?K|_C&+Fe=#ss zcZsg={DW~g=Hx(7aFn#$QLFmT5JXm%mb&?_cmy$pM68hT8}S0=MBo2zP!5L}mB`6j z=8fb0^K-1`2<17)>J1?~Uc_RRWotAXsN&ACngf^n9IH1@#hzpJ#w^!4R&R(3KF8_} zT0!TS`_Ip@nj@6w9IH1(1)O6I2dcPptmeSwKF8{fQ?ch*y)nymj@28Yg3qyfgI3Tv z=Kb??tmX*iImhY^Q32;z!+|R99IH8SxzDkB<5cW9R&UI5on!TesNi#~-k>F%W3b}G z-AbH9Dv687rdBhdEpk~E2U$mkx=SL(K`8=HKc38O4+=_$3Ih_r^(GiRkHEK(2)c}i zY#IW7dvIoPXS$lW1R~pYB62Y>L%s$;4mc*1DHpB@a8W&^5^_v}#UWIkP+Yl=p2P*! zn<8$^P+>a+F#L+jA)=B*^2_LdH4Di5Dw_dKbp@ahDE$8g0OS%P3prj$8W@z_MsC|E z+0{(hm_u6n$jaG_`%WbaPB`uW?#L5((<&;Ux3Z*Zq)H-#Plie4O)6{8pwFtEe2MCr z#Z*-CB=Lod2L3{9kir#(%w+{dmQl6o+RPr z{mGOkrwUzt%&e3_v_M=}C`}58p{<%GSc+}pgkunG=9=)p3Y{co zhDDM^{MtWk0~x*4xp|RcNdwWIp7uJ>;@IEvpqCn zduYn`(2VV&Iom@E;0?l{TaLn zp6G5L1%8q6CraRM9}fQ)bIgcuq#{v-P!cDGfDZvYcXtLO1MVy+ECJ$4!azC}#esZ9 zJOla^0Ffba?#>p(laQ!*^ck++>B2Q79^xzHq&Q%#OlX{`flm_k8doN)W zqXC{b)qrg^@E1HDZAL_E@IPgp7%Vc>n`4_@xH_qyfS371=(;omg8Q2_Nex zP#HtHIf)6xKFENOLeW#GN)ssoc^3wwFccxAJAnke(mxF0am)6hl=VXnxo)sbA_yB3 zg#p#Twt5k*5x4q@Qq27#w2e1}Y-t|Ejsktxg+jZN4N z!}1M`BMVz%`<_}qNvZ1xVbcohLN0tMA1cj`V?k_}gjmy(_DpfbSXK(>_DF!hY^q)( zB;Cyh^V0Lt(KWG)7*K8P4W4z`$t_|k_! zBUqq$DjySkqQTT;N{mA&=LjHku|$epdjzEGpbJD|Vm1nP2oxkn5t}F?{=kJxGC)K$ z>F?bWqX=r`!X*heL00J;8W=og76Jg1!K_o<*_b+}J+d(|+km8oQ7HI0E*_)=_e3_f zC`h4TAt`kLn5Q8M4pK73Lzo^g9;qqc-8qctouaK#qWA#J@WId)1cn#bWsol1WuwdA zqqI>VUa$d7QEFLZWDp_7ku5AW4qiaj{g*0B@TeX!!wX7)*jNcj(c~;7f#ItAW`*6I zLv9__2ZozR+i^&ri8z4T!zg!1@K3%1|3vPq!pML?Q6z|X5OV+mS=swnz5FH$(~u7u z2?&9f4&+rNt(ARfVzE>rlQ=p=0y%eJ^-4yo6xCDUk>ap?k10$AJdH+K#!K!RFg}G# z3X9YhL%tJ;ScRDr;8PMFA->^2)&vOQp;}Wijq<*dqBYq!QOO%+AB7sgadFWSMGXLn zkN6~$(jnUkCZHkl1dHkr86{E{YlT?!CRGTzC|+jymO>E#kXQgp_Ld8<)D}>4pv&9r z#0X7=r0HfLLq&pWQW_-(!mKPG(76XG2+6pI1yM&`F?;IMpRuSbcqp*f<%zf z08++FqG3xC;A%D=4NcvqfFmcq@^FQy4M!&o7c_7)eM=oL!mDJTin61|V^K7%-#gc%aI(OJ7W1*cDEElL7)Xa*RL-Nh9wZ z4OKMN23SoyGL~}`#qIjnnxr|%OMxlzA}O|jDH>|av@@ne&TRR7P%=>$F%d**g4A(^ z#0rQ&!##y0NeDNSp&}%1Na)ps;bU@xI2>9F1wJNk1L?guaM3|<#($-JbBwWIM6Fto z(jAlHsv#v_k(^>Zo=#5Tfq-q*lGs*_B6wvQMYHRp|8F>TNpV&L*QE0bN>qT2A$Tw( z_CXApCa_@=p;^3>+P#+S8pD!xspJpB6d?}-Tq?zp#XSt?KEZfN=icN~oZbMsVK}l- zGn6WhD1{M~K~%cgWcflfOeCG7)Uj8U0*X3as0EwiWePaMMM7AzRzssAg(1lP0KE`7HAo%{WcCR7r!|Gz{@tn#a2?{cHeT~6wnyEMgL z#aql0@Q6+r;7SutQ7N)9VnK?Q75o{NG~h4x9$0K^tlpB|K)x{T6x2?RYH?>tG)VXAaXF(&5fL0`IumD~d} z2Al`LPe2+FDkA(eI5IakAS$G*g$sut6bRQpp(qV8^7aNYi8KcEBob1AMgr9#FMZ`H zP>7z%5D=MbQ|aEJWcoT69!Hkz8^Z_}SWtup-L;ZlQfhalbZpeo%vjVL<%IzYB|Uus zC7_iZF=z#VP=$aD00Rg%d>q5u&&5 zwg3D1^I&`uu|SnjI9F0TRfinnmP+ww0{Q?Kawc@EKMyYYDkKdw3=Mu$7^T4T4qcSs z2nn#I(enx`#L{r#pvaOt3oA6)Ge85PfD9U(@0f*vDoY#{L5@I#VvSG4*@OvVsc1h# zghQslaygidAsUO4SiEB6r zB4DiIc&R6Ypm{1qZqQl~B}C%noShb15h8=OEB^(fHgl+JNhqO^P5o0cvl6louU}M)X1{11w<#NFpG$41y4kcm|XS zadB{^ZcP*!5CwaI2eDG$5N{n6C&o1jl;4PhkULsH9QX<<%mcKP7<9h9aZob~E{Ty^ z5;1C0cTpVeu`)cc6L^L&1EoIU4cjJ&qQR**K^bOzx2)6w@=6=v>4Fx_zdE~GF z>40c)h*%WdABTA;eT`fY(5E)&2HldV`D=-ZD1fTm7jo3YWhU%Yu3c0>GJzT{P#h&5 z+*=hE5Z=-ji2z7tLrHu`5#6+di-~1Kb8egH=kFw`A|&W92MLVSA7Lm>_(B^Q=e$?c)=a zNw_p#5<~XE=pMz1ppI<`KBJO+5Kb+qCEy^a?~K_e#Kb`U0jYgJlsJ;Hxbc|i3X(-Z zxLDOdaWI3tBtbfu0pLg#iMAT0b_v#Uu(c)C6Jb2EFc~wRa5&6IJmw>F<|7NnBQCRh zt{J118FNH4=7?q{%nwbOk65~Af@;PD)tm{cITJ1phszj}!(k4<;j*;jGH1ZyvV6;9 zg2FLjfyIR7TNCEYm|rrNjcr=Ym1LPH%RG6^Y4VvP@|l2|FxSkS*~)^?*Z~XXLRc_A zKRG2*h|2G5wezdU2+ zn(~a9^W_;cVc~Juo-yI$vEUz%h1l>|@PNm126-&F!DGP#o+->9g7#9U=4?a73NWp_C&yUQv~ahbcp zVZj0p3l^|)eHMzt;j^qM%Z_tc=QypOyhFAz4hlPPc78~X~Sj`J3pC&4p{C;PVm)nc#&{36YS)C*Gay z9qE>#SZ5fQQgcGV0s<`@6C#A`ONfq!+gl^>`-~F7wSqF2-#_*woVPyU5CmM4GCp?-|O*@RI?{OCw6;_5&c$PE;N z=MKI{z`wv^MSzhrmpw!ktrH*t4B4}Z(hKFjBT?NlVIpi1nu&Z&@;T`N!g$WZ?YTTz?__(P5N?kH zCFrgEK$!(XLM?P;(9JJ)IR+G#xqY~BELgH};1;qjzE{*NxpP-$oQquedC8--y}%vU6&2nz~>R6TIu;r0zK zxzT8hW^tuAL*;stByo`B2_^1?n{6Vq9WyC}V(%#AAyOiVz^JF*CtR2pk&q(*@H7xI zs=-ygO3;axIGrH)s72!S#8i+-Y#~oEs5EWl2#k{e#)(28nqPx2kzXZt(E%vqA|OK) zBs~=+#~@F2z#QiK0$RYmyLyeGEv!}yqZ7#N4$g|;Mja0cl0@unP#$&yt)c;eQN|}3 zdZ7(Rj?RSR98MAl4*XnW%1;m6{Nlxs(-mb86qus@Lhc3h(^2uo2$k?eaR5YM9GPW0 z$!}B_`z$-q>J>pN4FF7`WCTH@%9LEdT3WCnKJS{Z049ZH1Atc{01z~n%zo!Ez|l@P z&=hjIINIBzy>U@~G0@rvuPIPXGw8w9KW72*BI$a>XY>?oA{SNg4ek zF+vvG&H7d*F;H*)Sfa$~3=jp*(s^C!XbeGdSb3tN2XNS}w-1G#|D{F-s0CR&h{*Q; z77oav&Qv#pv45rz7EIwC${ZO95*~6`R`HVk6Oipxw3m+r2nk-X5g%O z?u0=x37AcB%@n7MEatI%0WG zTPGUosL+ArI9_T4RuWC2CQu#)1&Ml&PB)XVQwQt6C+rlQ|2-tsny_#*%wH%-Rr42F z3)M_Y)`ZD6@gOoFRChr&K`T~*4oZzwN;7(IC8(z=`E=~k)|w{CxmK<4AdB!e@Tsr5P~+QTKYLPYFWOe##JFZQC+Ke zE&EzS(Mr~>hTqA?)7XX~8&TsgWn;35fwFGdUQ%D8ebH1#q&hCkx3Y23Tv13BU{neA z8re|lHJ9}cdsnJ?N7lDGjj5iYt%5Cx>IB(>RLRR!8|81QK1=$R-bR(JiR!;3dz7pn zAYV+GUDgBZTk6|VY*{j4x3qRte@Mb$Xb7@i*x$;&1-zx~!mzHyt%|%PE4IaBwFTdi zu&9TstT?izP#mB{+n0)ODiEkrjB90D6-|t5WtyQz1E`!KVZAHU3^lRdm1%|=4WM#{ zgn6(`Gt|U9Sf&|jG=Rz(V*8_9VbL&IGGTC%fnSEN-E5p}h5ZHI*0wIzUS2{^H(`6M zOZG>)E{@v;85%b#sX>1cTzCaL;7V)M%_XG=Drn6}zA4wGv>!P@6NlLd&kyP1_ zLJM5$0rX~t0SS0Q6U4zr=r4E+d@B^9-3Vij5xTfmnhz+qU`xbAllj^Rd{Y@;;1Ln2 zH4;mOA!1Y+3}ppk3`X7J#^VyTp`yqHVFZHH9Y3TuQS3lV zOY6tI+DEjsOg-SoO7I{0M-QG=hG)IBDp%Fgsto^XY5Bu{gV0N8maWz7U5-Izt=h!z zrTks5%N(*rC6tvzYtWdkF$vA?2gaq=^s#@_z1H@ORh9Z1j&AvGTlld?ZGu;C8I!er zkmS^hkRw%ZT)rGp*=@cLd%K7%^&p#OV>6JBwzA`FQlr z{Bf@KW`p&2QucOSyn6TMqhB5lu06WvovV#n^}Tkt#(+uPBaZjnFt}%Et%d%A?lo86 zNLo5fyUO6mo7wJX+E1PtJIFR@|BRG~y#8%o&YNm^{?zHC(}rYSNxs(g!Q%DRxSe!U zt+urqKc|QNyWxjCqGs*i-miaDy$k%w{zYrLtX)+#V$;C1I#V2qgX3F`iU`l1TFdg~ z)aea6^f3PL-0x?{gze7VT_TRwUz?Wsan9ha#XgzqR`vS)>QF}5v01CfEvfm)W@7f+ zk9LzrIrVK9)!L|Yo}^!OgEtS;GJCIWQgE5yVD8{sMZW0;d%P^&gwY=SvA$of8_slG zo|kpI+XCrOkB)ljTh8CSHe*cDlXOD|o#AzIKAy^dubVPx?9s8>Q%@i9&*^#c(ObVp zU+NzB54A|G+q}}Tx|_5t`inZPx!1MH+mmAVD@{p<^0TGBT>lZTyN6w^ zcPeX};H!sEeWLA8wE2>`7-=Hu||F?c>g!MHaVP9vXO5U>qOE zmlR9(b^g31V~6%yUu*IA_~wOoPk%k${ek|)prX{)mwm@}-D|jKV~xx|+qNz@%^Ljl zxc6aBbuVk~!27LuBOSMN-*RwnQ0Mi2-lOdAF6}$Esdd53{5@^^Ianlzoms){@NuN5 z!IlY&?2E@_tsHx>?$USZ8Od`O^;qtbw%NAw2j5ARl0}bud!`rnp8aIs<+}}AZXKPx z$>>gI+}PfnyEp!dT1AA-v5W{ko|n>m{hkfqoad}qH+@vsXkK2y_=lmrKV|IN7|ieH zkt6t(bfoFNp`4JZ2m4>@_NHj=iK&KdADetCyfMi5@93su1`KQ)V%KQz!PG&Qh3)4z zILx`2e{o%0NXF-HorfpxSbxLTZf4(KS^CY#7kKE$8cVVpRO(n9d+heUTo<#-J@h`; z8D&<}GEr~pkl5TSc^jT?8Rq!zkK6fsEoTHhTfHPd&|B0v=91T~hVH$!)7_V}SX=4l zsDfYamDgDXXPWo07PLPZqThAen--0(pRQeL)Z3~%IX9NJnt1$2wwuw_iH>dS8Xe#y zynNU=V9xuMGw&8#ebTjTs>b3H7u@42%7?IoX{{&DOz%VK{@6Ou> z7CcDb75c?=S8jaGjB%&Mf=8nD>#g~}CZ2A3^Xj4>4}C4B{<%J*-kzin}B`s&F;#a`1_ zy}9GOz0;L5H8wA~VVyAeyaENi~hP!3k$0MxpQGw@cuhhy(QTO^F}%srN27aD`-V~w`zvx57o@` zoi}Fu!#jG79QzGfRJ`(CpP_wU&-S@xbF*gfPOGk;M-KJcZGNQD!4?UZ@;5|i^P=ry zo|tTZvSt1^@5pZs4to}Vh|3vNIANon@DDewVb2=LCn7FKCwBIYyEa_>^F-DRALp=x z;UhbDzU#Yrm9Xk_%a<*8bUPU|_V?@b z%F!#UcW)f=puuCy=v(|7#77jvZhPTOv5DyZdoNf^5u8DJ>&Ebox*7+V$SUA zC<#w!-=&Moj(f)6x-{afp1kDZt^W6I4Tjt2AK20P$fWi4+RQv)!|N4pG}$KH@lMzRy4VNG`Gd7z3o;Qh35Hx&1=)9?bLw> z8o$b@w)xhhw)c0qPaJ36-mkTh;hB7G9m_!dEJLpjx}TP2))V&B(QB02;?>Ui?v75M z$3-9ibbIa)JLkBWJ=@KlvvY~LmRCdfrfb@^&RNR2vvlfB+os`W;nNcNkq@5P4QiL! z_K9iFkwfQs^(=6Y@?wMV(bN1#M9q(dm z@=kDY=WKrm8{U*Ej(PS@pKD4E%$aYo_9|~s;@ocYzU~~lFn7gzTa$qvey4wUd?`44 zzVqu7HwI=N%hCG!*1!KlFTol68QC|c-L`!9aA%_7KD%C)k^792|Ezl+CAE8PlheMV z*T~#F%bespwZ$uQet&9i`qQz)fkwOT-i_5eG1ATG!^ zaNZBS9K(sZw}h{b2|iq}v3KCb3GMz|j9ilNWHNVHQE#6JzXb~o&w3OW6+E4H(krjw zgRJbvqb5%KRO3+LZU6noOP6}R9dsxE^wz7oP5Km8%J_A;?aGgH1vVq6kJ#2JzUsAV z*DdTl&7YY*YWwZ^m1a?6^+x{K(z#*ZbIxsl$F2J{UyJKDxX<6_%eOT4UVpTyn`BC! z^Tvz@V=fEqa)t9Ezhp&j62!l#^CO`7`N{E*Kj%42aW&M@TTpA)y^&p#6OLEQczlAp zWXVPU5gDoR&LNhyq&j&uW~@xHyt-}L(Zd;++S+G2R9X>vZA8mltxx)6 zP?|d2O~^IKu^x0L`mg`+moD|Q+Mesa&=vu`1HTkXu-^!iwDk2Wh?>UqqX z)AaF(b0^2#oqD`?gZX`bOz^$mQG9)x%{}|rybYt1{@&;?LQ?p=is|GjA`{a^$yLWS zA31pFlL;NZJ9b&VWS8N=9^9k7#)PJ|e6zmmm(+`GX4XA-!EDHyDsR6=RjM(%lCJ;J zTS=R23$hH_WG#vLJ8ALyGtC;@@T&Etac>i^V7{|QrKw-8b-L7PdK1&sVT&r?@_xH` za_8Rz}drQ^bX|j$tF-OdsR9 zA!4upmqs&U-;uCbr{GMb902Vsy@T<9FxGZXX@>OW!M^zWd~}W145}TvoNarQLMfl~%Ky zrViUV#4dI6&C0Xia?UMiFBvH)7Psi9yCvtlp5^pwg7j_T^^e4sYj@w-K6GG*Etk7~ z`|wM9yLn6FYTZe`o;OxKoU%aL>Q!h%n?9pfE|%1_%1@kqx79N@^W7r=gZt0jym)6o z-NgfRt7q{WeHCxMxN>cy)y*vRGS9va@AI?EDeG&O_DHJp`9EyqjUwiVTcm`q?``!Z z_i%ONRY|)=L7T@K#%?R}%(~{WzNl;X;-5XboLbPw%`u?fg5(*0^*=NjF~gs0+^SO4 zm6}BhYaclKdaHG>C1-h4u5|n0S~KL)BHcDq7KY9UJMm03_*kzl#?PC5zu&v#)?H5; z9d{eOb>wrsPrkc@f_H~meCYIYXro`>KX={!WZ0cBt`|0IE5jw+!%}BO{`k1Gxw>5ELANp*x`h9-7?Qaoe?#FUTkS^k8Z?>^`)2fuZsTiy zzcQwZ!L1$v%guK-7I_{xw5{9V3(stNw011$wsM|Um!6)(7LGP^-oEsf&Wd08K`$pi z)V>ulzv=T#(YNOIpYLC7@@l}>Z<`V}tR3K+-0PC#=ChwZIM$wh@MhCii&mWt7{52J zalFap{@GSNx#=5gv>86la_F{=`)sUywJjztt#j0N*7*?F)uE%P$D8QRo5u)WcL*7kH&J)Tf=$oo<#HCK zb<7!S^?p&k8g6E%OsD$Kx>uv`y@i_=?VERY?(T-gx=!m-cg@;-qWL!6?{>BWSNgO& zwdZryu5EgBcs;Oi2uBe-to6Pb79Z*~ zZZs#QO>)tQ&k{GMjz*tf{ovG_e?e+0>R zS(+ccGbr@+kj;*FL*s8-{nQBTV|JMJ4OoI`|ru` z)9q{jJpU)bld9iDM@#7-`sqxcVPCpbisx?Cme=e zsfaAtSk>iwP(YZ$_479^dqcrT5A-?1@>!yR}XZ zzTfO~jo$47u3Qv249+T$))<}NyZXaDv08Vcs%?GwI)8!Gwe^?jZyG-yv}@>S`xRah zXAU?BmYvQ#b9!o{b;(bDjKA{Xcd_osA5Q{0)pY0G>EboC3D>8$#ev`rn=joRt*gJ4 zYq0SLzfmpsqBKXRXGIeyoeW++)+payXPtG2D6lUyvb+B#Zu_<`!c}{3J^k2BSNgr^ zv*Y*&Z9Z(}Ie2aPU@+?Gr)wSUy_#Pfbs?gCoRe<*pL4?J*Zp#Qw8K@u8JAWLoNaUS zS7fCs=U*+VsrRK_*gNNm=cB#rY_pDja(3guaY3V&4xMkjVB)IK9WMS?R8*mM%@`%=6J+YuQ8RT7K`Yn*?c924wX!d^+mW$HyJF#Ptpo9NTd7O68+f zI|Urrw>iVR{kb<@D$mzO=`Lw-3A9Eajb@8`%2IAEU_|=QTAwc5%yv14BOsY!!D2 zzc_Zx&s{;=3ugrFjj)@PvoUz(n(jWr*=;vfYCQA9xLfa|2j9Nka}swL=WxxzIs^Fg z`cz)NA$!l^yR#RB{$23!_r8f~UH$HTx3KZ39QN4r%GdgSRuR>oPV0Q+na}TobN6pv zHKkTi{R@+x6&x5gmbh#(RxCYVQInbPsd!DzI#l1&df&BW`nJ&LN7d3QC*4;4ViRYJOq*{N7r5S&5x0Fdu zj5eOEe%$Qi_D$nPM-LcZrAqecV3+lEckdpxdFd+msPIeI4ecyn<^6e5?OsvGTE{pG z*6i_rb?9@~_X&fydR_fqbbV8w_lC7Y3OdC$Ga8oR`6hdNOToGPv}Nu`rrEdDH#7@7 zKlCeif6Rkrja#)${xGz1fPq?WS~Y&9OPv+k5tIui~c< zb*k;0Z5R{aXp)#`_h|irwAbPePn|2>d_MH-4E^oeBaZ6qZPMA?ckF)CaUTc!)au;e z!n11&woG)YQB<#1q0>p-@DtM;Cp(U~zOHW9XXe!dL+=<3y!^C_!^cz4M=$5hj2{wEE;DnD7Y0c zoY&#pi<-};)f>39a)|YzsutTK=WlV{J8 z-2U5^x;fpe2=fNrJ~`!ip-sZg?8hyF-T0p_c0MB+nYpjV((b|B1NY))Ib7TH+bnJ6 zgfZVkhF_ATy}9-6kmrvruKSWwt-c$6(H}m_x!P}I$Ie>AW~8_KFn3Ev&DIWvgQojQ zXGL-SUjKQ${l14?eZPmZOxpIT@y_FOi%S`ixnKNFdK|7duI`65SGq0>uk!nE^_!0$ zW}o}n>dUM6YCYq%PF(S{eL84a;gbnBo&y$)>H3haBv% zrLcGKmnowTBnRwDUvoBWWw#T9k31Urx5N1LJBKZ~e%kzWz5c5|6nC2F^&;k0*AbK7 zuC>a`nA>e;kD|R=Kh3&kfBikM{{XF^zTMKz=KgldpI7D5lKZVci`~vy)~o+P8nJcI z@(GSNI}JCzJiGIO=|>;w-+w-Sl}`Q*BzSD(@a@{jNJ^(+t~Jy49Z#|LBtZ+}`wF&*+)&Ge%vz!&~>Ie$TF% z79+VIg^yoN4?Z_GqIUM>VTA|7X8$o7pj zp3k`(eXud7|DPy+w(irBjoLmxRKLc7U2W#f%?Q%^bZtjm-#H<6lON}96ES#>VW zT4Xmy>uHCSsw;+UsBd6y^17Gp@VlE$AI{rn^lr+Y(;wfMO#Re2$iHfqMBsY-L#^=K z-2G3wgvSp!v3`es|4XZ*?pA9uyhGB_89(-}J+m{k^2#pXa&5j%3Oy33v$|5O&J^Df z!+I@R;_`ZCi})U%o^$_9oVj-21E+$GK2q;jnO%3=*AA&tl;>-a{@(MHuE9``qS%(% zPebbc`Rq2bcT~#``I~y1W_Q-<*LuU4F~9HJC^XaB6?#hV^sXG=t>5+-?=kNzzm0n}3|5>vb{C z>6Px4_7fU+-Nt=2eIZYBYUGuU4a{PKMijkyytvS8b#m+9y5j}+g(=T021zIF>v5>L zQ8s_W5X+EWGivx(=5Dld z?#CoA(7{NHkp}*w_iFTrU8G@?^XrX^=fX}e|7JWS^eW$)DHd=x4X^O`!jzx zDoWKmQDgR;k0QsBdG+mMho$QeSkmThRGr#?2D&CXhkr2bs=r)ka+F2xgr>zYe+*8K zu)W;4d0MSnxkHQd8^tsnX>gF+a^aK8^IlaM{Q7q5TUW-kZsC7<+3}~_1Z#X(r!LO; zI5fTf7zZ!6Rv~W#-0FuM^=zN8F#JaQcNxa*sxO){WNYJ?KOL;iHa4}_3LfqEW~a@8 z7FT<{i~8o@b^gx!K7v0-9B()H8WT6r`*`Y|_zAaM7C)L0z3PvTP2EWUf~KE*-+t1! zIdr&H;jz~ywt_!RCK>QQ8uqF^s>9Cw=7Tr3Um~(~YTnE7{EiUUqM$UR5gqJLEG`~x z;BWQ(>e9K^?f-tel%O-Hb!(G}oWr$uPyV~-qxH>$TBpbLA3JH@&BNxW{J(Ts{&~oX z7O&>qwx2e>M$~|o23t;==C!$!tnbm*_ixsusIe0S;m2EdF+FN6SUEn)TE}m?*SXZo zhRc4;+ZMgDzT2>89(OifzLrw+a#mKiIn%x7)I1lSCE9sm;N&%x*7tNx|GBP3wAOl) z_>7rncY6<9y?unMuFLgrLyzW-Zhqw4?lFNy9;q+#CZu{Scw}d0tNZDu-=0$r_jkH# z@2p<4&&S5+W;J#`dCN(f#_u*Q?Y)mo8Ry+H*KLwo)hQ#tG?Wd$eOW>t{#W z)b4O%xY0@ftmXxy>T31=nQ8d4?YXx}%^l1qMRRj(9$QRU=5=83*E35TFQ$5C-)~TT z%+bxJIb#-e_4obQq?T6KsG@=gyZjRq`us|t{h+&l)4yqYejS$%{r+&1wz#Tu@3mw6 zGsYNn>p6kf>cG8TCi^xS_L^Ln`{a4Ru)POY#5}b<^*75r*05J9XT};fB2(TVeIn#bE~>s{FC9^a75)cH|AZcJKuWq zrgy7`&6?b&>GFi%Z`L&%RyfV-?u$wL$E-WsB=uc4w=+Wo{M#3^9MTUR;je4vWp%XH zvr77Jzq$U*JU^`Vz3)H$V+Jgms+Bdnhx-fPrB3O(i-u0l`;sp1e5dKeMlO%JD_Z6D zx*B_KU`+pIUwdUPn9g68dei>SkY)y3CJcOYa3B9zmgjoE;Rl14x|v4q`1m?Tr$f!h zy+pM$rWoe@ey}!f;l?e}T5Yrjy$P=$`84mw(*qZZr{4&3t24aI)WFJ#5o^}@EbM;l z*$&(3zOyc!s+lpsXYIWhE3e4FR>gC2r(XVW$)$nMc2WDQ-EOrx8~L=`k40Omh0m^g zVw&h>(%$jCN4GNUsoTkEamPVz4a2-w9MfGep-1gqeKr})x%6X4@yAuxZ61yLZoBEW zw=nS2jx}M6ql3dDg@9VGBZuvChOX9wntq$l_@AJlW<~Qlw-nRXB-?2J&At3Sl zt=&1bV<^27zJIJ;9#UT(OVY^y(QdBF2^gJO@{o_{rbPA$Ddf2(Ru|J&N7rEta8 z4=<}o>Un9+H2jv){I+O!T-9+K@6Mk*qL!XbeWx?`&ODFtY3qC2d&{;CLG!{4n^!R& z{A+}Lf&Gl&w7|QMoVpHrl{xys;O2WeIa?k!>Gj*U@T}jNKX*UYYBxQtduXh1pY+XY{Htc)YJ}&toV@8ypmrC-_s7l}zp8P3^GNeg#vL9VKgpTc zuYuMxyJ9VGLl3d>;k8|kjS;MRT5olOsf+Tj9PIvA=jI-l?QcxYYu|CaQ`LFw#Hd`C zr#V&X7akk@X>`30#oUY)Pan)3f7RQ2Ku=!$t8*XtNjF@Utw{A=(PYNLExlV!Z1{GX zca!{jdxwadJQ=*G@sZh9KPN=wrEn%6E6V;jf99OuRpQ3<*gGuSz1A5$>!+`_yA3|s z^M0iEDJS#Z_m*s&)n@zp!{-YQ%-s}qcv~ah$^_qqGXtAOUl`f&@B7QH?+(_snKA#( zy!?x+i$@c5MYc+V=&vCcMHQgR`c%b(Dv`Q0(tsHk? zPU^lFRqpcwpBy=)|9bn*4Yj1>3qWkir+@d?#*qTo3i|)N#ET$-n?Ot z+wBjl*J5I6{x#)&?;~h1;q%r{J(tYs|K!fVeGXPlHszY9Nv3SuG_U#7Q^)Hj+O6wX z?fxO1$=!SCH!#|INnG=jTUvZ(*0IMesk!RU*G!L8^W(IY<eR=(~)+wb>enm(#zAuGiA%ihaF3-}cxoTXbs#&z4i)pV}i*ItD z2D^xDcRrZK@3=MpyLtBXVejUfMwv{Gh~8gwp2@ZYT4Hg)orjgaG&HC-x9SlCb4f;9 zlff-Riv1>s2DH{nFPa>5=hLd9qtQ;h?8GPGiyQkj|J12TWs_4rPZ!Pke*qN`>hG<; zX+wT}fA$|RR ztC~OTC|RgXcFDBc^`0l09n+QZiNC}x4n>?54Wib05&sJJYg*o%2WptrxlwVgOh&Y-`M%57tvXl>wcRfT@cTl1;rfhFx(sk2?&0|cxDEq1JeJZ zT_mn)`(YttkP@mq(Zv;3~Vb-(RCgY+S9VBS@_WEjy9Jr|;f8fIdvA3FXG!_UfE z=qUedo5GUic{1&tcU*gdu-<5uYz5|zxb}4`V{oE-9BsuBK}VSGdD%vvXDRi?mU2z} zy9X4wfE>%%9h&O=`GZKe@x`u+Va1{XXF~{N$tli)g^&;HzM006R4@Ybf!MN2LQEon z7hHXh2Igt@ZWPD!)(S?FW#1r>S^rCWg`NG@B?N$r#~^}c;c3HH2-RC6=C`|mG_0|I zzz+5!z(zvNifR+aJ(?043i#0fZS;|faUV5~o-81RgV{Km@laf?wya_lqDw%+&#}s} zV*hCH+PD5uHB0&+ce_4{u3Dq6@>Bo1dek z2;#+ZISNZJt-?pl0IJA0C>xsWLp!e-0S6$ZG35x_%!7Zu|32c^s{}vFn9)bRcln z{fBvv%x(uB`xIJdtxWpH4Q{H8>8ov(azfbW;($Tw21c<4Y#THNJpQVEOjpkt&r)a*G$NOpEvgiy{n#JaQNUtvl&_w>SH* zHXJNP-JV1oBn!pA^-w&AP0ddrOyn?qnxB>L>y#NVli+XA&7$puCRV`Pzx~%MF?KbRaW9) zKp$Id1VUKu8E1dn;gD9_bwg2=$1nBe)SsB+jK|UMCb4+St)|lRbFCqYsvXXTMk8-o zlS?9;aWL0Ql1&=e%(rl2_N0VK{F8=1eur$-7KTHSFQ$F@E4J&l0KmqlT-+H#B0eeo4I<(fX2~l^v zMu3on?KU`OVd|GRuT$6}mXoyKWP{Z9ma3q@V${3=i~`LQTp-8)fqf5hg19Kzy@T4Aij>`$Qd<+B5NQ-!!#F^CAs?T_l38Xx4HB%N1)oQZd__tQ@bn zeOb^DPBTqF;uWdrUuZqXCBQ(WQHcbLsmaykIt08?fXZy&V~F0iEy%7yml>`sA3@^& zcU2{N4R4#vIgehV-r zdE?uE5lhEW+N?A0Dc|yyHymTN@KqZ3N@Y0Y9S>Q|g9sl-C*`&#%f)?dh!^aALB}_3 zg62`|g|9x@1HXfk6sKmV=M(cm^rUmL9)tVo1U+~p4WuP|2cMei=fQpuyCKHx*+Qdv z_K^WKZ&6+9WE&M>&=0@#bv(vv!_6ecUD5=M%^@NL>u)|D2ZBA5;s>8M)5O2W>U@vB zSJso#xDe+dr;JdaGFEXsM#(0Y1F1KO*q-4ip>;R)VxaU+LAsp33kuNg0>I7wh;RgF zqLe*@bzkl)F$S&7K1_O!JETpHj?I?oPuf?_&Tv|Z78v#MnhSN11X%+(u8)!z7pQVN zS~jV_{y`E9DIO2#E>n37f^{-uJo=FlAzqgI0P!U=3H4*L2QIu>*U9ZWyMnq*ksNs; z=xQ$R0@72_#Om|5Nb2{&w|z{K4mIks{$y21BY|6p$Vbmx?HGQp{LXvje4>l2*!!xyuWfK7EC(YIk=gE zgf{0L>b8g}Yvx{6)DDeyTP;{#rD*_ch|tKDo%Qwvx}ZFKhcx(ue*pzdRUP8IWNlwz zTr5c7l0mY@v=N%0m}0b554nXy?&v^rm?t-mT8eVmX*-dsm|$%rD7=HceomyV`319L zPeTXIAH0F~TVI3vAa>Ulgc){Cf^4l+8z+d{enOkZDwuPY)kD+CH&co`DMw$2piDk) zfV@-5D^PV}_B+SV(I?^7Xx9FG31et^bB%`A$NdelbgfS7(aLcLsw z9y3n2=q>`nDaFk;G~>u&lFU@mo3}n#7uSru(O^Ol;Bepbb~(c;a3y@FT3wWo2=JGK z)>wt_L5w8!b7zn~vF;#DNS5^01MNr&*>nOR#yRPgP6=>=GP+5)fY}-+Fc(ZD0P+;= z*}9m>g%0cZzUMWI2ebS9P2dYKs%@m{%$rZCgus|x9zqVjwW^6tvm+A4k}{9`t$(bt zSZ~JZX21m3(a~!HPgn*2e6)Oeh1$J~NQo?`PN0T3WBUVV;3e|KIs8m;{e#gQvRpqO zhW}O<=I2^2wnbUY@@+^16er5f+M0`6G1SV1RUZvnBq%4byO_=s1c-qk0)D2>In&C7 zC+YMUXe+33W*(8a`&cWflaAKv3v;wwr}ahz3Bexexbr-v3CJBX`4vjGXS5wxvqh{! zeh^8?7(~Z?lqK*1n$A8*vLs*2WksbRhL%HTM^G}C4RGx3_0UK8qn7Nz-Ux?q}| zlKxTymgfuc=v2UO{zfpd$k>=6H35L9 zUl_Rz*+YUTtK05ht)1}4W~JDEcLSgVq3vD7Oa(3T^Dz`rII$Viw?K@PBfilMCz_=^ z11(vPA^yI!(4U@XT(HV>j9m59N}>kz;szPdvz9Hs0;K>goMxAx^MGX)zoKEcuyM&7 zSL6nr@5& zg7=qCsVn{R=&x=?%#}XzzNrSJkq9!(z_PN83sJ6arg6h13C@yHFa>!*`B_3Uvrk_S zm6Wr^8wn4h&j4n91bbxyU4}+vxC>g( zw;!rd$7`E3u6+G4&os5clX+@U@r1GIzF`g zyK2cfw*jX>;B-2WD&%HjMF~O?l;F@-G-bT$fVu~lE3b)TxS;@;ZhGNwY5T1&A+ke; z=Zza)tTPK+8!ehm?IT?x=*)yGHpzn#(X2TX&~P?;fCkNNQ>Ur5(mYQ^67}?}%)S#< zC=}TXM4**TErLopWn7SB$YD7hz0P2bk1cFMDz>4jXWbwP+|m!z#syhF#j0ITRUkD0 z3b*y6^iTcLUwiByI(RX9Xt`;e?y%)E$@m+)*pomt`v4`2R>31cw4w6xjNxr`9d-X3 zD_e|1WrQlABss#DJ)jvv-i*56OEchaP1{jrp%H)okP5R67Y75*#JwY+*XqlHsOea*Ub5i{eKgMVPfxgdpnho5$ zvM6<`qSgmbQCHh|C9%p1r$j*8$jHPW9 zTeDP^9KZt*D$RRd>mqXWA4J|@1K=%tsHgfYx=zRfQYm4 + +using namespace metal; + +#define MAX(x, y) ((x) > (y) ? (x) : (y)) +#define MIN(x, y) ((x) < (y) ? (x) : (y)) +#define SWAP(x, y) { auto tmp = (x); (x) = (y); (y) = tmp; } + +#define N_SIMDWIDTH 32 // assuming SIMD group size is 32 + +// ref: https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf +// +// cmd: +// .../usr/bin/metal -dM -E -c ggml/src/ggml-metal.metal +// .../usr/bin/metal -dM -E -c -target air64-apple-ios14.0 ggml/src/ggml-metal.metal +// +#if __METAL_VERSION__ < 310 && defined(GGML_METAL_USE_BF16) +#undef GGML_METAL_USE_BF16 +#endif + +#if defined(GGML_METAL_USE_BF16) +typedef matrix bfloat4x4; +#endif + +constexpr constant static float kvalues_iq4nl_f[16] = { + -127.f, -104.f, -83.f, -65.f, -49.f, -35.f, -22.f, -10.f, 1.f, 13.f, 25.f, 38.f, 53.f, 69.f, 89.f, 113.f +}; + +// NOTE: this is not dequantizing - we are simply fitting the template +template +void dequantize_f32(device const float4x4 * src, short il, thread type4x4 & reg) { + reg = (type4x4)(*src); +} + +template +void dequantize_f16(device const half4x4 * src, short il, thread type4x4 & reg) { + reg = (type4x4)(*src); +} + +#if defined(GGML_METAL_USE_BF16) +template +void dequantize_bf16(device const bfloat4x4 * src, short il, thread type4x4 & reg) { + reg = (type4x4)(*src); +} +#endif + +template +void dequantize_q4_0(device const block_q4_0 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 1); + const float d1 = il ? (xb->d / 16.h) : xb->d; + const float d2 = d1 / 256.f; + const float md = -8.h * xb->d; + const ushort mask0 = il ? 0x00F0 : 0x000F; + const ushort mask1 = mask0 << 8; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + reg_f[i/2][2*(i%2) + 0] = d1 * (qs[i] & mask0) + md; + reg_f[i/2][2*(i%2) + 1] = d2 * (qs[i] & mask1) + md; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q4_1(device const block_q4_1 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 2); + const float d1 = il ? (xb->d / 16.h) : xb->d; + const float d2 = d1 / 256.f; + const float m = xb->m; + const ushort mask0 = il ? 0x00F0 : 0x000F; + const ushort mask1 = mask0 << 8; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + reg_f[i/2][2*(i%2) + 0] = ((qs[i] & mask0) * d1) + m; + reg_f[i/2][2*(i%2) + 1] = ((qs[i] & mask1) * d2) + m; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q5_0(device const block_q5_0 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 3); + const float d = xb->d; + const float md = -16.h * xb->d; + const ushort mask = il ? 0x00F0 : 0x000F; + + const uint32_t qh = *((device const uint32_t *)xb->qh); + + const int x_mv = il ? 4 : 0; + + const int gh_mv = il ? 12 : 0; + const int gh_bk = il ? 0 : 4; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + // extract the 5-th bits for x0 and x1 + const uint8_t xh_0 = ((qh >> (gh_mv + 2*i )) << gh_bk) & 0x10; + const uint8_t xh_1 = ((qh >> (gh_mv + 2*i+1)) << gh_bk) & 0x10; + + // combine the 4-bits from qs with the 5th bit + const int32_t x0 = ((((qs[i] ) & mask) >> x_mv) | xh_0); + const int32_t x1 = ((((qs[i] >> 8) & mask) >> x_mv) | xh_1); + + reg_f[i/2][2*(i%2) + 0] = d * x0 + md; + reg_f[i/2][2*(i%2) + 1] = d * x1 + md; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q5_1(device const block_q5_1 *xb, short il, thread type4x4 & reg) { + device const uint16_t * qs = ((device const uint16_t *)xb + 4); + const float d = xb->d; + const float m = xb->m; + const ushort mask = il ? 0x00F0 : 0x000F; + + const uint32_t qh = *((device const uint32_t *)xb->qh); + + const int x_mv = il ? 4 : 0; + + const int gh_mv = il ? 12 : 0; + const int gh_bk = il ? 0 : 4; + + float4x4 reg_f; + + for (int i = 0; i < 8; i++) { + // extract the 5-th bits for x0 and x1 + const uint8_t xh_0 = ((qh >> (gh_mv + 2*i )) << gh_bk) & 0x10; + const uint8_t xh_1 = ((qh >> (gh_mv + 2*i+1)) << gh_bk) & 0x10; + + // combine the 4-bits from qs with the 5th bit + const int32_t x0 = ((((qs[i] ) & mask) >> x_mv) | xh_0); + const int32_t x1 = ((((qs[i] >> 8) & mask) >> x_mv) | xh_1); + + reg_f[i/2][2*(i%2) + 0] = d * x0 + m; + reg_f[i/2][2*(i%2) + 1] = d * x1 + m; + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q8_0(device const block_q8_0 *xb, short il, thread type4x4 & reg) { + device const int8_t * qs = ((device const int8_t *)xb->qs); + const half d = xb->d; + + float4x4 reg_f; + + for (int i = 0; i < 16; i++) { + reg_f[i/4][i%4] = (qs[i + 16*il] * d); + } + + reg = (type4x4) reg_f; +} + +template +void dequantize_q2_K(device const block_q2_K *xb, short il, thread type4x4 & reg) { + const float d = xb->d; + const float min = xb->dmin; + device const uint8_t * q = (device const uint8_t *)xb->qs; + float dl, ml; + uint8_t sc = xb->scales[il]; + + q = q + 32*(il/8) + 16*(il&1); + il = (il/2)%4; + + half coef = il>1 ? (il>2 ? 1/64.h : 1/16.h) : (il>0 ? 1/4.h : 1.h); + uchar mask = il>1 ? (il>2 ? 192 : 48) : (il>0 ? 12 : 3); + dl = d * (sc & 0xF) * coef, ml = min * (sc >> 4); + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * (q[i] & mask) - ml; + } +} + +template +void dequantize_q3_K(device const block_q3_K *xb, short il, thread type4x4 & reg) { + const half d_all = xb->d; + device const uint8_t * q = (device const uint8_t *)xb->qs; + device const uint8_t * h = (device const uint8_t *)xb->hmask; + device const int8_t * scales = (device const int8_t *)xb->scales; + + q = q + 32 * (il/8) + 16 * (il&1); + h = h + 16 * (il&1); + uint8_t m = 1 << (il/2); + uint16_t kmask1 = (il/4)>1 ? ((il/4)>2 ? 192 : 48) : \ + ((il/4)>0 ? 12 : 3); + uint16_t kmask2 = il/8 ? 0xF0 : 0x0F; + uint16_t scale_2 = scales[il%8], scale_1 = scales[8 + il%4]; + int16_t dl_int = (il/4)&1 ? (scale_2&kmask2) | ((scale_1&kmask1) << 2) + : (scale_2&kmask2) | ((scale_1&kmask1) << 4); + float dl = il<8 ? d_all * (dl_int - 32.f) : d_all * (dl_int / 16.f - 32.f); + const float ml = 4.f * dl; + + il = (il/2) & 3; + const half coef = il>1 ? (il>2 ? 1/64.h : 1/16.h) : (il>0 ? 1/4.h : 1.h); + const uint8_t mask = il>1 ? (il>2 ? 192 : 48) : (il>0 ? 12 : 3); + dl *= coef; + + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * (q[i] & mask) - (h[i] & m ? 0 : ml); + } +} + +static inline uchar2 get_scale_min_k4_just2(int j, int k, device const uchar * q) { + return j < 4 ? uchar2{uchar(q[j+0+k] & 63), uchar(q[j+4+k] & 63)} + : uchar2{uchar((q[j+4+k] & 0xF) | ((q[j-4+k] & 0xc0) >> 2)), uchar((q[j+4+k] >> 4) | ((q[j-0+k] & 0xc0) >> 2))}; +} + +template +void dequantize_q4_K(device const block_q4_K *xb, short il, thread type4x4 & reg) { + device const uchar * q = xb->qs; + + short is = (il/4) * 2; + q = q + (il/4) * 32 + 16 * (il&1); + il = il & 3; + const uchar2 sc = get_scale_min_k4_just2(is, il/2, xb->scales); + const float d = il < 2 ? xb->d : xb->d / 16.h; + const float min = xb->dmin; + const float dl = d * sc[0]; + const float ml = min * sc[1]; + + const ushort mask = il<2 ? 0x0F : 0xF0; + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * (q[i] & mask) - ml; + } +} + +template +void dequantize_q5_K(device const block_q5_K *xb, short il, thread type4x4 & reg) { + device const uint8_t * q = xb->qs; + device const uint8_t * qh = xb->qh; + + short is = (il/4) * 2; + q = q + 32 * (il/4) + 16 * (il&1); + qh = qh + 16 * (il&1); + uint8_t ul = 1 << (il/2); + il = il & 3; + const uchar2 sc = get_scale_min_k4_just2(is, il/2, xb->scales); + const float d = il < 2 ? xb->d : xb->d / 16.f; + const float min = xb->dmin; + const float dl = d * sc[0]; + const float ml = min * sc[1]; + + const ushort mask = il<2 ? 0x0F : 0xF0; + const float qh_val = il<2 ? 16.f : 256.f; + for (int i = 0; i < 16; ++i) { + reg[i/4][i%4] = dl * ((q[i] & mask) + (qh[i] & ul ? qh_val : 0)) - ml; + } +} + +template +void dequantize_q6_K(device const block_q6_K *xb, short il, thread type4x4 & reg) { + const half d_all = xb->d; + device const uint8_t * ql = (device const uint8_t *)xb->ql; + device const uint8_t * qh = (device const uint8_t *)xb->qh; + device const int8_t * scales = (device const int8_t *)xb->scales; + + ql = ql + 64*(il/8) + 32*((il/2)&1) + 16*(il&1); + qh = qh + 32*(il/8) + 16*(il&1); + float sc = scales[(il%2) + 2 * ((il/2))]; + il = (il/2) & 3; + + const uint16_t kmask1 = il>1 ? (il>2 ? 192 : 48) : (il>0 ? 12 : 3); + const uint16_t kmask2 = il>1 ? 0xF0 : 0x0F; + const float coef = il>1 ? 1.f/16.f : 1.f; + const float ml = d_all * sc * 32.f; + const float dl = d_all * sc * coef; + for (int i = 0; i < 16; ++i) { + const half q = il&1 ? ((ql[i] & kmask2) | ((qh[i] & kmask1) << 2)) + : ((ql[i] & kmask2) | ((qh[i] & kmask1) << 4)); + reg[i/4][i%4] = dl * q - ml; + } +} + +template +void dequantize_iq2_xxs(device const block_iq2_xxs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + // each block of 32 needs 2 uint32_t's for the quants & scale, so 4 uint16_t's. + device const uint16_t * q2 = xb->qs + 4*ib32; + const uint32_t aux32_g = q2[0] | (q2[1] << 16); + const uint32_t aux32_s = q2[2] | (q2[3] << 16); + thread const uint8_t * aux8 = (thread const uint8_t *)&aux32_g; + const float dl = d * (0.5f + (aux32_s >> 28)) * 0.25f; + constant uint8_t * grid = (constant uint8_t *)(iq2xxs_grid + aux8[2*il+0]); + uint8_t signs = ksigns_iq2xs[(aux32_s >> 14*il) & 127]; + for (int i = 0; i < 8; ++i) { + reg[i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } + grid = (constant uint8_t *)(iq2xxs_grid + aux8[2*il+1]); + signs = ksigns_iq2xs[(aux32_s >> (14*il+7)) & 127]; + for (int i = 0; i < 8; ++i) { + reg[2+i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } +} + +template +void dequantize_iq2_xs(device const block_iq2_xs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint16_t * q2 = xb->qs + 4*ib32; + const float dl = d * (0.5f + ((xb->scales[ib32] >> 4*il) & 0xf)) * 0.25f; + constant uint8_t * grid = (constant uint8_t *)(iq2xs_grid + (q2[2*il+0] & 511)); + uint8_t signs = ksigns_iq2xs[q2[2*il+0] >> 9]; + for (int i = 0; i < 8; ++i) { + reg[i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } + grid = (constant uint8_t *)(iq2xs_grid + (q2[2*il+1] & 511)); + signs = ksigns_iq2xs[q2[2*il+1] >> 9]; + for (int i = 0; i < 8; ++i) { + reg[2+i/4][i%4] = dl * grid[i] * (signs & kmask_iq2xs[i] ? -1.f : 1.f); + } +} + +template +void dequantize_iq3_xxs(device const block_iq3_xxs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint8_t * q3 = xb->qs + 8*ib32; + device const uint16_t * gas = (device const uint16_t *)(xb->qs + QK_K/4) + 2*ib32; + const uint32_t aux32 = gas[0] | (gas[1] << 16); + const float dl = d * (0.5f + (aux32 >> 28)) * 0.5f; + constant uint8_t * grid1 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+0]); + constant uint8_t * grid2 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+1]); + uint8_t signs = ksigns_iq2xs[(aux32 >> 14*il) & 127]; + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * grid1[i] * (signs & kmask_iq2xs[i+0] ? -1.f : 1.f); + reg[1][i] = dl * grid2[i] * (signs & kmask_iq2xs[i+4] ? -1.f : 1.f); + } + grid1 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+2]); + grid2 = (constant uint8_t *)(iq3xxs_grid + q3[4*il+3]); + signs = ksigns_iq2xs[(aux32 >> (14*il+7)) & 127]; + for (int i = 0; i < 4; ++i) { + reg[2][i] = dl * grid1[i] * (signs & kmask_iq2xs[i+0] ? -1.f : 1.f); + reg[3][i] = dl * grid2[i] * (signs & kmask_iq2xs[i+4] ? -1.f : 1.f); + } +} + +template +void dequantize_iq3_s(device const block_iq3_s * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint8_t * qs = xb->qs + 8*ib32; + device const uint8_t * signs = xb->signs + 4*ib32 + 2*il; + const uint8_t qh = xb->qh[ib32] >> 4*il; + const float dl = d * (1 + 2*((xb->scales[ib32/2] >> 4*(ib32%2)) & 0xf)); + constant uint8_t * grid1 = (constant uint8_t *)(iq3s_grid + (qs[4*il+0] | ((qh << 8) & 256))); + constant uint8_t * grid2 = (constant uint8_t *)(iq3s_grid + (qs[4*il+1] | ((qh << 7) & 256))); + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * grid1[i] * select(1, -1, signs[0] & kmask_iq2xs[i+0]); + reg[1][i] = dl * grid2[i] * select(1, -1, signs[0] & kmask_iq2xs[i+4]); + } + grid1 = (constant uint8_t *)(iq3s_grid + (qs[4*il+2] | ((qh << 6) & 256))); + grid2 = (constant uint8_t *)(iq3s_grid + (qs[4*il+3] | ((qh << 5) & 256))); + for (int i = 0; i < 4; ++i) { + reg[2][i] = dl * grid1[i] * select(1, -1, signs[1] & kmask_iq2xs[i+0]); + reg[3][i] = dl * grid2[i] * select(1, -1, signs[1] & kmask_iq2xs[i+4]); + } +} + +template +void dequantize_iq2_s(device const block_iq2_s * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const float d = xb->d; + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint8_t * qs = xb->qs + 4*ib32 + 2*il; + device const uint8_t * signs = qs + QK_K/8; + const uint8_t qh = xb->qh[ib32] >> 4*il; + const float dl = d * (0.5f + ((xb->scales[ib32] >> 4*il) & 0xf)) * 0.25f; + constant uint8_t * grid1 = (constant uint8_t *)(iq2s_grid + (qs[0] | ((qh << 8) & 0x300))); + constant uint8_t * grid2 = (constant uint8_t *)(iq2s_grid + (qs[1] | ((qh << 6) & 0x300))); + for (int i = 0; i < 8; ++i) { + reg[i/4+0][i%4] = dl * grid1[i] * select(1, -1, signs[0] & kmask_iq2xs[i]); + reg[i/4+2][i%4] = dl * grid2[i] * select(1, -1, signs[1] & kmask_iq2xs[i]); + } +} + +template +void dequantize_iq1_s(device const block_iq1_s * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const int ib32 = il/2; + il = il%2; + const float d = xb->d; + device const uint8_t * qs = xb->qs + 4*ib32 + 2*il; + device const uint16_t * qh = xb->qh; + const float dl = d * (2*((qh[ib32] >> 12) & 7) + 1); + const float ml = dl * (qh[ib32] & 0x8000 ? -1 - IQ1S_DELTA : -1 + IQ1S_DELTA); + const uint16_t h = qh[ib32] >> 6*il; + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((h << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((h << 5) & 0x700))); + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * (grid1[i] & 0xf) + ml; + reg[1][i] = dl * (grid1[i] >> 4) + ml; + reg[2][i] = dl * (grid2[i] & 0xf) + ml; + reg[3][i] = dl * (grid2[i] >> 4) + ml; + } +} + +template +void dequantize_iq1_m(device const block_iq1_m * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const int ib32 = il/2; + il = il%2; + device const uint16_t * sc = (device const uint16_t *)xb->scales; + + iq1m_scale_t scale; + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + const float d = scale.f16; + + device const uint8_t * qs = xb->qs + 4*ib32 + 2*il; + device const uint8_t * qh = xb->qh + 2*ib32 + il; + + const float dl = d * (2*((sc[ib32/2] >> (6*(ib32%2)+3*il)) & 7) + 1); + const float ml1 = dl * (qh[0] & 0x08 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + const float ml2 = dl * (qh[0] & 0x80 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((qh[0] << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((qh[0] << 4) & 0x700))); + for (int i = 0; i < 4; ++i) { + reg[0][i] = dl * (grid1[i] & 0xf) + ml1; + reg[1][i] = dl * (grid1[i] >> 4) + ml1; + reg[2][i] = dl * (grid2[i] & 0xf) + ml2; + reg[3][i] = dl * (grid2[i] >> 4) + ml2; + } +} + +template +void dequantize_iq4_nl(device const block_iq4_nl * xb, short il, thread type4x4 & reg) { + device const uint16_t * q4 = (device const uint16_t *)xb->qs; + const float d = xb->d; + uint32_t aux32; + thread const uint8_t * q8 = (thread const uint8_t *)&aux32; + for (int i = 0; i < 4; ++i) { + aux32 = ((q4[2*i] | (q4[2*i+1] << 16)) >> 4*il) & 0x0f0f0f0f; + reg[i][0] = d * kvalues_iq4nl_f[q8[0]]; + reg[i][1] = d * kvalues_iq4nl_f[q8[1]]; + reg[i][2] = d * kvalues_iq4nl_f[q8[2]]; + reg[i][3] = d * kvalues_iq4nl_f[q8[3]]; + } +} + +template +void dequantize_iq4_xs(device const block_iq4_xs * xb, short il, thread type4x4 & reg) { + // il is 0...15 for QK_K = 256 => index of block of 32 is il/2 + const int ib32 = il/2; + il = il%2; + // il = 0 or 1. il = 0 processes the first 16 quants in a block of 32, il = 1 the second 16 + device const uint32_t * q4 = (device const uint32_t *)xb->qs + 4*ib32; + const int ls = ((xb->scales_l[ib32/2] >> 4*(ib32%2)) & 0xf) | (((xb->scales_h >> 2*ib32) & 3) << 4); + const float d = (float)xb->d * (ls - 32); + uint32_t aux32; + thread const uint8_t * q8 = (thread const uint8_t *)&aux32; + for (int i = 0; i < 4; ++i) { + aux32 = (q4[i] >> 4*il) & 0x0f0f0f0f; + reg[i][0] = d * kvalues_iq4nl_f[q8[0]]; + reg[i][1] = d * kvalues_iq4nl_f[q8[1]]; + reg[i][2] = d * kvalues_iq4nl_f[q8[2]]; + reg[i][3] = d * kvalues_iq4nl_f[q8[3]]; + } +} + +enum ggml_sort_order { + GGML_SORT_ORDER_ASC, + GGML_SORT_ORDER_DESC, +}; + +// general-purpose kernel for addition, subtraction, multiplication and division of two tensors +// pros: works for non-contiguous tensors, supports broadcast across all dims +// cons: not very efficient +kernel void kernel_add( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int64_t & offs, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01 + offs; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1 + offs; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) + *((device float *)(src1_ptr + i10*nb10)); + } +} + +kernel void kernel_sub( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int64_t & offs, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01 + offs; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1 + offs; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) - *((device float *)(src1_ptr + i10*nb10)); + } +} + +kernel void kernel_mul( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) * *((device float *)(src1_ptr + i10*nb10)); + } +} + +kernel void kernel_div( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig.z; + const int64_t i02 = tgpig.y; + const int64_t i01 = tgpig.x; + + const int64_t i13 = i03 % ne13; + const int64_t i12 = i02 % ne12; + const int64_t i11 = i01 % ne11; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01; + device const char * src1_ptr = src1 + i13*nb13 + i12*nb12 + i11*nb11; + device char * dst_ptr = dst + i03*nb3 + i02*nb2 + i01*nb1; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i10 = i0 % ne10; + *((device float *)(dst_ptr + i0*nb0)) = *((device float *)(src0_ptr + i0*nb00)) / *((device float *)(src1_ptr + i10*nb10)); + } +} + +template +kernel void kernel_repeat( + device const char * src0, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + const int64_t i03 = i3 % ne03; + const int64_t i02 = i2 % ne02; + const int64_t i01 = i1 % ne01; + + device const char * src0_ptr = src0 + i03*nb03 + i02*nb02 + i01*nb01; + device char * dst_ptr = dst + i3*nb3 + i2*nb2 + i1*nb1 ; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int i00 = i0 % ne00; + *((device T *)(dst_ptr + i0*nb0)) = *((device T *)(src0_ptr + i00*nb00)); + } +} + +typedef decltype(kernel_repeat) kernel_repeat_t; + +template [[host_name("kernel_repeat_f32")]] kernel kernel_repeat_t kernel_repeat; +template [[host_name("kernel_repeat_f16")]] kernel kernel_repeat_t kernel_repeat; +template [[host_name("kernel_repeat_i32")]] kernel kernel_repeat_t kernel_repeat; +template [[host_name("kernel_repeat_i16")]] kernel kernel_repeat_t kernel_repeat; + +// assumption: src1 is a row +// broadcast src1 into src0 +kernel void kernel_add_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] + src1[tpig % nb]; +} + +kernel void kernel_sub_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] - src1[tpig % nb]; +} + +kernel void kernel_mul_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * src1[tpig % nb]; +} + +kernel void kernel_div_row( + device const float4 * src0, + device const float4 * src1, + device float4 * dst, + constant uint64_t & nb [[buffer(28)]], + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] / src1[tpig % nb]; +} + +kernel void kernel_scale( + device const float * src0, + device float * dst, + constant float & scale, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * scale; +} + +kernel void kernel_scale_4( + device const float4 * src0, + device float4 * dst, + constant float & scale, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * scale; +} + +kernel void kernel_clamp( + device const float * src0, + device float * dst, + constant float & min, + constant float & max, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] < min ? min : (src0[tpig] > max ? max : src0[tpig]); +} + +kernel void kernel_relu( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = max(0.0f, src0[tpig]); +} + +kernel void kernel_sigmoid( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = 1.0f / (1.0f + exp(-src0[tpig])); +} + +kernel void kernel_tanh( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + dst[tpig] = precise::tanh(x); +} + +constant float GELU_COEF_A = 0.044715f; +constant float GELU_QUICK_COEF = -1.702f; +constant float SQRT_2_OVER_PI = 0.79788456080286535587989211986876f; + +kernel void kernel_gelu( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + + dst[tpig] = 0.5f*x*(1.0f + precise::tanh(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); +} + +kernel void kernel_gelu_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + device const float4 & x = src0[tpig]; + + // BEWARE !!! + // Simply using "tanh" instead of "precise::tanh" will sometimes results in NaNs! + // This was observed with Falcon 7B and 40B models + // + dst[tpig] = 0.5f*x*(1.0f + precise::tanh(SQRT_2_OVER_PI*x*(1.0f + GELU_COEF_A*x*x))); +} + +kernel void kernel_gelu_quick( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + + dst[tpig] = x*(1.0f/(1.0f+exp(GELU_QUICK_COEF*x))); +} + +kernel void kernel_gelu_quick_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + device const float4 & x = src0[tpig]; + + dst[tpig] = x*(1.0f/(1.0f+exp(GELU_QUICK_COEF*x))); +} + +kernel void kernel_silu( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + device const float & x = src0[tpig]; + dst[tpig] = x / (1.0f + exp(-x)); +} + +kernel void kernel_silu_4( + device const float4 * src0, + device float4 * dst, + uint tpig[[thread_position_in_grid]]) { + device const float4 & x = src0[tpig]; + dst[tpig] = x / (1.0f + exp(-x)); +} + +kernel void kernel_sqr( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] * src0[tpig]; +} + +kernel void kernel_sqrt( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sqrt(src0[tpig]); +} + +kernel void kernel_sin( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = sin(src0[tpig]); +} + +kernel void kernel_cos( + device const float * src0, + device float * dst, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = cos(src0[tpig]); +} + +kernel void kernel_sum_rows( + device const float * src0, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tpig[[thread_position_in_grid]]) { + int64_t i3 = tpig.z; + int64_t i2 = tpig.y; + int64_t i1 = tpig.x; + + if (i3 >= ne03 || i2 >= ne02 || i1 >= ne01) { + return; + } + + device const float * src_row = (device const float *) ((device const char *) src0 + i1*nb01 + i2*nb02 + i3*nb03); + device float * dst_row = (device float *) ((device char *) dst + i1*nb1 + i2*nb2 + i3*nb3); + + float row_sum = 0; + + for (int64_t i0 = 0; i0 < ne00; i0++) { + row_sum += src_row[i0]; + } + + dst_row[0] = row_sum; +} + +template +kernel void kernel_soft_max( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint32_t & n_head_log2, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + const int64_t i03 = (tgpig) / (ne02*ne01); + const int64_t i02 = (tgpig - i03*ne02*ne01) / ne01; + const int64_t i01 = (tgpig - i03*ne02*ne01 - i02*ne01); + + device const float * psrc0 = (device const float *) src0 + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00); + device const T * pmask = src1 != src0 ? (device const T *) src1 + i01*ne00 : nullptr; + device float * pdst = (device float *) dst + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00); + + float slope = 1.0f; + + // ALiBi + if (max_bias > 0.0f) { + const int64_t h = i02; + + const float base = h < n_head_log2 ? m0 : m1; + const int exp = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exp); + } + + // parallel max + float lmax = -INFINITY; + + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + lmax = MAX(lmax, psrc0[i00]*scale + (pmask ? slope*pmask[i00] : 0.0f)); + } + + // find the max value in the block + float max_val = simd_max(lmax); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = -INFINITY; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = max_val; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + max_val = buf[tiisg]; + max_val = simd_max(max_val); + } + + // parallel sum + float lsum = 0.0f; + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + const float exp_psrc0 = exp((psrc0[i00]*scale + (pmask ? slope*pmask[i00] : 0.0f)) - max_val); + lsum += exp_psrc0; + pdst[i00] = exp_psrc0; + } + + // This barrier fixes a failing test + // ref: https://github.com/ggerganov/ggml/pull/621#discussion_r1425156335 + threadgroup_barrier(mem_flags::mem_none); + + float sum = simd_sum(lsum); + + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = sum; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + sum = buf[tiisg]; + sum = simd_sum(sum); + } + + const float inv_sum = 1.0f/sum; + + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + pdst[i00] *= inv_sum; + } +} + +template +kernel void kernel_soft_max_4( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint32_t & n_head_log2, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + const int64_t i03 = (tgpig) / (ne02*ne01); + const int64_t i02 = (tgpig - i03*ne02*ne01) / ne01; + const int64_t i01 = (tgpig - i03*ne02*ne01 - i02*ne01); + + device const float4 * psrc4 = (device const float4 *) src0 + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00)/4; + device const T * pmask = src1 != src0 ? (device const T *) src1 + i01*ne00/4 : nullptr; + device float4 * pdst4 = (device float4 *) dst + (i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00)/4; + + float slope = 1.0f; + + if (max_bias > 0.0f) { + const int64_t h = i02; + + const float base = h < n_head_log2 ? m0 : m1; + const int exp = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exp); + } + + // parallel max + float4 lmax4 = -INFINITY; + + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + lmax4 = fmax(lmax4, psrc4[i00]*scale + (float4)((pmask ? slope*pmask[i00] : 0.0f))); + } + + const float lmax = MAX(MAX(lmax4[0], lmax4[1]), MAX(lmax4[2], lmax4[3])); + + float max_val = simd_max(lmax); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = -INFINITY; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = max_val; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + max_val = buf[tiisg]; + max_val = simd_max(max_val); + } + + // parallel sum + float4 lsum4 = 0.0f; + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + const float4 exp_psrc4 = exp((psrc4[i00]*scale + (float4)((pmask ? slope*pmask[i00] : 0.0f))) - max_val); + lsum4 += exp_psrc4; + pdst4[i00] = exp_psrc4; + } + + const float lsum = lsum4[0] + lsum4[1] + lsum4[2] + lsum4[3]; + + // This barrier fixes a failing test + // ref: https://github.com/ggerganov/ggml/pull/621#discussion_r1425156335 + threadgroup_barrier(mem_flags::mem_none); + + float sum = simd_sum(lsum); + + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = sum; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + sum = buf[tiisg]; + sum = simd_sum(sum); + } + + const float inv_sum = 1.0f/sum; + + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + pdst4[i00] *= inv_sum; + } +} + +typedef decltype(kernel_soft_max) kernel_soft_max_t; +typedef decltype(kernel_soft_max_4) kernel_soft_max_4_t; + +template [[host_name("kernel_soft_max_f16")]] kernel kernel_soft_max_t kernel_soft_max; +template [[host_name("kernel_soft_max_f32")]] kernel kernel_soft_max_t kernel_soft_max; +template [[host_name("kernel_soft_max_f16_4")]] kernel kernel_soft_max_4_t kernel_soft_max_4; +template [[host_name("kernel_soft_max_f32_4")]] kernel kernel_soft_max_4_t kernel_soft_max_4; + +kernel void kernel_diag_mask_inf( + device const float * src0, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int & n_past, + uint3 tpig[[thread_position_in_grid]]) { + const int64_t i02 = tpig[2]; + const int64_t i01 = tpig[1]; + const int64_t i00 = tpig[0]; + + if (i00 > n_past + i01) { + dst[i02*ne01*ne00 + i01*ne00 + i00] = -INFINITY; + } else { + dst[i02*ne01*ne00 + i01*ne00 + i00] = src0[i02*ne01*ne00 + i01*ne00 + i00]; + } +} + +kernel void kernel_diag_mask_inf_8( + device const float4 * src0, + device float4 * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int & n_past, + uint3 tpig[[thread_position_in_grid]]) { + + const int64_t i = 2*tpig[0]; + + dst[i+0] = src0[i+0]; + dst[i+1] = src0[i+1]; + int64_t i4 = 4*i; + const int64_t i02 = i4/(ne00*ne01); i4 -= i02*ne00*ne01; + const int64_t i01 = i4/(ne00); i4 -= i01*ne00; + const int64_t i00 = i4; + for (int k = 3; k >= 0; --k) { + if (i00 + 4 + k <= n_past + i01) { + break; + } + dst[i+1][k] = -INFINITY; + if (i00 + k > n_past + i01) { + dst[i][k] = -INFINITY; + } + } +} + +// ref: ggml.c:ggml_compute_forward_ssm_conv_f32 +// TODO: optimize +kernel void kernel_ssm_conv_f32( + device const void * src0, + device const void * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant int64_t & ne11, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t ir = tgpig.x; + const int64_t i2 = tgpig.y; + const int64_t i3 = tgpig.z; + + const int64_t nc = ne10; + //const int64_t ncs = ne00; + //const int64_t nr = ne01; + //const int64_t n_t = ne1; + //const int64_t n_s = ne2; + + device const float * s = (device const float *) ((device const char *) src0 + ir*nb01 + i2*nb00 + i3*nb02); + device const float * c = (device const float *) ((device const char *) src1 + ir*nb11); + device float * x = (device float *) ((device char *) dst + ir*nb0 + i2*nb1 + i3*nb2); + + float sumf = 0.0f; + + for (int64_t i0 = 0; i0 < nc; ++i0) { + sumf += s[i0] * c[i0]; + } + + x[0] = sumf; +} + +// ref: ggml.c:ggml_compute_forward_ssm_scan_f32 +// TODO: optimize +kernel void kernel_ssm_scan_f32( + device const void * src0, + device const void * src1, + device const void * src2, + device const void * src3, + device const void * src4, + device const void * src5, + device float * dst, + constant int64_t & d_state, + constant int64_t & d_inner, + constant int64_t & n_seq_tokens, + constant int64_t & n_seqs, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant uint64_t & nb20, + constant uint64_t & nb21, + constant uint64_t & nb22, + constant uint64_t & nb30, + constant uint64_t & nb31, + constant uint64_t & nb40, + constant uint64_t & nb41, + constant uint64_t & nb42, + constant uint64_t & nb50, + constant uint64_t & nb51, + constant uint64_t & nb52, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t ir = tgpig.x; + const int64_t i3 = tgpig.y; + + const int64_t nc = d_state; + //const int64_t nr = d_inner; + const int64_t n_t = n_seq_tokens; + //const int64_t n_s = n_seqs; + + for (int64_t i2 = 0; i2 < n_t; ++i2) { + device const float * s0 = (device const float *) ((device const char *) src0 + ir*nb01 + i3*nb02); + device const float * x = (device const float *) ((device const char *) src1 + ir*nb10 + i2*nb11 + i3*nb12); + device const float * dt = (device const float *) ((device const char *) src2 + ir*nb20 + i2*nb21 + i3*nb22); + device const float * A = (device const float *) ((device const char *) src3 + ir*nb31); + device const float * B = (device const float *) ((device const char *) src4 + i2*nb41 + i3*nb42); + device const float * C = (device const float *) ((device const char *) src5 + i2*nb51 + i3*nb52); + device float * y = (device float *) ((device char *) dst + ir*nb10 + i2*nb11 + i3*nb12); // TODO: do not use src1 strides + device float * s = (device float *) ((device char *) dst + ir*nb01 + i3*nb02 + nb13); + + if (i2 > 0) { + s0 = s; + } + + // i1 == 0 + float dt_soft_plus = dt[0] <= 20.0f ? log(1.0f + exp(dt[0])) : dt[0]; + float x_dt = x[0] * dt_soft_plus; + float sumf = 0.0f; + + for (int64_t i0 = 0; i0 < nc; ++i0) { + int64_t i = i0; + float state = (s0[i] * exp(dt_soft_plus * A[i])) + (B[i0] * x_dt); + sumf += state * C[i0]; + s[i] = state; + } + + y[0] = sumf; + } +} + +kernel void kernel_norm( + device const void * src0, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant float & eps, + threadgroup float * sum [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint ntg[[threads_per_threadgroup]]) { + device const float * x = (device const float *) ((device const char *) src0 + tgpig*nb01); + // MEAN + // parallel sum + sum[tpitg] = 0.0f; + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + sum[tpitg] += x[i00]; + } + // reduce + threadgroup_barrier(mem_flags::mem_threadgroup); + for (uint i = ntg/2; i > 0; i /= 2) { + if (tpitg < i) { + sum[tpitg] += sum[tpitg + i]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + const float mean = sum[0] / ne00; + + // recenter and VARIANCE + threadgroup_barrier(mem_flags::mem_threadgroup); + device float * y = dst + tgpig*ne00; + sum[tpitg] = 0.0f; + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + y[i00] = x[i00] - mean; + sum[tpitg] += y[i00] * y[i00]; + } + + // reduce + threadgroup_barrier(mem_flags::mem_threadgroup); + for (uint i = ntg/2; i > 0; i /= 2) { + if (tpitg < i) { + sum[tpitg] += sum[tpitg + i]; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + const float variance = sum[0] / ne00; + + const float scale = 1.0f/sqrt(variance + eps); + for (int i00 = tpitg; i00 < ne00; i00 += ntg) { + y[i00] = y[i00] * scale; + } +} + +kernel void kernel_rms_norm( + device const void * src0, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant float & eps, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + device const float4 * x = (device const float4 *) ((device const char *) src0 + tgpig*nb01); + + float4 sumf = 0; + float all_sum = 0; + + // parallel sum + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + sumf += x[i00] * x[i00]; + } + all_sum = sumf[0] + sumf[1] + sumf[2] + sumf[3]; + all_sum = simd_sum(all_sum); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = all_sum; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + all_sum = buf[tiisg]; + all_sum = simd_sum(all_sum); + } + + const float mean = all_sum/ne00; + const float scale = 1.0f/sqrt(mean + eps); + + device float4 * y = (device float4 *) (dst + tgpig*ne00); + for (int i00 = tpitg; i00 < ne00/4; i00 += ntg) { + y[i00] = x[i00] * scale; + } +} + +kernel void kernel_group_norm( + device const float * src0, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int32_t & n_groups, + constant float & eps, + threadgroup float * buf [[threadgroup(0)]], + uint tgpig[[threadgroup_position_in_grid]], + uint tpitg[[thread_position_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint ntg[[threads_per_threadgroup]]) { + const int64_t ne = ne00*ne01*ne02; + const int64_t gs = ne00*ne01*((ne02 + n_groups - 1) / n_groups); + + int start = tgpig * gs; + int end = start + gs; + + start += tpitg; + + if (end >= ne) { + end = ne; + } + + float tmp = 0.0f; // partial sum for thread in warp + + for (int j = start; j < end; j += ntg) { + tmp += src0[j]; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + tmp = simd_sum(tmp); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = tmp; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + tmp = buf[tiisg]; + tmp = simd_sum(tmp); + } + + const float mean = tmp / gs; + tmp = 0.0f; + + for (int j = start; j < end; j += ntg) { + float xi = src0[j] - mean; + dst[j] = xi; + tmp += xi * xi; + } + + tmp = simd_sum(tmp); + if (ntg > N_SIMDWIDTH) { + if (sgitg == 0) { + buf[tiisg] = 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (tiisg == 0) { + buf[sgitg] = tmp; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + tmp = buf[tiisg]; + tmp = simd_sum(tmp); + } + + const float variance = tmp / gs; + const float scale = 1.0f/sqrt(variance + eps); + for (int j = start; j < end; j += ntg) { + dst[j] *= scale; + } +} + +// function for calculate inner product between half a q4_0 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q4 quants begin (0 or QK4_0/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q4_0 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *) qb_curr + 1 + il/2); + + for (int i = 0; i < 8; i += 2) { + acc[0] += yl[i + 0] * (qs[i / 2] & 0x000F); + acc[1] += yl[i + 1] * (qs[i / 2] & 0x0F00); + acc[2] += yl[i + 8] * (qs[i / 2] & 0x00F0); + acc[3] += yl[i + 9] * (qs[i / 2] & 0xF000); + } + + return d * (sumy * -8.f + acc[0] + acc[1] + acc[2] + acc[3]); +} + +// function for calculate inner product between half a q4_1 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q4 quants begin (0 or QK4_0/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q4_1 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + float m = qb_curr->m; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *) qb_curr + 2 + il/2); + + for (int i = 0; i < 8; i+=2) { + acc[0] += yl[i + 0] * (qs[i / 2] & 0x000F); + acc[1] += yl[i + 1] * (qs[i / 2] & 0x0F00); + acc[2] += yl[i + 8] * (qs[i / 2] & 0x00F0); + acc[3] += yl[i + 9] * (qs[i / 2] & 0xF000); + } + + return d * (acc[0] + acc[1] + acc[2] + acc[3]) + sumy * m; +} + +// function for calculate inner product between half a q5_0 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q5 quants begin (0 or QK5_0/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q5_0 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *)qb_curr + 3 + il/2); + const uint32_t qh = *((device const uint32_t *)qb_curr->qh); + + for (int i = 0; i < 8; i+=2) { + acc[0] += yl[i + 0] * ((qs[i / 2] & 0x000F) | ((qh >> (i+0+il ) << 4 ) & 0x00010)); + acc[1] += yl[i + 1] * ((qs[i / 2] & 0x0F00) | ((qh >> (i+1+il ) << 12) & 0x01000)); + acc[2] += yl[i + 8] * ((qs[i / 2] & 0x00F0) | ((qh >> (i+0+il+QK5_0/2) << 8 ) & 0x00100)); + acc[3] += yl[i + 9] * ((qs[i / 2] & 0xF000) | ((qh >> (i+1+il+QK5_0/2) << 16) & 0x10000)); + } + + return d * (sumy * -16.f + acc[0] + acc[1] + acc[2] + acc[3]); +} + +// function for calculate inner product between half a q5_1 block and 16 floats (yl), sumy is SUM(yl[i]) +// il indicates where the q5 quants begin (0 or QK5_1/4) +// we assume that the yl's have been multiplied with the appropriate scale factor +// that corresponds to the missing bit shifts (1, 1/16, 1/256, 1/4096) +inline float block_q_n_dot_y(device const block_q5_1 * qb_curr, float sumy, thread float * yl, int il) { + float d = qb_curr->d; + float m = qb_curr->m; + + float acc[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + + device const uint16_t * qs = ((device const uint16_t *)qb_curr + 4 + il/2); + const uint32_t qh = *((device const uint32_t *)qb_curr->qh); + + for (int i = 0; i < 8; i+=2) { + acc[0] += yl[i + 0] * ((qs[i / 2] & 0x000F) | ((qh >> (i+0+il ) << 4 ) & 0x00010)); + acc[1] += yl[i + 1] * ((qs[i / 2] & 0x0F00) | ((qh >> (i+1+il ) << 12) & 0x01000)); + acc[2] += yl[i + 8] * ((qs[i / 2] & 0x00F0) | ((qh >> (i+0+il+QK5_0/2) << 8 ) & 0x00100)); + acc[3] += yl[i + 9] * ((qs[i / 2] & 0xF000) | ((qh >> (i+1+il+QK5_0/2) << 16) & 0x10000)); + } + + return d * (acc[0] + acc[1] + acc[2] + acc[3]) + sumy * m; +} + +// putting them in the kernel cause a significant performance penalty +#define N_DST 4 // each SIMD group works on 4 rows +#define N_SIMDGROUP 2 // number of SIMD groups in a thread group +//Note: This is a template, but strictly speaking it only applies to +// quantizations where the block size is 32. It also does not +// guard against the number of rows not being divisible by +// N_DST, so this is another explicit assumption of the implementation. +template +void mul_vec_q_n_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + const int nb = ne00/QK4_0; + + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * nsg + sgitg) * nr; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + //const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + //device const block_q_type * x = (device const block_q_type *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + // pointers to src0 rows + device const block_q_type * ax[nr]; + for (int row = 0; row < nr; ++row) { + const uint offset0 = (first_row + row)*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + ax[row] = (device const block_q_type *) ((device char *) src0 + offset0); + } + + float yl[16]; // src1 vector cache + float sumf[nr] = {0.f}; + + const int ix = (tiisg/2); + const int il = (tiisg%2)*8; + + device const float * yb = y + ix * QK4_0 + il; + + // each thread in a SIMD group deals with half a block. + for (int ib = ix; ib < nb; ib += nw/2) { + float sumy[2] = { 0.f, 0.f }; + +#pragma unroll + for (int i = 0; i < 8; i += 2) { + sumy[0] += yb[i + 0] + yb[i + 1]; + yl[i + 0] = yb[i + 0]; + yl[i + 1] = yb[i + 1]/256.f; + + sumy[1] += yb[i + 16] + yb[i + 17]; + yl[i + 8] = yb[i + 16]/16.f; + yl[i + 9] = yb[i + 17]/4096.f; + } + +#pragma unroll + for (int row = 0; row < nr; row++) { + sumf[row] += block_q_n_dot_y(ax[row] + ib, sumy[0] + sumy[1], yl, il); + } + + yb += QK4_0 * 16; + } + + for (int row = 0; row < nr; ++row) { + const float tot = simd_sum(sumf[row]); + if (tiisg == 0 && first_row + row < ne01) { + dst[im*ne0*ne1 + r1*ne0 + first_row + row] = tot; + } + } +} + +kernel void kernel_mul_mv_q4_0_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +kernel void kernel_mul_mv_q4_1_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +kernel void kernel_mul_mv_q5_0_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +kernel void kernel_mul_mv_q5_1_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + mul_vec_q_n_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + + +#define NB_Q8_0 8 + +void kernel_mul_mv_q8_0_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + const int nr = N_DST; + const int nsg = N_SIMDGROUP; + const int nw = N_SIMDWIDTH; + + const int nb = ne00/QK8_0; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * nsg + sgitg) * nr; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + //const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + //device const block_q8_0 * x = (device const block_q8_0 *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + // pointers to src0 rows + device const block_q8_0 * ax[nr]; + for (int row = 0; row < nr; ++row) { + const uint offset0 = (first_row + row)*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + ax[row] = (device const block_q8_0 *) ((device char *) src0 + offset0); + } + + float yl[NB_Q8_0]; + float sumf[nr]={0.f}; + + const int ix = tiisg/4; + const int il = tiisg%4; + + device const float * yb = y + ix * QK8_0 + NB_Q8_0*il; + + // each thread in a SIMD group deals with NB_Q8_0 quants at a time + for (int ib = ix; ib < nb; ib += nw/4) { + for (int i = 0; i < NB_Q8_0; ++i) { + yl[i] = yb[i]; + } + + for (int row = 0; row < nr; row++) { + device const int8_t * qs = ax[row][ib].qs + NB_Q8_0*il; + float sumq = 0.f; + for (int iq = 0; iq < NB_Q8_0; ++iq) { + sumq += qs[iq] * yl[iq]; + } + sumf[row] += sumq*ax[row][ib].d; + } + + yb += NB_Q8_0 * nw; + } + + for (int row = 0; row < nr; ++row) { + const float tot = simd_sum(sumf[row]); + if (tiisg == 0 && first_row + row < ne01) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = tot; + } + } +} + +[[host_name("kernel_mul_mv_q8_0_f32")]] +kernel void kernel_mul_mv_q8_0_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + kernel_mul_mv_q8_0_f32_impl(src0,src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,nullptr,tgpig,tiisg,sgitg); +} + +#define N_MV_T_T 4 + +template +void kernel_mul_mv_impl( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + uint3 tgpig, + uint tiisg) { + const int64_t r0 = tgpig.x; + const int64_t rb = tgpig.y*N_MV_T_T; + const int64_t im = tgpig.z; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = r0*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + device const T0 * x = (device const T0 *) (src0 + offset0); + + if (ne00 < 128) { + for (int row = 0; row < N_MV_T_T; ++row) { + int r1 = rb + row; + if (r1 >= ne11) { + break; + } + + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const T1 * y = (device const T1 *) (src1 + offset1); + + float sumf = 0; + for (int i = tiisg; i < ne00; i += 32) { + sumf += (T0) x[i] * (T1) y[i]; + } + + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } + } else { + device const T04 * x4 = (device const T04 *) x; + for (int row = 0; row < N_MV_T_T; ++row) { + int r1 = rb + row; + if (r1 >= ne11) { + break; + } + + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const T1 * y = (device const T1 *) (src1 + offset1); + device const T14 * y4 = (device const T14 *) y; + + float sumf = 0; + for (int i = tiisg; i < ne00/4; i += 32) { + for (int k = 0; k < 4; ++k) sumf += (float) (x4[i][k] * y4[i][k]); + } + + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + for (int i = 4*(ne00/4); i < ne00; ++i) all_sum += (float) (x[i] * y[i]); + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } + } +} + +template +kernel void kernel_mul_mv( + device const char * src0, + device const char * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]]) { + kernel_mul_mv_impl( + src0, + src1, + dst, + ne00, + ne01, + ne02, + nb00, + nb01, + nb02, + nb03, + ne10, + ne11, + ne12, + nb10, + nb11, + nb12, + nb13, + ne0, + ne1, + r2, + r3, + tgpig, + tiisg); +} + +typedef decltype(kernel_mul_mv) mul_mv_t; + +template [[host_name("kernel_mul_mv_f32_f32")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_f16_f32")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_f16_f16")]] kernel mul_mv_t kernel_mul_mv; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_bf16_f32")]] kernel mul_mv_t kernel_mul_mv; +template [[host_name("kernel_mul_mv_bf16_bf16")]] kernel mul_mv_t kernel_mul_mv; +#endif + +template +kernel void kernel_mul_mv_1row( + device const char * src0, + device const char * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]]) { + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int64_t im = tgpig.z; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = r0*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const T * x = (device const T *) (src0 + offset0); + device const float * y = (device const float *) (src1 + offset1); + + float sumf = 0; + if (ne00 < 128) { + for (int i = tiisg; i < ne00; i += 32) { + sumf += (float) x[i] * (float) y[i]; + } + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } else { + device const T4 * x4 = (device const T4 *) x; + device const float4 * y4 = (device const float4 *) y; + + for (int i = tiisg; i < ne00/4; i += 32) { + for (int k = 0; k < 4; ++k) sumf += (float) (x4[i][k] * y4[i][k]); + } + + float all_sum = simd_sum(sumf); + + if (tiisg == 0) { + for (int i = 4*(ne00/4); i < ne00; ++i) all_sum += (float) (x[i] * y[i]); + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } +} + +typedef decltype(kernel_mul_mv_1row) mul_mv_1row_t; + +template [[host_name("kernel_mul_mv_f16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_bf16_f32_1row")]] kernel mul_mv_1row_t kernel_mul_mv_1row; +#endif + +// Assumes row size (ne00) is a multiple of 4 +template +kernel void kernel_mul_mv_l4( + device const char * src0, + device const char * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]]) { + + const int nrows = ne11; + const int64_t r0 = tgpig.x; + const int64_t im = tgpig.z; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = r0*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + + device const T4 * x4 = (device const T4 *) (src0 + offset0); + + for (int r1 = 0; r1 < nrows; ++r1) { + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const float4 * y4 = (device const float4 *) (src1 + offset1); + + float sumf = 0; + for (int i = tiisg; i < ne00/4; i += 32) { + for (int k = 0; k < 4; ++k) sumf += (float) (x4[i][k] * y4[i][k]); + } + + float all_sum = simd_sum(sumf); + if (tiisg == 0) { + dst[im*ne1*ne0 + r1*ne0 + r0] = all_sum; + } + } +} + +typedef decltype(kernel_mul_mv_l4) mul_mv_l4_t; + +template [[host_name("kernel_mul_mv_f16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_bf16_f32_l4")]] kernel mul_mv_l4_t kernel_mul_mv_l4; +#endif + +static float rope_yarn_ramp(const float low, const float high, const int i0) { + const float y = (i0 / 2 - low) / max(0.001f, high - low); + return 1.0f - min(1.0f, max(0.0f, y)); +} + +// YaRN algorithm based on LlamaYaRNScaledRotaryEmbedding.py from https://github.com/jquesnelle/yarn +// MIT licensed. Copyright (c) 2023 Jeffrey Quesnelle and Bowen Peng. +static void rope_yarn( + float theta_extrap, float freq_scale, float corr_dims[2], int64_t i0, float ext_factor, float mscale, + thread float * cos_theta, thread float * sin_theta) { + // Get n-d rotational scaling corrected for extrapolation + float theta_interp = freq_scale * theta_extrap; + float theta = theta_interp; + if (ext_factor != 0.0f) { + float ramp_mix = rope_yarn_ramp(corr_dims[0], corr_dims[1], i0) * ext_factor; + theta = theta_interp * (1 - ramp_mix) + theta_extrap * ramp_mix; + + // Get n-d magnitude scaling corrected for interpolation + mscale *= 1.0f + 0.1f * log(1.0f / freq_scale); + } + *cos_theta = cos(theta) * mscale; + *sin_theta = sin(theta) * mscale; +} + +// Apparently solving `n_rot = 2pi * x * base^((2 * max_pos_emb) / n_dims)` for x, we get +// `corr_fac(n_rot) = n_dims * log(max_pos_emb / (n_rot * 2pi)) / (2 * log(base))` +static float rope_yarn_corr_factor(int n_dims, int n_ctx_orig, float n_rot, float base) { + return n_dims * log(n_ctx_orig / (n_rot * 2 * M_PI_F)) / (2 * log(base)); +} + +static void rope_yarn_corr_dims( + int n_dims, int n_ctx_orig, float freq_base, float beta_fast, float beta_slow, float dims[2] +) { + // start and end correction dims + dims[0] = max(0.0f, floor(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_fast, freq_base))); + dims[1] = min(n_dims - 1.0f, ceil(rope_yarn_corr_factor(n_dims, n_ctx_orig, beta_slow, freq_base))); +} + +template +kernel void kernel_rope_norm( + device const void * src0, + device const int32_t * src1, + device const float * src2, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int & n_past, + constant int & n_dims, + constant int & n_ctx_orig, + constant float & freq_base, + constant float & freq_scale, + constant float & ext_factor, + constant float & attn_factor, + constant float & beta_fast, + constant float & beta_slow, + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg[[threads_per_threadgroup]], + uint3 tgpig[[threadgroup_position_in_grid]]) { + const int64_t i3 = tgpig[2]; + const int64_t i2 = tgpig[1]; + const int64_t i1 = tgpig[0]; + + float corr_dims[2]; + rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + device const int32_t * pos = src1; + + const float theta_base = (float) pos[i2]; + const float inv_ndims = -1.f/n_dims; + + float cos_theta; + float sin_theta; + + for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { + if (i0 < n_dims) { + const int64_t ic = i0/2; + + const float theta = theta_base * pow(freq_base, inv_ndims*i0); + + const float freq_factor = src2 != src0 ? src2[ic] : 1.0f; + + rope_yarn(theta/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); + + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + const float x0 = src[0]; + const float x1 = src[1]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[1] = x0*sin_theta + x1*cos_theta; + } else { + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } +} + +template +kernel void kernel_rope_neox( + device const void * src0, + device const int32_t * src1, + device const float * src2, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int & n_past, + constant int & n_dims, + constant int & n_ctx_orig, + constant float & freq_base, + constant float & freq_scale, + constant float & ext_factor, + constant float & attn_factor, + constant float & beta_fast, + constant float & beta_slow, + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg[[threads_per_threadgroup]], + uint3 tgpig[[threadgroup_position_in_grid]]) { + const int64_t i3 = tgpig[2]; + const int64_t i2 = tgpig[1]; + const int64_t i1 = tgpig[0]; + + float corr_dims[2]; + rope_yarn_corr_dims(n_dims, n_ctx_orig, freq_base, beta_fast, beta_slow, corr_dims); + + device const int32_t * pos = src1; + + const float theta_base = (float) pos[i2]; + const float inv_ndims = -1.f/n_dims; + + float cos_theta; + float sin_theta; + + for (int64_t i0 = 2*tiitg; i0 < ne0; i0 += 2*tptg.x) { + if (i0 < n_dims) { + const int64_t ic = i0/2; + + const float theta = theta_base * pow(freq_base, inv_ndims*i0); + + const float freq_factor = src2 != src0 ? src2[ic] : 1.0f; + + rope_yarn(theta/freq_factor, freq_scale, corr_dims, i0, ext_factor, attn_factor, &cos_theta, &sin_theta); + + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + ic*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + ic*nb0); + + const float x0 = src[0]; + const float x1 = src[n_dims/2]; + + dst_data[0] = x0*cos_theta - x1*sin_theta; + dst_data[n_dims/2] = x0*sin_theta + x1*cos_theta; + } else { + device const T * const src = (device T *)((device char *) src0 + i3*nb03 + i2*nb02 + i1*nb01 + i0*nb00); + device T * dst_data = (device T *)((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_data[0] = src[0]; + dst_data[1] = src[1]; + } + } +} + +typedef decltype(kernel_rope_norm) kernel_rope_norm_t; +typedef decltype(kernel_rope_neox) kernel_rope_neox_t; + +template [[host_name("kernel_rope_norm_f32")]] kernel kernel_rope_norm_t kernel_rope_norm; +template [[host_name("kernel_rope_norm_f16")]] kernel kernel_rope_norm_t kernel_rope_norm; + +template [[host_name("kernel_rope_neox_f32")]] kernel kernel_rope_neox_t kernel_rope_neox; +template [[host_name("kernel_rope_neox_f16")]] kernel kernel_rope_neox_t kernel_rope_neox; + +typedef void (im2col_t)( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]); + +template +kernel void kernel_im2col( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int32_t iiw = tgpig[2] * s0 + tpitg[2] * d0 - p0; + const int32_t iih = tgpig[1] * s1 + tpitg[1] * d1 - p1; + + const int32_t offset_dst = + (tpitg[0] * tgpg[1] * tgpg[2] + tgpig[1] * tgpg[2] + tgpig[2]) * CHW + + (tgpig[0] * (ntg[1] * ntg[2]) + tpitg[1] * ntg[2] + tpitg[2]); + + device T * pdst = (device T *) (dst); + + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + pdst[offset_dst] = 0.0f; + } else { + const int32_t offset_src = tpitg[0] * ofs0 + tgpig[0] * ofs1; + pdst[offset_dst] = x[offset_src + iih * IW + iiw]; + } +} + +template [[host_name("kernel_im2col_f32")]] kernel im2col_t kernel_im2col; +template [[host_name("kernel_im2col_f16")]] kernel im2col_t kernel_im2col; + +typedef void (im2col_ext_t)( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + constant int32_t & N, + constant int32_t & KH, + constant int32_t & KW, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]); + +template +kernel void kernel_im2col_ext( + device const float * x, + device char * dst, + constant int32_t & ofs0, + constant int32_t & ofs1, + constant int32_t & IW, + constant int32_t & IH, + constant int32_t & CHW, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int32_t & d0, + constant int32_t & d1, + constant int32_t & N, + constant int32_t & KH, + constant int32_t & KW, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tgpg[[threadgroups_per_grid]], // tgpg[0] = D x IC x KH x KW, CHW = IC x KH x KW + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { // [M, 1, 1] + const int32_t KHW = KH * KW; // KHW == ntg[1] * ntg[2], KW == ntg[2] + + const int32_t d = tgpig[0] / CHW; + const int32_t chw = tgpig[0] % CHW; + const int32_t tgpig_0 = chw / KHW; // 0 ~ (IC - 1) + const int32_t HW = tgpig[0] % KHW; + + const int32_t tpitg_0 = (d * ntg[0]) + tpitg[0]; + if (tpitg_0 >= N) { + return; + } + + const int32_t tpitg_1 = HW / KW; + const int32_t tpitg_2 = HW % KW; + + const int32_t iiw = tgpig[2] * s0 + tpitg_2 * d0 - p0; + const int32_t iih = tgpig[1] * s1 + tpitg_1 * d1 - p1; + + const int32_t offset_dst = + (tpitg_0 * tgpg[1] * tgpg[2] + tgpig[1] * tgpg[2] + tgpig[2]) * CHW + + (tgpig_0 * KHW + tpitg_1 * KW + tpitg_2); + + device T * pdst = (device T *) (dst); + + if (iih < 0 || iih >= IH || iiw < 0 || iiw >= IW) { + pdst[offset_dst] = 0.0f; + } else { + const int32_t offset_src = tpitg_0 * ofs0 + tgpig_0 * ofs1; + pdst[offset_dst] = x[offset_src + iih * IW + iiw]; + } +} + +template [[host_name("kernel_im2col_ext_f32")]] kernel im2col_ext_t kernel_im2col_ext; +template [[host_name("kernel_im2col_ext_f16")]] kernel im2col_ext_t kernel_im2col_ext; + +kernel void kernel_upscale_f32( + device const char * src0, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant float & sf0, + constant float & sf1, + constant float & sf2, + constant float & sf3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + const int64_t i03 = i3/sf3; + const int64_t i02 = i2/sf2; + const int64_t i01 = i1/sf1; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + const int64_t i00 = i0/sf0; + + device const float * src0_ptr = (device const float *) (src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + device float * dst_ptr = (device float *) (dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + dst_ptr[0] = src0_ptr[0]; + } +} + +kernel void kernel_pad_f32( + device const char * src0, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + const int64_t i03 = i3; + const int64_t i02 = i2; + const int64_t i01 = i1; + + device const float * src0_ptr = (device const float *) (src0 + i03*nb03 + i02*nb02 + i01*nb01); + device float * dst_ptr = (device float *) (dst + i3*nb3 + i2*nb2 + i1*nb1); + + if (i1 < ne01 && i2 < ne02 && i3 < ne03) { + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + if (i0 < ne00) { + dst_ptr[i0] = src0_ptr[i0]; + } else { + dst_ptr[i0] = 0.0f; + } + } + + return; + } + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + dst_ptr[i0] = 0.0f; + } +} + +kernel void kernel_arange_f32( + device char * dst, + constant int64_t & ne0, + constant float & start, + constant float & step, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + device float * dst_ptr = (device float *) dst; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + dst_ptr[i0] = start + step * i0; + } +} + +kernel void kernel_timestep_embedding_f32( + device const char * src0, + device char * dst, + constant uint64_t & nb1, + constant int & dim, + constant int & max_period, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + int i = tgpig.x; + device float * embed_data = (device float *)(dst + i*nb1); + + int half_ = dim / 2; + for (int j = tpitg.x; j < half_; j += ntg.x) { + float timestep = ((device float *)src0)[i]; + float freq = (float)exp(-log((float)max_period) * j / half_); + float arg = timestep * freq; + embed_data[j ] = cos(arg); + embed_data[j + half_] = sin(arg); + } + + if (dim % 2 != 0 && tpitg.x == 0) { + embed_data[dim] = 0.f; + } +} + +// bitonic sort implementation following the CUDA kernels as reference +typedef void (argsort_t)( + device const float * x, + device int32_t * dst, + constant int64_t & ncols, + constant int64_t & ncols_pad, + threadgroup int32_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]]); + +template +kernel void kernel_argsort_f32_i32( + device const float * x, + device int32_t * dst, + constant int64_t & ncols, + constant int64_t & ncols_pad, + threadgroup int32_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]]) { + // bitonic sort + int col = tpitg[0]; + int row = tgpig[1]; + + if (col >= ncols_pad) return; + + device const float * x_row = x + row * ncols; + threadgroup int32_t * dst_row = shared_values; + + // initialize indices + dst_row[col] = col; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + for (int k = 2; k <= ncols_pad; k *= 2) { + for (int j = k / 2; j > 0; j /= 2) { + int ixj = col ^ j; + if (ixj > col) { + if ((col & k) == 0) { + if (dst_row[col] >= ncols || + (dst_row[ixj] < ncols && (order == GGML_SORT_ORDER_ASC ? + x_row[dst_row[col]] > x_row[dst_row[ixj]] : + x_row[dst_row[col]] < x_row[dst_row[ixj]])) + ) { + SWAP(dst_row[col], dst_row[ixj]); + } + } else { + if (dst_row[ixj] >= ncols || + (dst_row[col] < ncols && (order == GGML_SORT_ORDER_ASC ? + x_row[dst_row[col]] < x_row[dst_row[ixj]] : + x_row[dst_row[col]] > x_row[dst_row[ixj]])) + ) { + SWAP(dst_row[col], dst_row[ixj]); + } + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + } + } + + // copy the result to dst without the padding + if (col < ncols) { + dst[row * ncols + col] = dst_row[col]; + } +} + +template [[host_name("kernel_argsort_f32_i32_asc")]] kernel argsort_t kernel_argsort_f32_i32; +template [[host_name("kernel_argsort_f32_i32_desc")]] kernel argsort_t kernel_argsort_f32_i32; + +kernel void kernel_leaky_relu_f32( + device const float * src0, + device float * dst, + constant float & slope, + uint tpig[[thread_position_in_grid]]) { + dst[tpig] = src0[tpig] > 0.0f ? src0[tpig] : src0[tpig] * slope; +} + +// ref: https://arxiv.org/pdf/2307.08691.pdf +template< + typename q_t, // query types in shared memory + typename q4_t, + typename q8x8_t, + typename k_t, // key types in shared memory + typename k4x4_t, + typename k8x8_t, + typename v_t, // value types in shared memory + typename v4x4_t, + typename v8x8_t, + typename qk_t, // Q*K types + typename qk8x8_t, + typename s_t, // soft-max types + typename s8x8_t, + typename o_t, // attention accumulation types + typename o4_t, + typename o8x8_t, + typename kd4x4_t, // key type in device memory + short nl_k, + void (*deq_k)(device const kd4x4_t *, short, thread k4x4_t &), + typename vd4x4_t, // key type in device memory + short nl_v, + void (*deq_v)(device const vd4x4_t *, short, thread v4x4_t &), + short D, // head size + short Q = 8, // queries per threadgroup + short KV = 8, // key/value processed per each simdgroup + short C = 32> // cache items per threadgroup +kernel void kernel_flash_attn_ext( + device const char * q, + device const char * k, + device const char * v, + device const char * mask, + device float * dst, + constant int32_t & ne01, + constant int32_t & ne02, + constant int32_t & ne03, + constant uint32_t & nb01, + constant uint32_t & nb02, + constant uint32_t & nb03, + constant int32_t & ne11, + constant int32_t & ne_12_2, // assume K and V are same shape + constant int32_t & ne_12_3, + constant uint32_t & nb_12_1, + constant uint32_t & nb_12_2, + constant uint32_t & nb_12_3, + constant uint32_t & nb31, + constant int32_t & ne1, + constant int32_t & ne2, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint16_t & n_head_log2, + constant float & logit_softcap, + threadgroup half * shared [[threadgroup(0)]], + ushort3 tgpig[[threadgroup_position_in_grid]], + ushort3 ntg[[threads_per_threadgroup]], + ushort tiisg[[thread_index_in_simdgroup]], + ushort sgitg[[simdgroup_index_in_threadgroup]]) { + const short nsg = ntg.y; // number of simdgroups + + const int iq3 = tgpig[2]; + const int iq2 = tgpig[1]; + const int iq1 = tgpig[0]*Q; + + const short D4 = D/4; + const short D8 = D/8; + const short D16 = D/16; + const short NW = N_SIMDWIDTH; + const short SH = (2*C + Q); // shared memory per simdgroup (s_t == float) + + const short TS = nsg*SH; // shared memory size per query in (s_t == float) + const short T = D + 2*TS; // shared memory size per query in (half) + + threadgroup q_t * sq = (threadgroup q_t *) (shared + 0*D); // holds the query data + threadgroup q4_t * sq4 = (threadgroup q4_t *) (shared + 0*D); // same as above but in q4_t + threadgroup o_t * so = (threadgroup o_t *) (shared + 0*D); // reuse query data for accumulation + threadgroup o4_t * so4 = (threadgroup o4_t *) (shared + 0*D); // same as above but in o4_t + threadgroup s_t * ss = (threadgroup s_t *) (shared + 2*sgitg*SH + Q*D); // scratch buffer for attention, mask and diagonal matrix + + threadgroup k_t * sk = (threadgroup k_t *) (shared + sgitg*(4*16*KV) + Q*T); // scratch buffer to load K in shared memory + threadgroup k4x4_t * sk4x4 = (threadgroup k4x4_t *) (shared + sgitg*(4*16*KV) + Q*T); // same as above but in k4x4_t + + threadgroup v_t * sv = (threadgroup v_t *) (shared + sgitg*(4*16*KV) + Q*T); // scratch buffer to load V in shared memory + threadgroup v4x4_t * sv4x4 = (threadgroup v4x4_t *) (shared + sgitg*(4*16*KV) + Q*T); // same as above but in v4x4_t + + // store the result for all queries in local memory in 8x8 matrices (the O matrix from the paper) + o8x8_t lo[D8]; + + // load heads from Q to shared memory + for (short j = sgitg; j < Q; j += nsg) { + device const float4 * q4 = (device const float4 *) ((device const char *) q + ((iq1 + j)*nb01 + iq2*nb02 + iq3*nb03)); + + for (short i = tiisg; i < D4; i += NW) { + if (iq1 + j < ne01) { + sq4[j*D4 + i] = (q4_t) q4[i]; + } else { + sq4[j*D4 + i] = (q4_t) 0.0f; + } + } + } + + // zero out lo + for (short i = 0; i < D8; ++i) { + lo[i] = make_filled_simdgroup_matrix((o_t) 0.0f); + } + + // zero out shared memory SH + for (short j = 0; j < Q; ++j) { + for (short i = tiisg; i < SH; i += NW) { + ss[j*TS + i] = 0.0f; + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + { + half S[Q] = { [0 ... Q-1] = 0.0f }; + half M[Q] = { [0 ... Q-1] = -__FLT16_MAX__/2 }; + + // thread indices inside the simdgroup + // TODO: see if we can utilize quad-group functions for better performance + // https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf (6.9.3) + const short tx = tiisg%4; + const short ty = tiisg/4; + + // broadcast kv + //const short rk2 = ne02/ne12; + //const short rk3 = ne03/ne13; + + const short ikv2 = iq2/(ne02/ne_12_2); + const short ikv3 = iq3/(ne03/ne_12_3); + + // load the queries from shared memory into local memory + q8x8_t mq[D8]; + + for (short i = 0; i < D8; ++i) { + simdgroup_load(mq[i], sq + i*8, D); + } + + const bool has_mask = mask != q; + + half slope = 1.0f; + + // ALiBi + if (max_bias > 0.0f) { + const short h = iq2; + + const half base = h < n_head_log2 ? m0 : m1; + const short exph = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exph); + } + + // loop over the KV cache + // each simdgroup handles blocks of Q rows and C columns + for (int ic0 = 0; ic0 < ne11; ic0 += C*nsg) { + const int ic = ic0 + C*sgitg; + if (ic >= ne11) { + break; + } + + if (has_mask) { + // used to detect blocks full of -INF + half smax = -INFINITY; + + // load the mask in shared memory + #pragma unroll(Q) + for (short j = 0; j < Q; ++j) { + device const half * pm = (device const half *) ((device const char *) mask + (iq1 + j)*nb31); + + const half m = pm[ic + tiisg]; + + ss[j*TS + C + tiisg] = m; + smax = max(smax, m); + } + + smax = simd_max(smax); + + if (smax == -INFINITY) { + continue; + } + } + + // Q*K^T + { + for (short cc = 0; cc < C/8; ++cc) { + qk8x8_t mqk = make_filled_simdgroup_matrix((qk_t) 0.0f); + + // this is compile-time check, so it does not have runtime overhead + if (is_same::value) { + // we can read directly from global memory + device const k_t * pk = (device const k_t *) ((device const char *) k + ((ic + 8*cc)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + k8x8_t mk; + simdgroup_load(mk, pk + i*8, nb_12_1/sizeof(k_t), 0, true); // transpose // TODO: use ne10 + + simdgroup_multiply_accumulate(mqk, mq[i], mk, mqk); + } + } else { + for (short ii = 0; ii < D16; ii += 4) { + device const kd4x4_t * pk4x4 = (device const kd4x4_t *) ((device const char *) k + ((ic + 8*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + if (D16%4 == 0) { + // the head is evenly divisible by 4*16 = 64, so no need for bound checks + { + k4x4_t tmp; + deq_k(pk4x4 + (ii + tx)/nl_k, (ii + tx)%nl_k, tmp); + sk4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(4) + for (short k = 0; k < 4; ++k) { + k8x8_t mk; + + simdgroup_load(mk, sk + 16*k + 0*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 0], mk, mqk); + + simdgroup_load(mk, sk + 16*k + 1*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 1], mk, mqk); + } + } else { + if (ii + tx < D16) { + k4x4_t tmp; + deq_k(pk4x4 + (ii + tx)/nl_k, (ii + tx)%nl_k, tmp); + sk4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + for (short k = 0; k < 4 && ii + k < D16; ++k) { + k8x8_t mk; + + simdgroup_load(mk, sk + 16*k + 0*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 0], mk, mqk); + + simdgroup_load(mk, sk + 16*k + 1*8, 4*16, 0, true); // transpose + simdgroup_multiply_accumulate(mqk, mq[2*(ii + k) + 1], mk, mqk); + } + } + } + } + + // cast qk_t -> s_t + //s8x8_t mqks(1.0f); + //simdgroup_multiply(mqks, mqk, mqks); + //simdgroup_store(mqks, ss + 8*cc, TS, 0, false); + + simdgroup_store(mqk, ss + 8*cc, TS, 0, false); + } + } + + // online softmax + { + for (ushort j = 0; j < Q; ++j) { + const half m = M[j]; + + // scale and apply the logitcap / mask + half s = ss[j*TS + tiisg]*scale; + + if (logit_softcap != 0.0f) { + s = logit_softcap*precise::tanh(s); + } + + // mqk = mqk + mask*slope + s += slope*ss[j*TS + C + tiisg]; + + M[j] = simd_max(max(M[j], s)); + + const half ms = exp(m - M[j]); + const half vs = exp(s - M[j]); + + S[j] = S[j]*ms + simd_sum(vs); + + // the P matrix from the paper (Q rows, C columns) + ss[j*TS + tiisg] = vs; + + // create a QxQ diagonal matrix for rescaling the output + if (tiisg == j) { + ss[j*TS + 2*C + j] = ms; + } + } + } + + // O = diag(ms)*O + { + s8x8_t mm; + simdgroup_load(mm, ss + 2*C, TS, 0, false); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + simdgroup_multiply(lo[i], mm, lo[i]); + } + } + + // O = O + (Q*K^T)*V + { + for (short cc = 0; cc < C/8; ++cc) { + s8x8_t ms; + simdgroup_load(ms, ss + 8*cc, TS, 0, false); + + if (is_same::value) { + // we can read directly from global memory + device const v_t * pv = (device const v_t *) ((device const char *) v + ((ic + 8*cc)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + v8x8_t mv; + simdgroup_load(mv, pv + i*8, nb_12_1/sizeof(v_t), 0, false); // TODO: use ne20 + + simdgroup_multiply_accumulate(lo[i], ms, mv, lo[i]); + } + } else { + for (short ii = 0; ii < D16; ii += 4) { + device const vd4x4_t * pv4x4 = (device const vd4x4_t *) ((device const char *) v + ((ic + 8*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + if (D16%4 == 0) { + // no need for bound checks + { + v4x4_t tmp; + deq_v(pv4x4 + (ii + tx)/nl_v, (ii + tx)%nl_v, tmp); + sv4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(4) + for (short k = 0; k < 4; ++k) { + v8x8_t mv; + + simdgroup_load(mv, sv + 16*k + 0*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 0], ms, mv, lo[2*(ii + k) + 0]); + + simdgroup_load(mv, sv + 16*k + 1*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 1], ms, mv, lo[2*(ii + k) + 1]); + } + } else { + if (ii + tx < D16) { + v4x4_t tmp; + deq_v(pv4x4 + (ii + tx)/nl_v, (ii + tx)%nl_v, tmp); + sv4x4[4*ty + tx] = tmp; + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + for (short k = 0; k < 4 && ii + k < D16; ++k) { + v8x8_t mv; + + simdgroup_load(mv, sv + 16*k + 0*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 0], ms, mv, lo[2*(ii + k) + 0]); + + simdgroup_load(mv, sv + 16*k + 1*8, 4*16, 0, false); + simdgroup_multiply_accumulate(lo[2*(ii + k) + 1], ms, mv, lo[2*(ii + k) + 1]); + } + } + } + } + } + } + } + + // these are needed for reducing the results from the simdgroups (reuse the ss buffer) + for (short j = 0; j < Q; ++j) { + if (tiisg == 0) { + ss[j*TS + 0] = S[j]; + ss[j*TS + 1] = M[j]; + } + } + } + + // reduce the warps sequentially + for (ushort sg = 1; sg < nsg; ++sg) { + half S = { 0.0f }; + half M = { -__FLT16_MAX__/2 }; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // each simdgroup stores its output to shared memory, reusing sq + if (sgitg == sg) { + for (short i = 0; i < D8; ++i) { + simdgroup_store(lo[i], so + i*8, D, 0, false); + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // the first simdgroup accumulates the results from the other simdgroups + if (sgitg == 0) { + for (short j = 0; j < Q; ++j) { + const half S0 = ss[j*TS + 0]; + const half S1 = ss[j*TS + sg*SH + 0]; + + const half M0 = ss[j*TS + 1]; + const half M1 = ss[j*TS + sg*SH + 1]; + + M = max(M0, M1); + + const half ms0 = exp(M0 - M); + const half ms1 = exp(M1 - M); + + S = S0*ms0 + S1*ms1; + + if (tiisg == 0) { + ss[j*TS + 0] = S; + ss[j*TS + 1] = M; + + ss[j*TS + 2*C + j ] = ms0; + ss[j*TS + 2*C + j + sg*SH] = ms1; + } + } + + // O_0 = diag(ms0)*O_0 + diag(ms1)*O_1 + { + s8x8_t ms0; + s8x8_t ms1; + + simdgroup_load(ms0, ss + 2*C, TS, 0, false); + simdgroup_load(ms1, ss + 2*C + sg*SH, TS, 0, false); + + #pragma unroll(D8) + for (short i = 0; i < D8; ++i) { + o8x8_t t; + + simdgroup_load (t, so + i*8, D, 0, false); + simdgroup_multiply(t, ms1, t); + + simdgroup_multiply_accumulate(lo[i], ms0, lo[i], t); + } + } + } + } + + // store result to shared memory (reuse sq) + if (sgitg == 0) { + for (short i = 0; i < D8; ++i) { + simdgroup_store(lo[i], so + i*8, D, 0, false); + } + } + + device float4 * dst4 = (device float4 *) dst; + + // final rescale with 1/S and store to global memory + if (sgitg == 0) { + for (short j = 0; j < Q && iq1 + j < ne01; ++j) { + const float S = ss[j*TS + 0]; + + for (short i = tiisg; i < D4; i += NW) { + dst4[((int64_t)iq3*ne2*ne1 + iq2 + (iq1 + j)*ne1)*D4 + i] = (float4) so4[j*D4 + i]/S; + } + } + } +} + +// TODO: this is quite ugly. in the future these types will be hardcoded in the kernel, but for now keep them as +// template to be able to explore different combinations +// +#define FA_TYPES \ + half, half4, simdgroup_half8x8, \ + half, half4x4, simdgroup_half8x8, \ + half, half4x4, simdgroup_half8x8, \ + float, simdgroup_float8x8, \ + float, simdgroup_float8x8, \ + half, half4, simdgroup_half8x8 + +typedef decltype(kernel_flash_attn_ext) flash_attn_ext_t; + +template [[host_name("kernel_flash_attn_ext_f16_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_f16_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_flash_attn_ext_bf16_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_bf16_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +#endif + +template [[host_name("kernel_flash_attn_ext_q4_0_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_0_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q4_1_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q4_1_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q5_0_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_0_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q5_1_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q5_1_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +template [[host_name("kernel_flash_attn_ext_q8_0_h64" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h80" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h96" )]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h112")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h128")]] kernel flash_attn_ext_t kernel_flash_attn_ext; +template [[host_name("kernel_flash_attn_ext_q8_0_h256")]] kernel flash_attn_ext_t kernel_flash_attn_ext; + +#undef FA_TYPES + +template< + typename q4_t, // query types in shared memory + typename q4x4_t, + typename k4x4_t, // key types in shared memory + typename v4x4_t, // value types in shared memory + typename qk_t, // Q*K types + typename s_t, // soft-max types + typename s4_t, + typename s4x4_t, + typename o4x4_t, // attention accumulation types + typename kd4x4_t, // key type in device memory + short nl_k, + void (*deq_k)(device const kd4x4_t *, short, thread k4x4_t &), + typename vd4x4_t, // key type in device memory + short nl_v, + void (*deq_v)(device const vd4x4_t *, short, thread v4x4_t &), + short D, // head size + short Q = 1, // queries per threadgroup + short C = 32> // cache items per threadgroup +kernel void kernel_flash_attn_ext_vec( + device const char * q, + device const char * k, + device const char * v, + device const char * mask, + device float * dst, + constant int32_t & ne01, + constant int32_t & ne02, + constant int32_t & ne03, + constant uint32_t & nb01, + constant uint32_t & nb02, + constant uint32_t & nb03, + constant int32_t & ne11, + constant int32_t & ne_12_2, // assume K and V are same shape + constant int32_t & ne_12_3, + constant uint32_t & nb_12_1, + constant uint32_t & nb_12_2, + constant uint32_t & nb_12_3, + constant uint32_t & nb31, + constant int32_t & ne1, + constant int32_t & ne2, + constant float & scale, + constant float & max_bias, + constant float & m0, + constant float & m1, + constant uint16_t & n_head_log2, + constant float & logit_softcap, + threadgroup half * shared [[threadgroup(0)]], + ushort3 tgpig[[threadgroup_position_in_grid]], + ushort3 tpitg[[thread_position_in_threadgroup]], + ushort3 ntg[[threads_per_threadgroup]], + ushort tiisg[[thread_index_in_simdgroup]], + ushort sgitg[[simdgroup_index_in_threadgroup]]) { + const short nsg = ntg.y; // number of simdgroups + + const int iq3 = tgpig[2]; + const int iq2 = tgpig[1]; + const int iq1 = tgpig[0]; + + const short D4 = D/4; + const short D16 = D/16; + const short NW = N_SIMDWIDTH; + const short NL = NW/4; // note: this can be adjusted to support D%64 == 0 and D%32 == 0 + const short SH = 2*C; // shared memory per simdgroup + + const short T = D + nsg*SH; // shared memory size per query in (half) + + //threadgroup q_t * sq = (threadgroup q_t *) (shared + 0*D); // holds the query data + threadgroup q4_t * sq4 = (threadgroup q4_t *) (shared + 0*D); // same as above but in q4_t + threadgroup q4x4_t * sq4x4 = (threadgroup q4x4_t *) (shared + 0*D); // same as above but in q4x4_t + threadgroup s_t * ss = (threadgroup s_t *) (shared + sgitg*SH + Q*D); // scratch buffer for attention + threadgroup s4_t * ss4 = (threadgroup s4_t *) (shared + sgitg*SH + Q*D); // same as above but in s4_t + threadgroup half * sm = (threadgroup half *) (shared + sgitg*SH + C + Q*D); // scratch buffer for mask + threadgroup o4x4_t * sr4x4 = (threadgroup o4x4_t *) (shared + sgitg*D + Q*T); // scratch buffer for the results + + // store the result for all queries in local memory in 8x8 matrices (the O matrix from the paper) + o4x4_t lo[D16/NL]; + + // load heads from Q to shared memory + device const float4 * q4 = (device const float4 *) ((device const char *) q + (iq1*nb01 + iq2*nb02 + iq3*nb03)); + + for (short i = tiisg; i < D4; i += NW) { + if (iq1 < ne01) { + sq4[i] = (q4_t) q4[i]; + } else { + sq4[i] = (q4_t) 0.0f; + } + } + + // zero out lo + for (short i = 0; i < D16/NL; ++i) { + lo[i] = (o4x4_t) 0.0f; + } + + // zero out shared memory SH + for (short i = tiisg; i < SH/4; i += NW) { + ss4[i] = (s4_t) 0.0f; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + { + half S = 0.0f; + half M = -__FLT16_MAX__/2; + + // thread indices inside the simdgroup + const short tx = tiisg%NL; + const short ty = tiisg/NL; + + // broadcast kv + //const short rk2 = ne02/ne12; + //const short rk3 = ne03/ne13; + + const short ikv2 = iq2/(ne02/ne_12_2); + const short ikv3 = iq3/(ne03/ne_12_3); + + // load the queries from shared memory into local memory + q4x4_t mq[D16/NL]; + + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + mq[ii/NL] = sq4x4[ii + tx]; + } + + const bool has_mask = mask != q; + + // pointer to the mask + device const half * pm = (device const half *) (mask + iq1*nb31); + + half slope = 1.0f; + + // ALiBi + if (max_bias > 0.0f) { + const short h = iq2; + + const half base = h < n_head_log2 ? m0 : m1; + const short exph = h < n_head_log2 ? h + 1 : 2*(h - n_head_log2) + 1; + + slope = pow(base, exph); + } + + // loop over the KV cache + // each simdgroup handles blocks of Q rows and C columns + for (int ic0 = 0; ic0 < ne11; ic0 += C*nsg) { + const int ic = ic0 + C*sgitg; + if (ic >= ne11) { + break; + } + + if (has_mask) { + sm[tiisg] = pm[ic + tiisg]; + } + + // Q*K^T + { + // each simdgroup processes 1 query and 4 (NW/NL) keys + for (short cc = 0; cc < C/4; ++cc) { + qk_t mqka[4] = { 0.0, 0.0, 0.0, 0.0 }; + + device const kd4x4_t * pk = (device const kd4x4_t *) ((device const char *) k + ((ic + 4*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + const short i = ii + tx; + + k4x4_t mk; + deq_k(pk + i/nl_k, i%nl_k, mk); + + // note: this is less precise than the version below + //mqka[0] += dot(mq[ii/NL][0], mk[0]); + //mqka[1] += dot(mq[ii/NL][1], mk[1]); + //mqka[2] += dot(mq[ii/NL][2], mk[2]); + //mqka[3] += dot(mq[ii/NL][3], mk[3]); + + mqka[0] += dot((float4) mq[ii/NL][0], (float4) mk[0]); + mqka[1] += dot((float4) mq[ii/NL][1], (float4) mk[1]); + mqka[2] += dot((float4) mq[ii/NL][2], (float4) mk[2]); + mqka[3] += dot((float4) mq[ii/NL][3], (float4) mk[3]); + } + + qk_t mqk = mqka[0] + mqka[1] + mqka[2] + mqka[3]; + + // simdgroup reduce + // [ 0 .. 7] -> [ 0] + // [ 8 .. 15] -> [ 8] + // [16 .. 23] -> [16] + // [24 .. 31] -> [24] + //mqk += simd_shuffle_down(mqk, 16); + //mqk += simd_shuffle_down(mqk, 8); + mqk += simd_shuffle_down(mqk, 4); + mqk += simd_shuffle_down(mqk, 2); + mqk += simd_shuffle_down(mqk, 1); + + // mqk = mqk*scale + mask*slope + if (tx == 0) { + mqk *= scale; + + if (logit_softcap != 0.0f) { + mqk = logit_softcap*precise::tanh(mqk); + } + + mqk += sm[4*cc + ty]*slope; + + ss[4*cc + ty] = mqk; + } + } + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + // online softmax + { + const half m = M; + const half s = ss[tiisg]; + + M = simd_max(max(M, s)); + + const half ms = exp(m - M); + const half vs = exp(s - M); + + S = S*ms + simd_sum(vs); + + // the P matrix from the paper (Q rows, C columns) + ss[tiisg] = vs; + + // O = diag(ms)*O + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + lo[ii/NL] *= ms; + } + } + + simdgroup_barrier(mem_flags::mem_threadgroup); + + // O = O + (Q*K^T)*V + { + for (short cc = 0; cc < C/4; ++cc) { + device const vd4x4_t * pv4 = (device const vd4x4_t *) ((device const char *) v + ((ic + 4*cc + ty)*nb_12_1 + ikv2*nb_12_2 + ikv3*nb_12_3)); + + const s4x4_t ms(ss[4*cc + ty]); + + #pragma unroll(D16/NL) + for (short ii = 0; ii < D16; ii += NL) { + const short i = ii + tx; + + v4x4_t mv; + deq_v(pv4 + i/nl_v, i%nl_v, mv); + + lo[ii/NL] += mv*ms; + } + } + } + } + + // these are needed for reducing the results from the simdgroups (reuse the ss buffer) + if (tiisg == 0) { + ss[0] = (s_t) S; + ss[1] = (s_t) M; + } + } + + // simdgroup reduce + // [ 0, 8, 16, 24] -> [ 0] + // [ 1, 9, 17, 25] -> [ 1] + // [ 2, 10, 18, 26] -> [ 2] + // [ 3, 11, 19, 27] -> [ 3] + // [ 4, 12, 20, 28] -> [ 4] + // [ 5, 13, 21, 29] -> [ 5] + // [ 6, 14, 22, 30] -> [ 6] + // [ 7, 15, 23, 31] -> [ 7] + for (short ii = 0; ii < D16; ii += NL) { + lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 16); + lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 8); + //lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 4); + //lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 2); + //lo[ii/NL][0] += simd_shuffle_down(lo[ii/NL][0], 1); + + lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 16); + lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 8); + //lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 4); + //lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 2); + //lo[ii/NL][1] += simd_shuffle_down(lo[ii/NL][1], 1); + + lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 16); + lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 8); + //lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 4); + //lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 2); + //lo[ii/NL][2] += simd_shuffle_down(lo[ii/NL][2], 1); + + lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 16); + lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 8); + //lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 4); + //lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 2); + //lo[ii/NL][3] += simd_shuffle_down(lo[ii/NL][3], 1); + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // store results to shared memory + for (short i = tiisg; i < D16; i += NL) { + sr4x4[i] = lo[i/NL]; + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // parallel reduce + for (short r = nsg/2; r > 0; r >>= 1) { + if (sgitg < r) { + const half S0 = ss[ 0]; + const half S1 = ss[r*SH + 0]; + + const half M0 = ss[ 1]; + const half M1 = ss[r*SH + 1]; + + const half M = max(M0, M1); + + const half ms0 = exp(M0 - M); + const half ms1 = exp(M1 - M); + + const half S = S0*ms0 + S1*ms1; + + if (tiisg == 0) { + ss[0] = S; + ss[1] = M; + } + + // O_0 = diag(ms0)*O_0 + diag(ms1)*O_1 + for (short i = tiisg; i < D16; i += NW) { + sr4x4[i] = sr4x4[i]*ms0 + sr4x4[i + r*D16]*ms1; + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + device float4x4 * dst44 = (device float4x4 *) dst; + + // final rescale with 1/S and store to global memory + if (sgitg == 0) { + const float S = ss[0]; + + for (short i = tiisg; i < D16; i += NW) { + dst44[((int64_t)iq3*ne2*ne1 + iq2 + (iq1)*ne1)*D16 + i] = (float4x4) sr4x4[i]/S; + } + } +} + +// note: I think the s_t can be half instead of float, because the Q*K scaling is done before storing to shared mem +// in the other (non-vec) kernel, we need s_t to also be float because we scale during the soft_max +// +#define FA_TYPES \ + half4, half4x4, \ + half4x4, \ + half4x4, \ + float, \ + half, half4, half4x4, \ + half4x4 + +typedef decltype(kernel_flash_attn_ext_vec) flash_attn_ext_vec_t; + +template [[host_name("kernel_flash_attn_ext_vec_f16_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_flash_attn_ext_vec_bf16_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#endif +template [[host_name("kernel_flash_attn_ext_vec_q4_0_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q4_1_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_0_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_1_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q8_0_h128")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; + +template [[host_name("kernel_flash_attn_ext_vec_f16_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_flash_attn_ext_vec_bf16_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +#endif +template [[host_name("kernel_flash_attn_ext_vec_q4_0_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q4_1_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_0_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q5_1_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; +template [[host_name("kernel_flash_attn_ext_vec_q8_0_h256")]] kernel flash_attn_ext_vec_t kernel_flash_attn_ext_vec; + +#undef FA_TYPES + +template +kernel void kernel_cpy( + device const void * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0); + + device T1 * dst_data = (device T1 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x; i00 < ne00; i00 += ntg.x) { + device const T0 * src = (device T0 *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + dst_data[i00] = (T1) src[0]; + } +} + +typedef decltype(kernel_cpy) kernel_cpy_t; + +template [[host_name("kernel_cpy_f32_f32")]] kernel kernel_cpy_t kernel_cpy; +template [[host_name("kernel_cpy_f32_f16")]] kernel kernel_cpy_t kernel_cpy; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_cpy_f32_bf16")]] kernel kernel_cpy_t kernel_cpy; +#endif +template [[host_name("kernel_cpy_f16_f32")]] kernel kernel_cpy_t kernel_cpy; +template [[host_name("kernel_cpy_f16_f16")]] kernel kernel_cpy_t kernel_cpy; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_cpy_bf16_f32")]] kernel kernel_cpy_t kernel_cpy; +template [[host_name("kernel_cpy_bf16_bf16")]] kernel kernel_cpy_t kernel_cpy; +#endif + +kernel void kernel_cpy_f32_q8_0( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK8_0; + + device block_q8_0 * dst_data = (device block_q8_0 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK8_0; i00 < ne00; i00 += ntg.x*QK8_0) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + + for (int j = 0; j < QK8_0; j++) { + const float v = src[j]; + amax = MAX(amax, fabs(v)); + } + + const float d = amax / ((1 << 7) - 1); + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK8_0].d = d; + + for (int j = 0; j < QK8_0; ++j) { + const float x0 = src[j]*id; + + dst_data[i00/QK8_0].qs[j] = round(x0); + } + } +} + +kernel void kernel_cpy_f32_q4_0( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK4_0; + + device block_q4_0 * dst_data = (device block_q4_0 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK4_0; i00 < ne00; i00 += ntg.x*QK4_0) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + float max = 0.0f; + + for (int j = 0; j < QK4_0; j++) { + const float v = src[j]; + if (amax < fabs(v)) { + amax = fabs(v); + max = v; + } + } + + const float d = max / -8; + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK4_0].d = d; + + for (int j = 0; j < QK4_0/2; ++j) { + const float x0 = src[0 + j]*id; + const float x1 = src[QK4_0/2 + j]*id; + + const uint8_t xi0 = MIN(15, (int8_t)(x0 + 8.5f)); + const uint8_t xi1 = MIN(15, (int8_t)(x1 + 8.5f)); + + dst_data[i00/QK4_0].qs[j] = xi0; + dst_data[i00/QK4_0].qs[j] |= xi1 << 4; + } + } +} + +kernel void kernel_cpy_f32_q4_1( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK4_1; + + device block_q4_1 * dst_data = (device block_q4_1 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK4_1; i00 < ne00; i00 += ntg.x*QK4_1) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float min = FLT_MAX; + float max = -FLT_MAX; + + for (int j = 0; j < QK4_1; j++) { + const float v = src[j]; + if (min > v) min = v; + if (max < v) max = v; + } + + const float d = (max - min) / ((1 << 4) - 1); + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK4_1].d = d; + dst_data[i00/QK4_1].m = min; + + for (int j = 0; j < QK4_1/2; ++j) { + const float x0 = (src[0 + j] - min)*id; + const float x1 = (src[QK4_1/2 + j] - min)*id; + + const uint8_t xi0 = MIN(15, (int8_t)(x0 + 0.5f)); + const uint8_t xi1 = MIN(15, (int8_t)(x1 + 0.5f)); + + dst_data[i00/QK4_1].qs[j] = xi0; + dst_data[i00/QK4_1].qs[j] |= xi1 << 4; + } + } +} + +kernel void kernel_cpy_f32_q5_0( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK5_0; + + device block_q5_0 * dst_data = (device block_q5_0 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK5_0; i00 < ne00; i00 += ntg.x*QK5_0) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + float max = 0.0f; + + for (int j = 0; j < QK5_0; j++) { + const float v = src[j]; + if (amax < fabs(v)) { + amax = fabs(v); + max = v; + } + } + + const float d = max / -16; + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK5_0].d = d; + + uint32_t qh = 0; + for (int j = 0; j < QK5_0/2; ++j) { + const float x0 = src[0 + j]*id; + const float x1 = src[QK5_0/2 + j]*id; + + const uint8_t xi0 = MIN(31, (int8_t)(x0 + 16.5f)); + const uint8_t xi1 = MIN(31, (int8_t)(x1 + 16.5f)); + + dst_data[i00/QK5_0].qs[j] = (xi0 & 0xf) | ((xi1 & 0xf) << 4); + qh |= ((xi0 & 0x10u) >> 4) << (j + 0); + qh |= ((xi1 & 0x10u) >> 4) << (j + QK5_0/2); + } + thread const uint8_t * qh8 = (thread const uint8_t *)&qh; + for (int j = 0; j < 4; ++j) { + dst_data[i00/QK5_0].qh[j] = qh8[j]; + } + } +} + +kernel void kernel_cpy_f32_q5_1( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK5_1; + + device block_q5_1 * dst_data = (device block_q5_1 *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK5_1; i00 < ne00; i00 += ntg.x*QK5_1) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float max = src[0]; + float min = src[0]; + + for (int j = 1; j < QK5_1; j++) { + const float v = src[j]; + min = v < min ? v : min; + max = v > max ? v : max; + } + + const float d = (max - min) / 31; + const float id = d ? 1.0f/d : 0.0f; + + dst_data[i00/QK5_1].d = d; + dst_data[i00/QK5_1].m = min; + + uint32_t qh = 0; + for (int j = 0; j < QK5_1/2; ++j) { + const float x0 = (src[0 + j] - min)*id; + const float x1 = (src[QK5_1/2 + j] - min)*id; + + const uint8_t xi0 = (uint8_t)(x0 + 0.5f); + const uint8_t xi1 = (uint8_t)(x1 + 0.5f); + + dst_data[i00/QK5_1].qs[j] = (xi0 & 0xf) | ((xi1 & 0xf) << 4); + qh |= ((xi0 & 0x10u) >> 4) << (j + 0); + qh |= ((xi1 & 0x10u) >> 4) << (j + QK5_1/2); + } + thread const uint8_t * qh8 = (thread const uint8_t *)&qh; + for (int j = 0; j < 4; ++j) { + dst_data[i00/QK5_1].qh[j] = qh8[j]; + } + } +} + +static inline int best_index_int8(int n, constant float * val, float x) { + if (x <= val[0]) return 0; + if (x >= val[n-1]) return n-1; + int ml = 0, mu = n-1; + while (mu-ml > 1) { + int mav = (ml+mu)/2; + if (x < val[mav]) mu = mav; else ml = mav; + } + return x - val[mu-1] < val[mu] - x ? mu-1 : mu; +} + +kernel void kernel_cpy_f32_iq4_nl( + device const float * src0, + device void * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + const int64_t i03 = tgpig[2]; + const int64_t i02 = tgpig[1]; + const int64_t i01 = tgpig[0]; + + const int64_t n = i03*ne02*ne01*ne00 + i02*ne01*ne00 + i01*ne00; + + const int64_t i3 = n / (ne2*ne1*ne0); + const int64_t i2 = (n - i3*ne2*ne1*ne0) / (ne1*ne0); + const int64_t i1 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0) / ne0; + const int64_t i0 = (n - i3*ne2*ne1*ne0 - i2*ne1*ne0 - i1*ne0)/QK4_NL; + + device block_iq4_nl * dst_data = (device block_iq4_nl *) ((device char *) dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + for (int64_t i00 = tpitg.x*QK4_NL; i00 < ne00; i00 += ntg.x*QK4_NL) { + device const float * src = (device float *)((device char *) src0 + i03*nb03 + i02*nb02 + i01*nb01 + i00*nb00); + + float amax = 0.0f; // absolute max + float max = 0.0f; + + for (int j = 0; j < QK4_0; j++) { + const float v = src[j]; + if (amax < fabs(v)) { + amax = fabs(v); + max = v; + } + } + + const float d = max / kvalues_iq4nl_f[0]; + const float id = d ? 1.0f/d : 0.0f; + + float sumqx = 0, sumq2 = 0; + for (int j = 0; j < QK4_NL/2; ++j) { + const float x0 = src[0 + j]*id; + const float x1 = src[QK4_NL/2 + j]*id; + + const uint8_t xi0 = best_index_int8(16, kvalues_iq4nl_f, x0); + const uint8_t xi1 = best_index_int8(16, kvalues_iq4nl_f, x1); + + dst_data[i00/QK4_NL].qs[j] = xi0 | (xi1 << 4); + + const float v0 = kvalues_iq4nl_f[xi0]; + const float v1 = kvalues_iq4nl_f[xi1]; + const float w0 = src[0 + j]*src[0 + j]; + const float w1 = src[QK4_NL/2 + j]*src[QK4_NL/2 + j]; + sumqx += w0*v0*src[j] + w1*v1*src[QK4_NL/2 + j]; + sumq2 += w0*v0*v0 + w1*v1*v1; + + } + + dst_data[i00/QK4_NL].d = sumq2 > 0 ? sumqx/sumq2 : d; + + } +} + +kernel void kernel_concat( + device const char * src0, + device const char * src1, + device char * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant int64_t & ne03, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant int64_t & ne2, + constant int64_t & ne3, + constant uint64_t & nb0, + constant uint64_t & nb1, + constant uint64_t & nb2, + constant uint64_t & nb3, + constant int32_t & dim, + uint3 tgpig[[threadgroup_position_in_grid]], + uint3 tpitg[[thread_position_in_threadgroup]], + uint3 ntg[[threads_per_threadgroup]]) { + + const int64_t i3 = tgpig.z; + const int64_t i2 = tgpig.y; + const int64_t i1 = tgpig.x; + + int64_t o[4] = {0, 0, 0, 0}; + o[dim] = dim == 0 ? ne00 : (dim == 1 ? ne01 : (dim == 2 ? ne02 : ne03)); + + device const float * x; + + for (int i0 = tpitg.x; i0 < ne0; i0 += ntg.x) { + if (i0 < ne00 && i1 < ne01 && i2 < ne02 && i3 < ne03) { + x = (device const float *)(src0 + (i3 )*nb03 + (i2 )*nb02 + (i1 )*nb01 + (i0 )*nb00); + } else { + x = (device const float *)(src1 + (i3 - o[3])*nb13 + (i2 - o[2])*nb12 + (i1 - o[1])*nb11 + (i0 - o[0])*nb10); + } + + device float * y = (device float *)(dst + i3*nb3 + i2*nb2 + i1*nb1 + i0*nb0); + + *y = *x; + } +} + +void kernel_mul_mv_q2_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q2_K * x = (device const block_q2_K *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int ix = tiisg/8; // 0...3 + const int it = tiisg%8; // 0...7 + const int iq = it/4; // 0 or 1 + const int ir = it%4; // 0...3 + const int is = (8*ir)/16;// 0 or 1 + + device const float * y4 = y + ix * QK_K + 128 * iq + 8 * ir; + + for (int ib = ix; ib < nb; ib += 4) { + + float4 sumy = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; ++i) { + yl[i+ 0] = y4[i+ 0]; sumy[0] += yl[i+ 0]; + yl[i+ 8] = y4[i+32]; sumy[1] += yl[i+ 8]; + yl[i+16] = y4[i+64]; sumy[2] += yl[i+16]; + yl[i+24] = y4[i+96]; sumy[3] += yl[i+24]; + } + + device const uint8_t * sc = (device const uint8_t *)x[ib].scales + 8*iq + is; + device const uint16_t * qs = (device const uint16_t *)x[ib].qs + 16 * iq + 4 * ir; + device const half * dh = &x[ib].d; + + for (int row = 0; row < N_DST; row++) { + + float4 acc1 = {0.f, 0.f, 0.f, 0.f}; + float4 acc2 = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; i += 2) { + acc1[0] += yl[i+ 0] * (qs[i/2] & 0x0003); + acc2[0] += yl[i+ 1] * (qs[i/2] & 0x0300); + acc1[1] += yl[i+ 8] * (qs[i/2] & 0x000c); + acc2[1] += yl[i+ 9] * (qs[i/2] & 0x0c00); + acc1[2] += yl[i+16] * (qs[i/2] & 0x0030); + acc2[2] += yl[i+17] * (qs[i/2] & 0x3000); + acc1[3] += yl[i+24] * (qs[i/2] & 0x00c0); + acc2[3] += yl[i+25] * (qs[i/2] & 0xc000); + } + float dall = dh[0]; + float dmin = dh[1] * 1.f/16.f; + sumf[row] += dall * ((acc1[0] + 1.f/256.f * acc2[0]) * (sc[0] & 0xF) * 1.f/ 1.f + + (acc1[1] + 1.f/256.f * acc2[1]) * (sc[2] & 0xF) * 1.f/ 4.f + + (acc1[2] + 1.f/256.f * acc2[2]) * (sc[4] & 0xF) * 1.f/16.f + + (acc1[3] + 1.f/256.f * acc2[3]) * (sc[6] & 0xF) * 1.f/64.f) - + dmin * (sumy[0] * (sc[0] & 0xF0) + sumy[1] * (sc[2] & 0xF0) + sumy[2] * (sc[4] & 0xF0) + sumy[3] * (sc[6] & 0xF0)); + + qs += nb01/2; + sc += nb01; + dh += nb01/2; + } + + y4 += 4 * QK_K; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_q2_K_f32")]] +kernel void kernel_mul_mv_q2_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q2_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q3_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int64_t im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q3_K * x = (device const block_q3_K *) ((device char *) src0 + offset0); + device const float * yy = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + + //const uint16_t kmask1 = 0x3030; + //const uint16_t kmask2 = 0x0f0f; + + const int tid = tiisg/4; + const int ix = tiisg%4; + const int ip = tid/4; // 0 or 1 + const int il = 2*((tid%4)/2); // 0 or 2 + const int ir = tid%2; + const int n = 8; + const int l0 = n*ir; + + // One would think that the Metal compiler would figure out that ip and il can only have + // 4 possible states, and optimize accordingly. Well, no. It needs help, and we do it + // with these two tales. + // + // Possible masks for the high bit + const ushort4 mm[4] = {{0x0001, 0x0100, 0x0002, 0x0200}, // ip = 0, il = 0 + {0x0004, 0x0400, 0x0008, 0x0800}, // ip = 0, il = 2 + {0x0010, 0x1000, 0x0020, 0x2000}, // ip = 1, il = 0 + {0x0040, 0x4000, 0x0080, 0x8000}}; // ip = 1, il = 2 + + // Possible masks for the low 2 bits + const int4 qm[2] = {{0x0003, 0x0300, 0x000c, 0x0c00}, {0x0030, 0x3000, 0x00c0, 0xc000}}; + + const ushort4 hm = mm[2*ip + il/2]; + + const int shift = 2*il; + const float v1 = il == 0 ? 4.f : 64.f; + const float v2 = 4.f * v1; + + const uint16_t s_shift1 = 4*ip; + const uint16_t s_shift2 = s_shift1 + il; + + const int q_offset = 32*ip + l0; + const int y_offset = 128*ip + 32*il + l0; + + device const float * y1 = yy + ix*QK_K + y_offset; + + uint32_t scales32, aux32; + thread uint16_t * scales16 = (thread uint16_t *)&scales32; + thread const int8_t * scales = (thread const int8_t *)&scales32; + + float sumf1[2] = {0.f}; + float sumf2[2] = {0.f}; + for (int i = ix; i < nb; i += 4) { + for (int l = 0; l < 8; ++l) { + yl[l+ 0] = y1[l+ 0]; + yl[l+ 8] = y1[l+16]; + yl[l+16] = y1[l+32]; + yl[l+24] = y1[l+48]; + } + + device const uint16_t * q = (device const uint16_t *)(x[i].qs + q_offset); + device const uint16_t * h = (device const uint16_t *)(x[i].hmask + l0); + device const uint16_t * a = (device const uint16_t *)(x[i].scales); + device const half * dh = &x[i].d; + + for (int row = 0; row < 2; ++row) { + const float d_all = (float)dh[0]; + + scales16[0] = a[4]; + scales16[1] = a[5]; + aux32 = ((scales32 >> s_shift2) << 4) & 0x30303030; + scales16[0] = a[il+0]; + scales16[1] = a[il+1]; + scales32 = ((scales32 >> s_shift1) & 0x0f0f0f0f) | aux32; + + float s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0; + for (int l = 0; l < n; l += 2) { + const int32_t qs = q[l/2]; + s1 += yl[l+0] * (qs & qm[il/2][0]); + s2 += yl[l+1] * (qs & qm[il/2][1]); + s3 += ((h[l/2] & hm[0]) ? 0.f : yl[l+0]) + ((h[l/2] & hm[1]) ? 0.f : yl[l+1]); + s4 += yl[l+16] * (qs & qm[il/2][2]); + s5 += yl[l+17] * (qs & qm[il/2][3]); + s6 += ((h[l/2] & hm[2]) ? 0.f : yl[l+16]) + ((h[l/2] & hm[3]) ? 0.f : yl[l+17]); + } + float d1 = d_all * (s1 + 1.f/256.f * s2 - s3*v1); + float d2 = d_all * (s4 + 1.f/256.f * s5 - s6*v2); + sumf1[row] += d1 * (scales[0] - 32); + sumf2[row] += d2 * (scales[2] - 32); + + s1 = s2 = s3 = s4 = s5 = s6 = 0; + for (int l = 0; l < n; l += 2) { + const int32_t qs = q[l/2+8]; + s1 += yl[l+8] * (qs & qm[il/2][0]); + s2 += yl[l+9] * (qs & qm[il/2][1]); + s3 += ((h[l/2+8] & hm[0]) ? 0.f : yl[l+8]) + ((h[l/2+8] & hm[1]) ? 0.f : yl[l+9]); + s4 += yl[l+24] * (qs & qm[il/2][2]); + s5 += yl[l+25] * (qs & qm[il/2][3]); + s6 += ((h[l/2+8] & hm[2]) ? 0.f : yl[l+24]) + ((h[l/2+8] & hm[3]) ? 0.f : yl[l+25]); + } + d1 = d_all * (s1 + 1.f/256.f * s2 - s3*v1); + d2 = d_all * (s4 + 1.f/256.f * s5 - s6*v2); + sumf1[row] += d1 * (scales[1] - 32); + sumf2[row] += d2 * (scales[3] - 32); + + q += nb01/2; + h += nb01/2; + a += nb01/2; + dh += nb01/2; + } + + y1 += 4 * QK_K; + } + + for (int row = 0; row < 2; ++row) { + const float sumf = (sumf1[row] + 0.25f * sumf2[row]) / (1 << shift); + sumf1[row] = simd_sum(sumf); + } + if (tiisg == 0) { + for (int row = 0; row < 2; ++row) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = sumf1[row]; + } + } +} + +[[host_name("kernel_mul_mv_q3_K_f32")]] +kernel void kernel_mul_mv_q3_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q3_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q4_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const uint16_t kmask1 = 0x3f3f; + const uint16_t kmask2 = 0x0f0f; + const uint16_t kmask3 = 0xc0c0; + + const int ix = tiisg/8; // 0...3 + const int it = tiisg%8; // 0...7 + const int iq = it/4; // 0 or 1 + const int ir = it%4; // 0...3 + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + //const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + const int first_row = r0 * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q4_K * x = (device const block_q4_K *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[16]; + float yh[16]; + float sumf[N_DST]={0.f}, all_sum; + + device const float * y4 = y + ix * QK_K + 64 * iq + 8 * ir; + + uint16_t sc16[4]; + thread const uint8_t * sc8 = (thread const uint8_t *)sc16; + + for (int ib = ix; ib < nb; ib += 4) { + float4 sumy = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; ++i) { + yl[i+0] = y4[i+ 0]; sumy[0] += yl[i+0]; + yl[i+8] = y4[i+ 32]; sumy[1] += yl[i+8]; + yh[i+0] = y4[i+128]; sumy[2] += yh[i+0]; + yh[i+8] = y4[i+160]; sumy[3] += yh[i+8]; + } + + device const uint16_t * sc = (device const uint16_t *)x[ib].scales + iq; + device const uint16_t * q1 = (device const uint16_t *)x[ib].qs + 16 * iq + 4 * ir; + device const half * dh = &x[ib].d; + + for (int row = 0; row < N_DST; row++) { + sc16[0] = sc[0] & kmask1; + sc16[1] = sc[2] & kmask1; + sc16[2] = ((sc[4] >> 0) & kmask2) | ((sc[0] & kmask3) >> 2); + sc16[3] = ((sc[4] >> 4) & kmask2) | ((sc[2] & kmask3) >> 2); + + device const uint16_t * q2 = q1 + 32; + + float4 acc1 = {0.f, 0.f, 0.f, 0.f}; + float4 acc2 = {0.f, 0.f, 0.f, 0.f}; + for (int i = 0; i < 8; i += 2) { + acc1[0] += yl[i+0] * (q1[i/2] & 0x000F); + acc1[1] += yl[i+1] * (q1[i/2] & 0x0F00); + acc1[2] += yl[i+8] * (q1[i/2] & 0x00F0); + acc1[3] += yl[i+9] * (q1[i/2] & 0xF000); + acc2[0] += yh[i+0] * (q2[i/2] & 0x000F); + acc2[1] += yh[i+1] * (q2[i/2] & 0x0F00); + acc2[2] += yh[i+8] * (q2[i/2] & 0x00F0); + acc2[3] += yh[i+9] * (q2[i/2] & 0xF000); + } + + float dall = dh[0]; + float dmin = dh[1]; + sumf[row] += dall * ((acc1[0] + 1.f/256.f * acc1[1]) * sc8[0] + + (acc1[2] + 1.f/256.f * acc1[3]) * sc8[1] * 1.f/16.f + + (acc2[0] + 1.f/256.f * acc2[1]) * sc8[4] + + (acc2[2] + 1.f/256.f * acc2[3]) * sc8[5] * 1.f/16.f) - + dmin * (sumy[0] * sc8[2] + sumy[1] * sc8[3] + sumy[2] * sc8[6] + sumy[3] * sc8[7]); + + q1 += nb01/2; + sc += nb01/2; + dh += nb01/2; + } + + y4 += 4 * QK_K; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_q4_K_f32")]] +kernel void kernel_mul_mv_q4_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q4_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q5_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q5_K * x = (device const block_q5_K *) ((device char *) src0 + offset0); + device const float * yy = (device const float *) ((device char *) src1 + offset1); + + float sumf[2]={0.f}; + + float yl[16], yh[16]; + + const uint16_t kmask1 = 0x3f3f; + const uint16_t kmask2 = 0x0f0f; + const uint16_t kmask3 = 0xc0c0; + + const int tid = tiisg/4; + const int ix = tiisg%4; + const int iq = tid/4; + const int ir = tid%4; + const int n = 8; + + const int l0 = n*ir; + const int q_offset = 32*iq + l0; + const int y_offset = 64*iq + l0; + + const uint8_t hm1 = 1u << (2*iq); + const uint8_t hm2 = hm1 << 1; + const uint8_t hm3 = hm1 << 4; + const uint8_t hm4 = hm2 << 4; + + uint16_t sc16[4]; + thread const uint8_t * sc8 = (thread const uint8_t *)sc16; + + device const float * y1 = yy + ix*QK_K + y_offset; + + for (int i = ix; i < nb; i += 4) { + device const uint8_t * q1 = x[i].qs + q_offset; + device const uint8_t * qh = x[i].qh + l0; + device const half * dh = &x[i].d; + device const uint16_t * a = (device const uint16_t *)x[i].scales + iq; + + device const float * y2 = y1 + 128; + float4 sumy = {0.f, 0.f, 0.f, 0.f}; + for (int l = 0; l < 8; ++l) { + yl[l+0] = y1[l+ 0]; sumy[0] += yl[l+0]; + yl[l+8] = y1[l+32]; sumy[1] += yl[l+8]; + yh[l+0] = y2[l+ 0]; sumy[2] += yh[l+0]; + yh[l+8] = y2[l+32]; sumy[3] += yh[l+8]; + } + + for (int row = 0; row < 2; ++row) { + device const uint8_t * q2 = q1 + 64; + + sc16[0] = a[0] & kmask1; + sc16[1] = a[2] & kmask1; + sc16[2] = ((a[4] >> 0) & kmask2) | ((a[0] & kmask3) >> 2); + sc16[3] = ((a[4] >> 4) & kmask2) | ((a[2] & kmask3) >> 2); + + float4 acc1 = {0.f}; + float4 acc2 = {0.f}; + for (int l = 0; l < n; ++l) { + uint8_t h = qh[l]; + acc1[0] += yl[l+0] * (q1[l] & 0x0F); + acc1[1] += yl[l+8] * (q1[l] & 0xF0); + acc1[2] += yh[l+0] * (q2[l] & 0x0F); + acc1[3] += yh[l+8] * (q2[l] & 0xF0); + acc2[0] += h & hm1 ? yl[l+0] : 0.f; + acc2[1] += h & hm2 ? yl[l+8] : 0.f; + acc2[2] += h & hm3 ? yh[l+0] : 0.f; + acc2[3] += h & hm4 ? yh[l+8] : 0.f; + } + const float dall = dh[0]; + const float dmin = dh[1]; + sumf[row] += dall * (sc8[0] * (acc1[0] + 16.f*acc2[0]) + + sc8[1] * (acc1[1]/16.f + 16.f*acc2[1]) + + sc8[4] * (acc1[2] + 16.f*acc2[2]) + + sc8[5] * (acc1[3]/16.f + 16.f*acc2[3])) - + dmin * (sumy[0] * sc8[2] + sumy[1] * sc8[3] + sumy[2] * sc8[6] + sumy[3] * sc8[7]); + + q1 += nb01; + qh += nb01; + dh += nb01/2; + a += nb01/2; + } + + y1 += 4 * QK_K; + } + + for (int row = 0; row < 2; ++row) { + const float tot = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = tot; + } + } +} + +[[host_name("kernel_mul_mv_q5_K_f32")]] +kernel void kernel_mul_mv_q5_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q5_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_q6_K_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const uint8_t kmask1 = 0x03; + const uint8_t kmask2 = 0x0C; + const uint8_t kmask3 = 0x30; + const uint8_t kmask4 = 0xC0; + + const int nb = ne00/QK_K; + + const int64_t r0 = tgpig.x; + const int64_t r1 = tgpig.y; + const int im = tgpig.z; + + const int row = 2 * r0 + sgitg; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_q6_K * x = (device const block_q6_K *) ((device char *) src0 + offset0); + device const float * yy = (device const float *) ((device char *) src1 + offset1); + + float sumf = 0; + + const int tid = tiisg/2; + const int ix = tiisg%2; + const int ip = tid/8; // 0 or 1 + const int il = tid%8; + const int n = 4; + const int l0 = n*il; + const int is = 8*ip + l0/16; + + const int y_offset = 128*ip + l0; + const int q_offset_l = 64*ip + l0; + const int q_offset_h = 32*ip + l0; + + for (int i = ix; i < nb; i += 2) { + + device const uint8_t * q1 = x[i].ql + q_offset_l; + device const uint8_t * q2 = q1 + 32; + device const uint8_t * qh = x[i].qh + q_offset_h; + device const int8_t * sc = x[i].scales + is; + + device const float * y = yy + i * QK_K + y_offset; + + const float dall = x[i].d; + + float4 sums = {0.f, 0.f, 0.f, 0.f}; + for (int l = 0; l < n; ++l) { + sums[0] += y[l+ 0] * ((int8_t)((q1[l] & 0xF) | ((qh[l] & kmask1) << 4)) - 32); + sums[1] += y[l+32] * ((int8_t)((q2[l] & 0xF) | ((qh[l] & kmask2) << 2)) - 32); + sums[2] += y[l+64] * ((int8_t)((q1[l] >> 4) | ((qh[l] & kmask3) << 0)) - 32); + sums[3] += y[l+96] * ((int8_t)((q2[l] >> 4) | ((qh[l] & kmask4) >> 2)) - 32); + } + + sumf += dall * (sums[0] * sc[0] + sums[1] * sc[2] + sums[2] * sc[4] + sums[3] * sc[6]); + + } + + const float tot = simd_sum(sumf); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + row] = tot; + } +} + +[[host_name("kernel_mul_mv_q6_K_f32")]] +kernel void kernel_mul_mv_q6_K_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_q6_K_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +// ======================= "True" 2-bit + +void kernel_mul_mv_iq2_xxs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq2_xxs * x = (device const block_iq2_xxs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint64_t * values = (threadgroup uint64_t *)shared_values; + threadgroup uint8_t * shared_signs = (threadgroup uint8_t *)(values + 256); + { + int nval = 4; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq2xxs_grid[pos + i]; + nval = 2; + pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) shared_signs[pos+i] = ksigns_iq2xs[pos+i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq2_xxs * xr = x + ibl; + device const uint16_t * q2 = xr->qs + 4 * ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + device const uint8_t * aux8 = (device const uint8_t *)q2; + const uint32_t aux32 = q2[2] | (q2[3] << 16); + const float d = db * (0.5f + (aux32 >> 28)); + + float sum = 0; + for (int l = 0; l < 4; ++l) { + const threadgroup uint8_t * grid = (const threadgroup uint8_t *)(values + aux8[l]); + const uint8_t signs = shared_signs[(aux32 >> 7*l) & 127]; + for (int j = 0; j < 8; ++j) { + sum += yl[8*l + j] * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + } + } + sumf[row] += d * sum; + + dh += nb01/2; + q2 += nb01/2; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.25f; + } + } +} + +[[host_name("kernel_mul_mv_iq2_xxs_f32")]] +kernel void kernel_mul_mv_iq2_xxs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq2_xxs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq2_xs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq2_xs * x = (device const block_iq2_xs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint64_t * values = (threadgroup uint64_t *)shared_values; + threadgroup uint8_t * shared_signs = (threadgroup uint8_t *)(values + 512); + { + int nval = 8; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq2xs_grid[pos + i]; + nval = 2; + pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) shared_signs[pos+i] = ksigns_iq2xs[pos+i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq2_xs * xr = x + ibl; + device const uint16_t * q2 = xr->qs + 4 * ib; + device const uint8_t * sc = xr->scales + ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const uint8_t ls1 = sc[0] & 0xf; + const uint8_t ls2 = sc[0] >> 4; + const float d1 = db * (0.5f + ls1); + const float d2 = db * (0.5f + ls2); + + float sum1 = 0, sum2 = 0; + for (int l = 0; l < 2; ++l) { + const threadgroup uint8_t * grid = (const threadgroup uint8_t *)(values + (q2[l] & 511)); + const uint8_t signs = shared_signs[(q2[l] >> 9)]; + for (int j = 0; j < 8; ++j) { + sum1 += yl[8*l + j] * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + } + } + for (int l = 2; l < 4; ++l) { + const threadgroup uint8_t * grid = (const threadgroup uint8_t *)(values + (q2[l] & 511)); + const uint8_t signs = shared_signs[(q2[l] >> 9)]; + for (int j = 0; j < 8; ++j) { + sum2 += yl[8*l + j] * grid[j] * (signs & kmask_iq2xs[j] ? -1.f : 1.f); + } + } + sumf[row] += d1 * sum1 + d2 * sum2; + + dh += nb01/2; + q2 += nb01/2; + sc += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.25f; + } + } +} + +[[host_name("kernel_mul_mv_iq2_xs_f32")]] +kernel void kernel_mul_mv_iq2_xs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq2_xs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq3_xxs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq3_xxs * x = (device const block_iq3_xxs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint32_t * values = (threadgroup uint32_t *)shared_values; + threadgroup uint8_t * shared_signs = (threadgroup uint8_t *)(values + 256); + { + int nval = 4; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq3xxs_grid[pos + i]; + nval = 2; + pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) shared_signs[pos+i] = ksigns_iq2xs[pos+i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq3_xxs * xr = x + ibl; + device const uint8_t * q3 = xr->qs + 8 * ib; + device const uint16_t * gas = (device const uint16_t *)(xr->qs + QK_K/4) + 2 * ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const uint32_t aux32 = gas[0] | (gas[1] << 16); + const float d = db * (0.5f + (aux32 >> 28)); + + float2 sum = {0}; + for (int l = 0; l < 4; ++l) { + const threadgroup uint8_t * grid1 = (const threadgroup uint8_t *)(values + q3[2*l+0]); + const threadgroup uint8_t * grid2 = (const threadgroup uint8_t *)(values + q3[2*l+1]); + const uint8_t signs = shared_signs[(aux32 >> 7*l) & 127]; + for (int j = 0; j < 4; ++j) { + sum[0] += yl[8*l + j + 0] * grid1[j] * (signs & kmask_iq2xs[j+0] ? -1.f : 1.f); + sum[1] += yl[8*l + j + 4] * grid2[j] * (signs & kmask_iq2xs[j+4] ? -1.f : 1.f); + } + } + sumf[row] += d * (sum[0] + sum[1]); + + dh += nb01/2; + q3 += nb01; + gas += nb01/2; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.5f; + } + } +} + +[[host_name("kernel_mul_mv_iq3_xxs_f32")]] +kernel void kernel_mul_mv_iq3_xxs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq3_xxs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq3_s_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq3_s * x = (device const block_iq3_s *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + threadgroup uint32_t * values = (threadgroup uint32_t *)shared_values; + { + int nval = 8; + int pos = (32*sgitg + tiisg)*nval; + for (int i = 0; i < nval; ++i) values[pos + i] = iq3s_grid[pos + i]; + threadgroup_barrier(mem_flags::mem_threadgroup); + } + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq3_s * xr = x + ibl; + device const uint8_t * qs = xr->qs + 8 * ib; + device const uint8_t * qh = xr->qh + ib; + device const uint8_t * sc = xr->scales + (ib/2); + device const uint8_t * signs = xr->signs + 4 * ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const float d = db * (1 + 2*((sc[0] >> 4*(ib%2)) & 0xf)); + + float2 sum = {0}; + for (int l = 0; l < 4; ++l) { + const threadgroup uint32_t * table1 = qh[0] & kmask_iq2xs[2*l+0] ? values + 256 : values; + const threadgroup uint32_t * table2 = qh[0] & kmask_iq2xs[2*l+1] ? values + 256 : values; + const threadgroup uint8_t * grid1 = (const threadgroup uint8_t *)(table1 + qs[2*l+0]); + const threadgroup uint8_t * grid2 = (const threadgroup uint8_t *)(table2 + qs[2*l+1]); + for (int j = 0; j < 4; ++j) { + sum[0] += yl[8*l + j + 0] * grid1[j] * select(1, -1, signs[l] & kmask_iq2xs[j+0]); + sum[1] += yl[8*l + j + 4] * grid2[j] * select(1, -1, signs[l] & kmask_iq2xs[j+4]); + } + } + sumf[row] += d * (sum[0] + sum[1]); + + dh += nb01/2; + qs += nb01; + qh += nb01; + sc += nb01; + signs += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_iq3_s_f32")]] +kernel void kernel_mul_mv_iq3_s_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq3_s_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq2_s_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq2_s * x = (device const block_iq2_s *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + //threadgroup uint64_t * values = (threadgroup uint64_t *)shared_values; + //{ + // int nval = 32; + // int pos = (32*sgitg + tiisg)*nval; + // for (int i = 0; i < nval; ++i) values[pos + i] = iq2s_grid[pos + i]; + // threadgroup_barrier(mem_flags::mem_threadgroup); + //} + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq2_s * xr = x + ibl; + device const uint8_t * qs = xr->qs + 4 * ib; + device const uint8_t * qh = xr->qh + ib; + device const uint8_t * sc = xr->scales + ib; + device const uint8_t * signs = qs + QK_K/8; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + const float db = dh[0]; + const float d1 = db * (0.5f + (sc[0] & 0xf)); + const float d2 = db * (0.5f + (sc[0] >> 4)); + + float2 sum = {0}; + for (int l = 0; l < 2; ++l) { + //const threadgroup uint8_t * grid1 = (const threadgroup uint8_t *)(values + (qs[l+0] | ((qh[0] << (8-2*l)) & 0x300))); + //const threadgroup uint8_t * grid2 = (const threadgroup uint8_t *)(values + (qs[l+2] | ((qh[0] << (4-2*l)) & 0x300))); + constant uint8_t * grid1 = (constant uint8_t *)(iq2s_grid + (qs[l+0] | ((qh[0] << (8-2*l)) & 0x300))); + constant uint8_t * grid2 = (constant uint8_t *)(iq2s_grid + (qs[l+2] | ((qh[0] << (4-2*l)) & 0x300))); + for (int j = 0; j < 8; ++j) { + sum[0] += yl[8*l + j + 0] * grid1[j] * select(1, -1, signs[l+0] & kmask_iq2xs[j]); + sum[1] += yl[8*l + j + 16] * grid2[j] * select(1, -1, signs[l+2] & kmask_iq2xs[j]); + } + } + sumf[row] += d1 * sum[0] + d2 * sum[1]; + + dh += nb01/2; + qs += nb01; + qh += nb01; + sc += nb01; + signs += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum * 0.25f; + } + } +} + +[[host_name("kernel_mul_mv_iq2_s_f32")]] +kernel void kernel_mul_mv_iq2_s_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq2_s_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +void kernel_mul_mv_iq1_s_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_value, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq1_s * x = (device const block_iq1_s *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + float sumy = 0; + for (int i = 0; i < 32; ++i) { + yl[i] = y4[i]; + sumy += yl[i]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq1_s * xr = x + ibl; + device const uint8_t * qs = xr->qs + 4 * ib; + device const uint16_t * qh = xr->qh + ib; + device const half * dh = &xr->d; + + for (int row = 0; row < N_DST; row++) { + + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((qh[0] << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((qh[0] << 5) & 0x700))); + constant uint8_t * grid3 = (constant uint8_t *)(iq1s_grid_gpu + (qs[2] | ((qh[0] << 2) & 0x700))); + constant uint8_t * grid4 = (constant uint8_t *)(iq1s_grid_gpu + (qs[3] | ((qh[0] >> 1) & 0x700))); + + float sum = 0; + for (int j = 0; j < 4; ++j) { + sum += yl[j+ 0] * (grid1[j] & 0xf) + yl[j+ 4] * (grid1[j] >> 4) + + yl[j+ 8] * (grid2[j] & 0xf) + yl[j+12] * (grid2[j] >> 4) + + yl[j+16] * (grid3[j] & 0xf) + yl[j+20] * (grid3[j] >> 4) + + yl[j+24] * (grid4[j] & 0xf) + yl[j+28] * (grid4[j] >> 4); + } + sumf[row] += (float)dh[0] * (sum + sumy * (qh[0] & 0x8000 ? -1 - IQ1S_DELTA : -1 + IQ1S_DELTA)) * (2*((qh[0] >> 12) & 7) + 1); + + dh += nb01/2; + qs += nb01; + qh += nb01/2; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +void kernel_mul_mv_iq1_m_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_value, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + + const int first_row = (r0 * N_SIMDGROUP + sgitg) * N_DST; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq1_m * x = (device const block_iq1_m *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + float yl[32]; + float sumf[N_DST]={0.f}, all_sum; + + const int nb32 = nb * (QK_K / 32); + + const int ix = tiisg; + + device const float * y4 = y + 32 * ix; + + iq1m_scale_t scale; + + for (int ib32 = ix; ib32 < nb32; ib32 += 32) { + + float4 sumy = {0.f}; + for (int i = 0; i < 8; ++i) { + yl[i+ 0] = y4[i+ 0]; sumy[0] += yl[i+ 0]; + yl[i+ 8] = y4[i+ 8]; sumy[1] += yl[i+ 8]; + yl[i+16] = y4[i+16]; sumy[2] += yl[i+16]; + yl[i+24] = y4[i+24]; sumy[3] += yl[i+24]; + } + + const int ibl = ib32 / (QK_K / 32); + const int ib = ib32 % (QK_K / 32); + + device const block_iq1_m * xr = x + ibl; + device const uint8_t * qs = xr->qs + 4 * ib; + device const uint8_t * qh = xr->qh + 2 * ib; + device const uint16_t * sc = (device const uint16_t *)xr->scales; + + for (int row = 0; row < N_DST; row++) { + scale.u16 = (sc[0] >> 12) | ((sc[1] >> 8) & 0x00f0) | ((sc[2] >> 4) & 0x0f00) | (sc[3] & 0xf000); + + constant uint8_t * grid1 = (constant uint8_t *)(iq1s_grid_gpu + (qs[0] | ((qh[0] << 8) & 0x700))); + constant uint8_t * grid2 = (constant uint8_t *)(iq1s_grid_gpu + (qs[1] | ((qh[0] << 4) & 0x700))); + constant uint8_t * grid3 = (constant uint8_t *)(iq1s_grid_gpu + (qs[2] | ((qh[1] << 8) & 0x700))); + constant uint8_t * grid4 = (constant uint8_t *)(iq1s_grid_gpu + (qs[3] | ((qh[1] << 4) & 0x700))); + + float2 sum = {0.f}; + for (int j = 0; j < 4; ++j) { + sum[0] += yl[j+ 0] * (grid1[j] & 0xf) + yl[j+ 4] * (grid1[j] >> 4) + + yl[j+ 8] * (grid2[j] & 0xf) + yl[j+12] * (grid2[j] >> 4); + sum[1] += yl[j+16] * (grid3[j] & 0xf) + yl[j+20] * (grid3[j] >> 4) + + yl[j+24] * (grid4[j] & 0xf) + yl[j+28] * (grid4[j] >> 4); + } + const float delta1 = sumy[0] * (qh[0] & 0x08 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA) + sumy[1] * (qh[0] & 0x80 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + const float delta2 = sumy[2] * (qh[1] & 0x08 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA) + sumy[3] * (qh[1] & 0x80 ? -1 - IQ1M_DELTA : -1 + IQ1M_DELTA); + + sumf[row] += (float)scale.f16 * ((sum[0] + delta1) * (2*((sc[ib/2] >> (6*(ib%2)+0)) & 7) + 1) + + (sum[1] + delta2) * (2*((sc[ib/2] >> (6*(ib%2)+3)) & 7) + 1)); + + sc += nb01/2; + qs += nb01; + qh += nb01; + } + + y4 += 32 * 32; + } + + for (int row = 0; row < N_DST; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +void kernel_mul_mv_iq4_nl_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values_i8, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + threadgroup float * shared_values = (threadgroup float *)shared_values_i8; + const int nb = ne00/QK4_NL; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + const int first_row = (r0 * 2 + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq4_nl * x = (device const block_iq4_nl *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + const int ix = tiisg/2; // 0...15 + const int it = tiisg%2; // 0 or 1 + + shared_values[tiisg] = kvalues_iq4nl_f[tiisg%16]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + float4 yl[4]; + float sumf[2]={0.f}, all_sum; + + device const float * yb = y + ix * QK4_NL + it * 8; + + uint32_t aux32[2]; + thread const uint8_t * q8 = (thread const uint8_t *)aux32; + + float4 qf1, qf2; + + for (int ib = ix; ib < nb; ib += 16) { + + device const float4 * y4 = (device const float4 *)yb; + yl[0] = y4[0]; yl[1] = y4[4]; yl[2] = y4[1]; yl[3] = y4[5]; + + for (int row = 0; row < 2 && first_row + row < ne01; ++row) { + + device const block_iq4_nl & xb = x[row*nb + ib]; + device const uint16_t * q4 = (device const uint16_t *)(xb.qs + 8*it); + + float4 acc1 = {0.f}, acc2 = {0.f}; + + aux32[0] = q4[0] | (q4[1] << 16); + aux32[1] = (aux32[0] >> 4) & 0x0f0f0f0f; + aux32[0] &= 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[0] * qf1; + acc2 += yl[1] * qf2; + + aux32[0] = q4[2] | (q4[3] << 16); + aux32[1] = (aux32[0] >> 4) & 0x0f0f0f0f; + aux32[0] &= 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[2] * qf1; + acc2 += yl[3] * qf2; + + acc1 += acc2; + + sumf[row] += (float)xb.d * (acc1[0] + acc1[1] + acc1[2] + acc1[3]); + + } + + yb += 16 * QK4_NL; + } + + for (int row = 0; row < 2 && first_row + row < ne01; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +void kernel_mul_mv_iq4_xs_f32_impl( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values_i8, + uint3 tgpig, + uint tiisg, + uint sgitg) { + + threadgroup float * shared_values = (threadgroup float *)shared_values_i8; + const int nb = ne00/QK_K; + const int r0 = tgpig.x; + const int r1 = tgpig.y; + const int im = tgpig.z; + const int first_row = (r0 * 2 + sgitg) * 2; + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + const uint offset0 = first_row*nb01 + (i12/r2)*nb02 + (i13/r3)*nb03; + const uint offset1 = r1*nb11 + (i12 )*nb12 + (i13 )*nb13; + + device const block_iq4_xs * x = (device const block_iq4_xs *) ((device char *) src0 + offset0); + device const float * y = (device const float *) ((device char *) src1 + offset1); + + const int ix = tiisg/16; // 0 or 1 + const int it = tiisg%16; // 0...15 + const int ib = it/2; + const int il = it%2; + + shared_values[tiisg] = kvalues_iq4nl_f[tiisg%16]; + threadgroup_barrier(mem_flags::mem_threadgroup); + + float4 yl[4]; + float sumf[2]={0.f}, all_sum; + + device const float * yb = y + ix * QK_K + ib * 32 + il * 8; + + uint32_t aux32[2]; + thread const uint8_t * q8 = (thread const uint8_t *)aux32; + + float4 qf1, qf2; + + for (int ibl = ix; ibl < nb; ibl += 2) { + + device const float4 * y4 = (device const float4 *)yb; + yl[0] = y4[0]; yl[1] = y4[4]; yl[2] = y4[1]; yl[3] = y4[5]; + + for (int row = 0; row < 2; ++row) { + + device const block_iq4_xs & xb = x[row*nb + ibl]; + device const uint32_t * q4 = (device const uint32_t *)(xb.qs + 16*ib + 8*il); + + float4 acc1 = {0.f}, acc2 = {0.f}; + + aux32[0] = q4[0] & 0x0f0f0f0f; + aux32[1] = (q4[0] >> 4) & 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[0] * qf1; + acc2 += yl[1] * qf2; + + aux32[0] = q4[1] & 0x0f0f0f0f; + aux32[1] = (q4[1] >> 4) & 0x0f0f0f0f; + qf1 = {shared_values[q8[0]], shared_values[q8[1]], shared_values[q8[2]], shared_values[q8[3]]}; + qf2 = {shared_values[q8[4]], shared_values[q8[5]], shared_values[q8[6]], shared_values[q8[7]]}; + acc1 += yl[2] * qf1; + acc2 += yl[3] * qf2; + + acc1 += acc2; + + const int ls = (((xb.scales_l[ib/2] >> 4*(ib%2)) & 0xf) | (((xb.scales_h >> 2*ib) & 3) << 4)) - 32; + sumf[row] += (float)xb.d * ls * (acc1[0] + acc1[1] + acc1[2] + acc1[3]); + + } + + yb += 2 * QK_K; + } + + for (int row = 0; row < 2; ++row) { + all_sum = simd_sum(sumf[row]); + if (tiisg == 0) { + dst[r1*ne0 + im*ne0*ne1 + first_row + row] = all_sum; + } + } +} + +[[host_name("kernel_mul_mv_iq1_s_f32")]] +kernel void kernel_mul_mv_iq1_s_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq1_s_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +[[host_name("kernel_mul_mv_iq1_m_f32")]] +kernel void kernel_mul_mv_iq1_m_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq1_m_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, nullptr, tgpig, tiisg, sgitg); +} + +[[host_name("kernel_mul_mv_iq4_nl_f32")]] +kernel void kernel_mul_mv_iq4_nl_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq4_nl_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +[[host_name("kernel_mul_mv_iq4_xs_f32")]] +kernel void kernel_mul_mv_iq4_xs_f32( + device const void * src0, + device const float * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + kernel_mul_mv_iq4_xs_f32_impl(src0, src1, dst, ne00, ne01, ne02, nb01, nb02, nb03, ne10, ne12, nb11, nb12, nb13, ne0, ne1, r2, r3, shared_values, tgpig, tiisg, sgitg); +} + +template +kernel void kernel_get_rows_q( + device const void * src0, + device const void * src1, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg [[threads_per_threadgroup]]) { + const int64_t i10 = tgpig.x; + const int64_t i11 = tgpig.y; + + const int64_t r = ((const device int32_t *) ((const device char *) src1 + i11*nb11 + i10*nb10))[0]; + + const int64_t i02 = i11; + + for (int64_t ind = tiitg; ind < ne00/16; ind += tptg.x) { + float4x4 temp; + dequantize_func(((device const block_q *) ((const device char *) src0 + r*nb01 + i02*nb02)) + ind/nl, ind%nl, temp); + *(((device float4x4 *) ((device char *) dst + i11*nb2 + i10*nb1)) + ind) = temp; + } +} + +template +kernel void kernel_get_rows_f( + device const void * src0, + device const void * src1, + device float * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg [[threads_per_threadgroup]]) { + const int64_t i10 = tgpig.x; + const int64_t i11 = tgpig.y; + + const int64_t r = ((const device int32_t *) ((const device char *) src1 + i11*nb11 + i10*nb10))[0]; + + const int64_t i02 = i11; + + for (int ind = tiitg; ind < ne00; ind += tptg.x) { + (( device float *) (( device char *) dst + i11*nb2 + i10*nb1))[ind] = + ((const device T *) ((const device char *) src0 + i02*nb02 + r*nb01))[ind]; + } +} + +kernel void kernel_get_rows_i32( + device const void * src0, + device const void * src1, + device int32_t * dst, + constant int64_t & ne00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb1, + constant uint64_t & nb2, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint3 tptg [[threads_per_threadgroup]]) { + const int64_t i10 = tgpig.x; + const int64_t i11 = tgpig.y; + + const int64_t r = ((const device int32_t *) ((const device char *) src1 + i11*nb11 + i10*nb10))[0]; + + const int64_t i02 = i11; + + for (int ind = tiitg; ind < ne00; ind += tptg.x) { + (( device int32_t *) (( device char *) dst + i11*nb2 + i10*nb1))[ind] = + ((const device int32_t *) ((const device char *) src0 + i02*nb02 + r*nb01))[ind]; + } +} + + +#define BLOCK_SIZE_M 64 // 8 simdgroup matrices from matrix A +#define BLOCK_SIZE_N 32 // 4 simdgroup matrices from matrix B +#define BLOCK_SIZE_K 32 +#define THREAD_MAT_M 4 // each thread take 4 simdgroup matrices from matrix A +#define THREAD_MAT_N 2 // each thread take 2 simdgroup matrices from matrix B +#define THREAD_PER_BLOCK 128 +#define THREAD_PER_ROW 2 // 2 thread for each row in matrix A to load numbers +#define THREAD_PER_COL 4 // 4 thread for each row in matrix B to load numbers +#define SG_MAT_SIZE 64 // simdgroup matrix is of shape 8x8 +#define SG_MAT_ROW 8 + +// each block_q contains 16*nl weights +template +kernel void kernel_mul_mm(device const uchar * src0, + device const uchar * src1, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne02, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant uint64_t & nb03, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant uint64_t & nb13, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint & r2, + constant uint & r3, + threadgroup uchar * shared_memory [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + threadgroup T * sa = (threadgroup T *)(shared_memory); + threadgroup float * sb = (threadgroup float *)(shared_memory + 4096); + + const uint r0 = tgpig.y; + const uint r1 = tgpig.x; + const uint im = tgpig.z; + + // if this block is of 64x32 shape or smaller + short n_rows = (ne0 - r0*BLOCK_SIZE_M < BLOCK_SIZE_M) ? (ne0 - r0*BLOCK_SIZE_M) : BLOCK_SIZE_M; + short n_cols = (ne1 - r1*BLOCK_SIZE_N < BLOCK_SIZE_N) ? (ne1 - r1*BLOCK_SIZE_N) : BLOCK_SIZE_N; + + // a thread shouldn't load data outside of the matrix + short thread_row = ((short)tiitg/THREAD_PER_ROW) < n_rows ? ((short)tiitg/THREAD_PER_ROW) : n_rows - 1; + short thread_col = ((short)tiitg/THREAD_PER_COL) < n_cols ? ((short)tiitg/THREAD_PER_COL) : n_cols - 1; + + simdgroup_T8x8 ma[4]; + simdgroup_float8x8 mb[2]; + simdgroup_float8x8 mc[8]; + + for (short i = 0; i < 8; i++){ + mc[i] = make_filled_simdgroup_matrix(0.f); + } + + short il = (tiitg % THREAD_PER_ROW); + + const uint i12 = im%ne12; + const uint i13 = im/ne12; + + uint offset0 = (i12/r2)*nb02 + (i13/r3)*nb03; + ushort offset1 = il/nl; + + device const block_q * x = (device const block_q *)(src0 + (r0*BLOCK_SIZE_M + thread_row)*nb01 + offset0) + offset1; + device const float * y = (device const float *)(src1 + + nb13 * i13 + + nb12 * i12 + + nb11 * (r1 * BLOCK_SIZE_N + thread_col) + + nb10 * (BLOCK_SIZE_K / THREAD_PER_COL * (tiitg % THREAD_PER_COL))); + + for (int loop_k = 0; loop_k < ne00; loop_k += BLOCK_SIZE_K) { + // load data and store to threadgroup memory + T4x4 temp_a; + dequantize_func(x, il, temp_a); + threadgroup_barrier(mem_flags::mem_threadgroup); + + #pragma unroll(16) + for (short i = 0; i < 16; i++) { + *(sa + SG_MAT_SIZE * ((tiitg/THREAD_PER_ROW/8) \ + + (tiitg%THREAD_PER_ROW)*16 + (i/8)*8) \ + + (tiitg/THREAD_PER_ROW)%8 + (i&7)*8) = temp_a[i/4][i%4]; + } + + *(threadgroup float2x4 *)(sb + (tiitg % THREAD_PER_COL)*8*32 + 8*(tiitg/THREAD_PER_COL)) = *((device float2x4 *) y); + + il = (il + 2 < nl) ? il + 2 : il % 2; + x = (il < 2) ? x + (2+nl-1)/nl : x; + y += BLOCK_SIZE_K; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // load matrices from threadgroup memory and conduct outer products + threadgroup T * lsma = (sa + THREAD_MAT_M*SG_MAT_SIZE*(sgitg%2)); + threadgroup float * lsmb = (sb + THREAD_MAT_N*SG_MAT_SIZE*(sgitg/2)); + + #pragma unroll(4) + for (short ik = 0; ik < BLOCK_SIZE_K / 8; ik++) { + #pragma unroll(4) + for (short i = 0; i < 4; i++) { + simdgroup_load(ma[i], lsma + SG_MAT_SIZE * i); + } + simdgroup_barrier(mem_flags::mem_none); + #pragma unroll(2) + for (short i = 0; i < 2; i++) { + simdgroup_load(mb[i], lsmb + SG_MAT_SIZE * i); + } + + lsma += BLOCK_SIZE_M/SG_MAT_ROW * SG_MAT_SIZE; + lsmb += BLOCK_SIZE_N/SG_MAT_ROW * SG_MAT_SIZE; + + #pragma unroll(8) + for (short i = 0; i < 8; i++){ + simdgroup_multiply_accumulate(mc[i], mb[i/4], ma[i%4], mc[i]); + } + } + } + + if ((r0 + 1) * BLOCK_SIZE_M <= ne0 && (r1 + 1) * BLOCK_SIZE_N <= ne1) { + device float * C = dst + (BLOCK_SIZE_M * r0 + 32 * (sgitg & 1)) \ + + (BLOCK_SIZE_N * r1 + 16 * (sgitg >> 1)) * ne0 + im*ne1*ne0; + for (short i = 0; i < 8; i++) { + simdgroup_store(mc[i], C + 8 * (i%4) + 8 * ne0 * (i/4), ne0); + } + } else { + // block is smaller than 64x32, we should avoid writing data outside of the matrix + threadgroup_barrier(mem_flags::mem_threadgroup); + threadgroup float * temp_str = ((threadgroup float *) shared_memory) \ + + 32 * (sgitg&1) + (16 * (sgitg>>1))*BLOCK_SIZE_M; + for (short i = 0; i < 8; i++) { + simdgroup_store(mc[i], temp_str + 8*(i%4) + 8*BLOCK_SIZE_M*(i/4), BLOCK_SIZE_M); + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + if (sgitg == 0) { + for (int j = tiitg; j < n_cols; j += BLOCK_SIZE_N) { + device float * D = dst + (r0*BLOCK_SIZE_M) + (r1*BLOCK_SIZE_N + j)*ne0 + im*ne1*ne0; + device float4 * D4 = (device float4 *) D; + + threadgroup float * C = temp_str + (j*BLOCK_SIZE_M); + threadgroup float4 * C4 = (threadgroup float4 *) C; + + int i = 0; + for (; i < n_rows/4; i++) { + *(D4 + i) = *(C4 + i); + } + + i *= 4; + for (; i < n_rows; i++) { + *(D + i) = *(C + i); + } + } + } + } +} + +// same as kernel_mul_mm_impl, but src1 and dst are accessed via indices stored in rowids +template +void kernel_mul_mm_id_impl( + device const uchar * src0, + device const uchar * src1, + threadgroup ushort2 * rowids, + device float * dst, + constant int64_t & ne00, + constant int64_t & ne02, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne11, + constant int64_t & ne12, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant int64_t & ne0, + int64_t ne1, + int64_t ne0ne1, + threadgroup uchar * shared_memory, + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + threadgroup half * sa = (threadgroup half *)(shared_memory); + threadgroup float * sb = (threadgroup float *)(shared_memory + 4096); + + const uint r0 = tgpig.y; + const uint r1 = tgpig.x; + + if (r1 * BLOCK_SIZE_N >= ne1) return; + + // if this block is of 64x32 shape or smaller + short n_rows = (ne0 - r0 * BLOCK_SIZE_M < BLOCK_SIZE_M) ? (ne0 - r0 * BLOCK_SIZE_M) : BLOCK_SIZE_M; + short n_cols = (ne1 - r1 * BLOCK_SIZE_N < BLOCK_SIZE_N) ? (ne1 - r1 * BLOCK_SIZE_N) : BLOCK_SIZE_N; + + // a thread shouldn't load data outside of the matrix + short thread_row = ((short)tiitg/THREAD_PER_ROW) < n_rows ? ((short)tiitg/THREAD_PER_ROW) : n_rows - 1; + short thread_col = ((short)tiitg/THREAD_PER_COL) < n_cols ? ((short)tiitg/THREAD_PER_COL) : n_cols - 1; + + simdgroup_half8x8 ma[4]; + simdgroup_float8x8 mb[2]; + simdgroup_float8x8 c_res[8]; + for (int i = 0; i < 8; i++){ + c_res[i] = make_filled_simdgroup_matrix(0.f); + } + short il = (tiitg % THREAD_PER_ROW); + + ushort offset1 = il/nl; + + threadgroup const auto & id = rowids[r1 * BLOCK_SIZE_N + thread_col]; + + device const block_q * x = (device const block_q *)(src0 + (r0 * BLOCK_SIZE_M + thread_row) * nb01) + offset1; + device const float * y = (device const float *)(src1 + + nb12 * id[1] + + nb11 * (id[0] % ne11) + + nb10 * (BLOCK_SIZE_K / THREAD_PER_COL * (tiitg % THREAD_PER_COL))); + + for (int loop_k = 0; loop_k < ne00; loop_k += BLOCK_SIZE_K) { + // load data and store to threadgroup memory + half4x4 temp_a; + dequantize_func(x, il, temp_a); + threadgroup_barrier(mem_flags::mem_threadgroup); + + for (int i = 0; i < 16; i++) { + *(sa + SG_MAT_SIZE * ((tiitg / THREAD_PER_ROW / 8) \ + + (tiitg % THREAD_PER_ROW) * 16 + (i / 8) * 8) \ + + (tiitg / THREAD_PER_ROW) % 8 + (i & 7) * 8) = temp_a[i/4][i%4]; + } + + *(threadgroup float2x4 *)(sb + (tiitg % THREAD_PER_COL) * 8 * 32 + 8 * (tiitg / THREAD_PER_COL)) = *((device float2x4 *)y); + + il = (il + 2 < nl) ? il + 2 : il % 2; + x = (il < 2) ? x + (2+nl-1)/nl : x; + y += BLOCK_SIZE_K; + + threadgroup_barrier(mem_flags::mem_threadgroup); + + // load matrices from threadgroup memory and conduct outer products + threadgroup half * lsma = (sa + THREAD_MAT_M * SG_MAT_SIZE * (sgitg % 2)); + threadgroup float * lsmb = (sb + THREAD_MAT_N * SG_MAT_SIZE * (sgitg / 2)); + + for (int ik = 0; ik < BLOCK_SIZE_K / 8; ik++) { + for (int i = 0; i < 4; i++) { + simdgroup_load(ma[i], lsma + SG_MAT_SIZE * i); + } + simdgroup_barrier(mem_flags::mem_none); + for (int i = 0; i < 2; i++) { + simdgroup_load(mb[i], lsmb + SG_MAT_SIZE * i); + } + + lsma += BLOCK_SIZE_M / SG_MAT_ROW * SG_MAT_SIZE; + lsmb += BLOCK_SIZE_N / SG_MAT_ROW * SG_MAT_SIZE; + + for (int i = 0; i < 8; i++){ + simdgroup_multiply_accumulate(c_res[i], mb[i/4], ma[i%4], c_res[i]); + } + } + } + + { + threadgroup_barrier(mem_flags::mem_threadgroup); + threadgroup float * temp_str = ((threadgroup float *)shared_memory) \ + + 32 * (sgitg&1) + (16 * (sgitg>>1)) * BLOCK_SIZE_M; + for (int i = 0; i < 8; i++) { + simdgroup_store(c_res[i], temp_str + 8 * (i%4) + 8 * BLOCK_SIZE_M * (i/4), BLOCK_SIZE_M); + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + device float * C = dst + (BLOCK_SIZE_M * r0); + if (sgitg == 0) { + for (int j = tiitg; j < n_cols; j += BLOCK_SIZE_N) { + threadgroup const auto & jid = rowids[r1 * BLOCK_SIZE_N + j]; + int joff = jid[0] * ne0 + jid[1] * ne0ne1; + for (int i = 0; i < n_rows; i++) { + *(C + i + joff) = *(temp_str + i + j * BLOCK_SIZE_M); + } + } + } + } +} + +template +kernel void kernel_mul_mm_id( + device const uchar * src0s, + device const uchar * src1, + device float * dst, + device const uchar * ids, + constant int64_t & nei0, + constant int64_t & nei1, + constant uint64_t & nbi1, + constant int64_t & ne00, + constant int64_t & ne02, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint64_t & nb1, + threadgroup uchar * shared_memory [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + + const int32_t i02 = tgpig.z; + tgpig.z = 0; + + device const uchar * src0 = src0s + i02*nb02; + + // row indices + threadgroup ushort2 * rowids = (threadgroup ushort2 *)(shared_memory + 8192); + + // TODO: parallelize this loop + int64_t _ne1 = 0; + for (ushort ii1 = 0; ii1 < nei1; ii1++) { + for (ushort ii0 = 0; ii0 < nei0; ii0++) { + int32_t id = ((device int32_t *) (ids + ii1*nbi1))[ii0]; + if (id == i02) { + //if (tiitg == 0) { + rowids[_ne1] = ushort2(ii0, ii1); + //} + _ne1++; + } + } + } + + threadgroup_barrier(mem_flags::mem_threadgroup); + + kernel_mul_mm_id_impl( + src0, + src1, + rowids, + dst, + ne00, + ne02, + nb01, + nb02, + ne11, + ne12, + nb10, + nb11, + nb12, + ne0, + _ne1, + ne0*ne1, + shared_memory, + tgpig, + tiitg, + sgitg); +} + +#define QK_NL 16 + +// +// get rows +// + +typedef decltype(kernel_get_rows_f) get_rows_f_t; + +template [[host_name("kernel_get_rows_f32")]] kernel get_rows_f_t kernel_get_rows_f; +template [[host_name("kernel_get_rows_f16")]] kernel get_rows_f_t kernel_get_rows_f; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_get_rows_bf16")]] kernel get_rows_f_t kernel_get_rows_f; +#endif + +typedef decltype(kernel_get_rows_q) get_rows_q_t; + +template [[host_name("kernel_get_rows_q4_0")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q4_1")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q5_0")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q5_1")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q8_0")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q2_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q3_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q4_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q5_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_q6_K")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq2_xxs")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq2_xs")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq3_xxs")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq3_s")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq2_s")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq1_s")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq1_m")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq4_nl")]] kernel get_rows_q_t kernel_get_rows_q; +template [[host_name("kernel_get_rows_iq4_xs")]] kernel get_rows_q_t kernel_get_rows_q; + +// +// matrix-matrix multiplication +// + +typedef decltype(kernel_mul_mm) mat_mm_t; + +template [[host_name("kernel_mul_mm_f32_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_f16_f32")]] kernel mat_mm_t kernel_mul_mm; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mm_bf16_f32")]] kernel mat_mm_t kernel_mul_mm; +#endif +template [[host_name("kernel_mul_mm_q4_0_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q4_1_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q5_0_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q5_1_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q8_0_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q2_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q3_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q4_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q5_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_q6_K_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq2_xxs_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq2_xs_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq3_xxs_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq3_s_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq2_s_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq1_s_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq1_m_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq4_nl_f32")]] kernel mat_mm_t kernel_mul_mm; +template [[host_name("kernel_mul_mm_iq4_xs_f32")]] kernel mat_mm_t kernel_mul_mm; + +// +// indirect matrix-matrix multiplication +// + +typedef decltype(kernel_mul_mm_id) mat_mm_id_t; + +template [[host_name("kernel_mul_mm_id_f32_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_f16_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mm_id_bf16_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +#endif +template [[host_name("kernel_mul_mm_id_q4_0_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q4_1_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q5_0_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q5_1_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q8_0_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q2_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q3_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q4_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q5_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_q6_K_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq2_xxs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq2_xs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq3_xxs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq3_s_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq2_s_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq1_s_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq1_m_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq4_nl_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; +template [[host_name("kernel_mul_mm_id_iq4_xs_f32")]] kernel mat_mm_id_t kernel_mul_mm_id; + +// +// matrix-vector multiplication +// + +typedef void (kernel_mul_mv_impl_t)( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + uint3 tgpig, + uint tiisg); + +typedef void (kernel_mul_mv2_impl_t)( + device const void * src0, + device const float * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne12, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiisg, + uint sgitg); + +template +void mmv_fn( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + int64_t ne13, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint64_t nb1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiitg, + uint tiisg, + uint sgitg) { + impl_fn(src0,src1,dst,ne00,ne01,ne02,nb00,nb01,nb02,nb03,ne10,ne11,ne12,nb10,nb11,nb12,nb13,ne0,ne1,r2,r3,tgpig,tiisg); +} + +template +void mmv_fn( + device const char * src0, + device const char * src1, + device float * dst, + int64_t ne00, + int64_t ne01, + int64_t ne02, + uint64_t nb00, + uint64_t nb01, + uint64_t nb02, + uint64_t nb03, + int64_t ne10, + int64_t ne11, + int64_t ne12, + int64_t ne13, + uint64_t nb10, + uint64_t nb11, + uint64_t nb12, + uint64_t nb13, + int64_t ne0, + int64_t ne1, + uint64_t nb1, + uint r2, + uint r3, + threadgroup int8_t * shared_values, + uint3 tgpig, + uint tiitg, + uint tiisg, + uint sgitg) { + impl_fn(src0,(const device float *)src1,dst,ne00,ne01,ne02,nb01,nb02,nb03,ne10,ne12,nb11,nb12,nb13,ne0,ne1,r2,r3,shared_values,tgpig,tiisg,sgitg); +} + +typedef decltype(mmv_fn>) mul_mv_impl_fn_t; + +template +kernel void kernel_mul_mv_id( + device const char * src0s, + device const char * src1, + device float * dst, + device const char * ids, + constant int64_t & nei0, + constant int64_t & nei1, + constant uint64_t & nbi1, + constant int64_t & ne00, + constant int64_t & ne01, + constant int64_t & ne02, + constant uint64_t & nb00, + constant uint64_t & nb01, + constant uint64_t & nb02, + constant int64_t & ne10, + constant int64_t & ne11, + constant int64_t & ne12, + constant int64_t & ne13, + constant uint64_t & nb10, + constant uint64_t & nb11, + constant uint64_t & nb12, + constant int64_t & ne0, + constant int64_t & ne1, + constant uint64_t & nb1, + threadgroup int8_t * shared_values [[threadgroup(0)]], + uint3 tgpig[[threadgroup_position_in_grid]], + uint tiitg[[thread_index_in_threadgroup]], + uint tiisg[[thread_index_in_simdgroup]], + uint sgitg[[simdgroup_index_in_threadgroup]]) { + const int iid1 = tgpig.z/nei0; + const int idx = tgpig.z%nei0; + + tgpig.z = 0; + + const int32_t i02 = ((device const int32_t *) (ids + iid1*nbi1))[idx]; + + const int64_t i11 = idx % ne11; + const int64_t i12 = iid1; + + const int64_t i1 = idx; + const int64_t i2 = i12; + + device const char * src0_cur = src0s + i02*nb02; + device const char * src1_cur = src1 + i11*nb11 + i12*nb12; + device float * dst_cur = dst + i1*ne0 + i2*ne1*ne0; + + impl_fn( + /* src0 */ src0_cur, + /* src1 */ src1_cur, + /* dst */ dst_cur, + /* ne00 */ ne00, + /* ne01 */ ne01, + /* ne02 */ 1, // ne02, + /* nb00 */ nb00, + /* nb01 */ nb01, + /* nb02 */ nb02, + /* nb03 */ nb02, // ne02 == 1 + /* ne10 */ ne10, + /* ne11 */ 1, // ne11, + /* ne12 */ 1, // ne12, + /* ne13 */ 1, // ne13, + /* nb10 */ nb10, + /* nb11 */ nb11, + /* nb12 */ nb12, + /* ne13 */ nb12, // ne12 == 1 + /* ne0 */ ne0, + /* ne1 */ 1, // ne1, + /* nb1 */ nb1, + /* r2 */ 1, + /* r3 */ 1, + shared_values, + tgpig, + tiitg, + tiisg, + sgitg); +} + +typedef decltype(kernel_mul_mv_id>>) kernel_mul_mv_id_t; + +template [[host_name("kernel_mul_mv_id_f32_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_f16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +#if defined(GGML_METAL_USE_BF16) +template [[host_name("kernel_mul_mv_id_bf16_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +#endif +template [[host_name("kernel_mul_mv_id_q8_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q4_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q4_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_0_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q5_1_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>>; +template [[host_name("kernel_mul_mv_id_q2_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q3_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q4_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q5_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_q6_K_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq1_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq1_m_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq2_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq2_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq3_xxs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq3_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq2_s_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq4_nl_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; +template [[host_name("kernel_mul_mv_id_iq4_xs_f32")]] kernel kernel_mul_mv_id_t kernel_mul_mv_id>; + +kernel void kernel_pool_2d_max_f32( + device const float * src0, + device float * dst, + constant int32_t & k0, + constant int32_t & k1, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int64_t & IH, + constant int64_t & IW, + constant int64_t & OH, + constant int64_t & OW, + constant int64_t & parallel_elements, + uint gid[[thread_position_in_grid]]) { + + if (gid >= parallel_elements) { + return; + } + + const int idx = gid; + const int I_HW = IH * IW; + const int O_HW = OH * OW; + const int nc = idx / O_HW; + const int cur_oh = idx % O_HW / OW; + const int cur_ow = idx % O_HW % OW; + + device const float * i_ptr = src0 + nc * I_HW; + device float * o_ptr = dst + nc * O_HW; + + const int start_h = cur_oh * s1 - p1; + const int bh = MAX(0, start_h); + const int eh = MIN(IH, start_h + k1); + const int start_w = cur_ow * s0 - p0; + const int bw = MAX(0, start_w); + const int ew = MIN(IW, start_w + k0); + + float res = -INFINITY; + + for (int i = bh; i < eh; i += 1) { + for (int j = bw; j < ew; j += 1) { + res = MAX(res, i_ptr[i * IW + j]); + } + } + + o_ptr[cur_oh * OW + cur_ow] = res; +} + +kernel void kernel_pool_2d_avg_f32( + device const float * src0, + device float * dst, + constant int32_t & k0, + constant int32_t & k1, + constant int32_t & s0, + constant int32_t & s1, + constant int32_t & p0, + constant int32_t & p1, + constant int64_t & IH, + constant int64_t & IW, + constant int64_t & OH, + constant int64_t & OW, + constant int64_t & parallel_elements, + uint gid[[thread_position_in_grid]]) { + + if (gid >= parallel_elements) { + return; + } + + const int idx = gid; + const int I_HW = IH * IW; + const int O_HW = OH * OW; + const int nc = idx / O_HW; + const int cur_oh = idx % O_HW / OW; + const int cur_ow = idx % O_HW % OW; + + device const float * i_ptr = src0 + nc * I_HW; + device float * o_ptr = dst + nc * O_HW; + + const int start_h = cur_oh * s1 - p1; + const int bh = MAX(0, start_h); + const int eh = MIN(IH, start_h + k1); + const int start_w = cur_ow * s0 - p0; + const int bw = MAX(0, start_w); + const int ew = MIN(IW, start_w + k0); + // const float scale = 1. / ((eh - bh) * (ew - bw)); + const float scale = 1. / (k0 * k1); + + float res = 0; + + for (int i = bh; i < eh; i += 1) { + for (int j = bw; j < ew; j += 1) { + float cur = i_ptr[i * IW + j]; + res += cur * scale; + } + } + + o_ptr[cur_oh * OW + cur_ow] = res; +} diff --git a/enjoy/lib/whisper.cpp/x64/darwin/main b/enjoy/lib/whisper.cpp/x64/darwin/main new file mode 100755 index 0000000000000000000000000000000000000000..e2b5cb2617016007b1b6a9042d05210e5150fbf0 GIT binary patch literal 2028080 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%0A-JdE3_bVcUE$VFy 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 VZlS-^xCr?KK(aCG@(VOHxY5PK;_ty3f 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%0AL#rCU z0DFmn4&PM}5fQQ-M+w1x+b%9u#Ixq>#|&}NOUgz@8e zd&ITzN_e!qWIJ=fn@Qm=BUEr1?h**O+2J z1K%}g;)*DH>nbse~&d049J+As@6%+H?{uSwuPm|qHq?ydeX?Qt6{>dWv>H_uFm zo%fEF4W#}rzb!KVn9V9fud;zhC)D!foyWfhTNKlQiTQlWQqI7=HQw?}dOzAQ(VCsc zkzKRZ%B4DoXi}>WJ%O>Mo`9L1h#j+*AI(`AdEwju(^$*Ea#Pe38DrlkbkfqsJE+$^ z@rbJCTG^xp(K{zl@XUdeIG>8CTeg{d{^4(gEadgOKwbq9**Qfrv-1?miuibm%g1+* zg8ZI+n^A^L>}BPUhk%Twcek&#+hcZ_9vfQMbX%^Z;1B^NX<| z+?bEz7vn?x_BOwL`SmR7houti{BAB@#XL}y3572*&ut~(|Hysm3sLvDv+Ig^EY2Jk zlz}21g1c&6#leTdfFKJ`sp$T;gI~osj zCmoNhw!+#7!y9gJCY_FiCNzg9mRwdt7~XJ0HhCK-d=}p69j?oKR}QaBj(qtDw>eKI zZP*JvbU>|G8EKsmQQSrvV8R|s+C-x^Dh#uGR@nVXU(l#+3i~o1R*D{iGlZ zJ80YpVsdi4oqJg_DeH}t-cSgano#h-LL1E2x)Y>4+!xNhEamJ}nyflgaVt6ZvedIv zu~IUrn&>o}J9~?xd>kB1BlQ+{5;D|-cwh7}S^h8GQr{VhjE}%eoq^5$x zPXv3vdBFY&uU7A)cs9vux+{gkjMEiRJ6fbt)}y_l|3gyflL8eC-g}GvGM^J`1NOGm79( z)tt{?#FZl+-M&(bBKGB~+OrQi?pz7z){UfwLRQq6CtFBESfrA;8u@1tHMP#EJv&n^ zg3Sh*h*NtD=?pbk?>RvA;$ZWfy3k$rEi(~hz$mM^6SW8lqIJ&ZvrF4dX<)E$MHdii z8>5UKwXJ-)mKA2Xp$4n$A`cC;JqcBAM%?Y+_7^d-IXZqv`>c0hvQIefY|E(_kxZ!> z{Yp*4ety*+zF|Yh4SeN3lD`Ub-Ok~%GqG9**h;}yaGXlv*#@OHz0B9{P#twZ-PQ~nGL#er?HYj3y zj1qW0jmcJHQh$)DweG?osPw*&WR}K2_*?|$KaqWOZi;_Fq@$Uv~_h|Mm11VXVjKjbr@gUq}DM$ItK2KaufRB zaK>0YjPmA5bL9Tz=geh-!qePZxaT_2WORR(xwY^ME5U3lfmaD0v=Xc(K_b6be|Gd` zj^@uNGA`qe)D`sBZR)qX^pKU+We?dNMA%3!?i=s9Vc!K4PTd(vYWz2T^Ylt?L!0}= z){YdtJ5reOzd${EA6qED1oN$3FdwNZJcZoyF)9z?yUO6Z-SLj+m+I~HO3QuOAMq#s z!{oyCyz7YK7=hwFmfR;V*$%3uHHhDIUjyMEwy?gAT0QrrQ1!DErDMjOMMa{hDgUEj ztEy!k5k~WjF8?E!P9e`b zmK*XsW?rM}v&~BIXC+u_B^XQsahwi*D*A*+bmQ-9+UU6^BHJ;&56cq;8CU;;jvjFJ8yRpetYnQUjKbjjYY_ta{3^YgVO-WjzMzTXY@E$}4W2S@ou< zvSv|h!GJ7kRjSPe_2S82GGdP5*-hX+a#@PKmTT7LI&R&A?sB!66jwURw?qATY|8j` z2n{Uv;;%qV=6+%Np}s*6`BhcOd#N>qyHT-Y_IklB$_$P~PtbtdMlO~@I)ZwgBRm-X-z z;nH_a+Qm!_eYlOq7H*Zx?_Clde3y=m-FOY-k-M3Uzv@x&Yo4Vx z*JqrLn^#g;z`F$GBNz-S&(VbZRff|p�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

V}~%#&mh2Q5%=WQ-Sn4E0l^ zii88I^Wo;Tnj?1-wUMI3v0=zkLvh04% z;1c)HVh5kFzrh~Nn;VZLHgrNA4kfO_Ndk0U$>sN7d;+?$q3Id zK{noksH@ehH@uaN7Z@0)nDR4r5c*ahEN+_7)8+WKFj?M9{q}jcx?%K|>hH&Hgix=@ zds}Mh{2iQm8l1^l-ixz=f5oli44gmlUE!0l;n2|z3_1M`k$4^OFpS48P1W`m!Azt@ z?HGpxs#jrqXiI43^% uFzgQi)p6W7KXkSXWLB(O3K@HNHi8j*d{F(@ABLAAgQZb zI*BT@s&Yn3CwJ{d$z-g*K6y?h;F!%+{) zGTK}ifoI}EoYzOO){_HCco+qDDoM4)MR-tt=3wNjQMcnKdq#C5Orx3ya%Fx@&^{NY zGt6`eXPn9QW#DT2+|i(TaIGIgb8piQ9CmSG#C`@|b72#AFYXqBffwq|7iKUr5yMz8 zhuvBbe!6ZMAlTK}=d#o5c6?D#P4ndp947aryYf&6cOW-*2hLa|8jtx|e;79_VE;{H z#5}H_+fj}EH$U@y6g^9$h6yy$Z zyToT|2GSP?%HUL?6_*9lmzp7fx3F+~=a66{c!W+xZbDjE8O~lBeplo`brJlc+ldSo zFT4OgzKeza<)^8ca1R=^h9+Ul2=tifk%eAyjWQF5YE$CghJw(?uzCAna96y7wtl3S zurc=S>ri-V=y?lGDPqIss6=-J&i47maP{p=ntrBp)j^1hjP%@ck&(8%s+SZesy$&s z(YGh^(#Y{B)#5@@*zRd(=4(~^aMm}q#q}sA@Qw}Z!-ipFV>wFDTXnc0K?=Oi7DN4p zpm|UYOeeM5o9+Gs@I=cz9)cKTf}g2vJV56FMv)z*H&@*8`5XL)?fgHp)$rWXT+x~5 zt1TQx6{r-Ta4JuWRh{MopmiMZ+kwdg8%O z$TQVwPl}|B1K1vvns-}MmfObtA+vh%lwV#kD`Q9GI`wRkSfA1_EFXtS35?hy_eWn8 z^~Y3k%v*xG@_<0MOq#fCtS(qKz>QSq50hAzL=Tfm*A+x(94e!xU{^Yh4i|qB`=sf| zVc$R0SSbRFV`XrVAI?pRvLCCn&$qJgsk5gu*}wV}*!PI=6TVyJH&y31qji3CCchi4 z{Df~azp)--E)mT9!^%XcIwTH`@Z2)(Z?H-z!WNv8_pgnMyG;4_Fj{BQ`joBR-2F@x zY@I+s%{YX8$NeSS8XBP@LH061U^wEIKTsDz)gGBcJUu}enFo6Wksv(CixqT&dKS3V ziv9#MrO2t7Ycn_K_E_@f%AI{PH{Y`PCOPqT+j}jm<%NMB$fYrK9DxXj)K~}X&`p8e zWk>n7Kp(hCbN1a15$ygZ6eKAys-wKO@~6I;dvDn*xbL!kh~^J|*<<2HM)a}bL-(T0 z8CTQtOkeg9d&bd>f6ffiRLm(7kAR92Z`9B+T`$p)D9%wZRg#|`1cvrvAHYh!ze{o6 znNnaS{l6QB!Jm5Ha_rwgB$6^!l9WdUBOKgIiP)#jSdZI6I;aIWoToVW_rL8$$I{{l z`w%lWqY=VIA2rhkNU(6#nDc0>G_tmM5BF5uV?z{$XCigEAMK2Y39&FTLkz~)5i#QE zB}vh{ews&G#jb_{JEGe)tskS-qElacm2sK#P6YqWwhN;b2pd2osMSOhb_s$-+ONy@ve@7tvjSZA zUX&yE5RI2^xE(|#rry@fx~Tw%fW)srwX&4?PuGe^eoNEJ16ppopAfk>L$qmX69O`| zCXOA8wz#l23>!z`D9q58P$AkkJ+j%4gck!a73NWv34Th2;1}q@xn;C%IG2C3+kva5 zJEPSRd+_jt%{yv^M(_EOcxlFFFZpLrhIZZ>Zr8X1Ct%W;8kM^*co1gEGwnWYo~kkQ zG74O-GMxK=9)<#P>7aP>ju`h%W~UEX7*447j#sdvNODfbm~l1RI7H*pcp zMjj=O?MwYIxDc1$d?qfx*)A@>!Ff}fGwhpqLH1~Hb_aUA;ZjB%MB#q`g&*>)K8URr z`u=G77v(%wLCsRe7M|(PQxP(7)ONgr<1*fm?4CyM_Hb-2_}C?P^f-1EyrxZNR;nG? zAaYaYrzk29B7LW&;7seeJm(sT&?x33u}w)k;9F{N%WK`0p#(R!rt&(FG-O+8F9tWm z{((lf0m}B^cwOIC9OM0I<^~=H68{)~J&&dFG5WD=KE^+mUwtrn@#ATzGw|~7$FcW? zFRwkGuf5ECya@hM(it}8b`dtkE5fGCWY`qH9yVpZ9yVp69yVpX2%GGGtmyxv?QOuL zs;>S21Oi5jPNGoLHfpSCCB;%uY!gAvzy!|V3}TCwwrH`aSF3HQ%m7wi0y6=QhrzTJ zr7bG$)m!>@i&YdAH333Us{+~Y%pS}E#`RwKQ zl)XHr?B$b`y}a@kMy8%Qjv?)XOi8X-Z#O1vFB2@E+#A(53yzzs1jo(w zJZY!^`Q$z*AxAkKtE!cwoNkTPwIpg_*cM^ca#6QDG3*`Vm4)3;V@r~~K$`%oA;}(Q zP_%X|OxHXlBq^!V^!M$$L$efR%QZ+FCSnG3-r(>f(1W7X2LIkrYD0fl;Axa?)~6uT z?)W+r0+QcdA}0wE?`|or8?sYLK2OQkd(vdOhKm#dDSIVfT(gHRpUT^U2Svk3uR89& z5n3wKSOyJvv#0vkwj*%VF5R#d!JB2Z8`gL$Of{kx{fFN(2nj3AC&C$WXN=p)VRu|f z7;A@NSG26^24AZxepI(S1^tA4s-|%^qA_Tl#IfFr6#`z|lz%0$xiW8sbee6*H%&cl z?quw99uajLisG5%fOzKeG7Pb*1{^-92HIq6=<+L610|3^XTye(r+n3z1g1%XyLm{(*$;AFOeXx%fR z#o0+cj0jw?%XBu_-Q4DZJNa$c9dSFx6>rxT1?w~K82Ff&3mEVDm(l@+{=c~LI61Oh~J@Zo|2y~b4Fd;t`U*)*VJNU|R(Ya{{8TvML@U&#uFIFo79dsJ) z8e+=3y5+K8?0LwP7zhp>&s{?@cLR&D>*<)=nQ<<2GixYhWJaKbGO4)f2wN_MjJI%| zDYqq2Wr!!FkB;}V7Q$4-)^v-=9qyqjTTqENz9i-?+(MF=cf(fY_Li$WA%HQzwAcMk zHt7xcBMq$cYG{*E_4^mod8Fx>IfDvxP%om?v#hF@nN51b+GP8Pkn&Gsy*%1(x`t}G zn4iD@(lt5)5LHT!GpuQka(5bOL@3ij4kn5s;Dk$-zzH`EWPNCvd8Jr|PgEMxox2uz zX&TyZjm$oJ84bd$&*V-~(5*Jej8bTviSmk@TFm9d(1cdEVLif#T%tF97UeRwcdN|j zGBM9^`c<&O$J{D^_dmM@IY&g>#|ib&(Ss$tm|cDZ>%DQjn?9q8+s70gO(?hoKt3Nq>9CQ2lz)zCni9QR^zof!=NoJ}?mry3PX@1z3ResOOVb)Z3o-xqF_ zhzuIV*xm9>Bu3jfMkPIyNkEMEMs#9dm?f>Vt5B0nDlmRxKhDpLnn~xgJ+zdL_onPC zo#0)zkBe)sUi%v(ABIze#@!e5j)>K46p@TT0E)5umL%p?xFvadj1pbr3L##z$)eJ} z*aF0MeQ#?lT&m3D(okAmisuy3KL)3kPztrZu15JE=7gKtVxEaVuRZdCg4Hwg2AVsD zSb=^n=5F+lWwyvKk7h-tWG^i#J1-M^9TCW+54ZrZRxDY}9V*(}aX;<2T&Zlq@s{aa z>$(g7J4}6ix%qRbGsH z>OpZQl{98!8H~R_J~OG44m6|cxGX#5G%n^{KXsT6d@1O_kpTeNCkT*XpF9Ae8?UFv z-0fH;?>UyC8;6lFdoBlEv zjqEdHAdFG2)}Wj2^xWQ{kM787zHr8ZIXU+vHe!?AZQ83+TvJMZL1xyPxXgvketlUV z3WoCdPU);Y$w4|jYn0%6Jf&r2e}MIk$^!|YCfl@IOqLeKughBsBVtDXtoJwbgiT7wA?sHA1X?Kl4ENsES!Oe->qvf@Td3KU1nRys=b5jD(rLav z2Cv^p?YS3v?MXxOunkjdzS{%59@`Sm8ni1-$c&&fHw%vZmNmg!Kg7b-mAFD3YGK-& z6fu|^YT-GM_*_p|avCeuw(AYRd684r?ky5<>=s$81Y1d<70~Or!v@UZ{G)ppT)Ka+ z+1Tx#?yYS$6MgLp{qzzT#H_%8i`t>|os22Oz|niZCVhyZoCW;cj4~8KeJOIAWodnS z@ipEBQ{AUqb0-x)z3l)7VdFcz1-e1$n#mu_+^O0a0>=uVoy>Ac_yqrxzvhN`&7NrM zyL}>c2g0HAcY>@9Y+}wVU~HyFgfVTS)7k+$FNu_H6<_-eRUR~9`DD`)%gJOOQV}YD z0%`DgwKeRGjg4$rKlcYw@8Kl??f>l;2fDn5^_j_iQhWP|43JU=*bS0y@pKu{Pqk0P zEP!DvCJuC_IhVzz)n60woT=-CU&6($;RP=X+29fJaeo|dGTrcnG2E(cSZ``{$Hu~` zd6SCfO?Xf<7+hrblel-q)OhB!%5Zz6vXlH>(ab2!Mz!yadLt_RWoQOz_~Pz0m3z%x zuf*VdblTWSAml1}d3_|@ZXHtuEkWn;ceF+4t)OYs(OyQw8m-wEHx5htMBD|9w6H-V zraSj|vI(a;xc%OR>z|M0`sexVp8%2fP}BRoU@#K9QAM$u&BLGf2HuV!bP1pCz!khT z>kXr4-hvgpwU_A0Ff3TbFPD&awDV~KRuizfqyk?*w=OtOY6V3S!U$%*r2Lg)A`-N@d$b6p6MYQQbHP+;dJP@?$r#9oH{iW?726fI) zP0q+!YEwIH`Y5@C_9VvS!5_6Q-!UcYdi6`m-rn6(Qu{G{>@85?(bktwbfizFIf_d- zL{w>VAksQghdH z`gJof+MB%L^}~+-`2GUrj;)}H@>8_mA39HEQ<=A>o@(#~a>|zR-lS8uV!OdV`c)%T zP~_wwvO|%+B0FCxL{1MP_m1}lo}##Ch?5^ZaSRJKiAm5(Yx1XGjMoUno?2VQ=G4cl zpPJfxRA_1c&(hM?*6c~et=slx!Ux=@P8gxozW(d_(HtG@wIY(tRIm;qfLx9O=HVwBI zb+0Dhj=NV#npHu@(q`}A#q<#m#Q~|-gzAx-NT<3 zzlO~hr+BBoMhRisqFqlWb8HyRIveL!?8Pgv!J4Ql&`YG*tKL~kdRb@XKy+@iEUe&H zCAq?XO2OVk;$5H-w(uiutrNTZ2XD6d`SR;aHD3-S5pz9cQhIlqarLY;CeMUnl@>c( zd3y;_ucSKeT~m!c`FElK_Nd&!Hwz z!g29ij%VaNbZx9=pRu5W3triJckdKYJZ}yoKE!#T{l}I1S8S}qN6(=OmY$9)AMQ~o zcH*m9oqvTtdfB<(*7Yjpq+};v!a2MJ!Veox^0O2X!(~Qm2ZE_lEgIH8y$GTHGZOUZ zA9tc0?Dn=||(YlhV}r1*e$HZUALqtUq^D+&xG!3~M7jW(LiGKA?qG z#A-Ot*b=SzE9b2-_mz0vK`HozQm<017F=OHgzo)z>5^~3vYqa@!`t?jqfOQxt|Aq5 zh0Mh4Ef1GD-nCVZ`{OD;zE1RL8-1{B^kA09c$rv_>Jc8S{FBLlWj_C8<)2LcE6IPQ z@)JEeh%Uciy3@X(QEB;8b<>r6y5s$&kpRcNOFzm)x`lezAF-myh&4Y8TGdmW5!w#h zA6ob&ipa z3C#+KRW`z4RH~*T9Z5tg(Kh3RrgF888)7GzpU4R-V6BI+QOoNoq}pbbW$|Y@PEeY) z6|LKuxDpHH=}JwZ@RIZi`o*L|r3NwTrcW@x-kcK}p}C~K6H3dic+{P9!V;Br)bmjB z1RIzDvK{yYQ}$d^8Fbn`zMzVhSRF_3o>@HD(`PzMuDmjrjX3fzL9sj(G7q6Edfr zfmpFH-i*~LPzWvKGb5Pav;3vEQ00P6Y8@v7NubFXoP|Z&v~CIDI7ln0kUw6vD8=1aiSf8U|+{QF(E;l+E6U#arRlW$&8-^H=`$4x&31O&|`OAFz3pDKB4}xV5klz>6-H~Y3(*+pS1>QnFAXn=b2Jl*x^d?D?6PrXnrRJXQSbaJ!m9Lj zQ5hU-75Paqr)=C{J;|HaRDg^Gb4FX>v{`r$GTG#dMQmIwsi~DJ<${ z^kdRZkG3z?hyIAxawppSSo{bpZ^!A)P*a4aVbce0y}NxzNClQu^B|ebrsp=VZTQW)etu?P4^`S8RC(~xH z$qamrAJs-xz=mwOILK@{iY{x68KN`8dFgqEwuEXd+E1O8h9?wIN=&b>^kG zB-!qeAnHvzlR1$%v%;#F^w9cZ8{8H3>Y`q_)L|zIG`vtjNuJX6WUu`P&C=g;o_}>q ztv8@g*OMa$9Fc(Dz+cwYwmQAf{O);~fmHcQN!*JJqRL5wDq=>>q_49suV_YwR^|89A5(7*P7nJ(1Pw7*%X#rcnnS=EcJF}Lb@};Nl zAh+Jqr*7emlQ8^uwoDF+-b;{E*Deph!_K4grfS5$b4ef4nW`oC!Ncd7(-k?}AI=m( zPwq_3`162BXBJR%=v1^%97D3A%r{C^LiERQwQ-~f7q(Q$JYb3i` zpz8TyVtu}S>_MGNp!2Y~f3cNc>y!t|Uxp{~utg@AnX5Kvf;Fx$4(1ncc6xDfZA7uN zV6(n3?_VtL6Q_Jz*md9r+VMaZ9umq$yW7W4gY)!lb#BG*Rz1!`pHOczHbY-+Ipt1jR>`y|3&i!EK||vN2LO zt!lpUXL&UwlW|;-^yA)KBgQ>Dnwd2i{5fv0Zdk2i)MP?XDk}J(O6~6xO8t_s>>WI! z8B-x82bq%_4G*H>tbN+>CJ}dPl@(T(*AM3MQZ3oQ{L(j-%gY9UUNl=h%OxbBJ38u` zPkEpdx&IOJ9<{?C@-EeNEn32RPx#VP>5Zs&(J)YRt)RO$)OcO-caujp)_o_Gj&bb7 z^(>5{ZO*aIXVo%yZ1)FJ^_xn~Y_!~ppdP^z0moYPG|M$g^(XLgj~-|GF$j;|#Xy^v z2I6a(n5+=rPz7zGV|bv0-WL+hNt?QW|DxFQtiaSM5-%)`7j5sBXGW?kB>o+&eqzwY zX+`l&Q~~U}k^D-mup{<9sMD+KXQu zMzYk#y_`avT%a%hQv5Kvi|W%|@~JdpS8CL*{_a1L*lym1xUjTe;w4frwn~wFDN=W7 zN$92xxxeXUCig6IxM00>KPzZ+4XwC(-`J{LQGJVj(z@c|X0 z#9AuMY_m>aj?rVu~&z9pF!)j6+kmq9CokMC+0EdK1C# z4Qoa=OO%R~KuA6D1L;S2Umw=AeO_tZa%~WEzil>+a_^f5`z~KYnvu&V@|-&+wXRl6 z07V7u1IX2NSYvm)kw(%MYN{qEHLsaX;aJ`l%sco3ct5nXA0OG$AkKj{yJ0f^+D$RZ zn)LI@FL+}Q_H8nC8O4gw(x>+VZ+>^m=OE)zlaCLj@9r6yy^Sw-Gir#-`Xd2}8KLLc zF6-<~>o9dYK(E0SboL6sx9d}s-wr?vKdk)l6R1UG!RW?O zUn@%P9NjqQYh6Xje~3zOUovV-{%;rBBnr#SC`Ge$&{gU#OG^-9lQohIdLj3#9{3ig zYthV#OFwS`%?)XMaNGw_gQ0s{jIA260<3}1opP$O9G0cpyjlz@xdKCML1SA zKG^)0UWPV4=qPhCl3SOTS2jNQ4<+hZo=u(H-uU2+%GN8&UI`8X zqv<-*9nybtgyvke$4G561BT@%;#J!fg5R7&{P#lK*q(kbQQbIdcv145#yP`Hod#)z zBJI7`hqnF-c2DhzQ|T()xRx;|1DP=54oy`4yySXKj2C%jrs@EOl+F5)VyS25d+`R; zmNfB)cdawCVS8?n(ZYGj>1Tm@E|mF|DdFO+jdS|avmK42`W7XhbLaF$@&2B^^U3VZ zWO4mM`@b`-%N@Zv#a(8ZO}k&PfIL)#Tlp~ID@-C2-dD_^r;Ihn2i+o5W~P=~Phs-4S2P=K zq0UgN+3!cj*M~Beu|npLveH$Ls-GIyms)alJ8zbR-GWcWQlv(PHvOLtAC}a!CEaY- zXP!bZgiiNeN=d0_G5IB>-iws_Lq>(|VWA|6cQ8o@GBCWNFgnu7%xyM;?7>)naNKA8?>%Ov*jZ>O$Fne}M)?S`|6)So&1i<; z7P3KHH^lASX8#L7gX8pg-P@rinJUTs$Sk*RdJVjOxRG!QBXQ3EW+XmBM%#NmA3FYX zmi3nRv$>j~LWKTCm3J^^VMQSvC zeV0go;h3JMJzUAqGTOpeYdwuLXE~v!v)?#`AL9_KD75U;V0c|KJ5bi|@z*&lKTvL@ zak(+b8Lux(S9Y?#h%}k=jU|YvU&kx_8{Vfwqui3|VNxh65%cw!ySji(fC0sNcG^q=| zyf4$%-1h3^78%XO06e!G%a-{H>+vmuspt3P-rp0Ndqhsy(&OWp;Qd(?)4>*-Thu_D z(Kc!S5!ZF9bM<31m-yBJl3@(rPW>h22Dn!z?;u+(x^Bt0v;c{55_E$4LN@DHmh7Oo zO|9R-YVWI;Y*0|Tq=O(-Cyri#iO-o|!a#k$yITd zG!+1u>0*pb#8cT8pbm@2}t@^4zsvb`R5`9wO%@}`Dc9uT19sP|PF!Fh>AF7W-2 zcG7cQ=A^T0OjTDyqf}zNjOIS~esKl2X>Q2zJ_GVl^6b0Xuf1DM!5Pc+;yBJTT?gT< zjtr%LFJPYkQbVIwxtWTBOr4%P3H>!Yf>ZEkP#$lQtkw>kT;a?h8|JnTTw=44rBTiO z49#sj@GWV9S)Vtb>(M{rP%(Xh+U*Cq|1{@^YzK7}3GP+|{#Xw2ZzC1Ep7}kqSOH6# zvrNfKU$e1UL2}5qpC&Lf zS2Y{SaZq{sbSdg@s3o{>V0j+eS}GCxC7fqMHydTF$m z9x16HbH~)4S2wa3r`$D0>&RO!BF=+^i?11Jw3?EGK?7)cWF`ybAy(z6uT_fh9;zo$ zgZj)+6@07a2McR9KOANw;5G;w;WPJ$2@5SdALw-Dl`{;)B$}AHnx5-}@$YrVjpbX* zK}IP3X)<2W-;1H6H4}-zwhme{}(l<)@y4H&*AM2&vZEeq^*qAC)3uj{(!XO9)kvo9ujQMKdxZjUCBI;U5 zmZPBJP6d(7h%j{0Dm7NcyUT@59q%ZsbKm!>N43F<*QTNu6G%q!3n4oj}_x(c@S7ZaZm(9YFQ*Lo#oxzG13FFNfB=julZ zM}Dap+6?q_f5PpCMqY$AKAU~)M8k}x1r4niG6|*E5?B|mn*Z+H6AC^Qva6KR{B^^t z#7hWwGC#JS6^@n=aX_BmbG(_5r}(j93QSqg=(005&K^~SJc53@`f-i{fb7CGBX3v* zKn;y8mt^a=6tHqGU;5~PB|VDRvOw$!se&_ z-;0%&)NBjg+t9ok5v@^yPxPml6}kR_#MWD@k<1L35S%dLF){rPVnSQwXN%&~K8j5< zqX2buB}JlduMRWA@Hr;Wo#x9>kH}-y;2Tp#MK_r30->b2RBY8iBu|<_-0qDi3pbUE z77a!G-G;6wWce-t(fQKyBC6Tl&`enTrwMRMd=+NimLy8qw%+ zs{~Rt3k*(g_4{76RT=?Z_^l|DSBtXqsx?T@H3=NkQ4ZyK-x!PpiX&*t$8x}Zn*Zj{ zsS(vSqS+}{Xq=_}b0^a?`?%K8wAR?weqLzqZmfA6PiMF!ia_uEnyZXM^^6Uz&~fPm z^X$*5J2KtrK2E1g4x3LI(MzGqH%zG zDVd^IAFNdm-OMnH8|AgQ|GPCY4p^=q~9;)5S+Y3wA^)RL28HG7Z_ z&Kt}KE3+n}`9V{`eNPq4cu?~$2)(ccvf?C!>GY?i#N6vT95;-Tz@=PM*d9zBv}r== zhc(XbKUBu+_k-;JoA3Ns76vLYM1$Elzp5yCGE*LPK`xDX?ka{6PpjnZ+S&vEf~&Y( z_`8c`-ei`)_CA_!cG1IOWpFWIPo*()zao@maS;@vFb*~moN2r2jzfry?qF&ooWV!Q zPP{ee`i9*PBko%f_XjQE%!TYuuZ7*eMeJS_VECmc?(gclK?3*qiXevT(2ovp33d(g zxEr>)2e-dD?UDo!GI-v17p{(09l`WAM zpsW|>eKN{wA@2W%vi|m?Jj&Y2FntVV)vPO^tZrO2kid`Os#__@;;O|I1g@%<>11%# zI#T~zT=lto|1Y@e%k%#&uA0vD*lpN{9=Pf|1jfBnSD&y;qalxTsxG!Lx)T|F<~ffUgqT zj_W$n{wwS{7q=k07p|~s zAHQ1*?)Xo>dv7a=OY*w_tLlHVr7ULFe9~U>tIT2ck_3n;Kv9^kJ1mM48KC`e?kcr- z&pk|c@A5U_Mw|$jG`bAEOk}32NHvcsJPH@CLgZ?jubP{kSbo zF=l&^W|=FlqUknnQit%#e7VMJ-!NYolV!Px+x08`EB-RbO$lmnm{C;6h zcPC~_jwE*JWuK-mtTuo><_)LjR96FXg(3pWecoyT7aOwL00)T};|4p_Hku1msWYtl zfP+V;R;)O9t7x-Xcq+rtB%JYV zBu8^wNtfvlNb;!5^o&@GcZ9i4&(1>ms>=TwsZl0X=}ry$TG+I}hDv61_lf4YX77F- zrJx3EF6rj_Cop03ei@yF1_$Sx#)KBj67yN-(Z6{H%zyeXYHmBLk2!y*@DhilJ*EIk zL4It=pCnxiWPhwX6+6})^;@Jj7-MXNe{Y#L$cUwNN6>#LXajftV$&W{R+R1TLm2*B z+K!^0ZEno{!76I@8w7#Qi>H}QJz9(-O0E`b%2kF5*Ridh5iq=+H7X zgBRr3rgRjcy*oASvL{0Ob;}c|)>P>&pH8HXPev}Etv5S#iQjRr*32^3CddqcqPT3! zV8@GX83yT-Xl2A0Cn(g1*X~_Q~!cI4CS9R>;2NZ%uuQ? z$GRgPVQ}W52S;iqT2y9DpYu;KeLa_HxSJvQGeh!7z7aARQx!#G$4Tv9)@Tx!L)~Kz59-%JvAT5&XX~X@bPBZ>%79{i7x|Z zwC-=A#eY*SmlKiq3+);PG`c_HzJwt;+9Dcr_ZWB7!)hTW-Z)zSml`*g_8Sv#CI5{E z=);I&vE#r|x;cn%SS5$1c4Ao5I8Xe!KS~F4s<~-(ad6XWcaQxxj(!OjuBuPs!qrKg zv`QDQpgzrotCRc_S}n65cP~3>Z&0q36-!Qvc5RMMi&O^}uQt!QmjbFMYJ_AXZ3(|z zy&8&LI5r)#-ZFElC&n}PR2#+{h5i_%U9@Iba0#oyO`8~V3+r9xdBojdZ(;4`7S?`y z3kzV1cn>uVAi?n6*&FylF^&_E0zd8zxD6qH^%7#-0XV)*S8IN9;YqJ6cnz*(=~Enc z_nj<-tR}=>%DN3TAbim)Z{!!e+j27J6}zz&=F^lF+{@}NtZ*@_P+IrRtmi^am(ag) zDQO=~!CncV26dGDB45S-7S!wpIz^qp;l@ha*b#T@)i(BSDq=)d292$J-`>trh;8f{ zCRUw<@|GLB+qBy@?k;mdOEB7=itQ?ug>jX))aH&rWufsc>sQG}8kVRnG-JdXy;>mF zSRe{L-r25FC??lbVs-N?LQB6#XzE-9C-?Ib^L_-2 zG_HzGR~i=n%|kyh7Z@KS4vt6L>2PF}Z%M_+TdO2-x6_|~u8wfqqnY*9WvXmi)0HF? zW>b%hevyl1vQHUlh3fg)yB=nmMgV;oaTugV)1ti0SY zGX|i+z6_mtlTj;8&Ekr%!HtkdeVUCYQxYXq zyrH?_rJfkx0*5k;m)!8~{R;C?foe@(+exnJHD{!4io1mYV_*SZ!1bMRq6|EU6L(v) zgNQgp9v5)G-H8r~k9y;38H3HyzKe^<9rfnd(|~6vEp|iDjT^#B72H2{sDxH z9S4$=r&sy|CcPb+;y0AdeZ~KiP2cC=r+4~V8Jf*=oz2ttf6Swf4C-khkL`hH;dV-5 zeNBhQ>WpL})bv?W(pwrnsLYj`56B9r;3cQ8v9duIDUu;TKJ#z;!zq3Vg=_i)owL9C zPyF82i|Gp81F}XB*al$qqg_uV*Jg*Ay3FbjH;vKNd;f;(ir-xg4Qdw+)A|9XTah`% z<_2Z>epvP*f3e(s6;ce}e!tS#^&F(QoD^0y;s{Mb4zSfqcP9lpnL+oR)5jJWv$_HP z=BGsVD%STVu2}d=lIJ*W=clhuG+;Tt{OFCr6)xY{(6>d6#t=wBK)a37enPi@!@cduae1N5U zY<{&EVY?{`)|A@nE8>~CNN3HeiDjl12jvLW?5EfLN1*0KBG}>|{w!S)#N27k=STHZB$LqU@JDr<_2stRB91jTSf^UB-IuWB z0s;aiw5)~~gJ^^M13;@4jf@$QjO;teBOEMr=YDJj7w~b2E=*dGoSi))(74Hf$;8vAwv>pTq^B z>*hTf-o3dvSwi|9VRj~JMs#Sqz6VfiTLEhSb8pvb;;l6s zMPQpp_cW1DSOi@(dzchF3iJ*61=sN1K@WvZseao-fUJ9!FC;mu{^#r=WHReJNbkNB zjB?m4J%4#V{Yyy>6ADm9GSfcNFyAd#yY(qeMPl>&(@giUtZi2D}LXs;@)j} z)~}*1X2x;az3dlEPIK$8p)sBrg{_6B!d;t&qXV350VNmO6Xwns8W#CE_|Q7d!9Cs0 zb6frF`k-w)liQ54%VF{xx6F1*{e&Vki;RRk-%Awpo9<#BQ@oR!U%_5@vl?i5qdaHi z8IFt_SC7Urr*XVIWy@eDHxl3M-)NNCPzvxnU1q$)U4NzD<{y(Ewa~J5#=jvGr!`EX zH}dT}K|t94j&RUrBYOb<;e(1dLu{v>*+9)Y`ptd2g*OtJ6sD9bB!5rz1Alitk=2Hr zKX2mO!V+4hd6Eq@0t@gqpij`XsX=yX;g9P6qaw6Sr zu@GBHEYsbgY|jRmh?!JU)y^YD?kgPzHhgz?QT z6|Ep`sL5RU3({vNQ+_bL{Oe8=MujIusCFde(F%XxZ`g^9l%#QmrkN<}yuIiMqCt~gaic_!Is2fE)|Drrb-L<$ST(ddMW`=CI=lr7LHAW(31?KK^;jXPl z)8{{xm&7qFJpcn)IrG>Seq@gz&z$+g3z5s>nR#--@S(rpfseYfKULaC_S!^Io2aZu zqA4WG{fGkkpKl8I*G1h0)Dste1m#_I$5wyAgCvbGEpz9FA34O-*f6*z{eI$P=~LJ{oZ3VXC(WzY73uer*&v7Z z8-lO;wWM+8jy`3C(i|7@eW&OFZj&XF5op@n2?ifAzJQ>r_qp!U=u^Q$*J@0?<rI z_Ctso|BSzIIQG6yBr<1CzT9;CHT=Xf{pMd04C(#HAlG2yy^=}m-$Jq3jV3*MhHWZm zt;+d>-u{pe|C7FMRru3)QU1^M_Nd-mz5VTW$@r0u;x;Ke%j7xp%IA+LLi|)gRQ56( zbfFFEr=SZ=khzwpoSDya`vf+ zRXKM<#i^L9K1a$dAM}4cJ?Ymf>y9AyQ%d@{VpZzVih8I!t@0nKu-_5p?_5LL+f7bzxzDtf25puDyN)!`M=WJcX(6L%k(jU4;s-3Dbu42 z|60YJuDHNPLAgph*#w-qXqp+(U-H9NUuy6m$+ z`daXDyo&w@AO6vLdxAI9`jgb0N6gom)wYIOTSIZ7hVPgfROE0~GF6os$nw!zvV2)tzGbt#q(n4H)9_^?nXG@Xr98q9O?#qHN|SBcgDT>!TPZ>s zHl)AaroYjq_X>b+;{=sbJ*9s@>EECl(w}G3f7hn}S)qK-mj4~4zd`Bmwdp@+(|^UL zKev#6u}wcj>A$V?i){MbrKT6U_yPWDh4eqS=?~mP`Y(|__bq^V*e2d?6JK6Pe3MQ5 zq!NF)QU`JV_x>AYl`k+Eged$3EJyBmGiq1qb$~xw@%{Xf{DeMbZ1!98v4|X+zKe)F z%d#)Zrr5KyZ6!P;!^*zK+aYPsP_nc1xJYTguE#f&_D1EpTaW+#c&-oOi?Sukb)`}) zwJEaiDR{m@juNpTPXgUgJ*vp9JPrxJOX2JEXi(02Jx1#BRXtjH9Fn0?X&37;un^g- zbtrMm8EE`u#}Y}V?DvA-Z!7V8YLz&^>^(e)4%9Y6>E9Z>Vs$nK{ED%?S*heYBKsFT z{-j5(pgF@Bch$TB3Xzgb_F5(QP>;QOysyVQJOq|S^lhu_umO9KwXhRPf6IWx;gW$TF$ntH)PGuc{W@SuuE@&$ zCAH{WHk5{Jpe1uxWe4(NTv#Fp+yV;7{)`!r`wR(*7735@33^jxeAW-Torv6=Y=iwO zKys9lc?}kl&g3zszhyF;}Y%RhfpL%aLB>2iw8Uav>YR+Rmr z{gq&+sVn&f5_bZy2Bzt++Dfcui$HEVNBQ(H?8i@R(Lw6O-?O)pTpg|xc4I$QSKf_a z2lLkb1CrJ9;~e*#;(v{~85mwjzGG&>E0jQ&8wS&q)Rp{vz9*V?16I$bm}}J#4rU<# zxx6rXiRZG9la%~D+L9h&_yuFS(+p~7^0?eEfJsw;8uUs1c@qVzKaJrgbZ_@kv_GG~ z?v6>;sgc`)`3c>b{0=$w={FcS^Lz&3mR2`w*r?$Yh;uHKsi(U)s`P2< z{?G9U>{GH%J~-_C&5oOZ`Gq_SW2f+7aS#Rmx0`?P@4|?%meku+CH4nMHDmo>QAiKy z(i}O^{f3)ixnM{n@m)?>TXLV#e56a`Zlb!=znol#nfWkrX28rO#LVn2Ff;EbwgZ2G zpYn(2>o?5H{Xik+CFcF0MPhP6Qcjr!7j`tCz<_b_Klr(c%X2MK9~9T(zi7j!D=DZ* z;j&;2Q8Ji7biLdSjG`1`ytJn0(~IX{hJV##_w{6^GkFm4a!q9gaEK%S)e za^P_5?=mXLb*L?IcW$YFA)itc)@dQyJM9f+nr?iR^$&u)vAWlf&cY$~IpbKsL2yvP zxo6@k%;fXYP=!;T#Mv?T@~yc+y~Y#UPYAsd6^Kjyye(H_AJl*5XM)Gv4gwMC+QZJM zdvTS&p74B~JuIjSva#qI0WB4d9SmrL^T`U9OoOK~)c`jPBJ&F$!VILQT&;4^k3y;%I-}+V`j+H(gMMoi1vJjmmIl!86 z9EMnKwrS&(wa{n(W?^x!UGT=;tJF4A)$NgyZz8E47>Znsh6=ry?1IT^)5RQ zH>;}27ImLdf9dG_iR|AAkQBsgz);nw#nIGjoNdir=eQ`6zT$V%MjE&VMZ$RlnD5AZ zR{PHr2sD4znk3&kZZxj8jc1!#%^61`8BJ|G7)>3Rqj?ru2q!?Za@>Zva0^ZQQmptn z6uso<1OGAGW(?x?JUiFGn{B|;p@nj}7=_qFsmeh6q={-P=b36Jnr>|xN-Im%gmG>4VW7AZod8`=A zL9ZM!9Ce9qe5u+_r`WRC=@eTw>2!)Mt2|w`4I{WbHjLo%Ny7*(uN>y2-a&)qz2u|J zoCWc^jY%v7u+O}c!}CgI%DxMob(in;b&HLziqtwp??v4a)w1hR8s||aly0O@yEB@v z7q83yiD?bQYc=9P>;!|J_a6py>E^0noSN%{acZ6#j8k(XFH*}k?q=j8Mjtqd(T{b$ zlWty>&)$;H-jUB<#4spn!G})y(wkS&cM2=`&?ztY&;b-XuuGfmNS58yY)7(eN^_$v zNXN2zTY7U<@OIP9^}*Z9o2T+dna+TD;QOLfkkiDgly@NL= z^;R$icG8SESNAS;a9Bwn=11MG(5dJm*wODXKB`*-U1kQl%nWo{<*+u!U(=%8Op9_e zEy^oTx8uJn`6w2T7RBo}BoP-2=e`wpUzh!&-0<@60YPEi?>=-rKxBJnloNJ4 z9tP|UQjewb{pIPlYKOG2A!Jyf(9ZpAfo}nN=lSzE7OF# z>DlyMRl$V2t3H@;cTEi@++B_4rM%=m_4R#KJSW{(&vVLsQ%%-Y`K&GZtR4BRnyaKt z-`B_lX&hg*x<88FErtaMWYT zHm1>H;i#j`eDr>>CU**ZSY!Un(tqAC*`%?q0hwIaG9Phf2#m+FT9|ZbH5v~c|8)c8 zaLwxpEXeG%y2=t+HWLcR0qs=VTW~JN5+@JoQ{*3nx#@`y522@C>u?slt$VwU*RT8* z1brUmrK?T1d5f2*_c&dcShsjGuc4;jd|rDbXT>#Gfzfp|8A!rcFw;C%?Zh&_Sxpz} z{J!85YYP}M56CB6A(I?vXUI#5&^vzG?AUNu7@~?3% zWy;w##-2Ff_Ct$)Lw4hNS?8%LXBbV!owt+PS2aThkABGMV(N{PjNSM5HoY>pqHTE3 z`>o7}0qffSb;%Y@!gW<`Z(p*Nw<+uD+g`h52XB|Ho7(omB}|fXlChXb!eS!&U^!7> z9VqYp$@`@?`Ptw;dP#HJ{!7|$fK$>e_0qa+-1k<)W0~JI8z2|hA6MsM_J+Ofx+iC1 zOVC`V-+U?}Q`>3l@||W2gK1^v!-+291XuwDS zp^kGL%obLJniiVxN!1gbX$zY*VSt@ZJ+i%I0a?1PXiry9CAd%3=5+PX|dW%G+&=D^48kpsh8Xg8Z`cZ_Miv@yX?g)Mw12SG}4e^n>j=85e(?qu3xMypmxC0WhiEST{&Ybd`=FBXA^kT7h ze>9rgv1y(Zy~nhd+-QoMmRikc@6tyVB|}uds%ONs)QaApa$%Ow7Mqs3gHH-IFvh$S z?jLs?N3R%d8pnEU$XtLW)dN+b)II=%%!aW+VW4bk!U`54(V=B%C{=X8IBGm*24dVbPuCq>22O(NSab_GI|$vIIjGd z!n?G}CWIyMkAQ3WGo44IF~k;qsg~thk^G; z|0uwVRT@*|PWh})Aq5Y2 zX3WyHnlS$=drc_U7AJRG*yHIQI%!V7; zI}oe>ypc~3|7^nQ6o!`abbqc1O;O6H;i;-nTH@(w zCc(aiK4}XT`jY`GOo_GZc)wchVBa$G|RI3B)XAwUA$~%&Zq@TP{ZaRzhOM z2TWu3*05nJC5`FiSAXETQtH!hm42O!Re0tiiNb14Tzwh6QC?p`faZG9=K8^kY%v)q zY>Qs_vt33lYLw}_t9S{z2hDpdxEaCfl1C=&elR_$Kmn7*%8m5B8 z`W)@J>#Nm){%-o>hLr{|CFr2qLIR%;|8FEnKacIda8+Bl@k12LK(fhtXPWK1ZiEkl zZXrW)0{2(83;kb^R~8zL{f;l^M)sip^Qn{D^9d4_J?WJm_9%=#r0(wED~$2{JQx6k zBJGkM!aIy*{&FVr! zktzJe`Aoo!rtNg|rYphUXW!ESf#aQU+=a*SbM!#-!)%OY)~GjQnRRv|#+YDrT)-_e zfp=8THot!iCM1^qH&!?!r)WaH13>KG0fG1UTx~dbtvGW)C$8?8^9@vQ}36v#)>6QP!tPWGAB`he@|6oPFnP%Q{3|VMvo=`bVWiK-(AFJoo z!@%snj>!G+0N<){JuJYz3OW?v$e{pVdptFm;r%xN52G?sLZJ3f8T+y*w_lR8E>`g)pZ`nxxMOLUqww2LX%8U5=v&#lQ_T(^17x16iD*VaXjYM%Ro{Stu?Kw z){lTS6Oe%4!ZK$7>nICrO5hmrC=C*5I5m(P_&>OK$TW_o?1RLb-8~X~Kp* z+pr+tU2Gpy>}GYr>vL2?XUw}>o1X(!$`42!ac$yj(abkd`rpO)aTn_TpX;Q}|bY(Zc4f&FF0Fci?|4Z1%u4#RMp!l~CJ z(Zy_}SReKB@aK`CC%%nouiJ({uP#2~DMb9e&jYLyY~oBo61kQB9=c&>u5JGmilzdP zo!WEV^>jY@+cDM2uR`COyd}30#>==jX*2PY$)i!93cd-ax*%<3jAr*b$VxW3X0F4L6TN|bHZ z#r6Xc;3t)FYfwfG&4=!`*=z%BHYpqDzGM0M9)-{R&qLw4ASmnh!<1z~SUfjqR^+yz zaOp!ITF#L{IT!URCo9Q}xx$8f60_v#Q!&y5ID>c+Dbb@@9Sm|2EcMDsGLT!dP1NO< z;k)%S=qL)iLPEc?%6s*^>|POmHW1D8PiJ2#4*jwel0!yF1IStAAkdk^F`A9)oL`n!7NXI@s5| zauK%r%1{b@FAxW0KX|J!F-4LI&Y52nmcXg15XnjkHhxv}Z4l0|jpN!Ew=SJN*McA$ z%m6jevq+tUVmZ8q8_YtF0FG9Y@FSM^gdZha+i)=X1~K#zamArU$7>@)=KIpoU~@{X zy7puSL}~{b5YTWab(|ESGF&OFYYV01(^uE7;K;VgT%Y@#lX?Xn{EB8c=S5<^xvi<~ zN?dr0)1~oA?SluOO9j2?(~qSm<01y$mXLp0RGJUTzbryG)~3n7EP~#*A^Dd@T<*3Z z`IkjdIW{E!vIy46hL{(+r&Q)0nz-WEm3@k`qp9_liwUJ$_*54|O@xv5gdrc^VJP{U z%GZ?~ahfltwP!3Z_u__(j1b2=-8_-r8|fqcad7BPs;k=Q9PupyA50M54!aX*!l&D;q+_yI_J<~=+w zo|>o^8ZAgSnHHMFZHZ zM=V-ME5RmDZhNGjaLwEeGc?3B3W@%cI-KrSi{lHN4QZvxI8o_%7 zGMy?3%S=gb&S(S$@|75OGdom)n~T-RX;(i-7KL=vdk)hpUh^;Oxw#*no7vcVdv5L< zcy2cSwZ>|4w!YR+g5pWnLg%)=N?8LcqQ#pEVAAa+6%N-x#dkRFqzb^i$$+Vk3YpMJ zZLEsdeGp1ZnUCXhA;O;X4T}%;9TXGppvO9~_km`8xr1+<`c7KGkWEB=>w>)?`VJ?f zqvfqJoku$EQqxSwodS^q3btKgJ2iJ~&+&ZG=vzfI7fZLJLriuq>dy83#E+$45$6P& zDN@1h7nwhQ*T0zHn0H=B%o~H61G8Tp-v}sj(u@^%2mAKMo;nE=Yd)CeaLBLV6K)U#CF3ZIvK93DAk`?5Bpj5ETW`Bu!zh13L=9yC{kQGQOae6c}sTwZrWpQa=P=A(G^JVFe zJiYcY{w%cYSULu91Kv!%Q?CnTnXz4Ah%w8ZJ*;^aaA#s5|VKVHOxR&S7K%HZFURcW@XgQ{61wnid1Jr7!dR+eyJhELka-56{1y z9Kih}3h0L0Oy89~`L~t9@;V$3_##bE+lL&cj8Edk1_P|hvA%E|L@_XyEy{u$nF4JKj?@AexeLY{ZqbqMb^fr9e*nA7_;3&YZRy9Er{4TqXkmo17`CGmh2 zvOiV!$HuKSap`*-8B&F(?_E`RYbm^Stt0=owvcXZA>GXq@#h}*b*eY-)%NAGwLymn&m{fJpuUb0eNR_dly*C(pQ z3~XwhJ#@hBGhWjSmAGn_?_6mR$k8{egukMDu{>#YFGgD33k?4QoRhhHM{l)`Xw4J0 z>Wh_eH27O(Ms5T7%<|v=4+_N_V;jrnY~lqN_%+`^0@mY(q96f^`ySwT@8GSr zh{uAhH! zuCAYD)1=GxV@!+;eovydjb>P@RW;FPd_1XVY?n^HhHEa_kcIHC58-TTnAOJBL)RjMq zL_P9`(pRhOJYj=+WZm9mdG0F(`w|6x^N##pFa2)c|JP+qDZ=u{hU*PwTV-_p|lD2S0G&87X zs4c!{AAKY_#{Glge7^F#bEOwjo)oDl(0_eqnhBgZUk zXnCXx=uuE#=Rcrnf?~TDf5vqx15pT3)2XPTXuKCY3vN&*!4o0)M?nB(PT5>(aQ}`v z9-~qxGc)(F3eW3`oKt~j_!jk^ci}Tx>6fDGHn{sYN+%P$|GXR=JshJkJS zX14G)AE8Hk!(eiC@jHx+fkD-wSOe0{9xl9;5sClJv)2I<*s%T?xf9s5;QGnwvxO0O zE4Obw>6^nr`%<;qG_EY>4R(z;VYwzUmJZjcrmObJivd1c&#r@LDoU=`Ypr>`i&6fH z(@!F2Ze#CI_j%(gyi)uHawkRrhSJ*Q816;JK9_g?U_kBn%?xL4dxtXpKGWd+TpMMB z=c$zFwEfX(yUz1gp3T*2oHDeMS%f|YWWo}ek?W!s9C&3meMVJwqO;@_<4SywyD!*V zL#aNeF>M*&eftc}q+#Z(W@Jv~BjYArTM$_cSh=Afa@R;0yKqT`; z)~Um>n*_WZjqGvv8a<+YoR^iKU;)O(hB3~AO*A{P2XB#JvFVQ|0{A{yJL%)$_z=(F z#hp?2hz1$>d6p({g-f7t|59Du{6>B8GbWybKA9L7;wh9*X z^7Txa@q*O&FD%+C_GW7cwX(21)L-LjdP6ZYmI z)$Huq{~Dj8NK)v327Rmd^-}j6v;~cv<9hUeCH+q{)@@&5PQ2&z?thgs-t_+lO$k$I z(EmN#-{1XakM=VMNc(?oe}CHvf`8WU!`?Sbh3%R6C~5CD@hRNX4@|GWANpsths@(S6jeI647z&7)p;) zDg>e_9)rI2C-Ff;x6ODKM`YXR5tFIy{mGBz3!tC3&U}#EkGZ&m6A;~nCGX2hMJ*3% zDUsQC6=3#zy9EY2qKZ>nBd)0-=H6zX&*#uP+s{;U(+<1bne-%_R!+3Sb5>tCsu6q z`medDXUo`_x?A=VpmFX-%RU^HpRNnFu%oU2?1M{1kxi+WI}yBhT2Xz8E*Hp})Q_-p zs4J1FH$T#KM#Df9_RF?|-!8eEN9^u0o|Epb;yLAR-N!2FT(#}=(<)+RS`?9jLgBNzrDy`P!(%l)4hQna!-rt)>f|qgn*rg`gC5Z%lZ-B!E!x=WiAls4m%TxHw7!JKUXu&L*J z`Iv~kKY|~_17*vF4RH6jmGbR7ULR+EKI0S@+8awjAeId}#b)0&K0>*}BzQRgJ9#EzHoeZ{k9r(5*PV z)3R(kAUBWY#w1-gKsM|S;>TywBZZGaA4;yzRrXV0Vx$prN@`WCye<0itoJjE=J*oU zCvK~L@ZU%=Y7`E+`J22&-9E#nM(JH{(Pq1#~j zk;Z2kF8hei4&l*b|Bu&jDg8ZpS(K9L{dqs2n0(y@S5pi*V?7BlD4A7MtHCigbzS3} ziiQrOK&R&KMoCpyyD|g5iW-0u8oi~bTaeAs(3ro*>Rt{luKhF^^XixBzBm0*Uq?74 z52Bd?Wo~5|CiE!GO_XWjm};mlf`SlVLFJLMLVuXJLVvXFn-?iF{n566ex$6zX^)hd z4&m2y2*YlMt47{Qf=P&aNib994T6$^280FjUjr(-P7^3r{Ho5s-CNbl#6ZXjBq{!N z7YNPYs#%odPMvunyn6z%6jaw?#^4dqQ}(w!*nrFo4d@cj>{84}pF)W>69&DgeZc=xjt1#q6gQLCMiro2%4_)-|~%xNR>1uI{MS}=Qsf?cz->$9wT z{ZK}QGJEyIVjctZr`2j(*rE_$i9#g>HGv77(HTX>3JR7Q^1|c+y?V>N z)tXj8ECrL0kf2rqT1BZ6!Ri^u7X*a>LVlm`K4&HqUV8QZ@AJ>|WX?JJW$nG!-h1t} z*Is)qP-l|h4wAmQt^q-Xz;P2`OBTy;(GsXj(GqqvOh1zno3W;6Y*U`U>TI_5cC|PX zmq{>=KC88(D}Jz~cdgmaSW&}&xGYHycR6&Og2mLHT}2g*3z}!rC22)hd z*fE#XD?EU}9UF@>`d$G*veu_&C9X|zwZvgmNGy3caz^)DjMXr}lk^;eL|ZKTcC=x8S8^c3E+l5(B2V23G}c3X6=bA zU(|g{5 z%)YYI50dvJ?HP%X+<>Jt5|zhTV(2AxciAzRxlml-GM)RB*Xu}N8iRHP*T>6qp%w9Q zDeJLkk7_8o9ZnB>J_6wbMEqS5&Zi|#VRyGJ;y2}Q?ep%ikjv|Z<`=a<+b5a z<#ib9K}#zbon7%icrY|<$CbxvYxVyB=(^Czn#+PZgQ*!po`l=NEkRLr%=VZB@w1ZM z*gYz{yUAaD4U{!@JwGy%V_X~dO}I9M5+1VXrFb`#)1^7*vY6G2INQb*5@b6MEO-tM ze_`2`N{;M@-j&9T?`@ya5%5*wA&}z_KyDnowxQFuk1oLXzO4h zNUPdMEa^iJe5qW8Zmzdyo|SaTjv(^xK>|UaoDnl~TBWzU0XsiclGIn_itMl>4|{WDZlxb0Grm`GEqu6uyD0;bmrz z@SJLVN}?+7rdH+d^~IbAB-59(i<>l{;^sc=w>Hk1aT$V}J4J>O-UlLYResdR+%&Jm zATb)r+fgST-S3PH3ntc%k@#1dLa%gQ>HuNt^S&Kj$+lA zu@}a5m1w)>$-O0_GR>|}!{Mkb8xdL{GCVgBxj)xzWV}KHxn?7yqP2C&H5(amx#lZd z8#~on8=2hXMg}G5)K}89GiU+y@Ri z)ikGy2Bp!^z>!cy!yre_=glybk)uJeS`^y=?~Tc=&ch84SKpSa|2heQ27bvI!CC8VIjB1SiH5$PZ> zZmVj}BvDEO5}6Qkk%>n2EZc2WcP6(1iAoqpsM8BJdMBju^Gn!>%hm)iG9KY)z?0be1V4z|bO+~_I>0tc zG0ZA_%U?B$AQFWh5&a%;ubXtk%uxwpl$j&(Nk$lD-X%PPp7+frec%z%^8sVM0%qRq z(sNHrSjcEDF5>RtaASO>qz0@75eX@uDV5C;(Jp-S$R?3xYa?1 zgnUl{hMq%rIYzvSVCvgfYrudL6V*+g518tD=K~%(yz_x#&c>5)%Ks8O3P3VY=<0J;}%`~@5I##9z$H+4M``1rRef# zX7sIdZw|Qi3L57-Up4YV}m)yjO&UKrvU=aw;YtWK=h5e+_a#7{ng|>O- zEhUlRgS{fyp&JP#79g}LX^CJXJ|{5PsMa7dkSKD>;H2~s4RdYxhf+A|HRx?ZMRklb zG91b4WZGoZHsSXh1m-+uTDLdHFwh~_@e)F+PEDnV zF=5+%CFY20Ia~BMao6Xsku~oSYdPC9=lP4Yh_{$U+_x$0`yAPBmKqbma9i1+1nMJ! zLCFPOCsPLwAY$orq9DdNUbX^(9v1I(H_^GaTstMnwDMP%pEcIOJKJh!PSbM~8{J_-@on4Q8+Z9d=p8!KD&{cM$kqWrLPQVy;syyL{_Km9& z@D>AaiBqmm?3$zBirf;Q$6C?yC06vB#ZK0_Jp=?Y!8{4PIAh2Hj?|^vY5XXDBiZBU z7#QDN7@oj!xA^TvBvrBjFm|4_+wUbXT7yp?`Qawuy(z53ZfLZhS)bumf4$ za_hy}7d8Ii-OacD+33T?WU9(_j@{^7f{)vN7G@%DZLG*y$2=T9%lfnbo~&JW{pq6; zllH3V! zM`h=UGjqm9GcGBv#pl>sdb@l`e7Nh6I@_w;h7@dz(=t-zZXDmQ_=1t|gd=mZ)Ctk@ z2GFGwkgZ^D?AnZr>8{NG9+#Nt9p%Tn+MIItBVT*YardB(y8&p)@tD9b*0k~0YY_Y+ zB$?yUKU*{N=ZJy1d4<3(U3P&$!`M6pA#5gWEI+O(Y`(ROsL4#q9K2+;jvc8FB@PW9 zO4wyX1%Zv&Sme$UR}WPVlc@MX?&8#rE#f%Y3Px_oGM;9v7mbj1Iij%}*ev>MB1+%5H60_B8`UBI z!f-PJ-DqEQtGothv9rr!-cUOYE>nZc+LJBzwWc(h>kGA0 z+KX5l+L1C?Vf&0A>P_0VR;>kf3Hz9x*_R?E%n7cr?7KEuk)Lg9A*4+q`r**7b&M-J zCAdSu9VBGb{A|0Tk)4j&uAcBOzpk@(vhLNcu%dUZKxF|%zw&=GrQX13I*#$hE$}(W zOt+PPS9VJ#a^R=ML4zlD;rBHq0~*ph!-XG~y=U3?b%=`K;Osuf$t5}zow;Jy*fw7o z_U!N5Q-;e?rnB`9=0GiP_Y`ZVbSvg)ixFmm?9FMZ^j_pjztYNys5Ajn{YuWSL zC((On&2Q7A(ZPnS@mqk+HEciNCvU#-6)snJ_QbZK+;VLj7Ruj3VsCbk6ZVi1qU+8NycebSNnrvTeHP4i#~atdO`M^P5Ig`~qVJ9b@QA(AsiEiSfwqiV!%mgmDqs5Ba2 z8o_gd6?wE?n2J2Qf`5mJPeN_C!l>Tz>*mK<*NlT%XH}~_|gE)>vk-edOd+b#LwL4EuuY#T@oJFY} zBltsi6%ECO=wo*ZO_7qN<;StZi657wPn?rskBp<|cSneXc48j*K5|3;I89q&$meLt z=l5$%>O#@mAAxNuzbdu7v1Omi1*V{^ch{XLb}-960r! z^+o>WyF$?s!7OlBI(&J^hlzrrFL!;&?^qPGZQ!AB;s{%YzUu1JOltHmztYzO1~qy<J!6x>DT5qB(>K zIiK9hKn!sy;~Y~U_NHVhon0iUn8+4{fqNGI`RBndD4b>F+>(d<^H1g5P8($=x_?2A zVb!CW3)ZM`h5z9+0+{3>+ql5>SGRNL9x@SoS9kC2srAvZ2hdcJVhoP0vAW(X4||@G zk`?k*S+Z0S3WOREV?`Ed(p#mdP~ev!dflW@X&m>P;pmOS!qGozpBaw+S;VbiUA%vy zyHmh-RlF$^CtxA!LD^ExQz^93>u}xrVzHoG0ZyigqSRmC?|mm@jtMH03!$P zdKuN<)cOMN;aS=%?6?lwX4${ekq|QZMveqf;^axZnA1d=`qqXq^;?8F<@<`d)DNuW z0NI6*V%KXZNYt_ENE37qq& z%gv1s1Wlz>Dqd8l1SkglJbTK?!&!v^=;Hsgj4R=C34wU~_?0Lk`^!t=6p#|3Vj= zYXmWN0G(&}+OS3}kU{kKyVisXbbgL59#vUKSIpiv)(#wzo!8ir z868~_DC|Oh(-rA#>^!yk##uW)Z+t&9ni0X*EWxdj#>PDa-?^hBS~IK@ZI^lbC60fQ z!ItI^H5Nw~4wkn%L@2Z9U;6oq4aJeyEql3`7iswx=dbZEctB&5>XqU(#dz}eHMzbu z`uMBfqE^A(o0K*|-*-&vy8r?o#0>3DOmX$OtAw_8w;#iBeHZW(Lg206Ec4sf{AQcq z{^mE={NnnSOIw)fH>0$<@#-^Qr_0;CgP?UV14qLQa5C~S9pC>^Nof7^)jsY7`m5@B zDQKwfnsZur`BbUb{W+wb_~_RtOe@DdarRfG?bfYLhjz>2%j{4N7P`Ke2Q+myl6w2Gn{`ol?zokuTeoFbAQ!d!8vyRSlL#sIfo!fO! zJoX_0uoUpG09Wq2&nqeX$ILUOvWtZouQaVsR&)XvG|ufi|8DToN#tFh(u{akB2A?I z#lOD#>Z`DjTvBmxTPBW4NJ^>W{3&#IN#WPC3$Tw{c%W>E(6KrL`_Vw&aL*^jk+0(? zs87{@{>mWjh~3XmN#tuZA`gadjY9K7(;-?+D}=8J;LHEeFur2v@^c7Fx(3lhFnZ|( z1k%RV5Uq@#=#3w>SejgtRWCBj&Cg)gcHNu7j$tH9%QLz}gnp1`jVhe;x)muz*WdDo zFmZctR(y?f`53xheotGbqszOHL+NJz@B4=TFMH{}O`apc7L4cl{{{bxzv2JWUb=6S z=SZ*xqm2I_@;~Jp{@>}P`!;!w1Y0nM^M3;W1Ha+_FfZM=$#W#wg7LvuU0v_&>gsCe z`Az<}d1=2*o+H5(49(Y``^8Gv-vU%K5*nO~C8L1|HFQ0BF;pXDubvL!)fRs|Tk3qI z4!UJLfx9zp&eNw$p2$4~w5?EgLpCvsEa)fBb*vSMjbrevxgBNqCiD~i&u+3-c#4Fa zudVS{9?jm&$sM9C1Q%GO2WNEW5{iky4BGc#mTJ7?DI^a6rwWOEhr&oIGe<+d#`w|l zcfJc!#3#+Wv-rXBowcrxom+ESl&6{-@pLF3uMM&ETN_n*HeCxkS@42U%#DEq3;nw~ znnz+x*_mfHNHYuSO@p)I=Oy=FGBKFNl8G#1x=cLWX)b^|>9;lruAGuD)k0bt56{@o zTH5zw-HaEuN7b4o^(CCtdmGI1Q)636dl0?0-MwcUF^B9QpGzc9q3_y1{zgT5d&lx) zwPD1#VwD=gg;Q_8_zc~E<%#~jMsU@CRA}%({{mU7ms!H!@vOiiS6bOI#TBEm64NA@8F^>J8yOmqUfInWN!dJ1{uGomuD6cV#LLOb59$F9`9o6ZD!9iZtLu zXZ?324<{v=w%75#Flag4=Vo`)8VoMy@YRx z#(kf#b`ajCctkmw&Xt3W{Q#}&p8tmiUY#Eh%wgHZuye=@m=kUtDITFz01J_(xmewx zL80{fHBcCyl1m=I1L}kB5DnT7nU>WScWTz@=Fsr$|ssq%Wse@`1U+(ZY%{SiR5J) zEIPz=)FTR3-m>O+-#D{;jr+A+kcK&T36qIhJngpW1~&_B`gcW5bHYkQIhmBh`L^h* z#NInB`vq+gr^faUf|oj?yv~7TmqdLBg0Kdz!Iz)vW#qEmyk^Cwh|Zn`6rwZqSs}b! zm6Sk?6A848&3+dwrP+7&jqE_vmMyClS!9tQzx~&{_ppU+BS*;+tF=T(g7|^eTO1EDg9sQM3NYs1(X=+@_60Wgr$4zfNia^+FWoLy7jx&QuJT{_c zilRlVCy0&|4RHXq{&kF{O}BIWIPeIII|z2!V}$^ji(;;z#OzzVm`JU0{>g+waL(+TGxnI39| zLQd>;8q$;Bb(Qxm{9#4jl@;R!fF-7r$}Fzvu+JzqN1B0-n4N1bB7=EuU}4zv;~o^4?bFDH65S#+&DO;7avPvOTJ#m|K6`I&Sd%GcGW zn7EwiDEGPOdiVL*eQutL-%xF(`;GUl15JIe^u9NH-<$QlKfA)w_x_w}hi}XNR}qJ` z)hF{Ilvv;aH-%PonX2@n>AlEDJD-$V3Vt~4YZgb04LiW-nJeY3X^yxA? z<0H#nET$)9uMq7IMg!a$fSyQeyy|$3D|*BKECgopVMPavak99g`TadVZNL)#%nCTr9L z*^t4X9d$_uC(d0)aS~7BE}`Y1S~M$G-1Vjo#-yeG%lLFu>?t^9zuWSER{oA{^rKhO zf6;}aH;|@F?a>|ZGDBV4F%i=?U-8hE19$jZ_P^1m<-lBQ7mUxde8ud5?0NpkovJ0jqT7oo#VXyIiaEP@sMzA8WdAa+tdI3; zYxjXTuETb7xt}N@>cq!_|^gjk~FwB(4XpWM@MMnO z=2P`Lx9Zb)BpUTJ8MxK3M5Fj@q=8FiE%%h}`N9Z*uiWB%auS4D{ycSTTnNA<$v&G8 zy9CG32d(C7oZiIH1`Ql%;pZq~WIOMkCB+Fu21}f+;0x7@8QL4!Q`7DH?Da@lbZ1Jm!%`6%#ur1qUrg&X3hd+IP~4qSC^}wz6Lxv_J9i@%LQeV_W&>v6#T{5Lv=Oq)+X(1zd`-Y(K6XMWKPLu+LP*^{D9=T z_M-;tSe2rGLNoS^WS7(gC40i%8E-C|5{~{s@5OeX_$fX57e_NNFtX=$3G8g)*u1%) z%C!0nXxU{5?$&X2$-bG%`9axP#W4Frk)UfY3!{Nq_2!t2PX(io3pQZ9q~(8msfcjr zrzeP|Yo^d*

=lA|M>;p_`#^oQ`948#8G)vr(Hr3sCN%Z`rZIi1`fK1TgQrOFrqqsj`6W=85 zI$c-HIGUf((YmyFg?{=>Wzk>b((^=qd$}Qj{|hjx{t@TzLG4A*9>`LYd(QVGjGbhA z6WKia;$XvsF@Egy)1*ly*GtZ6{d>a_c=RecKG9Fnbl|?Soq2&ttlee%gPC)jerZ(* zs@SBkB3^VYpDf22FCgzYK8OAL`~_cfJ*0XutF`2B)tgtOAv%maCc6**%dtLS*v*zb zH)j6!M&y!vrer?J6TeHDZJh2+!Xm}w%#*Q==yAbVy_k~O3*(E;Ki+pXM&|ci5**hkH*;OD|6yLGYUZz!<-Xv&t_muF5#)y0V|<%|)=^1zVYKe z92&Sr$mbo<{5B4ecMC@egS{>Lhi0CCKGs_H4?Xr$^SoogjqY>M&)w(gzi^-D{I~lY z(d0fadWUCsf9Y;=#&B~(d3auPh0;_OT4$|hc|d{e;M9k z-e%`i4Ns$@0`t)DJo7eZ?!w_k-rH}7PxIb@=e+^Xdjp>L20Y$S9#2EysH*_}Y8~x} z8vo0s(f(%;WNhlT?7t)Pf&$JXcky;?zT2ns7C5&LPPmZ^ZP5$G^6gzbGvQwI45Cm9ao4>4o@9nMqUmbh5xUQ^U7-r zHWu&R9gkpGvll{vmy+Z8)gQUz`3;^a<2gS0*nc;WZ@{J3fI)3yxs92I)oJR1$d-Da zvxfRGnU4MklZpM(>SN)^Y%{<`zE258ui(-gRt32Z68)fKQv48dOz{wS1Hv=i}`)(9~eQdhzw9j_=J^x{2eOqWQ|`5trE` zu6K{PK8ZL%a?e~}F0bO`Tc&5qPKBGdd@mPp#+ycUjwbP1W;ypt8g(}N3HN@CSxT|M zPx@V!^|$8P<-Ez0HC*%h74z!O>!TR3sq^|%u=vg9wJcEenAg{-Uzpc-xz7O)n&%yZ zOn>daVdkpi&DDUt$}D`9O{xdVGA^l#>3V{pBMK4G67iarBwp+a%nE9b-Y$VIGfzx1 zr=~`vOgG8h83F`)q?6=3Ti~o#_)ukdBmlgs`;yo|6q@z z#^glVt9r7^jkEwsuZT={LsIz{2nY1$|1VmD4x#irUM{bN)|3rN(3uo|DoJm!ZIwcA z%#t8_GyE8r-ki;|wfa@iM5l0D8GBHBVOi?rLgy;tbeIt_vR8!^nGj>Ei9Rp8bZt6= z*1fule#l+l6EEoM6C*ZX0?^tFAFEm-O=0_82<=REL_~^@ALZ>w3ovQgD)Rq1!^(NQ z8a~Q3EoGIO+Hr8lja>IQ;Z8EbWmWK?IGy}e4WeKjhBi@mv~u57xFi6jM~RHK0Lx^G z4%88VGEy4XdYmhWCu9~O2xe38_fi%RoWUkLc3fJWW3qauy(ISE@tZtcsd4X+MR0`` zb?e9>BCnc!oG0e;D#@;t>v>gcc^w*xd@m50IShHqbV3StG24saMljgwTu0MsMD?c# zsxGU%pVJM0_1}31WlDQlB=8kf!@R3~9th_oYQ_}m|xQ3hvX%TqIqTVU} zX&dBt)0zt3e>V5FH6{u+oAzq3H1`G=74b$~mvpKt3ifIQ3CI!n@+#?wVG zCuOeVNf&u|HQg_^sIBFT8;@P~L&)tHQ;uE5Q{;Ao4_XH$oSbPZ_s$y{?5KLpWrtkW z2(E}hao$UP(qNAMlSZ?We7e~sy8o8Jr#IuULY$wNP0_o$#L2@V9q2Rjd+@6XTDy=Q zG4kw0fX>L_M+_xPCcCB1zk2krmThOY`d8mS%*V@maZ38=#m8G>Z}gFFV&IeXk&zmc znHtkOHKtD@1|ZNaVRT11Ha6Ckooe~E7i@IL1N17Jglj1ldewxlEyEufdc}Y+on4{+ zaR-M}#=B0}z@3C7Ai_*yN%{t;y$N~e*C5Qu_eAu9nTR;eR5b?vgm_f`X7}}$u~;9} zZ^4|o>`52=b=BdP!TxN&J%&U2e_pzdxqm;ltc4t3rHjhH@ zx4nD>!c}c7Q-mbWf2l`N;4bQu29?MHeXr z=Pb?*(Q(}WX_mPN?keYaYqzt`rw;HCy-yCull$=mz8?|{&NPrOcR6nxfV-VX z$am0ul>8vEAK#Rd+>bv((TClSPlxf1tg2O;?aU`k256@CYa&a)hl zy8A0#@wgttVTq+@f-2Bz*b1Q+^XUBcExW^Cn?doy(HFhIky$jA7H%c%gH2gAO&Q%a zXEP}XnWQ4U6|LR{+rUF$3mWQbGt$k%`Isrujw-d4|2F%EyFQ2?uS4~N^T-`vcYm~2 z-{t}1%su&5mVDE&QBkec(ol5YDw1zi-WyHr)X5)zyry-BW_7=2cfaO#zvgwn4o$pr ze8?*&#@o%&B648v4il2xMAlsCGN%voOkqyp8pH^xA1s1liqfu3pnWL6j5wpVZC3Nw%lto%T{B`m?PZB)FrYN4oC9lFBAiD5ToJ- zts#hSm?yXg=WjIFBv{n}IL-N)15v|HbN|I8(8e>P1}q>AQ<@?i*Z=V4CjA%_iePO!9Z+8-91$J#mwo- zR-2>K`^cg?MdfoB>Fl&{;r_6H%;%Q5l12Ys!Zb?S51xyHgkyFvG7T&)_uQ^bP2pHO z-wFO{=D9)NTb|r4&ON$aWhY!39eAO5$YYe;t0qggE1R=W2#-9rSnb9JrK%ELCM-A? z6zp=RJtJ9FEM7gAX4W~s|G8m#Hz|jQFngIYCb4yI-XYkcw+w2<0{@tW1&s8-7DzYz zNHD)u#{~KN@4n|Cq{U{=mdMAVVRT^6jQaGcRJbUQ8&KJVDF~-eOD1t!>0vVDdbv%QcdpWTpwiq?>FW z$-K<*S>B6><@j`z0x;k=8aC3a2k-^zZa^^_SlLym^jSVK$E$mt1qUc3;uT^_03~h< z%y3eTu+RRva|$3}PTcc0avY{JZ#i#Qm-EFe!yBsSn%|GR;4Aw*35PwMMm;FDfok67vF0F-R18LjJtZ0g^MKsNO|9{OYTtW$`6QKYw# zO^un4Z0dWeN%W!x0y2vC*aJXtt}vmdNzNz=^7JE8i!!X16LP~1B8$9y zox7Ogbq(}aKmIS}|6KlS_&@l(@^AQ{Ft_M`m~GA5E8(^OA-Rr-v{!bViV((MHBj`o za%%?%xcK=Tn}_pZ&h{_~_TEp@x@HzRKY5c0T-ls$1Xx!iC>TS&jg~*iIr3$>mfXYU zHzhKnOFk^=1)OVDJCe7hY8|F58H)@NAj)c>29<(aweLfdN-&c5k%@v-jyqhS*d4* z_nhWEWuJ&}KmS+c>1VW3X}hjxt@r%Idv@?_tyw~zpAF#feT548vtD6@jr=0=X5(ky zDR}eNH*b#gxy|=72YU-2ev;$|g;zH9B4X*m5g5?OVQZcqdH&(2iL>VIxs69zelR*A zJ+i&g`A)(1TN@1ICSM!3$Rkw`*ONdO%8^87#OE2*ew|a(z^teKHTB-J(|hI~>xPf? zp3?|#t(nBvw`k84k{`A`(+-YEY0pi>eUtV~C*7g#nZ=Q@+B4mI)_c!(@44N3=JIT< z$|BJVlPd)5-)T2sN-w`fll$q(C} z+Jhrf+Vc=`-=sZtq&u`dOD=TlU*|nHdCyMonLE;JAK$GtBl-Fk?HNt-!?vgB;E0s= z1c>`4?XgIAXnQ7&aqDY&&pPi}?>*bSXJ@h6vz@PR(Vj0!e%SVO9vqR$v^`2SY)4A4-Z}Xl@y=SfWobEjrlb)qh1_|^hkZlPN-ZN{mP&1TY{TY=a zPd`WcH&;(ET-HmQh%;<)FtWOXcPIKedrNzDLrS>TY^U4}*IqJ_UKdB4scyKmz7pY! z6<$Jk*q$?u&0*R2pgnH7{JfsTmgJk--^u_$ydx+OkvY?yuRb&ItOUFX-xl8U05I?@ z;7xFz;uF*Ds`K$d3_`h_lrh%xAW_|)J@vo1>sxk?VOoE9b%Is>zJtj)HjOil@b(?O zN48vFe8bdO5s-T3S5{|VJQIOO1!yw-6}|CNws3Zy3N|twXE@)MJ!08jZQcg_P!Cx6 zfGUmtFR!QY3LEG=2CS6*e}Z4z$A01@WUkIL#3Rc63nqAsIw;EWhHp#JFLP!bR3FAi z4|`T2doGMBZZa|O-F}U(vlLNKEeFAq%qRCHxo}% zc+XiM@{ie*ly#(Yu!>BmQ$0FWj^=6}C$~1Oc$0Nql# zQ>wfJ<$riZod;fqYC0;Nm22{J4uKS6n=yt}2+V>8BayNiw`E$sH6A#zQpnm4l5b)} z5O`yNcNg&P0$vmFww4Yu#789L7g$uoXjtoZ3sX>5 zv@D00vK$AH0bX71uLGDJA?~$f;3}shQg(cY#fwA2;~l*z%kkT}O_qZu`TfUtGDORl zk{7sZO&k~Z3>%pMRQ`gg6=T@?AAtBf#IYojN&=uJSQ+)^Fw>ERj zt8lx&<_^W>zot9EjeB|pHyq$hmr=SsIf%IermJ1MkjI1~VX9q83xb8a@cu_u#5~K? zB;ISr5l#H9S*vcE49mR&e5Z|=_7$6Gdb8c4L=d5&DMpD8QRUjPvOY60|Don_#W z&fEue@sCj%5C4(bf8hewQfznC$4|bct~k;^iGMVJ%{=)S1dS;ieW3iaG4{j*8S08n z;r!+vU9rhuBMqW(K0@&Sp(}Qpt|*}^)aCf84q{-Z<_X@Dz43DOq(L3h>iisN$jxk8YSU7DT6Ci#b|MHV*z6TC_p$ghkk^r^;vwu7 zIWqknKhg0^IGAlIq*)=E&VE#lxYXg@w=j|zZhhG!wJaTLaT~_M8LG4ABQ^T&UP z*6T0XpWagBt{@@XzTn}n}6KM`@-_%&g zhlHE`cXEAmUL}k+xvN?1O}-NP+^YZU&W)-#S5e*7EE`Z&{RanN@I=-4EV!MzV6^O2**XZe4L#{WD-Rh4M@Cg))Won_}r)t~!d@hOPNTvhxh4X%(|4d*uJ ztUTvE0D2}U8HAWjMs2ca+`oN2qP(cpXTa*hJSfraNbg1+3{hlFbs|NOPxPdE4bma zVBu@@PtZT+J#eF&*JUS?{(E8jw!y>VgHzLU{B_rF;GJQFFYQA3NOUua&BsY=RYm{%{*Gi19z5i@6+tSU8p^(|c#+(-#kt^kE%ti+3yX5s_VSf|XxW!%SKOPMR*o@B?)>5BxbWq&s@%3J%LJXEbDE8|7aB!_^aepz_PETx6a2Zj@Fm5EGu$3U;q_?x8lh;XJJ;6 ze-X5(|8`k!j$BFjnC#dC%3N4bmT5&^ix0Oj>1joBR07XSJrG!O6^M<1@GoKj3~vWK z@joMcT=v>=xxTeUxl}*;IqM*cWjtXgHc# z9(j4~m;?+!&=PEMQH5^;LKi53kr#qYX*z1XM(^Y`Oy7Ct&1J=47yWglXUw|+;9vutMOqd8^_xMB$$SIvbx zp)>DUf6j6Lu=Lu_Y2w@FmXB5ViofPl;d#csS>eP8&bBIBW`!d^&5GH8DrgAL=$aMuwOTWF&Pu|0u^Z0L zUF$FpsHu!u6~Mjif#akWa4QWtO@*}?gl`op>Jy+i4x_|*wV=$zixOTYhb_s=Nm z(K)lN7q4;ud_nvB!ThgWH!Z!1-+~(S_hgo?W~@3Ve>)wc@Ky}wGN0dqz1(a4*@H(< zwZmS@N24Kgx3Np|*YqQ!He8Jz4A9Xr6?EZXvRP*Qz4=JIQ_?^(e^q0iFJ=GIL~k@XaSyY*kI6m@Vj&1cOmd1 z)mlN>giLj}A;$u*XOQW^{s4E@Z#SEdRC;Xs^Y?#0Vt=A)c>up>Sy(VVqj*=duk3^{ z3rv^|tx-Cx-dvs=+Xd|4hEHHuy)b{(HnoMZ8jgGwzaX_d#(CkF935lC*X$|%V;V7I z7dy2Y_3vQZvIoARk@;i)^08WRazggZq4As){=!{vfPpSC>&+V?E59ctbo{SD9BZeZ;pT=-SlMXYWmDvEV@>d<&^v5*_$?115N zjb;Jx`xAX8mkfc=DLP{x_~!%*|2{LF=Fuq!p*tAm5U@+iC{D9UT=x2`H{)-0uOH&C z_U)?CDU6TH!1l^^-kgc=(s9w1I$Nsor?Ct(-a=3w+YwLjl$Vxtu)dnmlOM|V$CZwxQGQd*T6nF)P!b`3XvLB8N>7{H0 zcBZ+($V<7rJ6~^Rg4r*1OzIAIcy~Tns6F=hNBR$=g#4WVrvD%Q1MJqakGXlbhb z>JoymUv0l+Ku2B>RA-o53yb$eohK+f*9{+*5NFKN_d{aop%gQwj&Kq!0F`O zX?MfhQ^GeXe1#icpAx=8;Y-}`x|Hz63a@p;?@S4wrSLlm4@Y0nF=R0M(h7vn&hI}) z`!M=a+8ExSaNn&9dH<#RUdMrmQ{%pGI*s@H-1oc_dB4MbpWc`EQr^WFU#~FxC3EC%$9L zHyv)jG4GQ};Gjeo7tGBUw!Iwfqwm_lGZ&>Uky>;BBGqNQjEx4);bdBSp?p^(uGRQ0 zrpnytXfOt~Bjt#)o+rRxyV9@i$GZqe0+DcgsI(LHt5r%%m7Vjc5Adbw!%om_j^1|*@XH-O@*8M3;rN2Vb}C*sI(}fB+?X)&e|_y#rVbqo-`A=YCWIVPF@3% zHvhA0To*UCK{gk|{m<@+tdhXXD&1@?4whoIY7czWE7E(2n7dbevF$RRxdV}nm0Q_| zE}BFJ^MPF|b7cnWtGqds62i=UFnSd@SY&KjM6VplYnDog_J7Pps4)Rgt?JwgR=c6z z&76{@AT$vqri(p@=LQpPTXNLdMnVVF4!-=)Hl-VnW1-UaVB=N|ZmeCw z3im?BR;+8pX(9jR>w+-6{%4mhCJ7pNLQ**Y%h0H&RC_Lb75hWYsG{JQ6q6qHbAEsZ z;8K&cSEQ-3GtXbC@x{KzHjcDm%PM5rIAdkY-pLse=U5*Entzzx$;bxTB z#yS|fF|Z_aP7CF)L-|Kl4duUuyg8ZyWGQV||4n0bc5Q&IuDwX(K%u7}Oa1Mq%*eqe ziM+uY57215$x?`afrGG=n=C?my1#N4?d7)g0s;@FAGYht(EqIK-aFk@w2TgXG#DNI z%P`87(Sa3~uU&0pAB+8VWQ_4*|F2psF5~=yi@lp=(>+l2xxe~9GSkvtQvVg@ZD-gm zVOvq381w$>w`iMuM0Qxw@g1-CHV`62I9#bl(wR}Cfs!}tr<;%$rRcf@fd@^}qrBKlF!Q?5G z6`a~-%;zUGKabyu^NaYMGJl$~S5;O}Z@oQKxx{;0SlQsc{kF1$H{b^W zqda+`8K2Gi4K-&lOdDEuOvaG-q(*{rGO832XwGuu@ix^nK2RmMT_li$E&%jDG=a$) zXwG#L3_LVJUvPo-(MEsu&p?IPyP{yUZx!Q`<+AXc^De9dLM z;?>LxZO*WOS5ojPPB2DNwfF?_vnXXATeltc{hdE*aK73orOoRYunv?E16;Ci?n8|+ zyjT^Qr{OFMLB0c)Z+2a1)H8x(s#F!A2sc|R9inByP<;05*}f z|0A9kT#QLfLN9L(=bdktFNs}7-BS4H%GniZ{slWU2knx@+>Cq#QE z2XZ@I&yABZX9KUY%U8BUk)grZI-eZM{W{TFD%q>7nxfrUY@ko>i@|f(4u9-6Iu7Dj zMRiRp806w3455#WW-PmO)_iL!C^|OSjB$%atRZ1x;5%3s5P8;m)sr~KMsX}sT-niy zg_;YPG<88X%Z*zzL(#rpsZj13m{T`6kHzi{mE``6BcSugv}T;2mX-&rF}1EWgKH{z zjjb8G^$7XaGsMp$qP;bP6C;JNjOlBOzQ}#9`}w#V`MLY`p1!Ch>0U6evd`$-7{t23 z0wZdcaRjCyc9=8+-&Vz_`-AFRHNRVa-wGZ8g@diGwsMSumNfLFFLb9k4?Ej7+*Dx` z{1kTe3fIj3Da);x3QYuinPD8gwbEx6DLnCt0|}+OcR3?&f82(h>FzZvLFxU~{Wyw> zP31>5j>#7|b%8M}VQqU#t9s$<{^*|!-4ZdI4l(=Gzu?~p2$k*#m0}olm0059%KfMM zYjnUD#`j7|Bwk#(txs{~KRV&Rb&LdU~*6a|*toQ{W2+fb{C0T->|=u?&XmBDZo)MT$aPfM9Akr%|+uPZIvDA@Sv4j`-C|aYV0@)@1tM4Mp4BSnDb6K)jA+FGHx%A_IJlTJS>hqJQh~hgBm}~Y~DIMH}h?5fx^i}g=V0M zRrR(T5Sqv;L*v<=#Lr~JCFhGrCxZBRLv{;EvV0{=O%E-jg+YlVG=nGMi(+=&w3*oj zn`85VpPc^)qHWznp&_EEFeN#?`5%|3pCbJj-rzXi0>>#Za9k0+>3&axXlD_IzjGpd zCfcV=0iVfLsMkUhTxfy|r&*QpiV$*SmX`8gQm6W~vJ1OA?>B@`V|ECIE`J7uF-!E* zpq~zYdSNOA@mBdiLWQ?;gd*a@mhDST9sCagvLdZ)1Os6uM-;ZP;+TprZ#;Cp#`H%K zM)vh)w+Hi4k1lV6zg36hFXcZ4jSW`*zF>5`kNP!X19NGZ-VFQJYr-e-KejbvrN$}+ zrWdznr0bn$KRqepfAbo|^Iqke&hjT?r&5hW<|U`=?|08jV=XPEK8g7WnbQhI*Z+T- zpQBUe=kApG=~7Xjf)05#^Yi8Z{rr?*xgYn4a?RwzUBx}liZ-)pS;FlNZTQ7@^y`*6 zlOpygDSCv+m8XcTBO|qm3l?U7L*`897ScoG;+#R~qJ<&H5@E10ZBwpsDv{m!ffjS3 zo$T+VywB5*8Op&SBI?QmzVg$w+VbC$%t0e@q;;leQ3s1Z=Tas9C^DW@(L9BK(ucfA_yyb(SQg0Vc+%B z675^3w#84cYo7P>oW5`AH}FDG;c1JhT!u4QW?$ z!vkFD8g`O3fyjrP_l7xmM#BCHdm_$@o`Vo6yhne>))Q$~j?Q58?tw^m=CdUkD2^vN zo?6(Cy!Js0KD282<^2=$?wEJnloL(};p|y>-)`PB%)6YJ2VP@SML3Kh@9dv=*X}0p z8e65DjM{|#6Wpk-D?6Qv`XE$n#rwWiu*=BfNSpD6lKu&r8pPt(XVHvPjQgy5Qr2)Z z*>2j4QD{t#JNt2&g5FJA!g$T>6@9RVwk{@_irZ2a6k55KRvP%~hrny5!V5ldKTM4m zIPQn3@`6v?57jxaV7vP<*nGg+3&7dt1M@uk7;Zk`=Jhd}kBkM0c49A~q3oR0b`q0; z#gfGMZb@yg7691Ck_IwVz;~;u^s93stxQbDo#?9hK45teK3>qe74+?*k-V)QN^+c#0A0KW5w^5fTb+n`-SbJ!Z!5x0+3GuW3vL08SJjP-W9nz&x*_(8o6&+AaeciK;-I? zp~z)Lp~zUviVm1dfdFpMCF{4HtDDV9n4d|Pa)b=sA2IkqZyAYrL(Rl!1G3fK&b@rZ z&*US1xR4T&@60a2 zr-km%PaB`OKkt-(U$@_pTR~J`r@93wXU3d|uQqq(=t19nSD|d`4;8Y-SvLMFPF0>C zEcJDgLw}9P)xF^5jDG>Z_Cn)6!o;q1swSK3_o&4f}`Z64x_W9NG28-Y&L~7x7LZoqQqi)I40Z zXm3|lL)kGX2?RJ|KF--ov7bASqANjglNbCuKI6;Cth>zD{Z%FT7aG8ik>As?OCI6t z#5B1+_2hTveWLRnS8qOG|3PDdedXMY68onUf~Dgo221arB)@YEf?q>BR_s2&qG468 z9Lb`e#yxFVv0{7N6yg_KcBMJavu&N^nb8x~E`$w~&Og=~w+B9ESsq-xHnfS+RIOC* zfby5nJC)6OD2c63%T~o&3pP5j0yDO1;gBHe +`!zR;ltwDSB61BnpQMPmHCFF-% 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

|J9bW0r{oW*u2k1jyQ$KyZry3B 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 mdK7ogoE{{BEnY<_Q4^``aq_&!fzGRw|2FhK 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�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 { @@ -97,6 +103,9 @@ class EchogardenWrapper { whisper: { model: "tiny.en", }, + whisperCpp: { + model: "tiny.en", + } } ) { const sampleFile = path.join(__dirname, "samples", "jfk.wav"); diff --git a/enjoy/src/renderer/components/preferences/echogarden-stt-settings.tsx b/enjoy/src/renderer/components/preferences/echogarden-stt-settings.tsx index 63cfe149..bdd8aefc 100644 --- a/enjoy/src/renderer/components/preferences/echogarden-stt-settings.tsx +++ b/enjoy/src/renderer/components/preferences/echogarden-stt-settings.tsx @@ -116,7 +116,6 @@ export const EchogardenSttSettings = (props: { Whisper Whisper.cpp diff --git a/enjoy/vite.main.config.ts b/enjoy/vite.main.config.ts index 293d4fe5..23eda840 100644 --- a/enjoy/vite.main.config.ts +++ b/enjoy/vite.main.config.ts @@ -45,6 +45,12 @@ export default defineConfig((env) => { pluginHotRestart("restart"), viteStaticCopy({ targets: [ + { + src: `lib/whisper.cpp/${ + process.env.PACKAGE_OS_ARCH || os.arch() + }/${os.platform()}/*`, + dest: "lib/whisper", + }, { src: `lib/youtubedr/${ process.env.PACKAGE_OS_ARCH || os.arch()

neal`G-1{4Z5neGHqBD$++2LY4`I_ZMoJE0*XU`>q1Z8>VaJ@&R27F|#{`bl z79BdYw)oILU#>WfJ!8j)`OVH96$*CE*%jK_b=W_?Y#9sbN0GinnoSQa+!HTpjOo~# zo3&A@EhAt}krsy(V`9I5fYKOTmDA+1X_|DS?4m3uv1Jl&HEgnC%V_z=hFKz&gck{$ z*2+OMJp1lafpPOyYhB4z}lF*LcUz3eUCY0<&V*1cP62C_y<1{;W?DY)xT$doFfO zdwi=CAG_vy{1AICc1?TyJSRSOjW_->k^Zt!yLGL_Y{90<9TzX3s);sR4`H{&o8+0; zHZ$TA5=Y9D?3E50U=lxO{VC0(oGEH71b9;r4kpS32o#pE1fDpJo{6qw^p;EV^y1kSq&vW0LiVGCg^;jw9>%`=FbN!$$LW)W9Kcsb!J!VeQ3 zpE<_7g}AN6Z6WSS;u;9=BiulEKjETrh2}=$nuu#8?j&(D_>VIFV+Q}Rfd9zVk2S}~ zC(Fs>lI8e#Y{5fmvW4(O!WP042p8Nv4nC#J=fQ#}+y<|>ZN$;eS|9O>OPpqIeT29guefc*)eyJZ zD=u-mxpg&hE4<>i5x0Uk-cfGLH#pbvg)Z08sM8tq(0}K{aviP2wI)WIE!ytJQs!{a zM-nFfa;3%57T1|D@t2oHfOnG(M(8YA`Q+@N4%f%yM|T*pb` zbAw`y=LOAJ;KVhC1)J{=>OuW+2CE1h;_sgpXPiX%n@PZlYwRyMx=-(Ee1N(5E0c2_ zO~enG-o+^9?XOG)PF!PHkU3#`S7UeL_Q$?4{TO!2*Vs`*hNj7}K>>>Nev;fHW{7;} zf?WH?k6%+RuisSk3jR$SHWiItY_WgCcL?7xAHAl8;@^g?Tli6?l8VdvI8(WN3@7(e z`Wkz&7onH(pn&5S&VQAC2(K#haF=bbD*wEzUYR$ip1pzf%4FOq{3};@9O0V@Kk?BX zWywblW$#COmA`)UwDJTt+m{6mIoY2In>ok!WnM#0&Zjxp*CT9Sj%dgk@#zSg{?ioO zm%|!zQt(6A7btXHSZcgHH#JobV{c$;YF}B;-oTX96j`4-LjDr_P7mx$Y(3$(!cQad zt?c`M8dxj+@M&Pe7k2km;vIdn<;}nxeMjJnvjHPiyL%7u)9=f(KMjxdwVR5*#81T^ zceB+#AAZ~U{w@AL@E5^ryNmC7d_6oC{I=s3!TUw!uPSyI&-M6v7q9L3i^}Siem9L) z?&&dJDZD8{In_7FzG(GRim+!3;oUu*Hx|7PFGX1JdOqP{uJ9Pba|!owg&*R3%Eu06 z7(8}-^o%n7qdzKB7^i$OxgjU^)1kIS*uq~-YRKvFsTjlL*uE%g$m!|g`4?jwa*Xi& z3I6{J`0)fh`T~9kU+_`HKLNk?s<09G0yaYBqlkZ^FMIPgjIxCI0!zF+#bT1bqfdN4J=Y<|2BnM*meolM8(wQI3BZn7#<*Y&W5=Di z*2EB_=oeq~jh9pDCr0{-{wCT3ZR7J5y4ussNrmzqf;%+OVn3XnYj1=f2XJrT9>!VM zttmRbVNFpfz9ihyOr;ceoO-n4TjP2u$Emkcd`Y-_UsXzR$Eimve(~&j1Yd;zN5*1e&+1a*pJ9x4yze0Sc;CLbo8@QHa_v^qng3~m?U_&e*~Hn; zkAN?wZ|v^Vm+{PSzQuTLxGaJ9hfm{KdmLapbfUj)9{oh%)Tp>OgWFdgOZtVW1LQ*b z(OB{o{tC(`&YTt#e-G<*#eEXlyVFPhwVG}p;=~>v-Z7*MrL5iM2{?GADG9RB8O6Yb z-*6({W(7WrcpY#n_di%u68Y}JccNTM-UHb0E9k}j5`w0Je1*RrSZT^YS^cKm&v4#m zy$ff(3#T;2EWg0N2%Hxvo6~pFe+XYoQ--VbAHr7w6L(M)QicY2I~Tv2ao$13s`a?d zj90h*tF>fAE_P7J2>Gw*D7`6Oe)mjkNqopqxdHto#iYoyfLTMBGvvGUratm$Y{$E? z8KY@y({CFfH?FYe!1twC(MD^y#VloFbLr#dlbg|>qb1|X)z%#9Z>e?(Iwuo*Tc04G z!bX@OX^kgqJg_|G(AwbG3M%{&58RqLz)6eEpu#qIV0p}~wb5cfsPK&*cpEKtgbLf_ zf#r?P^Uz{bsPN4mcpELYg$mo|f#r=J>7m8WP~kf~@HW~-F4!|3Sl;M-5AFRf__H2( z8!dK-n(m7pSl;MS9@=sj{ACZkjdq?3_PPg_H@d(>TjqlA^}yR`OI@%79$4P!(H`3A zF8Es>cpL3h7wjDmEN}D}5A9?Z{5=o6jdqd?cEkhA8(rw3Epov>_Q2a{$GTwu@WAp$ zkM+gU&P4_F}<4rm8%0sOsjbZtA>@j=y z+;}+$*TS84)0hjv<|uE}5lphd_GdH5nlT;d*C(#8mPZAES6F3pflSDF4 zVt_V^G@_X&>Adsm0iSC>?|asMV!ruolyjb>!8K3vuirZ7Nooq)&y(0kIoEzp;a@vX z;$HiChq;dtpGigI0;KoXr0>rW{;vi({Z&`?so~XG&hWY%r(c`v^w;O_&*^OFEeo3E zWA^8W^`lE-{fK!Nb^WLyZh+X^!}`(t-A}WAl;^d6binue(TtJK^`jWt!WGt!GD~l| zZvE(Fq{R`_BSDS{cCI01V9%&+XoX~#q1%7JxqkF8b1o+zvDiljgqP1^4fEj{RoM^6 zjZj8z*O#x{Zs>2_uJ3<4e)V=kxmCE4Pur?T?zCkUJY}mNxdYwH+9>!Bfj@PJp?@j( zi@~3=!%$ude(A{PY*PxJw>?qtf^AX3R$G1C>&zAIQL5u!Q`b?gaod$dW4$tqb=N$L z*2bD^M1FR7#3=6XcvA}OvocA^-&vW84_j5gdfc>$%E#_ed;^mY?)~2YJ#YOS*qW7}pZ2T+U$h7Q#~qKL*aG1y=JC6=$gY+IvIg2Sps=8Hq#XhX^}y^8COV z=?6}}A2_4@z$x$pXS5$UWBkA=^aE$CA2{Ruz!~ocj^YPS(U0OxWn3cK!Cx9%OG@My zlmW~bMKPb*61PKni}l^!J$EWn&!-i!<|SmnY2=Go^D^?iBsNPvlag!yqL;C+^jnBeW=U+Kc;?~WP2B!RL%j`6DOP=d@(-JGd5U@dl)wk z+y8jq1a%KXGrUH`7h4oco zr7pTs7c5VO^-*DYE?6G0>7;q>n%Bu5!{xsw#>+bDc3NDb{NG{2)pf6{J33zXdXn*N zBI{n(af!yUFuQQhj}B!lI*2jo>q_bDJxVF{)(e>RlU_D4uC#uV zXv^pS1%JoGn`*)CfxsKP%DKtc&gab?ZjAjkA00|1-PqIp22QBy6@~Y`2NneG{SvY`gK;edFe1>#26%rB2$qv%_8?UISc<&8NfW3xF;V`XFq+;GI_wXlh$mgnr;- z&(Cw-cHhX&PP?zsW%n(BCt`i<%#$9wFO)q$oi;n|zC3(k_w78T`@p?MR>&Gzm}`CP zpSr5zaM${nSQmSjHL`bEBl{EUW4~p647=^Qmb~EFiTLpY_UAMvR^_PQgZVbPzQ5g< z)7ZoHJ(T$FuJ7S|cXoYS`HpmbkK#Mb^iU~W z-AklV*WU!}q*z169u#YEjm-OxXtM<)?Sif`qbjE{qajCXKsJ>`ZJL2iXki_02J3K* ztBb^bweomu!x>eq#nC=3>}}Ix@8x0VN!WYAs-0*km$3I*5=jS}uf^DqV-n z3wc(%umw$|Wr98p`lzQ2{Y}shfZp(wq1*($Y2=Hx3y}>uhEe!o4LQZaXMHanzclW7 z_R7CNe|}EgPbXnBHnG<(p8le-NH*3BBLc7;1F;>qO96dm2S~39URcH2p%i*1{%h6_ z)%{S;wZkgrMjBt#I8HsIaa>{kLz*oar3TiR^cHhG^CgYXY8*3W>(n@l2=CB1s={;4 zjoYBvr18Sfb>eTn27jZ#x0)L_fM4T{Z*}57at;1!fuCn?Tmk+fZ~Qzb{<3TE?-%&2 z*HwZ)&l`WF6Tkc#{4#;hx?L&wQ@!!?o%qwQ!7mc{qs)zC!Jq7n&zhd#$0QGa0pZ`W zj@K|J!o@?@^aPHvyV)`)RE-ljkB5&opL$kuSju8uc%xl--OO%Y3%rfDjWIXg)!l_N z#)(s)aWvf3O^s9QBTwU4A6{raHA3UC+!gJ@Ei|V>?@mj_8^(Vu9&2vw@BI&B&55FX zWk!{*i0`!n$C<0!F6n@?AAj zF*jy-=cAYh5+8q8l!|i)-y7nK%roxl>`J4^oJO29M{m5sc)!TXH*L^LT+_3x&Fsi^ zY}J{}O`G}ND83WSO^@)sT6`y(o0jo?zxeKDZYt-yOnfJqo0!8E>pxp{z0G3Hr*W@^ z?__i1>RZiQbt$xai(`v1)!dw{QP+~T=(_G{66;f}Gi}+?$NXiY#_W_{mpkUpDxy; z_T)q5TVRa3gutXjbc}V1;A&)JDw-DY!cq`%N zdHl~cG^a|hPxln-0@vncfzCo+7S`Hx$?FtrY1iU3Fn`-H9><#Vf4|Rm2TrbhB^B=1J@ZZ&EgP2^og8daoGMZU|y z*+O^=;Vp!>5^jK|0h$JAeu&gK_CYg)xEaLFAnv;`jbo;WBX93Iil?mclr^5RnkefG z!ZQfZAUu<>L_QMvNaUj-A1yj6`nCkt;s?lM{?=O3oQqv6^!r|oBc3_vFW&26*0dzc z=PRpn2C#4TtBjuJR@&%SFHSd~YnB}Ukryxjz?gEcP$xQ~QtYP|gJBI!f`=II|UnOJBdf$bc(dw;o$_ebJZnt8Wu?9p#K~tVjD} zclKvLe}C?6#j(z5z=<`R-wQat_1;&oJzr4_wpWyN;aKN1;7VDuvEoXqpHi;ShyTWZ z-OqO%Yc_`1iAp-YuuCVz7?cFoZdS1Nb`D>h(YlOnxH0DX3fg+9;z#7L`s!?72Yi^pD4>NwL?$-Unu_Pa=*#M@q4@nQDMD~@D09*?)} zJ8mNUKH(3tFMx9t+~2VVBIX=7_8B6JHQ|k{e;nhxJ2t&IJ1x#-{SqAK*{;ESi@krG z*}~p;pYIxo-Cx-W)dHtLS3`YBBczLH7P^ns*iUl8Swu;cz-MI z7`(5;RpKQ0FTw8$c)bC46jukoD{;j*=Q`OdN-=z{#MKE0uPbrII0=6Ll09zSV~W{x z)=g>o2R0Bqp8&5baAJ+jfD`Lh7vN=Qc-e?A!DBIwo`ApJg?91SY<_sBvPPX=2=$r@|6|iEjZ*lusdVo1di(>lw?bcr{8HlCFnZ4@nT7@uPpYbly>UQ_s#O?m|IweOwdBWm&GE!?4>xQDAG`_5HoV*-swy;*+ctmm-t;jY@ zygUs5AzTe^2kvjUFJ9L;04Vt83c& zdsx#hvDi!Kt9R2^=OU}N9ZymB_@#fEZX1A1+K|fo0j$|(Ad|!%nGD)}Ixim zkdEw02QJxP};8CO_`l5-p8bvz77jsJsk0;nNxZh$RYv=~j z6gcZt+=1Y-*NgAn+*k1&=Tv_Ioq@ZMfAL9*O~^z8`H6d!MV$B+_feQqocAex?n=a^rQ^&;AGQA zeXVI%^T6k@esW zX1}30i_`r!+I(Jty0+agjdko7a~*AK+sHdhfMjecD9ACfw!Lqf#(44>(Uy^odh94< zorO(jO=G>_$hkK7W*5B33%fWa@9zcg z;ev1Wf*ZZy=oGcw+q~dsz49O8g75HxpYeiscEO+Vf=7C#AMAoZ>je+Z>mx3 zO*N7Bedw|#Y%QVt&htI~nmN$luWH@sp6|PF_5ZUu&~|4Zm%G-!nX}~FV*&G+qnOXk zXCCz0^NxR2&pZBEudVxL`W|pJ;A)xk)G_BN)m~tI=A!G29EEd`F<9xyVjdU5cikzJ(BQiD{xObR-;?>pxi%Tv10U8Sz_h;&M&lD4u{2aui= z7$*EuS2;zQJ#lwklqJ@-r&~CuM45CAdFnsSA|KuR&hJvb ztpVCFtE3APzOKpy~R1RIsoY;&= zttRT(u2SY<%5y>!aBeH-ZbX^?MV~p~%0u8D@JjP+AnB2(fjkZ5*%Bya9Pmo_?EJV% zXLF^fvw?BZk=n>U2bMeY6y=G$D>mb-MiaG8)2Sx%VJXWFpGDq#mrLiClee4qYeO_` zyl=YX$>GWL7 zk`|36%MfG;Gc46lqFqc3)-v7?Y#(PJ?x5wQ{1)>B@9R1LY>~_@A?TTZ?O|>C z%xNF*p$Rv)%xw>AqnY16-c8f8uzkFNPm zrbz*{$(Bg-GAZheHAE_D)fmob@wLdp7VNMCb7y6i2I#_O$4SvE0usYY7wac6*D|q; z`4v$o!K0)-s*V?XyMJgcNsxkSjhu}U15iFoB4>!8i7iJotmX=`qn z)h}cJOk4W?S^X|H2bT}*mRWudepZO-|KPCOI{nLQBKzqi>0RAcIC;cbEH}OB|al!Urz6Znw z*}d!Q$@5OTQLXdvf2Yp%ZFPPi$X(}&|7-m5)Oq4h%AbzvT-+HW`h&`s#o;~t?F%L; z)Ww(FZ#{hJ^)v9L*U!cmF>cy7cVVUpTRZ_7ksDwNGa)0`moPEeOGbz@&Lg;kM#u=U zXJgjfnVIL7Te2oDj_Q#pOVJAh(!4a8EgO&T@on!mh<>OGEs-54b0d0B1RT z;D|I-9{7N@|Cc~#IgoufEQb%cryN1fa`?b;|I1nG7ry!_F?zPh!k9 zu|*G5=G@m^2)j6UNwK#&XLNi7`Qc z*4HD5`$`wNt6URaBj$h>&b>D?z4zf*WKgt_Lnh>qhPhRZR&tyRv}E~&1py1`02T_Y zQwOjJU{M{wqJeeo0M-rIO&!2uf%WVFCId5d080Rt)B&tFu+$D8tOb4(+VBEY?~lHq1q zW8iHY?sqAi*}t|g{;Z_^IqJN^%*fiC39tA~{?&2F1~cE=YxA!Pzy8tut6wqC5V0hD zQ_$VE#bW+Ip$yN?wS9By>gXfqu1+}8a`m<&C$BC(QXnPD`JMXLoPKP^k=b)kXFexc z9O6xO#tBN)f0=CS!nF|wIWeMH-&^kd_>71rnV&6|ES;Y0!np+GO0mJx$vQkdqJ_OW z1>C1w9H&$2!UG}(ai4PKQ-;V|IVmFj@huU5jP z<>Jnyh+~v#vm`A%MqVPF*_7{b%GcHSwQV+Ke4O%)91$Mz^&44o0dLMdPWis292rto z&JoI4N%<-%-~E(tkiIJC66Lt8=Z)MogXF!GuQ;x=a%uP=`F_eN%J>as9C(|~e35dV zAm39T*pAGadn&W;jZArBr}Ub^T8rZtWj#h&ABXlBWt~h}FH_b*6N1ebDQ_KR{fM$2 zm49LD#oT(2 z@(+o1mJ8nW6J-znN9qoI0DZ5VBCTnKZ3r`g{fC`Fzu(?sgN z)<%lHXrCEX+YkRR{S`Uzp@BXbaQA}6)%3|0UD&RPbIUW6A_5|MbEcy{Ed5*}68n9w zlddKtSk`arq^+4FS#lDFOPy=uq|T>x^k-Z>>+SFBljMZ~mK^#^#hYuASs~JB4(F~NSDphxljO=SmYk$tCjpPE$R~Y48||X$9j7sGmU>j&MgJ4| ziL#0`CPbvk=aD(5*YuXl=zGkeEY0AaSkXRoTFZm8zIXB=`Pa$v!94@y5n5^CtZb?C z!g#@hsG1~;)-3oScp&~=lt(QaZ6ca71*+wdDi**G=1i7~a#g^Oj8OJw{5p-Y8Y_Co z>CB^mxy#g69?B;8FbX~_fIoshDK5aA1Z}cP+p}T;d=c^W;mNXxo_$+u1Z`Y};O7GP zB5(${^6cFuQ02uOcp=Ix>dwuJ52-s*XX5|wf**oc_5Ak$>PFN{K#=9Zhxz{%{J-GE zwoba5T9ro&Gm|YrX2FLt_#yb%5=^={!MA958VnCbn{e|&l+9fx!H0$LB`GG@oJ3hq zyJ(NN$}`Hvi#hPm&5Pt1y}7p!UK|v>aM7Q~7QPWLl43&I^TI_Z+QpCZBGfl8K46S5 z=0~sPLuYs(cp>-z?<&ef-Ow(QV#3UU{Bv*Gi)g z{1?2qwoQokP){2dZ6aNkI*Ya-{!PrSCdD{qA>)x+LxNP>ihZK_#3>I8Q#G~oa6%^T z`>)oLFM=&sLase4&V74V7v=6mR;p)$S|n}VwX*S@1TWcGC)I`_AIGuw;kISQvnC>B zq8PVCA`7*5moK&=3(q18TUfU`iG4pYT#8QACd%ooot0vXSQiIO3i$BOOxDe^O7#iy zoI7GB)dxJVp7rEi+dBo+RMW0Yu|=wB+jI22A%ng^VNhZE$MKJZU&ef+E(smcn zkN47#)2M@5>P^Ve3gqZQq&ImDA)gQ-@|`UZ@TkN9xQ_g6GT132hled z02Ae1#{VZr2b#y7#U zW&B$Kybydlt@7JlhS-V;@I&w?SS?$!tUZ4sQ?xCec3S3iWctajmQ3q?@+2$&$~yP1 zr07ty_}`KIue;5l_p+Mzq{+^_oNYUwf9@@ZnMFC>ZAkocflE%cFNa()fq(TbhbV*i z*IwPi;Zd^e{m-JWc>k}vZS{`sa~Zf8A|FYJu5l+aXt;d}<+Qp*1JFk^DVR2sa z23a#U+$n1q8@<1r@sRKzW;`UuN^7yfu*u%v#u!TY+Zj6{kKS*SN1CurpC?%s*Q>T! z=q~Lj%PSKX-*KcjvM4{svc8(Jh>%IAm`8akL|5}6cJV>l@d4)cDzJ_7u-OmN#}4Y_ zWib}2z;+j7o@V6MYHZ(@xP*we7$+I9e?Oppgv@yH!LmI^ksFLP7FKF?3Vp`*C^q>A z$dTQ0uZZ1@7j`pVI7YoOrdWDEYaV~+{gGp92Fs%c793g0nC%Kab>inQzd1(kFp>m7FNnS?DHt)Gv<0O$q(9|r%dT`f;v9COnHtmh7n_&zcY^b zm~jN-vxODd^shcRdry{5C*GW~Wo=khG)T)>gfhCzS1ET^L>Y%NZWv^I$aaOYg1c0V zLH@4KlK*o}mON^La%2T%9TZxX^BMC(+d~3s#F%F_W!+2JF2TQg$~th0&OC5$ro4kP z?}mRvii6F!YBdp;;Nxz}av$HHGv`!6**8#TA!BwE_c1c&2r@>L`IQIf?15MPE)36* zyHjrd$@T!{72}c1@Gr*LDUV8=BCWqOzWGo7?=AlC3jg*v;bg{5 z8H}5*@L%uC5A-XB_YYDZSNN}5`5|@OG*G8e%h^m`?r~FzI&Ml($4!^M+0t(ZX4_Sb7;eObeB+u4CMkVGT3C4{t>OOOKVVet^DuU)5Kdg=xdntTK2W+uIs1o+~n0ypJvPyF4czLEY)_()YKmC#2z-z=ANBtsx@F2L@kNfq?Mv- z^61Z&?IRb9xz5jYopycBo|@Cx3Blk@3Y<_=dC$Vkfy`^%7h%j;?waSUT&kN?sg(xI zB76bZMP1OYN6``YOO~u(viIiegkz5%(>}2NBW>4RUx#$9d9=4B^K!zG$1f9iiMUI| z9nfM=AWwU-?`ZPfWtoX<66IFx!WH3(@^)ZC9w+I0sjyzi{Z?!@RgVWb^+j)FfS^l4 zezsyW3R@$wi)7vgT%?=SF5Mm#+eo)pxYm3i)K|W;GhblW=Ns$HH^P(et*(4eU~f9} z)tI*dcjtS{-OcL%?8PoD-IK)m6{)sYxXxS|%3N_3HlcwzE6(5w9&6CgP96sEena4{ z!BTL|%kc8S087>b@G>*;?~ljm9$4R{18yw0#a@-{+?t!Q#Y>bu8wdjI(t@zSugU@?a zQ@a*t$EkXcK6kMwk3MCkZ{_k9hwpu&@32QfoR3%63D}Dy88VqSOp(tp2RIJ>wsxkb zw$qYOZ0-4~tv#N8p)em=&OWY%b8QcZxq`H%nn{UE!zPvL*^?+q14^;g#2!x}6MFqI zUOtHqOPm%1+-ZwFjBS$7yj=ZuePsQ1LnQWx!ahu8<hs)O%Y%lc z0h0_7G0|t4JbrFIVWo@ueUfuTVyyKn`Biu^+N+djMd_v7c+Ee;d`p9%_3G|X8-d6eG zXgX&*tBWWDcQ#xD2X=5>by08H)2#7HVr<|zNP9d;d&DMHnxQ{^w6_z7HZ%%)Z@7T{ z1^QmJp^?b!h2zt&Yd1lhuXuKH5$jjJC62d|FN5HSMmHGR$$)(`Ev%X?vx> zN-2Z8&4~7LmUgq2eVUt1(!zc0XA$c}J3x%0A3lH|y} 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í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 s*-D`>6Y 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