diff --git a/BZOJ/4695/4695.cpp b/BZOJ/4695/4695.cpp new file mode 100644 index 00000000..d87b765b --- /dev/null +++ b/BZOJ/4695/4695.cpp @@ -0,0 +1,313 @@ +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int N = 5e5 + 5; +const int INF = 0x3f3f3f3f; + +int n, m, a[N]; + +struct node { + int l, r; + long long sum; + int max, max_2nd, + min, min_2nd; + int cnt_max, cnt_min; + int tag_add, tag_max, tag_min; + + node(const int &_l = 0, const int &_r = 0) + : l(_l), + r(_r), + sum(0), + max(0), + max_2nd(-INF), + min(0), + min_2nd(INF), + cnt_max(1), + cnt_min(1), + tag_add(0), + tag_max(-INF), + tag_min(INF) {} +} tr[N << 2]; + +void pushup(int u) { + auto &p = tr[u], + &l = tr[u << 1], + &r = tr[u << 1 | 1]; + + p.sum = l.sum + r.sum; + + if (l.max == r.max) { + p.max = l.max; + p.max_2nd = std::max(l.max_2nd, r.max_2nd); + p.cnt_max = l.cnt_max + r.cnt_max; + } else if (l.max > r.max) { + p.max = l.max; + p.max_2nd = std::max(l.max_2nd, r.max); + p.cnt_max = l.cnt_max; + } else { // l.max < r.max + p.max = r.max; + p.max_2nd = std::max(l.max, r.max_2nd); + p.cnt_max = r.cnt_max; + } + + if (l.min == r.min) { + p.min = l.min; + p.min_2nd = std::min(l.min_2nd, r.min_2nd); + p.cnt_min = l.cnt_min + r.cnt_min; + } else if (l.min < r.min) { + p.min = l.min; + p.min_2nd = std::min(l.min_2nd, r.min); + p.cnt_min = l.cnt_min; + } else { // l.min > r.min + p.min = r.min; + p.min_2nd = std::min(l.min, r.min_2nd); + p.cnt_min = r.cnt_min; + } +} + +void push_add(int u, int x) { + tr[u].sum += static_cast(tr[u].r - tr[u].l + 1) * x; + + tr[u].max += x; + if (tr[u].max_2nd != -INF) tr[u].max_2nd += x; + if (tr[u].tag_max != -INF) tr[u].tag_max += x; + + tr[u].min += x; + if (tr[u].min_2nd != INF) tr[u].min_2nd += x; + if (tr[u].tag_min != INF) tr[u].tag_min += x; + + tr[u].tag_add += x; +} + +void push_max(int u, int x) { + if (x <= tr[u].min) return; + + tr[u].sum += static_cast(x - tr[u].min) * tr[u].cnt_min; + + if (tr[u].max_2nd == tr[u].min) tr[u].max_2nd = x; + if (tr[u].max == tr[u].min) tr[u].max = x; + + tr[u].min = x; + tr[u].tag_min = std::max(tr[u].tag_min, x); + tr[u].tag_max = x; +} + +void push_min(int u, int x) { + if (tr[u].max <= x) return; + + tr[u].sum += static_cast(x - tr[u].max) * tr[u].cnt_max; + + if (tr[u].min_2nd == tr[u].max) tr[u].min_2nd = x; + if (tr[u].min == tr[u].max) tr[u].min = x; + + tr[u].max = x; + tr[u].tag_max = std::min(tr[u].tag_max, x); + tr[u].tag_min = x; +} + +void pushdown(int u) { + if (tr[u].tag_add) { + push_add(u << 1, tr[u].tag_add); + push_add(u << 1 | 1, tr[u].tag_add); + tr[u].tag_add = 0; + } + + if (tr[u].tag_max != -INF) { + push_max(u << 1, tr[u].tag_max); + push_max(u << 1 | 1, tr[u].tag_max); + tr[u].tag_max = -INF; + } + + if (tr[u].tag_min != INF) { + push_min(u << 1, tr[u].tag_min); + push_min(u << 1 | 1, tr[u].tag_min); + tr[u].tag_min = INF; + } +} + +void build(int u, int l, int r) { + tr[u] = node(l, r); + + if (l == r) { + tr[u].sum = tr[u].max = tr[u].min = a[l]; + + return; + } + + int mid = (l + r) >> 1; + + build(u << 1, l, mid); + build(u << 1 | 1, mid + 1, r); + + pushup(u); +} + +/** + * 对于所有的 i ∈ [l, r],将 a[i] 加上 k + */ +void modify_add(int u, int l, int r, int x) { + if (l <= tr[u].l && tr[u].r <= r) { + push_add(u, x); + + return; + } + + pushdown(u); + + int mid = (tr[u].l + tr[u].r) >> 1; + + if (l <= mid) modify_add(u << 1, l, r, x); + if (r > mid) modify_add(u << 1 | 1, l, r, x); + + pushup(u); +} + +/** + * 对于所有的 i ∈ [l, r],将 a[i] 变为 max(a[i], v) + */ +void modify_max(int u, int l, int r, int x) { + if (x <= tr[u].min) return; + + if (l <= tr[u].l && tr[u].r <= r && x < tr[u].min_2nd) { + push_max(u, x); + + return; + } + + pushdown(u); + + int mid = (tr[u].l + tr[u].r) >> 1; + + if (l <= mid) modify_max(u << 1, l, r, x); + if (r > mid) modify_max(u << 1 | 1, l, r, x); + + pushup(u); +} + +/** + * 对于所有的 i ∈ [l, r],将 a[i] 变为 min(a[i], v) + */ +void modify_min(int u, int l, int r, int x) { + if (tr[u].max <= x) return; + + if (l <= tr[u].l && tr[u].r <= r && tr[u].max_2nd < x) { + push_min(u, x); + + return; + } + + pushdown(u); + + int mid = (tr[u].l + tr[u].r) >> 1; + + if (l <= mid) modify_min(u << 1, l, r, x); + if (r > mid) modify_min(u << 1 | 1, l, r, x); + + pushup(u); +} + +long long query_sum(int u, int l, int r) { + if (l <= tr[u].l && tr[u].r <= r) return tr[u].sum; + + pushdown(u); + + int mid = (tr[u].l + tr[u].r) >> 1; + long long res = 0; + + if (l <= mid) res += query_sum(u << 1, l, r); + if (r > mid) res += query_sum(u << 1 | 1, l, r); + + return res; +} + +int query_max(int u, int l, int r) { + if (l <= tr[u].l && tr[u].r <= r) return tr[u].max; + + pushdown(u); + + int mid = (tr[u].l + tr[u].r) >> 1, + res = -INF; + + if (l <= mid) res = std::max(res, query_max(u << 1, l, r)); + if (r > mid) res = std::max(res, query_max(u << 1 | 1, l, r)); + + return res; +} + +int query_min(int u, int l, int r) { + if (l <= tr[u].l && tr[u].r <= r) return tr[u].min; + + pushdown(u); + + int mid = (tr[u].l + tr[u].r) >> 1, + res = INF; + + if (l <= mid) res = std::min(res, query_min(u << 1, l, r)); + if (r > mid) res = std::min(res, query_min(u << 1 | 1, l, r)); + + return res; +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + cin >> n; + + for (int i = 1; i <= n; i++) { + cin >> a[i]; + } + + build(1, 1, n); + + cin >> m; + + while (m--) { + int op; + + cin >> op; + + if (op == 1) { + int l, r, x; + + cin >> l >> r >> x; + + modify_add(1, l, r, x); + } else if (op == 2) { + int l, r, x; + + cin >> l >> r >> x; + + modify_max(1, l, r, x); + } else if (op == 3) { + int l, r, x; + + cin >> l >> r >> x; + + modify_min(1, l, r, x); + } else if (op == 4) { + int l, r; + + cin >> l >> r; + + cout << query_sum(1, l, r) << endl; + } else if (op == 5) { + int l, r; + + cin >> l >> r; + + cout << query_max(1, l, r) << endl; + } else { // op == 6 + int l, r; + + cin >> l >> r; + + cout << query_min(1, l, r) << endl; + } + } + + return 0; +} diff --git a/BZOJ/4695/data/1.in b/BZOJ/4695/data/1.in new file mode 100644 index 00000000..4c5b535d --- /dev/null +++ b/BZOJ/4695/data/1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd45e9a0e0769f799f742d98081c14525ad41058e426baec5211e8e1061e9737 +size 13660961 diff --git a/BZOJ/4695/data/1.out b/BZOJ/4695/data/1.out new file mode 100644 index 00000000..74179e99 --- /dev/null +++ b/BZOJ/4695/data/1.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0733ae3e07aa6583c68c96f9c3c9a617e1b176aedc8e87c4209b1b45c93cefb +size 2243868 diff --git a/BZOJ/4695/data/10.in b/BZOJ/4695/data/10.in new file mode 100644 index 00000000..d6d1265a --- /dev/null +++ b/BZOJ/4695/data/10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1713903caf7e2e9da3478a69e92f8ae480010bc86e53fcb8922286af09a2645b +size 14813338 diff --git a/BZOJ/4695/data/10.out b/BZOJ/4695/data/10.out new file mode 100644 index 00000000..0d91b6ac --- /dev/null +++ b/BZOJ/4695/data/10.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a9c23da3941ce04cb3f4e72f37b9bd5ed7165266628f24787217d7523e5dac6 +size 627633 diff --git a/BZOJ/4695/data/11.in b/BZOJ/4695/data/11.in new file mode 100644 index 00000000..3adc4592 --- /dev/null +++ b/BZOJ/4695/data/11.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1a6c60e5acc210a24c205107c97503afa2bef473672ad83e8b4d06cb3a08c5c +size 1106047 diff --git a/BZOJ/4695/data/11.out b/BZOJ/4695/data/11.out new file mode 100644 index 00000000..d0c04445 --- /dev/null +++ b/BZOJ/4695/data/11.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3666c7489fbc52ee7f66ad048da2b0f400400d9ddf58519db6cc65ae252720f7 +size 198305 diff --git a/BZOJ/4695/data/12.in b/BZOJ/4695/data/12.in new file mode 100644 index 00000000..3a3af733 --- /dev/null +++ b/BZOJ/4695/data/12.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14a1e56be1b2a526b97039107a8757f30e23eb19dd3fff72d3ee6016901ef7ee +size 23260 diff --git a/BZOJ/4695/data/12.out b/BZOJ/4695/data/12.out new file mode 100644 index 00000000..d963e223 --- /dev/null +++ b/BZOJ/4695/data/12.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c03143a30d2f5abbd0d40269ef88bcae4b2dfc80bafd52cce4186cc7be3db23 +size 3130 diff --git a/BZOJ/4695/data/13.in b/BZOJ/4695/data/13.in new file mode 100644 index 00000000..ad5aa001 --- /dev/null +++ b/BZOJ/4695/data/13.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97fbc0dfba141dac1cbf236d3fd5d45faf0878f2584730aa50a8cc772a5901c4 +size 10791449 diff --git a/BZOJ/4695/data/13.out b/BZOJ/4695/data/13.out new file mode 100644 index 00000000..5ef01eae --- /dev/null +++ b/BZOJ/4695/data/13.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28736101ff57d94898e6225324a5cf48be3c10bb7254ef624d36820522f5cb93 +size 1941658 diff --git a/BZOJ/4695/data/14.in b/BZOJ/4695/data/14.in new file mode 100644 index 00000000..c03e0f64 --- /dev/null +++ b/BZOJ/4695/data/14.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91c12f82fd344a51a6d38c809b3a01b137d8a0bda4c93e3d90b6f316fd920ad0 +size 4187923 diff --git a/BZOJ/4695/data/14.out b/BZOJ/4695/data/14.out new file mode 100644 index 00000000..d1d1c4cd --- /dev/null +++ b/BZOJ/4695/data/14.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ac65906208f2a5a45d073696b650e92cab3e8765d9f21ce101ab9e2d1b3f252 +size 454485 diff --git a/BZOJ/4695/data/15.in b/BZOJ/4695/data/15.in new file mode 100644 index 00000000..722aadec --- /dev/null +++ b/BZOJ/4695/data/15.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76cc3b922b3c6efa642d07ed4b6b70b20f62ce96832252891b2ebe1fafd2bc6f +size 19149 diff --git a/BZOJ/4695/data/15.out b/BZOJ/4695/data/15.out new file mode 100644 index 00000000..edf11da3 --- /dev/null +++ b/BZOJ/4695/data/15.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93f5b706d4d3fdf5fedb0be2e3607468100d076cfd4a1850026e83246fc1446e +size 2179 diff --git a/BZOJ/4695/data/16.in b/BZOJ/4695/data/16.in new file mode 100644 index 00000000..382653db --- /dev/null +++ b/BZOJ/4695/data/16.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c39a8050759a0443f68c4c84999067356433e8b190942c677a3bbd196155d1c +size 3511931 diff --git a/BZOJ/4695/data/16.out b/BZOJ/4695/data/16.out new file mode 100644 index 00000000..94e28e2d --- /dev/null +++ b/BZOJ/4695/data/16.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b091f5001bfa1b95711b0dc284525685cde3b337506b263ad8e7326fb42cba6d +size 376789 diff --git a/BZOJ/4695/data/17.in b/BZOJ/4695/data/17.in new file mode 100644 index 00000000..92c493e7 --- /dev/null +++ b/BZOJ/4695/data/17.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebbd54d3c1169aa07eefbaa9b4a89ce9725d62cd29399100499967808f509bf3 +size 12405531 diff --git a/BZOJ/4695/data/17.out b/BZOJ/4695/data/17.out new file mode 100644 index 00000000..2b7ba54d --- /dev/null +++ b/BZOJ/4695/data/17.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad5312c995add103ee57d5f0102fad38066facc5345b53149f9ec166e5c14008 +size 1306275 diff --git a/BZOJ/4695/data/18.in b/BZOJ/4695/data/18.in new file mode 100644 index 00000000..940aa95d --- /dev/null +++ b/BZOJ/4695/data/18.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a849943cd79045fb7c0838fd6e669e9b14f8f34496b0f0fa17d6ecbec4ca9b01 +size 14540400 diff --git a/BZOJ/4695/data/18.out b/BZOJ/4695/data/18.out new file mode 100644 index 00000000..2e8950a9 --- /dev/null +++ b/BZOJ/4695/data/18.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39b1712c72e31163b4ca3499c52103be0e0c0063396565d1b64a5486aecca6ed +size 1509583 diff --git a/BZOJ/4695/data/19.in b/BZOJ/4695/data/19.in new file mode 100644 index 00000000..77164a60 --- /dev/null +++ b/BZOJ/4695/data/19.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcc5db7c22c930bcddd951c0dff38fb419df6093fb9f1dc345bc7bffd613b4a9 +size 4212440 diff --git a/BZOJ/4695/data/19.out b/BZOJ/4695/data/19.out new file mode 100644 index 00000000..ee65ce89 --- /dev/null +++ b/BZOJ/4695/data/19.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:484640a20fb3f801efcdf4ade091e6737f38584267de6741b74d9d9ee4535690 +size 459778 diff --git a/BZOJ/4695/data/2.in b/BZOJ/4695/data/2.in new file mode 100644 index 00000000..3c4a36d8 --- /dev/null +++ b/BZOJ/4695/data/2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789df19681bcdf23823872d258e8bf7374934de1e3dc8eccaf990042666723b7 +size 14540476 diff --git a/BZOJ/4695/data/2.out b/BZOJ/4695/data/2.out new file mode 100644 index 00000000..c7473eef --- /dev/null +++ b/BZOJ/4695/data/2.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f771065dd55f88b75cbbe8db445989a1f06ab3ce92c2ac4a0944704d53afdb17 +size 1527339 diff --git a/BZOJ/4695/data/20.in b/BZOJ/4695/data/20.in new file mode 100644 index 00000000..9c125c20 --- /dev/null +++ b/BZOJ/4695/data/20.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:606b8675750726f48b559e1344b508295f1bebec895a5869c8d9c79ee7d96488 +size 1320595 diff --git a/BZOJ/4695/data/20.out b/BZOJ/4695/data/20.out new file mode 100644 index 00000000..5eda624b --- /dev/null +++ b/BZOJ/4695/data/20.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06491554349c6539b1e3a16e3f0780cb5a4a401ae6090f88a5d79e582b018ae9 +size 267576 diff --git a/BZOJ/4695/data/3.in b/BZOJ/4695/data/3.in new file mode 100644 index 00000000..8d1ae1d4 --- /dev/null +++ b/BZOJ/4695/data/3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4357b8b11cb0f927c4eb3909f1629c5d2f3b5842341e9ab5120e3be746bd5570 +size 1321740 diff --git a/BZOJ/4695/data/3.out b/BZOJ/4695/data/3.out new file mode 100644 index 00000000..d940c5c4 --- /dev/null +++ b/BZOJ/4695/data/3.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb2fe2303debe97b467173cc752129f442617bbe133edbbd40e5fcda85243706 +size 267014 diff --git a/BZOJ/4695/data/4.in b/BZOJ/4695/data/4.in new file mode 100644 index 00000000..7b84187e --- /dev/null +++ b/BZOJ/4695/data/4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e72c966c2deda09e02d5866d5283697dd74939c26f67efa58c47c42e2137a6a1 +size 12244083 diff --git a/BZOJ/4695/data/4.out b/BZOJ/4695/data/4.out new file mode 100644 index 00000000..73614b53 --- /dev/null +++ b/BZOJ/4695/data/4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bab4b264d59b0b58255bcd1980f10a61760dd49889af51a080f4ec38eeed304 +size 507622 diff --git a/BZOJ/4695/data/5.in b/BZOJ/4695/data/5.in new file mode 100644 index 00000000..89e2b450 --- /dev/null +++ b/BZOJ/4695/data/5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92050f9378eb93d694b58b8a414e2a8fc522a1b4fac967d87c651359c69a7e8f +size 14457945 diff --git a/BZOJ/4695/data/5.out b/BZOJ/4695/data/5.out new file mode 100644 index 00000000..8ce553a0 --- /dev/null +++ b/BZOJ/4695/data/5.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:938015c909c436932a4062bcdd0ff1bf145c2e1a3b68a94a73df5789731d52b7 +size 2724610 diff --git a/BZOJ/4695/data/6.in b/BZOJ/4695/data/6.in new file mode 100644 index 00000000..8ebe3df4 --- /dev/null +++ b/BZOJ/4695/data/6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d852247572a4dc8f38677229c31682b498d16ab0d7d1f0b627caa2d85861d973 +size 23317 diff --git a/BZOJ/4695/data/6.out b/BZOJ/4695/data/6.out new file mode 100644 index 00000000..a9b80997 --- /dev/null +++ b/BZOJ/4695/data/6.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c34e9c99903e3d21c5c41a62881c7ccb25e83aad6f43d179bb1ab17ef008bcf1 +size 3253 diff --git a/BZOJ/4695/data/7.in b/BZOJ/4695/data/7.in new file mode 100644 index 00000000..17443d0a --- /dev/null +++ b/BZOJ/4695/data/7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:250665bf0980869b393ebf9497d4fe23a83c44533c3686b752905b21880e6e69 +size 11456680 diff --git a/BZOJ/4695/data/7.out b/BZOJ/4695/data/7.out new file mode 100644 index 00000000..071abd60 --- /dev/null +++ b/BZOJ/4695/data/7.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:154700649be3641c576829510a0947e768aa5e860e129e665b0c3aa66e4abdb4 +size 2061522 diff --git a/BZOJ/4695/data/8.in b/BZOJ/4695/data/8.in new file mode 100644 index 00000000..e3b6f305 --- /dev/null +++ b/BZOJ/4695/data/8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7e74be634e7de2d19ceaf924ec0173fe12e4ebdaba5e8bfb5fe7e2a60e1880a +size 14799925 diff --git a/BZOJ/4695/data/8.out b/BZOJ/4695/data/8.out new file mode 100644 index 00000000..3af20757 --- /dev/null +++ b/BZOJ/4695/data/8.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73a83adf793fb0d954bbf12e1fd21d5988f86dcf57ab801b297d9e93288ca0d1 +size 620965 diff --git a/BZOJ/4695/data/9.in b/BZOJ/4695/data/9.in new file mode 100644 index 00000000..01bc1bb4 --- /dev/null +++ b/BZOJ/4695/data/9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69867030fb2039c4e864d17e48f62854d5993ba93f550a8cf911bf20422513fd +size 14477718 diff --git a/BZOJ/4695/data/9.out b/BZOJ/4695/data/9.out new file mode 100644 index 00000000..cf0db62d --- /dev/null +++ b/BZOJ/4695/data/9.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34045bff006a88dd9b04f6b0fc974d1c3de84fdda826da048172765bfb9f9fdc +size 2666339