Replace sk_has_side_effects keyword with $pure.
Going forward, any function will be considered to be pure if it is
marked with the `$pure` modifier. `$pure` is private and only allowed
in modules.
For reference, the old heuristic was both more complicated and less
flexible:
- User functions are never pure.
- Module functions with a body are never pure.
- Module functions without a body are pure when:
- The function's name must be on the list of known intrinsics
- The function must not have the `sk_has_side_effects` modifier
Change-Id: I717a619e96f2d6b36561e403c0b6759752aaf8f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/583961
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/include/private/SkSLModifiers.h b/include/private/SkSLModifiers.h
index a54274c..1445b97 100644
--- a/include/private/SkSLModifiers.h
+++ b/include/private/SkSLModifiers.h
@@ -53,7 +53,7 @@
kThreadgroup_Flag = 1 << 12,
// SkSL extensions, not present in GLSL
kES3_Flag = 1 << 13,
- kHasSideEffects_Flag = 1 << 14,
+ kPure_Flag = 1 << 14,
kInline_Flag = 1 << 15,
kNoInline_Flag = 1 << 16,
};
@@ -76,8 +76,8 @@
if (flags & kES3_Flag) {
result += "$es3 ";
}
- if (flags & kHasSideEffects_Flag) {
- result += "sk_has_side_effects ";
+ if (flags & kPure_Flag) {
+ result += "$pure ";
}
if (flags & kInline_Flag) {
result += "inline ";
diff --git a/resources/sksl/errors/BadModifiers.sksl b/resources/sksl/errors/BadModifiers.sksl
index bfdc217..6dcb1f3 100644
--- a/resources/sksl/errors/BadModifiers.sksl
+++ b/resources/sksl/errors/BadModifiers.sksl
@@ -1,17 +1,16 @@
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
buffer void func1() {}
-void func2(const in out uniform flat noperspective sk_has_side_effects
+void func2(const in out uniform flat noperspective $pure
inline noinline readonly writeonly buffer float test) {}
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
buffer float var;
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
buffer MyInterfaceBlock { float var; };
/*%%*
-'sk_has_side_effects' is not permitted here
type 'void' does not support qualifier 'readonly writeonly'
'const' is not permitted here
'in' is not permitted here
@@ -19,29 +18,29 @@
'uniform' is not permitted here
'flat' is not permitted here
'noperspective' is not permitted here
+'$pure' is not permitted here
'buffer' is not permitted here
functions cannot be both 'inline' and 'noinline'
-'sk_has_side_effects' is not permitted here
type 'float' does not support qualifier 'readonly writeonly'
'uniform' is not permitted here
'flat' is not permitted here
'noperspective' is not permitted here
-'sk_has_side_effects' is not permitted here
+'$pure' is not permitted here
'inline' is not permitted here
'noinline' is not permitted here
'buffer' is not permitted here
-'sk_has_side_effects' is not permitted here
type 'float' does not support qualifier 'readonly writeonly'
'in uniform' variables not permitted
'uniform buffer' variables not permitted
+'$pure' is not permitted here
'inline' is not permitted here
'noinline' is not permitted here
'buffer' is not permitted here
'const' variables must be initialized
-'sk_has_side_effects' is not permitted here
'in uniform' variables not permitted
'readonly' and 'writeonly' qualifiers cannot be combined
'uniform buffer' variables not permitted
+'$pure' is not permitted here
'inline' is not permitted here
'noinline' is not permitted here
'const' variables must be initialized
diff --git a/resources/sksl/runtime_errors/IllegalModifiers.rts b/resources/sksl/runtime_errors/IllegalModifiers.rts
index a9a2be2..958d19e 100644
--- a/resources/sksl/runtime_errors/IllegalModifiers.rts
+++ b/resources/sksl/runtime_errors/IllegalModifiers.rts
@@ -4,7 +4,7 @@
out float _out;
threadgroup float _threadgroup;
$es3 float _es3;
-sk_has_side_effects float _sk_has_side_effects;
+$pure float _pure;
inline float _inline;
noinline float _noinline;
readonly float _readonly;
@@ -16,7 +16,7 @@
out void out_fn() {}
threadgroup void threadgroup_fn() {}
$es3 void es3_fn() {}
-sk_has_side_effects void sk_has_side_effect_fn() {}
+$pure void sk_pure_fn() {}
readonly void readonly_fn() {}
writeonly void writeonly_fn() {}
buffer void buffer_fn() {}
@@ -32,7 +32,7 @@
'out' is not permitted here
'threadgroup' is not permitted here
'$es3' is not permitted here
-'sk_has_side_effects' is not permitted here
+'$pure' is not permitted here
'inline' is not permitted here
'noinline' is not permitted here
type 'float' does not support qualifier 'readonly'
@@ -43,7 +43,7 @@
'out' is not permitted here
'threadgroup' is not permitted here
'$es3' is not permitted here
-'sk_has_side_effects' is not permitted here
+'$pure' is not permitted here
type 'void' does not support qualifier 'readonly'
type 'void' does not support qualifier 'writeonly'
'buffer' is not permitted here
diff --git a/src/sksl/SkSLLexer.cpp b/src/sksl/SkSLLexer.cpp
index f3b2e97..15a9707 100644
--- a/src/sksl/SkSLLexer.cpp
+++ b/src/sksl/SkSLLexer.cpp
@@ -30,85 +30,85 @@
};
static constexpr FullEntry kFull[] = {
{
- 0, 2, 3, 4, 5, 7, 9, 14, 16, 19, 20, 21, 23, 26, 27,
- 30, 35, 41, 60, 60, 60, 60, 60, 60, 62, 63, 64, 68, 70, 74,
- 75, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 86, 87, 84, 90,
- 100, 110, 126, 146, 158, 174, 179, 187, 84, 211, 221, 228, 254, 259, 275,
- 287, 359, 385, 401, 413, 84, 84, 84, 426, 427, 430, 431,
+ 0, 2, 3, 4, 5, 7, 9, 18, 20, 23, 24, 25, 27, 30, 31,
+ 34, 39, 45, 64, 64, 64, 64, 64, 64, 66, 67, 68, 72, 74, 78,
+ 79, 88, 88, 88, 88, 88, 88, 88, 88, 88, 89, 90, 91, 88, 94,
+ 104, 114, 130, 150, 162, 178, 183, 191, 88, 215, 225, 232, 258, 263, 279,
+ 291, 345, 371, 387, 399, 88, 88, 88, 412, 413, 416, 417,
},
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 50, 50, 50, 50, 50, 50, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0,
- 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 58, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 54, 54, 54, 54, 54, 54, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 62, 0, 0, 0, 0, 0, 0,
},
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 50, 50, 50, 50, 50, 50, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 54, 54, 54, 54, 54, 54, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 51, 51, 51, 51, 51, 51, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 55, 55, 55, 55, 55, 55, 55,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 61, 61, 61, 61, 61, 61, 61,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 65, 65, 65, 65, 65, 65, 65,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 0, 0, 0, 10, 111, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 114, 10, 10, 117, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0,
+ 10, 10, 10, 10, 0, 0, 0, 10, 115, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 118, 10, 10, 121, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 127, 10, 10, 10, 133, 10,
- 10, 10, 10, 139, 10, 10, 10, 10, 10, 143, 10, 10, 10, 10, 0, 0, 0, 0,
+ 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 131, 10, 10, 10, 137, 10,
+ 10, 10, 10, 143, 10, 10, 10, 10, 10, 147, 10, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 147, 10, 150, 10, 10, 10, 10, 10, 10, 10, 10, 152, 10, 10, 0, 0, 0, 0,
+ 151, 10, 154, 10, 10, 10, 10, 10, 10, 10, 10, 156, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 0, 0, 0, 10, 159, 10, 10, 10, 10, 10, 10, 10, 163, 10,
- 166, 10, 10, 169, 10, 10, 10, 10, 10, 171, 10, 10, 10, 10, 0, 0, 0, 0,
+ 10, 10, 10, 10, 0, 0, 0, 10, 163, 10, 10, 10, 10, 10, 10, 10, 167, 10,
+ 170, 10, 10, 173, 10, 10, 10, 10, 10, 175, 10, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 190, 10, 10, 194, 197, 10, 10, 199, 10, 205, 10, 10, 10, 10, 0, 0, 0, 0,
+ 194, 10, 10, 198, 201, 10, 10, 203, 10, 209, 10, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 0, 0, 0, 10, 260, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 264, 10, 10, 271, 10, 10, 10, 10, 10, 0, 0, 0, 0,
+ 10, 10, 10, 10, 0, 0, 0, 10, 264, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 268, 10, 10, 275, 10, 10, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 0, 0, 0, 10, 288, 10, 10, 10, 10, 10, 10, 10, 320, 324,
- 10, 10, 10, 10, 10, 10, 10, 342, 350, 10, 354, 10, 10, 10, 0, 0, 0, 0,
+ 10, 10, 10, 10, 0, 0, 0, 10, 292, 10, 10, 10, 10, 10, 10, 10, 324, 10,
+ 10, 10, 10, 10, 10, 10, 10, 328, 336, 10, 340, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
- 294, 301, 312, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 317, 10, 10, 10,
+ 298, 305, 316, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 321, 10, 10, 10,
10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 0, 0,
},
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
10, 10, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 360, 10, 10, 366, 10, 10,
- 10, 10, 10, 10, 10, 377, 10, 10, 10, 10, 10, 10, 380, 10, 0, 0, 0, 0,
+ 10, 10, 10, 10, 0, 0, 0, 10, 10, 10, 10, 10, 346, 10, 10, 352, 10, 10,
+ 10, 10, 10, 10, 10, 363, 10, 10, 10, 10, 10, 10, 366, 10, 0, 0, 0, 0,
},
};
static constexpr CompactEntry kCompact[] = {
@@ -217,25 +217,25 @@
0,
255,
}},
- {11 | (10 << 9),
+ {14 | (11 << 9) | (10 << 18),
{
255,
255,
255,
255,
- 87,
- 85,
+ 171,
+ 170,
255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 169,
+ 170,
+ 138,
+ 170,
+ 170,
255,
}},
{10,
@@ -301,7 +301,70 @@
85,
255,
}},
- {15,
+ {15 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 255,
+ }},
+ {16 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 21,
+ 85,
+ 85,
+ 255,
+ }},
+ {17 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {19,
{
255,
255,
@@ -322,7 +385,7 @@
255,
255,
}},
- {18 | (17 << 9),
+ {22 | (21 << 9),
{
255,
255,
@@ -343,7 +406,7 @@
255,
255,
}},
- {22,
+ {26,
{
255,
255,
@@ -364,32 +427,32 @@
255,
255,
}},
- {25 | (24 << 9),
- {
- 255,
- 255,
- 255,
- 253,
- 255,
- 255,
- 63,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- }},
{29 | (28 << 9),
{
255,
255,
255,
+ 253,
+ 255,
+ 255,
+ 63,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ }},
+ {33 | (32 << 9),
+ {
+ 255,
+ 255,
+ 255,
223,
255,
255,
@@ -406,7 +469,7 @@
255,
255,
}},
- {31,
+ {35,
{
255,
255,
@@ -427,7 +490,7 @@
255,
255,
}},
- {32 | (31 << 9),
+ {36 | (35 << 9),
{
255,
255,
@@ -448,7 +511,7 @@
255,
255,
}},
- {34 | (33 << 9),
+ {38 | (37 << 9),
{
255,
255,
@@ -469,7 +532,7 @@
255,
255,
}},
- {34,
+ {38,
{
255,
255,
@@ -490,7 +553,7 @@
255,
255,
}},
- {40 | (39 << 9) | (36 << 18),
+ {44 | (43 << 9) | (40 << 18),
{
255,
255,
@@ -511,7 +574,7 @@
255,
255,
}},
- {37 | (36 << 9),
+ {41 | (40 << 9),
{
87,
85,
@@ -532,7 +595,7 @@
85,
85,
}},
- {38 | (36 << 9),
+ {42 | (40 << 9),
{
87,
85,
@@ -553,7 +616,7 @@
85,
85,
}},
- {39,
+ {43,
{
51,
0,
@@ -574,7 +637,7 @@
0,
0,
}},
- {47 | (43 << 9),
+ {51 | (47 << 9),
{
255,
255,
@@ -595,7 +658,7 @@
255,
255,
}},
- {44 | (43 << 9),
+ {48 | (47 << 9),
{
255,
255,
@@ -616,7 +679,7 @@
255,
255,
}},
- {46 | (45 << 9),
+ {50 | (49 << 9),
{
255,
255,
@@ -637,7 +700,7 @@
255,
255,
}},
- {46,
+ {50,
{
255,
255,
@@ -658,7 +721,7 @@
255,
255,
}},
- {49 | (48 << 9),
+ {53 | (52 << 9),
{
255,
255,
@@ -679,7 +742,7 @@
255,
255,
}},
- {49,
+ {53,
{
255,
255,
@@ -700,7 +763,7 @@
255,
255,
}},
- {54 | (53 << 9),
+ {58 | (57 << 9),
{
255,
255,
@@ -721,7 +784,7 @@
255,
255,
}},
- {54,
+ {58,
{
255,
255,
@@ -742,7 +805,7 @@
255,
255,
}},
- {59,
+ {63,
{
255,
255,
@@ -763,7 +826,7 @@
255,
255,
}},
- {59 | (57 << 9),
+ {63 | (61 << 9),
{
255,
255,
@@ -784,7 +847,7 @@
255,
255,
}},
- {67 | (65 << 9),
+ {71 | (69 << 9),
{
255,
255,
@@ -805,7 +868,7 @@
255,
255,
}},
- {66,
+ {70,
{
255,
255,
@@ -826,48 +889,6 @@
255,
255,
}},
- {69,
- {
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 63,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- }},
- {72 | (71 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 127,
- 252,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- }},
{73,
{
255,
@@ -889,7 +910,49 @@
255,
255,
}},
- {78 | (76 << 9),
+ {76 | (75 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 127,
+ 252,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ }},
+ {77,
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 63,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ }},
+ {82 | (80 << 9),
{
255,
255,
@@ -910,69 +973,6 @@
255,
255,
}},
- {77,
- {
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 243,
- 255,
- 255,
- 255,
- 255,
- 255,
- }},
- {79,
- {
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 252,
- 255,
- }},
- {80,
- {
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 252,
- 255,
- 255,
- 255,
- 255,
- }},
{81,
{
255,
@@ -987,30 +987,9 @@
255,
255,
255,
- 255,
- 255,
- 255,
243,
255,
255,
- }},
- {82,
- {
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 255,
- 207,
- 255,
- 255,
- 255,
255,
255,
255,
@@ -1029,6 +1008,90 @@
255,
255,
255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 252,
+ 255,
+ }},
+ {84,
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 252,
+ 255,
+ 255,
+ 255,
+ 255,
+ }},
+ {85,
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 243,
+ 255,
+ 255,
+ }},
+ {86,
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 207,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ }},
+ {87,
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
+ 255,
63,
255,
255,
@@ -1036,7 +1099,7 @@
255,
255,
}},
- {89 | (88 << 9),
+ {93 | (92 << 9),
{
255,
255,
@@ -1057,7 +1120,7 @@
255,
255,
}},
- {93 | (91 << 9) | (10 << 18),
+ {97 | (95 << 9) | (10 << 18),
{
255,
255,
@@ -1078,69 +1141,6 @@
170,
255,
}},
- {92 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 21,
- 85,
- 85,
- 85,
- 255,
- }},
- {94 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 81,
- 85,
- 255,
- }},
- {95 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 21,
- 85,
- 85,
- 255,
- }},
{96 | (10 << 9),
{
255,
@@ -1156,28 +1156,7 @@
127,
85,
85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {97 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 81,
- 85,
- 85,
+ 21,
85,
85,
85,
@@ -1200,7 +1179,7 @@
85,
85,
85,
- 69,
+ 81,
85,
255,
}},
@@ -1220,200 +1199,242 @@
85,
85,
85,
- 85,
- 81,
- 85,
- 255,
- }},
- {92 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {105 | (101 << 9) | (10 << 18),
- {
- 255,
- 255,
- 255,
- 255,
- 171,
- 170,
- 255,
- 191,
- 170,
- 170,
- 191,
- 170,
- 170,
- 170,
- 106,
- 138,
- 170,
- 255,
- }},
- {102 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {103 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 84,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {104 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 81,
- 85,
- 85,
- 85,
- 255,
- }},
- {106 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 81,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {107 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 81,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {108 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {109 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
21,
85,
85,
255,
}},
+ {100 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {101 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 81,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {102 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 255,
+ }},
+ {103 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 81,
+ 85,
+ 255,
+ }},
+ {96 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {109 | (105 << 9) | (10 << 18),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 171,
+ 170,
+ 255,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 170,
+ 170,
+ 106,
+ 138,
+ 170,
+ 255,
+ }},
+ {106 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {107 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {108 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 81,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {110 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 81,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {111 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 81,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
{112 | (10 << 9),
{
255,
@@ -1428,35 +1449,14 @@
85,
127,
85,
- 85,
- 85,
- 85,
84,
85,
+ 85,
+ 85,
+ 85,
255,
}},
- {113 | (92 << 9) | (10 << 18),
- {
- 255,
- 255,
- 255,
- 255,
- 171,
- 170,
- 255,
- 191,
- 170,
- 170,
- 191,
- 170,
- 168,
- 170,
- 170,
- 166,
- 170,
- 255,
- }},
- {115 | (10 << 9),
+ {113 | (10 << 9),
{
255,
255,
@@ -1469,10 +1469,10 @@
85,
85,
127,
- 84,
85,
85,
85,
+ 21,
85,
85,
255,
@@ -1498,7 +1498,49 @@
85,
255,
}},
- {92 | (10 << 9),
+ {117 | (96 << 9) | (10 << 18),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 171,
+ 170,
+ 255,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 168,
+ 170,
+ 170,
+ 166,
+ 170,
+ 255,
+ }},
+ {119 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {120 | (10 << 9),
{
255,
255,
@@ -1519,7 +1561,28 @@
85,
255,
}},
- {118 | (10 << 9),
+ {96 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 84,
+ 85,
+ 255,
+ }},
+ {122 | (10 << 9),
{
255,
255,
@@ -1540,7 +1603,7 @@
85,
255,
}},
- {121 | (119 << 9) | (10 << 18),
+ {125 | (123 << 9) | (10 << 18),
{
255,
255,
@@ -1561,7 +1624,7 @@
170,
255,
}},
- {120 | (10 << 9),
+ {124 | (10 << 9),
{
255,
255,
@@ -1582,7 +1645,7 @@
85,
255,
}},
- {122 | (10 << 9),
+ {126 | (10 << 9),
{
255,
255,
@@ -1603,7 +1666,7 @@
85,
255,
}},
- {123 | (10 << 9),
+ {127 | (10 << 9),
{
255,
255,
@@ -1624,48 +1687,6 @@
85,
255,
}},
- {124 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 69,
- 85,
- 255,
- }},
- {125 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{128 | (10 << 9),
{
255,
@@ -1680,10 +1701,10 @@
85,
127,
85,
- 81,
85,
85,
85,
+ 69,
85,
255,
}},
@@ -1700,54 +1721,12 @@
85,
85,
127,
+ 85,
84,
85,
85,
85,
85,
- 85,
- 255,
- }},
- {130 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 69,
- 85,
- 255,
- }},
- {131 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
255,
}},
{132 | (10 << 9),
@@ -1764,11 +1743,32 @@
85,
127,
85,
- 85,
- 85,
- 85,
81,
85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {133 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
255,
}},
{134 | (10 << 9),
@@ -1788,7 +1788,7 @@
85,
85,
85,
- 84,
+ 69,
85,
255,
}},
@@ -1805,12 +1805,12 @@
85,
85,
127,
+ 85,
+ 85,
69,
85,
85,
85,
- 85,
- 85,
255,
}},
{136 | (10 << 9),
@@ -1826,32 +1826,11 @@
85,
85,
127,
- 84,
85,
85,
85,
85,
- 85,
- 255,
- }},
- {137 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 21,
- 85,
+ 81,
85,
255,
}},
@@ -1868,7 +1847,28 @@
85,
85,
127,
- 21,
+ 85,
+ 85,
+ 85,
+ 85,
+ 84,
+ 85,
+ 255,
+ }},
+ {139 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 69,
85,
85,
85,
@@ -1889,6 +1889,69 @@
85,
85,
127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {141 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 21,
+ 85,
+ 85,
+ 255,
+ }},
+ {142 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 21,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {144 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
85,
85,
85,
@@ -1897,7 +1960,7 @@
85,
255,
}},
- {141 | (10 << 9),
+ {145 | (10 << 9),
{
255,
255,
@@ -1918,7 +1981,7 @@
85,
255,
}},
- {142 | (10 << 9),
+ {146 | (10 << 9),
{
255,
255,
@@ -1939,7 +2002,7 @@
85,
255,
}},
- {144 | (10 << 9),
+ {148 | (10 << 9),
{
255,
255,
@@ -1960,7 +2023,7 @@
85,
255,
}},
- {145 | (10 << 9),
+ {149 | (10 << 9),
{
255,
255,
@@ -1981,7 +2044,7 @@
85,
255,
}},
- {92 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -2002,7 +2065,7 @@
85,
255,
}},
- {148 | (10 << 9),
+ {152 | (10 << 9),
{
255,
255,
@@ -2023,48 +2086,6 @@
85,
255,
}},
- {149 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {151 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 69,
- 85,
- 255,
- }},
{153 | (10 << 9),
{
255,
@@ -2079,27 +2100,6 @@
85,
127,
85,
- 85,
- 85,
- 85,
- 81,
- 85,
- 255,
- }},
- {154 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
84,
85,
85,
@@ -2123,29 +2123,8 @@
85,
85,
85,
- 21,
85,
- 85,
- 255,
- }},
- {156 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 84,
- 85,
+ 69,
85,
255,
}},
@@ -2162,15 +2141,36 @@
85,
85,
127,
- 84,
85,
85,
85,
85,
+ 81,
+ 85,
+ 255,
+ }},
+ {158 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
85,
255,
}},
- {92 | (10 << 9),
+ {159 | (10 << 9),
{
255,
255,
@@ -2185,8 +2185,8 @@
127,
85,
85,
- 69,
85,
+ 21,
85,
85,
255,
@@ -2206,8 +2206,8 @@
127,
85,
85,
- 69,
85,
+ 84,
85,
85,
255,
@@ -2225,15 +2225,15 @@
85,
85,
127,
- 85,
- 85,
- 85,
- 85,
84,
85,
+ 85,
+ 85,
+ 85,
+ 85,
255,
}},
- {162 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -2247,8 +2247,8 @@
85,
127,
85,
- 84,
85,
+ 69,
85,
85,
85,
@@ -2269,10 +2269,10 @@
127,
85,
85,
+ 69,
85,
85,
85,
- 81,
255,
}},
{165 | (10 << 9),
@@ -2289,14 +2289,14 @@
85,
127,
85,
+ 85,
+ 85,
+ 85,
84,
85,
- 85,
- 85,
- 85,
255,
}},
- {92 | (10 << 9),
+ {166 | (10 << 9),
{
255,
255,
@@ -2309,33 +2309,12 @@
85,
85,
127,
- 21,
85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {167 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
84,
85,
85,
85,
85,
- 85,
255,
}},
{168 | (10 << 9),
@@ -2355,32 +2334,11 @@
85,
85,
85,
+ 85,
81,
- 85,
255,
}},
- {170 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 21,
- 85,
- 85,
- 255,
- }},
- {172 | (10 << 9),
+ {169 | (10 << 9),
{
255,
255,
@@ -2401,7 +2359,112 @@
85,
255,
}},
- {173 | (10 << 9),
+ {96 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 21,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {171 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {172 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 81,
+ 85,
+ 255,
+ }},
+ {174 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 21,
+ 85,
+ 85,
+ 255,
+ }},
+ {176 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {177 | (10 << 9),
{
255,
255,
@@ -2422,7 +2485,7 @@
85,
255,
}},
- {177 | (175 << 9) | (10 << 18),
+ {181 | (179 << 9) | (10 << 18),
{
255,
255,
@@ -2443,7 +2506,7 @@
170,
255,
}},
- {176 | (10 << 9),
+ {180 | (10 << 9),
{
255,
255,
@@ -2464,7 +2527,7 @@
85,
255,
}},
- {176,
+ {180,
{
255,
255,
@@ -2485,7 +2548,7 @@
0,
255,
}},
- {178 | (10 << 9),
+ {182 | (10 << 9),
{
255,
255,
@@ -2506,7 +2569,7 @@
85,
255,
}},
- {92 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -2527,7 +2590,7 @@
85,
255,
}},
- {184 | (180 << 9) | (10 << 18),
+ {188 | (184 << 9) | (10 << 18),
{
255,
255,
@@ -2548,7 +2611,7 @@
170,
255,
}},
- {181 | (10 << 9),
+ {185 | (10 << 9),
{
255,
255,
@@ -2569,7 +2632,7 @@
85,
255,
}},
- {182 | (10 << 9),
+ {186 | (10 << 9),
{
255,
255,
@@ -2590,7 +2653,7 @@
85,
255,
}},
- {183 | (10 << 9),
+ {187 | (10 << 9),
{
255,
255,
@@ -2611,7 +2674,7 @@
85,
255,
}},
- {185 | (10 << 9),
+ {189 | (10 << 9),
{
255,
255,
@@ -2632,7 +2695,7 @@
85,
255,
}},
- {186 | (10 << 9),
+ {190 | (10 << 9),
{
255,
255,
@@ -2653,7 +2716,7 @@
85,
255,
}},
- {189 | (188 << 9) | (10 << 18),
+ {193 | (192 << 9) | (10 << 18),
{
255,
255,
@@ -2674,69 +2737,6 @@
170,
255,
}},
- {191 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {192 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 84,
- 85,
- 85,
- 255,
- }},
- {193 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{195 | (10 << 9),
{
255,
@@ -2752,9 +2752,9 @@
127,
85,
85,
+ 84,
85,
85,
- 69,
85,
255,
}},
@@ -2774,54 +2774,12 @@
85,
85,
85,
+ 84,
85,
- 81,
85,
255,
}},
- {198 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 69,
- 85,
- 255,
- }},
- {92 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 81,
- 85,
- 255,
- }},
- {200 | (10 << 9),
+ {197 | (10 << 9),
{
255,
255,
@@ -2842,7 +2800,112 @@
85,
255,
}},
- {201 | (10 << 9),
+ {199 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 255,
+ }},
+ {200 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 81,
+ 85,
+ 255,
+ }},
+ {202 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 255,
+ }},
+ {96 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 81,
+ 85,
+ 255,
+ }},
+ {204 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {205 | (10 << 9),
{
255,
255,
@@ -2863,7 +2926,7 @@
85,
255,
}},
- {202 | (10 << 9),
+ {206 | (10 << 9),
{
255,
255,
@@ -2884,69 +2947,6 @@
85,
255,
}},
- {203 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 84,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {204 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 69,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {206 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 84,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{207 | (10 << 9),
{
255,
@@ -2960,10 +2960,10 @@
85,
85,
127,
+ 84,
85,
85,
85,
- 21,
85,
85,
255,
@@ -2981,28 +2981,7 @@
85,
85,
127,
- 85,
- 85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {209 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 84,
+ 69,
85,
85,
85,
@@ -3023,6 +3002,90 @@
85,
85,
127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {211 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 21,
+ 85,
+ 85,
+ 255,
+ }},
+ {212 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {213 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {214 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
85,
85,
85,
@@ -3031,7 +3094,7 @@
85,
255,
}},
- {217 | (212 << 9) | (10 << 18),
+ {221 | (216 << 9) | (10 << 18),
{
255,
255,
@@ -3052,7 +3115,7 @@
170,
255,
}},
- {213 | (10 << 9),
+ {217 | (10 << 9),
{
255,
255,
@@ -3073,7 +3136,7 @@
69,
255,
}},
- {214 | (10 << 9),
+ {218 | (10 << 9),
{
255,
255,
@@ -3094,7 +3157,7 @@
85,
255,
}},
- {215 | (10 << 9),
+ {219 | (10 << 9),
{
255,
255,
@@ -3115,7 +3178,7 @@
85,
255,
}},
- {216 | (10 << 9),
+ {220 | (10 << 9),
{
255,
255,
@@ -3136,7 +3199,7 @@
85,
255,
}},
- {219 | (218 << 9) | (10 << 18),
+ {223 | (222 << 9) | (10 << 18),
{
255,
255,
@@ -3157,7 +3220,7 @@
168,
255,
}},
- {92 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -3178,69 +3241,6 @@
85,
255,
}},
- {220 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 69,
- 85,
- 85,
- 255,
- }},
- {222 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {223 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 21,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{224 | (10 << 9),
{
255,
@@ -3256,31 +3256,10 @@
127,
85,
85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {225 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
85,
69,
85,
+ 85,
255,
}},
{226 | (10 << 9),
@@ -3297,8 +3276,8 @@
85,
127,
85,
+ 84,
85,
- 21,
85,
85,
85,
@@ -3317,33 +3296,54 @@
85,
85,
127,
+ 21,
85,
85,
85,
- 69,
85,
85,
255,
}},
- {236 | (229 << 9) | (10 << 18),
+ {228 | (10 << 9),
{
255,
255,
255,
255,
- 171,
- 170,
+ 87,
+ 85,
255,
- 191,
- 170,
- 170,
- 191,
- 169,
- 170,
- 170,
- 162,
- 170,
- 170,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {229 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
255,
}},
{230 | (10 << 9),
@@ -3381,48 +3381,6 @@
85,
127,
85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {232 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 84,
- 85,
- 255,
- }},
- {233 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
85,
85,
69,
@@ -3430,6 +3388,27 @@
85,
255,
}},
+ {240 | (233 << 9) | (10 << 18),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 171,
+ 170,
+ 255,
+ 191,
+ 170,
+ 170,
+ 191,
+ 169,
+ 170,
+ 170,
+ 162,
+ 170,
+ 170,
+ 255,
+ }},
{234 | (10 << 9),
{
255,
@@ -3443,9 +3422,9 @@
85,
85,
127,
- 84,
85,
85,
+ 21,
85,
85,
85,
@@ -3464,6 +3443,90 @@
85,
85,
127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {236 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 84,
+ 85,
+ 255,
+ }},
+ {237 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 85,
+ 255,
+ }},
+ {238 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {239 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
69,
85,
85,
@@ -3472,7 +3535,7 @@
85,
255,
}},
- {243 | (237 << 9) | (10 << 18),
+ {247 | (241 << 9) | (10 << 18),
{
255,
255,
@@ -3493,7 +3556,7 @@
170,
255,
}},
- {238 | (10 << 9),
+ {242 | (10 << 9),
{
255,
255,
@@ -3514,7 +3577,7 @@
85,
255,
}},
- {239 | (10 << 9),
+ {243 | (10 << 9),
{
255,
255,
@@ -3535,69 +3598,6 @@
85,
255,
}},
- {240 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {241 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 84,
- 85,
- 85,
- 255,
- }},
- {242 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{244 | (10 << 9),
{
255,
@@ -3612,8 +3612,8 @@
85,
127,
85,
- 84,
85,
+ 84,
85,
85,
85,
@@ -3635,7 +3635,7 @@
85,
85,
85,
- 21,
+ 84,
85,
85,
255,
@@ -3654,30 +3654,9 @@
85,
127,
85,
- 85,
- 85,
- 85,
84,
85,
- 255,
- }},
- {247 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 69,
85,
85,
255,
@@ -3716,10 +3695,10 @@
85,
85,
127,
- 69,
85,
85,
85,
+ 21,
85,
85,
255,
@@ -3741,7 +3720,7 @@
85,
85,
85,
- 81,
+ 84,
85,
255,
}},
@@ -3760,8 +3739,8 @@
127,
85,
85,
- 84,
85,
+ 69,
85,
85,
255,
@@ -3780,10 +3759,10 @@
85,
127,
85,
+ 84,
85,
85,
85,
- 21,
85,
255,
}},
@@ -3800,12 +3779,33 @@
85,
85,
127,
- 85,
- 84,
+ 69,
85,
85,
85,
85,
+ 85,
+ 255,
+ }},
+ {254 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 81,
+ 85,
255,
}},
{255 | (10 << 9),
@@ -3823,9 +3823,9 @@
127,
85,
85,
+ 84,
85,
85,
- 69,
85,
255,
}},
@@ -3846,7 +3846,7 @@
85,
85,
85,
- 81,
+ 21,
85,
255,
}},
@@ -3864,14 +3864,14 @@
85,
127,
85,
+ 84,
85,
85,
- 69,
85,
85,
255,
}},
- {258 | (10 << 9),
+ {259 | (10 << 9),
{
255,
255,
@@ -3892,6 +3892,27 @@
85,
255,
}},
+ {260 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 81,
+ 85,
+ 255,
+ }},
{261 | (10 << 9),
{
255,
@@ -3905,12 +3926,12 @@
85,
85,
127,
+ 85,
+ 85,
+ 85,
69,
85,
85,
- 85,
- 85,
- 85,
255,
}},
{262 | (10 << 9),
@@ -3928,30 +3949,9 @@
127,
85,
85,
- 81,
85,
85,
- 85,
- 255,
- }},
- {263 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
+ 69,
85,
255,
}},
@@ -3968,8 +3968,8 @@
85,
85,
127,
+ 69,
85,
- 84,
85,
85,
85,
@@ -3989,9 +3989,9 @@
85,
85,
127,
- 69,
85,
85,
+ 81,
85,
85,
85,
@@ -4011,31 +4011,10 @@
85,
127,
85,
- 85,
84,
85,
85,
85,
- 255,
- }},
- {268 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 84,
85,
255,
}},
@@ -4053,11 +4032,11 @@
85,
127,
85,
- 85,
84,
85,
85,
85,
+ 85,
255,
}},
{270 | (10 << 9),
@@ -4073,15 +4052,15 @@
85,
85,
127,
+ 69,
85,
85,
85,
- 81,
85,
85,
255,
}},
- {92 | (10 << 9),
+ {271 | (10 << 9),
{
255,
255,
@@ -4096,10 +4075,10 @@
127,
85,
85,
- 85,
84,
85,
85,
+ 85,
255,
}},
{272 | (10 << 9),
@@ -4115,11 +4094,11 @@
85,
85,
127,
- 81,
85,
85,
85,
85,
+ 84,
85,
255,
}},
@@ -4138,7 +4117,7 @@
127,
85,
85,
- 69,
+ 84,
85,
85,
85,
@@ -4159,13 +4138,97 @@
127,
85,
85,
+ 85,
+ 81,
+ 85,
+ 85,
+ 255,
+ }},
+ {96 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 84,
+ 85,
+ 85,
+ 255,
+ }},
+ {276 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 81,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {277 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 69,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {278 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
84,
85,
85,
85,
255,
}},
- {92 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -4186,7 +4249,7 @@
85,
255,
}},
- {276 | (10 << 9),
+ {280 | (10 << 9),
{
255,
255,
@@ -4207,7 +4270,7 @@
85,
255,
}},
- {283 | (277 << 9) | (10 << 18),
+ {287 | (281 << 9) | (10 << 18),
{
255,
255,
@@ -4228,7 +4291,7 @@
170,
255,
}},
- {278 | (10 << 9),
+ {282 | (10 << 9),
{
255,
255,
@@ -4249,7 +4312,7 @@
85,
255,
}},
- {279 | (10 << 9),
+ {283 | (10 << 9),
{
255,
255,
@@ -4270,7 +4333,7 @@
85,
255,
}},
- {280 | (10 << 9),
+ {284 | (10 << 9),
{
255,
255,
@@ -4291,69 +4354,6 @@
85,
255,
}},
- {281 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
- 255,
- }},
- {282 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 85,
- 69,
- 255,
- }},
- {284 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 69,
- 85,
- 255,
- }},
{285 | (10 << 9),
{
255,
@@ -4369,8 +4369,8 @@
127,
85,
85,
+ 69,
85,
- 21,
85,
85,
255,
@@ -4391,9 +4391,30 @@
85,
85,
85,
- 84,
85,
85,
+ 69,
+ 255,
+ }},
+ {288 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
255,
}},
{289 | (10 << 9),
@@ -4411,8 +4432,8 @@
127,
85,
85,
- 21,
85,
+ 21,
85,
85,
255,
@@ -4433,51 +4454,9 @@
85,
85,
85,
- 69,
- 85,
- 85,
- 255,
- }},
- {291 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
- 255,
- }},
- {292 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
84,
85,
85,
- 85,
- 85,
255,
}},
{293 | (10 << 9),
@@ -4495,10 +4474,31 @@
127,
85,
85,
- 85,
21,
85,
85,
+ 85,
+ 255,
+ }},
+ {294 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 85,
255,
}},
{295 | (10 << 9),
@@ -4511,12 +4511,12 @@
85,
255,
127,
- 81,
+ 85,
85,
127,
85,
85,
- 85,
+ 69,
85,
85,
85,
@@ -4533,10 +4533,10 @@
255,
127,
85,
- 81,
+ 85,
127,
85,
- 85,
+ 84,
85,
85,
85,
@@ -4557,32 +4557,11 @@
85,
127,
85,
+ 85,
+ 85,
21,
85,
85,
- 85,
- 85,
- 255,
- }},
- {298 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 84,
- 85,
- 85,
- 85,
- 85,
- 85,
255,
}},
{299 | (10 << 9),
@@ -4595,10 +4574,10 @@
85,
255,
127,
- 85,
+ 81,
85,
127,
- 21,
+ 85,
85,
85,
85,
@@ -4617,6 +4596,90 @@
255,
127,
85,
+ 81,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {301 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 21,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {302 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {303 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 21,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {304 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
85,
127,
85,
@@ -4627,7 +4690,7 @@
85,
255,
}},
- {92 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -4648,7 +4711,7 @@
84,
255,
}},
- {302 | (10 << 9),
+ {306 | (10 << 9),
{
255,
255,
@@ -4669,7 +4732,7 @@
85,
255,
}},
- {303 | (296 << 9) | (10 << 18),
+ {307 | (300 << 9) | (10 << 18),
{
255,
255,
@@ -4690,7 +4753,7 @@
170,
255,
}},
- {304 | (10 << 9),
+ {308 | (10 << 9),
{
255,
255,
@@ -4711,7 +4774,7 @@
85,
255,
}},
- {305 | (10 << 9),
+ {309 | (10 << 9),
{
255,
255,
@@ -4732,90 +4795,6 @@
85,
255,
}},
- {306 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 81,
- 85,
- 255,
- }},
- {307 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 81,
- 127,
- 85,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {308 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 21,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {309 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 84,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{310 | (10 << 9),
{
255,
@@ -4829,11 +4808,11 @@
85,
85,
127,
- 21,
85,
85,
85,
85,
+ 81,
85,
255,
}},
@@ -4848,12 +4827,33 @@
255,
127,
85,
- 85,
+ 81,
127,
85,
85,
85,
- 81,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {312 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 21,
+ 85,
+ 85,
85,
85,
255,
@@ -4868,10 +4868,10 @@
85,
255,
127,
- 81,
+ 85,
85,
127,
- 85,
+ 84,
85,
85,
85,
@@ -4890,9 +4890,9 @@
255,
127,
85,
- 84,
- 127,
85,
+ 127,
+ 21,
85,
85,
85,
@@ -4914,14 +4914,14 @@
85,
127,
85,
- 84,
85,
85,
+ 81,
85,
85,
255,
}},
- {316 | (10 << 9),
+ {317 | (10 << 9),
{
255,
255,
@@ -4931,10 +4931,10 @@
85,
255,
127,
- 85,
+ 81,
85,
127,
- 69,
+ 85,
85,
85,
85,
@@ -4953,59 +4953,17 @@
255,
127,
85,
- 85,
+ 84,
127,
85,
85,
85,
85,
- 69,
- 85,
- 255,
- }},
- {319 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 81,
- 85,
- 85,
- 85,
85,
85,
255,
}},
- {321 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 85,
- 21,
- 255,
- }},
- {322 | (10 << 9),
+ {319 | (10 << 9),
{
255,
255,
@@ -5026,6 +4984,48 @@
85,
255,
}},
+ {320 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 69,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {322 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 255,
+ }},
{323 | (10 << 9),
{
255,
@@ -5039,30 +5039,9 @@
85,
85,
127,
- 85,
- 85,
- 85,
81,
85,
85,
- 255,
- }},
- {92 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 81,
- 85,
85,
85,
85,
@@ -5080,13 +5059,13 @@
127,
85,
85,
- 63,
+ 127,
85,
85,
85,
85,
85,
- 85,
+ 21,
255,
}},
{326 | (10 << 9),
@@ -5103,7 +5082,7 @@
85,
127,
85,
- 21,
+ 84,
85,
85,
85,
@@ -5123,15 +5102,15 @@
85,
85,
127,
- 84,
85,
85,
85,
+ 81,
85,
85,
255,
}},
- {328 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -5145,32 +5124,32 @@
85,
127,
85,
+ 81,
85,
85,
85,
- 84,
85,
255,
}},
- {329 | (10 << 9),
+ {332 | (329 << 9) | (10 << 18),
{
255,
255,
255,
255,
- 87,
- 85,
+ 171,
+ 170,
255,
- 127,
- 85,
- 85,
- 63,
- 85,
- 85,
- 85,
- 85,
- 85,
- 85,
+ 191,
+ 170,
+ 170,
+ 191,
+ 169,
+ 170,
+ 170,
+ 42,
+ 170,
+ 170,
255,
}},
{330 | (10 << 9),
@@ -5190,7 +5169,7 @@
85,
85,
85,
- 84,
+ 81,
85,
255,
}},
@@ -5215,27 +5194,6 @@
85,
255,
}},
- {332 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 21,
- 85,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
{333 | (10 << 9),
{
255,
@@ -5250,10 +5208,10 @@
85,
127,
85,
- 84,
85,
85,
85,
+ 69,
85,
255,
}},
@@ -5269,8 +5227,8 @@
127,
85,
85,
- 63,
- 85,
+ 127,
+ 69,
85,
85,
85,
@@ -5292,32 +5250,11 @@
85,
127,
85,
- 84,
85,
85,
85,
- 85,
- 255,
- }},
- {336 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
81,
85,
- 85,
- 85,
- 85,
255,
}},
{337 | (10 << 9),
@@ -5334,9 +5271,9 @@
85,
127,
85,
- 81,
85,
85,
+ 69,
85,
85,
255,
@@ -5375,15 +5312,15 @@
85,
85,
127,
- 69,
85,
85,
85,
+ 21,
85,
85,
255,
}},
- {340 | (10 << 9),
+ {96 | (10 << 9),
{
255,
255,
@@ -5399,8 +5336,8 @@
85,
85,
85,
+ 69,
85,
- 81,
85,
255,
}},
@@ -5419,34 +5356,13 @@
127,
85,
85,
- 85,
- 85,
84,
85,
+ 85,
+ 85,
255,
}},
- {346 | (343 << 9) | (10 << 18),
- {
- 255,
- 255,
- 255,
- 255,
- 171,
- 170,
- 255,
- 191,
- 170,
- 170,
- 191,
- 169,
- 170,
- 170,
- 42,
- 170,
- 170,
- 255,
- }},
- {344 | (10 << 9),
+ {342 | (10 << 9),
{
255,
255,
@@ -5467,7 +5383,28 @@
85,
255,
}},
- {345 | (10 << 9),
+ {343 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 69,
+ 85,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {344 | (10 << 9),
{
255,
255,
@@ -5481,8 +5418,8 @@
85,
127,
85,
+ 21,
85,
- 84,
85,
85,
85,
@@ -5503,9 +5440,9 @@
127,
85,
85,
+ 21,
85,
85,
- 69,
85,
255,
}},
@@ -5522,12 +5459,12 @@
85,
85,
127,
+ 85,
+ 85,
+ 85,
69,
85,
85,
- 85,
- 85,
- 85,
255,
}},
{349 | (10 << 9),
@@ -5545,9 +5482,30 @@
127,
85,
85,
+ 69,
85,
85,
- 81,
+ 85,
+ 255,
+ }},
+ {350 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
85,
255,
}},
@@ -5567,72 +5525,30 @@
85,
85,
85,
- 69,
85,
+ 81,
85,
255,
}},
- {352 | (10 << 9),
+ {354 | (353 << 9) | (10 << 18),
{
255,
255,
255,
255,
- 87,
- 85,
+ 171,
+ 170,
255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {353 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 21,
- 85,
- 85,
- 255,
- }},
- {92 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 69,
- 85,
- 85,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 170,
+ 169,
+ 42,
+ 170,
+ 170,
255,
}},
{355 | (10 << 9),
@@ -5649,11 +5565,11 @@
85,
127,
85,
- 85,
84,
85,
85,
85,
+ 85,
255,
}},
{356 | (10 << 9),
@@ -5669,11 +5585,11 @@
85,
85,
127,
+ 84,
85,
85,
85,
85,
- 81,
85,
255,
}},
@@ -5690,7 +5606,7 @@
85,
85,
127,
- 69,
+ 21,
85,
85,
85,
@@ -5712,9 +5628,51 @@
85,
127,
85,
+ 69,
+ 85,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {359 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
21,
85,
85,
+ 255,
+ }},
+ {360 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 81,
85,
85,
255,
@@ -5734,9 +5692,9 @@
127,
85,
85,
- 21,
85,
85,
+ 69,
85,
255,
}},
@@ -5761,27 +5719,6 @@
85,
255,
}},
- {363 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
- 255,
- }},
{364 | (10 << 9),
{
255,
@@ -5795,11 +5732,11 @@
85,
85,
127,
- 84,
85,
85,
85,
85,
+ 69,
85,
255,
}},
@@ -5817,32 +5754,53 @@
85,
127,
85,
+ 84,
85,
85,
85,
- 81,
85,
255,
}},
- {368 | (367 << 9) | (10 << 18),
+ {367 | (10 << 9),
{
255,
255,
255,
255,
- 171,
- 170,
+ 87,
+ 85,
255,
- 191,
- 170,
- 170,
- 191,
- 170,
- 170,
- 169,
- 42,
- 170,
- 170,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 69,
+ 85,
+ 85,
+ 255,
+ }},
+ {368 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
255,
}},
{369 | (10 << 9),
@@ -5858,8 +5816,8 @@
85,
85,
127,
+ 21,
85,
- 84,
85,
85,
85,
@@ -5879,78 +5837,78 @@
85,
85,
127,
+ 85,
84,
85,
85,
85,
85,
- 85,
255,
}},
- {371 | (10 << 9),
+ {384 | (372 << 9) | (10 << 18),
{
255,
255,
255,
255,
- 87,
- 85,
+ 171,
+ 170,
255,
- 127,
- 85,
- 85,
- 127,
- 21,
- 85,
- 85,
- 85,
- 85,
- 85,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 170,
+ 170,
+ 169,
+ 168,
+ 170,
255,
}},
- {372 | (10 << 9),
+ {379 | (373 << 9) | (10 << 18),
{
255,
255,
255,
255,
- 87,
- 85,
+ 171,
+ 170,
255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 69,
- 85,
- 85,
- 85,
- 85,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 170,
+ 169,
+ 170,
+ 168,
+ 170,
255,
}},
- {373 | (10 << 9),
+ {378 | (374 << 9) | (10 << 18),
{
255,
255,
255,
255,
- 87,
- 85,
+ 171,
+ 170,
255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 21,
- 85,
- 85,
+ 191,
+ 170,
+ 170,
+ 191,
+ 170,
+ 166,
+ 170,
+ 162,
+ 170,
+ 170,
255,
}},
- {374 | (10 << 9),
+ {375 | (10 << 9),
{
255,
255,
@@ -5971,27 +5929,6 @@
85,
255,
}},
- {375 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 69,
- 85,
- 255,
- }},
{376 | (10 << 9),
{
255,
@@ -6008,12 +5945,12 @@
85,
85,
85,
- 69,
+ 21,
85,
85,
255,
}},
- {378 | (10 << 9),
+ {377 | (10 << 9),
{
255,
255,
@@ -6028,13 +5965,13 @@
127,
85,
85,
+ 21,
85,
85,
- 69,
85,
255,
}},
- {379 | (10 << 9),
+ {380 | (10 << 9),
{
255,
255,
@@ -6048,11 +5985,11 @@
85,
127,
85,
+ 85,
84,
85,
85,
85,
- 85,
255,
}},
{381 | (10 << 9),
@@ -6069,11 +6006,11 @@
85,
127,
85,
- 85,
- 85,
69,
85,
85,
+ 85,
+ 85,
255,
}},
{382 | (10 << 9),
@@ -6090,11 +6027,11 @@
85,
127,
85,
+ 85,
+ 85,
84,
85,
85,
- 85,
- 85,
255,
}},
{383 | (10 << 9),
@@ -6110,15 +6047,15 @@
85,
85,
127,
- 21,
85,
+ 84,
85,
85,
85,
85,
255,
}},
- {384 | (10 << 9),
+ {385 | (10 << 9),
{
255,
255,
@@ -6132,14 +6069,35 @@
85,
127,
85,
+ 85,
84,
85,
85,
85,
+ 255,
+ }},
+ {386 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 85,
+ 84,
+ 85,
85,
255,
}},
- {398 | (386 << 9) | (10 << 18),
+ {393 | (388 << 9) | (10 << 18),
{
255,
255,
@@ -6152,50 +6110,8 @@
170,
170,
191,
- 170,
- 170,
- 170,
- 169,
- 168,
- 170,
- 255,
- }},
- {393 | (387 << 9) | (10 << 18),
- {
- 255,
- 255,
- 255,
- 255,
- 171,
- 170,
- 255,
- 191,
- 170,
- 170,
- 191,
- 170,
- 170,
169,
170,
- 168,
- 170,
- 255,
- }},
- {392 | (388 << 9) | (10 << 18),
- {
- 255,
- 255,
- 255,
- 255,
- 171,
- 170,
- 255,
- 191,
- 170,
- 170,
- 191,
- 170,
- 166,
170,
162,
170,
@@ -6218,7 +6134,7 @@
85,
85,
85,
- 81,
+ 21,
85,
85,
255,
@@ -6239,9 +6155,9 @@
85,
85,
85,
- 21,
85,
85,
+ 69,
255,
}},
{391 | (10 << 9),
@@ -6259,34 +6175,13 @@
127,
85,
85,
- 21,
- 85,
- 85,
- 85,
- 255,
- }},
- {394 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
84,
85,
85,
85,
255,
}},
- {395 | (10 << 9),
+ {392 | (10 << 9),
{
255,
255,
@@ -6300,10 +6195,52 @@
85,
127,
85,
+ 85,
+ 85,
+ 84,
+ 85,
+ 85,
+ 255,
+ }},
+ {394 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
69,
85,
85,
85,
+ 255,
+ }},
+ {395 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 84,
+ 85,
+ 85,
+ 85,
+ 85,
85,
255,
}},
@@ -6323,8 +6260,8 @@
85,
85,
85,
- 84,
85,
+ 81,
85,
255,
}},
@@ -6342,14 +6279,14 @@
85,
127,
85,
- 84,
85,
+ 84,
85,
85,
85,
255,
}},
- {399 | (10 << 9),
+ {398 | (10 << 9),
{
255,
255,
@@ -6364,34 +6301,13 @@
127,
85,
85,
- 84,
+ 69,
85,
85,
85,
255,
}},
- {400 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 84,
- 85,
- 85,
- 255,
- }},
- {407 | (402 << 9) | (10 << 18),
+ {404 | (400 << 9) | (10 << 18),
{
255,
255,
@@ -6404,12 +6320,54 @@
170,
170,
191,
- 169,
+ 170,
+ 106,
+ 170,
+ 42,
170,
170,
- 162,
- 170,
- 170,
+ 255,
+ }},
+ {401 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 84,
+ 85,
+ 85,
+ 85,
+ 255,
+ }},
+ {402 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
+ 85,
+ 69,
+ 85,
+ 85,
+ 85,
255,
}},
{403 | (10 << 9),
@@ -6426,32 +6384,11 @@
85,
127,
85,
- 85,
- 85,
- 21,
- 85,
- 85,
- 255,
- }},
- {404 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
+ 84,
85,
85,
85,
85,
- 85,
- 69,
255,
}},
{405 | (10 << 9),
@@ -6491,9 +6428,30 @@
85,
85,
85,
+ 85,
+ 81,
+ 85,
+ 255,
+ }},
+ {407 | (10 << 9),
+ {
+ 255,
+ 255,
+ 255,
+ 255,
+ 87,
+ 85,
+ 255,
+ 127,
+ 85,
+ 85,
+ 127,
+ 85,
84,
85,
85,
+ 85,
+ 85,
255,
}},
{408 | (10 << 9),
@@ -6511,8 +6469,8 @@
127,
85,
85,
- 69,
85,
+ 81,
85,
85,
255,
@@ -6530,12 +6488,12 @@
85,
85,
127,
+ 85,
+ 85,
+ 85,
84,
85,
85,
- 85,
- 85,
- 85,
255,
}},
{410 | (10 << 9),
@@ -6553,9 +6511,9 @@
127,
85,
85,
+ 69,
85,
85,
- 81,
85,
255,
}},
@@ -6574,265 +6532,13 @@
127,
85,
85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {412 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
- 255,
- }},
- {418 | (414 << 9) | (10 << 18),
- {
- 255,
- 255,
- 255,
- 255,
- 171,
- 170,
- 255,
- 191,
- 170,
- 170,
- 191,
- 170,
- 106,
- 170,
- 42,
- 170,
- 170,
- 255,
- }},
- {415 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {416 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
- 255,
- }},
- {417 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {419 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 84,
- 85,
- 85,
- 85,
- 255,
- }},
- {420 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 85,
- 81,
- 85,
- 255,
- }},
- {421 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 84,
- 85,
- 85,
- 85,
- 85,
- 255,
- }},
- {422 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 81,
- 85,
- 85,
- 255,
- }},
- {423 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 85,
- 84,
- 85,
- 85,
- 255,
- }},
- {424 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
- 69,
- 85,
- 85,
- 85,
- 255,
- }},
- {425 | (10 << 9),
- {
- 255,
- 255,
- 255,
- 255,
- 87,
- 85,
- 255,
- 127,
- 85,
- 85,
- 127,
- 85,
- 85,
85,
85,
85,
69,
255,
}},
- {429 | (428 << 9),
+ {415 | (414 << 9),
{
255,
255,
@@ -6855,30 +6561,30 @@
}},
};
static constexpr IndexEntry kIndices[] = {
- 0, -1, 1, 1, 0, 2, 0, 3, 4, 5, 6, 7, 8, 6, 9, 0, 10, 0,
- 0, 0, 0, 11, 0, 12, 0, 0, 0, 13, 0, 0, 14, 15, 16, 17, 17, 18,
- 19, 20, 0, 21, 0, -2, 22, 23, 24, 25, 25, 26, 27, 27, -3, -4, 28, 29,
- 29, 0, 0, 0, 30, 31, -5, -5, 0, 0, 32, 33, 0, 0, 34, 0, 35, 0,
- 36, 0, 0, 37, 38, 0, 39, 40, 41, 42, 43, 0, 6, 0, 0, 44, 0, 0,
- 45, 46, 6, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 6, 58, 59, 60,
- 61, 6, -6, 62, 63, 6, 64, 65, 66, 67, 68, 69, 6, 70, 71, 72, 73, 6,
- -7, 74, 75, 76, 77, 78, 6, 79, 80, 81, 82, 83, 6, 84, 85, 86, 53, 87,
- 88, 89, -8, 90, 91, 6, 92, 46, 93, 94, 95, 96, 97, 98, -9, 99, 100, 101,
- 6, 102, 103, 104, 105, 106, 6, 107, 6, 108, 109, 89, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 6, 119, 120, 89, 121, 6, -10, 122, 123, 124, 6, 125, 126, 6, 127,
- 128, 129, 130, 131, 132, 133, 53, 134, 135, 136, 137, 138, 128, 139, 140, 141, 142, 143,
- 6, 144, 145, 146, 6, 147, 148, 149, 150, 151, 152, 6, 153, 154, 155, 156, 157, 158,
- 159, 53, 160, 161, 162, 163, 164, 165, 6, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 6, 176, 177, 178, 179, 128, -11, 180, 181, 182, 104, 183, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 6, 201, 202, 203, 6, -12,
- 204, 205, 206, 207, 208, -13, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 215, 226, 227, 228, 229, 128, 230, 231, 53, 232, 233, 234, 235,
- 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 6,
- 253, 254, 255, 193, 256, 257, 258, 6, 259, 260, 261, 262, 263, 264, 265, 266, 6, -14,
- 267, 268, 269, 270, 271, 53, 272, 66, 273, 274, 275, 276, 277, 278, 279, 280, 6, 281,
- 282, 6, 283, 284, 285, 286, 235, 287, 288, 289, 290, 291, 292, 6, 189, 293, 294, 295,
- 296, 104, 297, 298, 145, 299, 300, 301, 302, 303, 145, 304, 305, 306, 307, 308, 53, 309,
- 310, 311, 312, 6, 313, 314, 315, 316, 317, 318, 319, 6, 0, 320, 0, 0, 0, 0,
+ 0, -1, 1, 1, 0, 2, 0, 3, 4, 5, 6, 7, 8, 6, 9, 10, 11, 6,
+ 12, 0, 13, 0, 0, 0, 0, 14, 0, 15, 0, 0, 0, 16, 0, 0, 17, 18,
+ 19, 20, 20, 21, 22, 23, 0, 24, 0, -2, 25, 26, 27, 28, 28, 29, 30, 30,
+ -3, -4, 31, 32, 32, 0, 0, 0, 33, 34, -5, -5, 0, 0, 35, 36, 0, 0,
+ 37, 0, 38, 0, 39, 0, 0, 40, 41, 0, 42, 43, 44, 45, 46, 0, 6, 0,
+ 0, 47, 0, 0, 48, 49, 6, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 6, 61, 62, 63, 64, 6, -6, 65, 66, 6, 67, 68, 69, 70, 71, 72, 6, 73,
+ 74, 75, 76, 6, -7, 77, 78, 79, 80, 81, 6, 82, 83, 84, 85, 86, 6, 87,
+ 88, 89, 56, 90, 91, 92, -8, 93, 94, 6, 95, 49, 96, 97, 98, 99, 100, 101,
+ -9, 102, 103, 104, 6, 105, 106, 107, 108, 109, 6, 110, 6, 111, 112, 92, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 6, 122, 123, 92, 124, 6, -10, 125, 126, 127, 6,
+ 128, 129, 6, 130, 131, 132, 133, 134, 135, 136, 56, 137, 138, 139, 140, 141, 131, 142,
+ 143, 144, 145, 146, 6, 147, 148, 149, 6, 150, 151, 152, 153, 154, 155, 6, 156, 157,
+ 158, 159, 160, 161, 162, 56, 163, 164, 165, 166, 167, 168, 6, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 6, 179, 180, 181, 182, 131, -11, 183, 184, 185, 107, 186, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 6, 204,
+ 205, 206, 6, -12, 207, 208, 209, 210, 211, -13, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 218, 229, 230, 231, 232, 131, 233, 234, 56,
+ 235, 236, 237, 238, 239, 240, 241, 196, 242, 243, 244, 6, 245, 246, 247, 248, 249, 250,
+ 251, 252, 6, -14, 253, 254, 255, 256, 257, 56, 258, 69, 259, 260, 261, 262, 263, 264,
+ 265, 266, 6, 267, 268, 6, 269, 270, 271, 272, 238, 273, 274, 275, 276, 277, 278, 6,
+ 192, 279, 280, 281, 282, 107, 283, 284, 148, 285, 286, 287, 288, 289, 148, 290, 291, 292,
+ 293, 294, 56, 295, 296, 297, 298, 6, 299, 300, 301, 302, 303, 304, 305, 6, 0, 306,
+ 0, 0, 0, 0,
};
State get_transition(int transition, int state) {
IndexEntry index = kIndices[state];
@@ -6892,26 +6598,26 @@
v *= 9;
return (entry.values >> v) & 511;
}
-static const int8_t kAccepts[432] = {
- -1, -1, 88, 88, 91, 67, 72, 91, 42, 41, 41, 41, 41, 38, 57, 81, 62, 66, 86, 43, 44, 55, 79,
- 53, 51, 77, 50, 54, 52, 78, 49, 1, -1, -1, 1, 56, -1, -1, 90, 89, 80, 2, 1, 1, -1, -1,
- 1, -1, -1, 1, 2, 3, -1, -1, 1, 3, 2, 2, -1, 2, 2, 2, 69, 87, 74, 58, 82, 76, 70,
- 71, 73, 75, 59, 83, 68, 91, -1, 7, -1, -1, -1, -1, -1, 13, 41, 47, 48, 61, 85, 65, 41, 41,
- 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 16, 41, 41, 41, 41, 32, 41, 41, 41, 14, 41,
- 41, 41, 41, 41, 41, 24, 41, 41, 41, 41, 17, 41, 41, 41, 41, 41, 41, 15, 41, 41, 41, 41, 41,
- 18, 11, 41, 41, 41, 41, 41, 41, 41, 41, 41, 8, 41, 41, 41, 41, 41, 41, 40, 41, 41, 41, 41,
- 41, 5, 41, 41, 41, 41, 41, 25, 41, 9, 41, 41, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 35,
- 41, 41, 41, 41, 6, 20, 41, 41, 41, 27, 41, 41, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 34, 41, 41, 41, 37, 41, 41, 41, 41, 41, 41, 36, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 28, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 26, 41, 41, 21, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 30, 41, 41, 41, 19, 41, 41, 41, 41, 41, 41, 41, 41, 40, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 29, 41, 41, 41,
- 41, 41, 41, 41, 33, 41, 41, 41, 41, 41, 41, 41, 41, 12, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41, 39, 41, 41, 4, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 23, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 10, 41, 41, 41, 41, 41, 41, 41, 31, 45, 60, 84, 64, 46, 63,
+static const int8_t kAccepts[418] = {
+ -1, -1, 88, 88, 91, 67, 72, 91, 42, 41, 41, 41, 41, 38, 41, 41, 41, 29, 57, 81, 62, 66,
+ 86, 43, 44, 55, 79, 53, 51, 77, 50, 54, 52, 78, 49, 1, -1, -1, 1, 56, -1, -1, 90, 89,
+ 80, 2, 1, 1, -1, -1, 1, -1, -1, 1, 2, 3, -1, -1, 1, 3, 2, 2, -1, 2, 2, 2,
+ 69, 87, 74, 58, 82, 76, 70, 71, 73, 75, 59, 83, 68, 91, -1, 7, -1, -1, -1, -1, -1, 13,
+ 41, 47, 48, 61, 85, 65, 41, 41, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 16, 41,
+ 41, 41, 41, 32, 41, 41, 41, 14, 41, 41, 41, 41, 41, 41, 24, 41, 41, 41, 41, 17, 41, 41,
+ 41, 41, 41, 41, 15, 41, 41, 41, 41, 41, 18, 11, 41, 41, 41, 41, 41, 41, 41, 41, 41, 8,
+ 41, 41, 41, 41, 41, 41, 40, 41, 41, 41, 41, 41, 5, 41, 41, 41, 41, 41, 25, 41, 9, 41,
+ 41, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 35, 41, 41, 41, 41, 6, 20, 41, 41, 41, 27,
+ 41, 41, 22, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 34, 41, 41, 41, 37, 41, 41, 41, 41, 41, 41, 36, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 28, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 26, 41, 41, 21, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 30, 41, 41, 41, 19, 41, 41, 41, 41, 41, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 33, 41, 41, 41, 41, 41, 41, 41, 41, 12, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 39, 41, 41, 4, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 23, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 10, 41, 41, 41, 41, 41, 41, 41, 31, 45, 60, 84, 64, 46, 63,
};
Token Lexer::next() {
diff --git a/src/sksl/SkSLLexer.h b/src/sksl/SkSLLexer.h
index 7d959d2..710df3a 100644
--- a/src/sksl/SkSLLexer.h
+++ b/src/sksl/SkSLLexer.h
@@ -44,7 +44,7 @@
TK_NOPERSPECTIVE,
TK_INLINE,
TK_NOINLINE,
- TK_HASSIDEEFFECTS,
+ TK_PURE,
TK_READONLY,
TK_WRITEONLY,
TK_BUFFER,
@@ -112,9 +112,7 @@
Token() {}
Token(Kind kind, int32_t offset, int32_t length)
- : fKind(kind)
- , fOffset(offset)
- , fLength(length) {}
+ : fKind(kind), fOffset(offset), fLength(length) {}
Kind fKind = Kind::TK_NONE;
int32_t fOffset = -1;
diff --git a/src/sksl/SkSLParser.cpp b/src/sksl/SkSLParser.cpp
index 44272f0..beae5ad 100644
--- a/src/sksl/SkSLParser.cpp
+++ b/src/sksl/SkSLParser.cpp
@@ -51,7 +51,7 @@
case Token::Kind::TK_INOUT: return Modifiers::kIn_Flag | Modifiers::kOut_Flag;
case Token::Kind::TK_FLAT: return Modifiers::kFlat_Flag;
case Token::Kind::TK_NOPERSPECTIVE: return Modifiers::kNoPerspective_Flag;
- case Token::Kind::TK_HASSIDEEFFECTS: return Modifiers::kHasSideEffects_Flag;
+ case Token::Kind::TK_PURE: return Modifiers::kPure_Flag;
case Token::Kind::TK_INLINE: return Modifiers::kInline_Flag;
case Token::Kind::TK_NOINLINE: return Modifiers::kNoInline_Flag;
case Token::Kind::TK_HIGHP: return Modifiers::kHighp_Flag;
@@ -951,11 +951,6 @@
break;
}
Token modifier = this->nextToken();
- // We have to check for this (internal) modifier here. It's automatically added to user
- // functions before the IR is built, so testing for it in Convert gives false positives.
- if (tokenFlag == Modifiers::kHasSideEffects_Flag && !ThreadContext::IsModule()) {
- this->error(modifier, "'sk_has_side_effects' is not permitted here");
- }
if (int duplicateFlags = (tokenFlag & flags)) {
this->error(modifier, "'" + Modifiers::DescribeFlags(duplicateFlags) +
"' appears more than once");
diff --git a/src/sksl/analysis/SkSLHasSideEffects.cpp b/src/sksl/analysis/SkSLHasSideEffects.cpp
index 6e7e343..0c63fa9 100644
--- a/src/sksl/analysis/SkSLHasSideEffects.cpp
+++ b/src/sksl/analysis/SkSLHasSideEffects.cpp
@@ -25,7 +25,7 @@
switch (expr.kind()) {
case Expression::Kind::kFunctionCall: {
const FunctionCall& call = expr.as<FunctionCall>();
- if (call.function().modifiers().fFlags & Modifiers::kHasSideEffects_Flag) {
+ if (!(call.function().modifiers().fFlags & Modifiers::kPure_Flag)) {
return true;
}
break;
diff --git a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp
index fc94046..6167baa 100644
--- a/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp
+++ b/src/sksl/codegen/SkSLSPIRVCodeGenerator.cpp
@@ -3786,7 +3786,7 @@
// Declare an entrypoint function.
EntrypointAdapter adapter;
adapter.fLayout = {};
- adapter.fModifiers = Modifiers{adapter.fLayout, Modifiers::kHasSideEffects_Flag};
+ adapter.fModifiers = Modifiers{adapter.fLayout, Modifiers::kNo_Flag};
adapter.entrypointDecl =
std::make_unique<FunctionDeclaration>(Position(),
&adapter.fModifiers,
diff --git a/src/sksl/dsl/DSLFunction.cpp b/src/sksl/dsl/DSLFunction.cpp
index 7636490..d3ed918 100644
--- a/src/sksl/dsl/DSLFunction.cpp
+++ b/src/sksl/dsl/DSLFunction.cpp
@@ -45,13 +45,7 @@
SkTArray<DSLParameter*> params, Position pos) {
fPosition = pos;
- // Conservatively assume that all functions will have side effects, except functions in modules
- // with intrinsic names.
const Context& context = ThreadContext::Context();
- if (!is_intrinsic_in_module(context, name)) {
- modifiers.fModifiers.fFlags |= Modifiers::kHasSideEffects_Flag;
- }
-
if (context.fConfig->fSettings.fForceNoInline) {
// Apply the `noinline` modifier to every function. This allows us to test Runtime
// Effects without any inlining, even when the code is later added to a paint.
diff --git a/src/sksl/generated/sksl_compute.dehydrated.sksl b/src/sksl/generated/sksl_compute.dehydrated.sksl
index d243644..eaa04bb 100644
--- a/src/sksl/generated/sksl_compute.dehydrated.sksl
+++ b/src/sksl/generated/sksl_compute.dehydrated.sksl
@@ -43,8 +43,7 @@
17,87,0,
51,255,255,62,0,3,
28,8,0,
-39,
-16,0,64,0,0,93,0,3,
+17,93,0,3,
51,5,0,
51,6,0,
51,7,0,
@@ -53,19 +52,20 @@
17,26,0,
51,255,255,104,0,3,
28,10,0,
-17,118,0,1,
+39,
+16,0,64,0,0,118,0,1,
51,9,0,
51,255,255,124,0,
54,11,0,
17,26,0,
51,255,255,104,0,3,
28,12,0,
-17,129,0,1,
+39,
+16,0,64,0,0,129,0,1,
51,11,0,
51,255,255,124,0,
28,13,0,
-39,
-16,0,64,0,0,136,0,0,
+17,136,0,0,
51,255,255,99,0,6,0,
11,0,
3,0,
diff --git a/src/sksl/generated/sksl_gpu.dehydrated.sksl b/src/sksl/generated/sksl_gpu.dehydrated.sksl
index edf672c..0a61ead 100644
--- a/src/sksl/generated/sksl_gpu.dehydrated.sksl
+++ b/src/sksl/generated/sksl_gpu.dehydrated.sksl
@@ -156,7 +156,8 @@
17,16,0,
51,255,255,18,0,3,
28,4,0,
-17,28,0,3,
+39,
+16,0,64,0,0,28,0,3,
51,1,0,
51,2,0,
51,3,0,
@@ -171,7 +172,8 @@
17,16,0,
51,255,255,18,0,3,
28,8,0,
-17,28,0,3,
+39,
+16,0,64,0,0,28,0,3,
51,5,0,
51,6,0,
51,7,0,
@@ -186,7 +188,8 @@
17,43,0,
51,255,255,32,0,3,
28,12,0,
-17,45,0,3,
+39,
+16,0,64,0,0,45,0,3,
51,9,0,
51,10,0,
51,11,0,
@@ -201,7 +204,8 @@
17,43,0,
51,255,255,49,0,3,
28,16,0,
-17,45,0,3,
+39,
+16,0,64,0,0,45,0,3,
51,13,0,
51,14,0,
51,15,0,
@@ -214,8 +218,7 @@
16,32,59,0,
51,255,255,4,0,3,
28,19,0,
-39,
-16,0,64,0,0,63,0,2,
+17,63,0,2,
51,17,0,
51,18,0,
51,255,255,32,0,
@@ -227,8 +230,7 @@
16,32,59,0,
51,255,255,4,0,3,
28,22,0,
-39,
-16,0,64,0,0,63,0,2,
+17,63,0,2,
51,20,0,
51,21,0,
51,255,255,49,0,
@@ -239,7 +241,8 @@
17,59,0,
51,255,255,4,0,3,
28,25,0,
-17,69,0,2,
+39,
+16,0,64,0,0,69,0,2,
51,23,0,
51,24,0,
51,255,255,32,0,
@@ -250,7 +253,8 @@
17,59,0,
51,255,255,4,0,3,
28,28,0,
-17,69,0,2,
+39,
+16,0,64,0,0,69,0,2,
51,26,0,
51,27,0,
51,255,255,49,0,
@@ -258,56 +262,64 @@
17,75,0,
51,255,255,77,0,3,
28,30,0,
-17,84,0,1,
+39,
+16,0,64,0,0,84,0,1,
51,29,0,
51,255,255,98,0,
54,31,0,
17,75,0,
51,255,255,103,0,3,
28,32,0,
-17,110,0,1,
+39,
+16,0,64,0,0,110,0,1,
51,31,0,
51,255,255,98,0,
54,33,0,
17,75,0,
51,255,255,103,0,3,
28,34,0,
-17,123,0,1,
+39,
+16,0,64,0,0,123,0,1,
51,33,0,
51,255,255,98,0,
54,35,0,
17,136,0,
51,255,255,98,0,3,
28,36,0,
-17,138,0,1,
+39,
+16,0,64,0,0,138,0,1,
51,35,0,
51,255,255,77,0,
54,37,0,
17,136,0,
51,255,255,98,0,3,
28,38,0,
-17,154,0,1,
+39,
+16,0,64,0,0,154,0,1,
51,37,0,
51,255,255,103,0,
54,39,0,
17,136,0,
51,255,255,98,0,3,
28,40,0,
-17,169,0,1,
+39,
+16,0,64,0,0,169,0,1,
51,39,0,
51,255,255,103,0,
54,41,0,
17,75,0,
51,255,255,77,0,3,
28,42,0,
-17,184,0,1,
+39,
+16,0,64,0,0,184,0,1,
51,41,0,
51,255,255,98,0,
54,43,0,
17,75,0,
51,255,255,98,0,3,
28,44,0,
-17,197,0,1,
+39,
+16,0,64,0,0,197,0,1,
51,43,0,
51,255,255,77,0,
54,45,0,
@@ -317,7 +329,8 @@
17,14,0,
51,255,255,212,0,3,
28,47,0,
-17,218,0,2,
+39,
+16,0,64,0,0,218,0,2,
51,45,0,
51,46,0,
51,255,255,227,0,
@@ -328,7 +341,8 @@
17,14,0,
51,255,255,233,0,3,
28,50,0,
-17,218,0,2,
+39,
+16,0,64,0,0,218,0,2,
51,48,0,
51,49,0,
51,255,255,227,0,
@@ -339,7 +353,8 @@
17,14,0,
51,255,255,240,0,3,
28,53,0,
-17,218,0,2,
+39,
+16,0,64,0,0,218,0,2,
51,51,0,
51,52,0,
51,255,255,227,0,
@@ -350,7 +365,8 @@
17,14,0,
51,255,255,240,0,3,
28,56,0,
-17,246,0,2,
+39,
+16,0,64,0,0,246,0,2,
51,54,0,
51,55,0,
51,255,255,227,0,
@@ -361,7 +377,8 @@
17,14,0,
51,255,255,212,0,3,
28,59,0,
-17,246,0,2,
+39,
+16,0,64,0,0,246,0,2,
51,57,0,
51,58,0,
51,255,255,227,0,
@@ -372,7 +389,8 @@
17,14,0,
51,255,255,233,0,3,
28,62,0,
-17,246,0,2,
+39,
+16,0,64,0,0,246,0,2,
51,60,0,
51,61,0,
51,255,255,227,0,
@@ -383,7 +401,8 @@
17,14,0,
51,255,255,240,0,3,
28,65,0,
-17,4,1,2,
+39,
+16,0,64,0,0,4,1,2,
51,63,0,
51,64,0,
51,255,255,227,0,
@@ -394,7 +413,8 @@
17,14,0,
51,255,255,212,0,3,
28,68,0,
-17,4,1,2,
+39,
+16,0,64,0,0,4,1,2,
51,66,0,
51,67,0,
51,255,255,227,0,
@@ -405,7 +425,8 @@
17,14,0,
51,255,255,233,0,3,
28,71,0,
-17,4,1,2,
+39,
+16,0,64,0,0,4,1,2,
51,69,0,
51,70,0,
51,255,255,227,0,
@@ -416,7 +437,8 @@
17,14,0,
51,255,255,240,0,3,
28,74,0,
-17,16,1,2,
+39,
+16,0,64,0,0,16,1,2,
51,72,0,
51,73,0,
51,255,255,227,0,
@@ -427,7 +449,8 @@
17,14,0,
51,255,255,212,0,3,
28,77,0,
-17,16,1,2,
+39,
+16,0,64,0,0,16,1,2,
51,75,0,
51,76,0,
51,255,255,227,0,
@@ -438,7 +461,8 @@
17,14,0,
51,255,255,233,0,3,
28,80,0,
-17,16,1,2,
+39,
+16,0,64,0,0,16,1,2,
51,78,0,
51,79,0,
51,255,255,227,0,
@@ -449,7 +473,8 @@
17,14,0,
51,255,255,240,0,3,
28,83,0,
-17,33,1,2,
+39,
+16,0,64,0,0,33,1,2,
51,81,0,
51,82,0,
51,255,255,227,0,
@@ -460,7 +485,8 @@
17,14,0,
51,255,255,212,0,3,
28,86,0,
-17,33,1,2,
+39,
+16,0,64,0,0,33,1,2,
51,84,0,
51,85,0,
51,255,255,227,0,
@@ -471,7 +497,8 @@
17,14,0,
51,255,255,233,0,3,
28,89,0,
-17,33,1,2,
+39,
+16,0,64,0,0,33,1,2,
51,87,0,
51,88,0,
51,255,255,227,0,
@@ -482,7 +509,8 @@
17,14,0,
51,255,255,240,0,3,
28,92,0,
-17,39,1,2,
+39,
+16,0,64,0,0,39,1,2,
51,90,0,
51,91,0,
51,255,255,227,0,
@@ -493,7 +521,8 @@
17,14,0,
51,255,255,212,0,3,
28,95,0,
-17,39,1,2,
+39,
+16,0,64,0,0,39,1,2,
51,93,0,
51,94,0,
51,255,255,227,0,
@@ -504,7 +533,8 @@
17,14,0,
51,255,255,233,0,3,
28,98,0,
-17,39,1,2,
+39,
+16,0,64,0,0,39,1,2,
51,96,0,
51,97,0,
51,255,255,227,0,
@@ -512,42 +542,48 @@
17,48,1,
51,255,255,4,0,3,
28,100,0,
-17,54,1,1,
+39,
+16,0,64,0,0,54,1,1,
51,99,0,
51,255,255,4,0,
54,101,0,
17,48,1,
51,255,255,63,1,3,
28,102,0,
-17,54,1,1,
+39,
+16,0,64,0,0,54,1,1,
51,101,0,
51,255,255,4,0,
54,103,0,
17,48,1,
51,255,255,4,0,3,
28,104,0,
-17,73,1,1,
+39,
+16,0,64,0,0,73,1,1,
51,103,0,
51,255,255,4,0,
54,105,0,
17,48,1,
51,255,255,63,1,3,
28,106,0,
-17,73,1,1,
+39,
+16,0,64,0,0,73,1,1,
51,105,0,
51,255,255,4,0,
54,107,0,
17,48,1,
51,255,255,4,0,3,
28,108,0,
-17,81,1,1,
+39,
+16,0,64,0,0,81,1,1,
51,107,0,
51,255,255,4,0,
54,109,0,
17,48,1,
51,255,255,63,1,3,
28,110,0,
-17,81,1,1,
+39,
+16,0,64,0,0,81,1,1,
51,109,0,
51,255,255,4,0,
54,111,0,
@@ -557,7 +593,8 @@
17,107,1,
51,255,255,109,1,3,
28,113,0,
-17,117,1,2,
+39,
+16,0,64,0,0,117,1,2,
51,111,0,
51,112,0,
51,255,255,131,1,
@@ -568,7 +605,8 @@
17,141,1,
51,255,255,77,0,3,
28,116,0,
-17,143,1,2,
+39,
+16,0,64,0,0,143,1,2,
51,114,0,
51,115,0,
51,255,255,150,1,
@@ -582,7 +620,8 @@
17,175,1,
51,255,255,180,1,3,
28,120,0,
-17,143,1,3,
+39,
+16,0,64,0,0,143,1,3,
51,117,0,
51,118,0,
51,119,0,
@@ -594,7 +633,8 @@
17,141,1,
51,255,255,77,0,3,
28,123,0,
-17,143,1,2,
+39,
+16,0,64,0,0,143,1,2,
51,121,0,
51,122,0,
51,255,255,150,1,
@@ -605,7 +645,8 @@
17,141,1,
51,255,255,77,0,3,
28,126,0,
-17,143,1,2,
+39,
+16,0,64,0,0,143,1,2,
51,124,0,
51,125,0,
51,255,255,150,1,
@@ -616,7 +657,8 @@
17,141,1,
51,255,255,200,1,3,
28,129,0,
-17,143,1,2,
+39,
+16,0,64,0,0,143,1,2,
51,127,0,
51,128,0,
51,255,255,150,1,
@@ -624,7 +666,8 @@
17,207,1,
51,255,255,215,1,3,
28,131,0,
-17,228,1,1,
+39,
+16,0,64,0,0,228,1,1,
51,130,0,
51,255,255,150,1,
54,132,0,
@@ -634,7 +677,8 @@
17,143,1,
51,255,255,255,1,3,
28,134,0,
-17,228,1,2,
+39,
+16,0,64,0,0,228,1,2,
51,132,0,
51,133,0,
51,255,255,150,1,
@@ -645,7 +689,8 @@
17,141,1,
51,255,255,200,1,3,
28,137,0,
-17,143,1,2,
+39,
+16,0,64,0,0,143,1,2,
51,135,0,
51,136,0,
51,255,255,150,1,
@@ -659,7 +704,8 @@
17,175,1,
51,255,255,180,1,3,
28,141,0,
-17,143,1,3,
+39,
+16,0,64,0,0,143,1,3,
51,138,0,
51,139,0,
51,140,0,
diff --git a/src/sksl/generated/sksl_public.dehydrated.sksl b/src/sksl/generated/sksl_public.dehydrated.sksl
index 285dd89..4217ec1 100644
--- a/src/sksl/generated/sksl_public.dehydrated.sksl
+++ b/src/sksl/generated/sksl_public.dehydrated.sksl
@@ -20,14 +20,16 @@
17,2,0,
51,255,255,8,0,3,
28,2,0,
-17,14,0,1,
+39,
+16,0,64,0,0,14,0,1,
51,1,0,
51,255,255,8,0,
54,3,0,
17,2,0,
51,255,255,8,0,3,
28,4,0,
-17,27,0,1,
+39,
+16,0,64,0,0,27,0,1,
51,3,0,
51,255,255,8,0,
54,5,0,
diff --git a/src/sksl/generated/sksl_shared.dehydrated.sksl b/src/sksl/generated/sksl_shared.dehydrated.sksl
index ec5a73e..2c3b6df 100644
--- a/src/sksl/generated/sksl_shared.dehydrated.sksl
+++ b/src/sksl/generated/sksl_shared.dehydrated.sksl
@@ -148,98 +148,112 @@
17,2,0,
51,255,255,10,0,3,
28,2,0,
-17,19,0,1,
+39,
+16,0,64,0,0,19,0,1,
51,1,0,
51,255,255,10,0,
54,3,0,
17,2,0,
51,255,255,27,0,3,
28,4,0,
-17,19,0,1,
+39,
+16,0,64,0,0,19,0,1,
51,3,0,
51,255,255,27,0,
54,5,0,
17,19,0,
51,255,255,10,0,3,
28,6,0,
-17,2,0,1,
+39,
+16,0,64,0,0,2,0,1,
51,5,0,
51,255,255,10,0,
54,7,0,
17,19,0,
51,255,255,27,0,3,
28,8,0,
-17,2,0,1,
+39,
+16,0,64,0,0,2,0,1,
51,7,0,
51,255,255,27,0,
54,9,0,
17,37,0,
51,255,255,10,0,3,
28,10,0,
-17,43,0,1,
+39,
+16,0,64,0,0,43,0,1,
51,9,0,
51,255,255,10,0,
54,11,0,
17,37,0,
51,255,255,27,0,3,
28,12,0,
-17,43,0,1,
+39,
+16,0,64,0,0,43,0,1,
51,11,0,
51,255,255,27,0,
54,13,0,
17,37,0,
51,255,255,10,0,3,
28,14,0,
-17,47,0,1,
+39,
+16,0,64,0,0,47,0,1,
51,13,0,
51,255,255,10,0,
54,15,0,
17,37,0,
51,255,255,27,0,3,
28,16,0,
-17,47,0,1,
+39,
+16,0,64,0,0,47,0,1,
51,15,0,
51,255,255,27,0,
54,17,0,
17,37,0,
51,255,255,10,0,3,
28,18,0,
-17,51,0,1,
+39,
+16,0,64,0,0,51,0,1,
51,17,0,
51,255,255,10,0,
54,19,0,
17,37,0,
51,255,255,27,0,3,
28,20,0,
-17,51,0,1,
+39,
+16,0,64,0,0,51,0,1,
51,19,0,
51,255,255,27,0,
54,21,0,
17,55,0,
51,255,255,10,0,3,
28,22,0,
-17,57,0,1,
+39,
+16,0,64,0,0,57,0,1,
51,21,0,
51,255,255,10,0,
54,23,0,
17,55,0,
51,255,255,27,0,3,
28,24,0,
-17,57,0,1,
+39,
+16,0,64,0,0,57,0,1,
51,23,0,
51,255,255,27,0,
54,25,0,
17,55,0,
51,255,255,10,0,3,
28,26,0,
-17,62,0,1,
+39,
+16,0,64,0,0,62,0,1,
51,25,0,
51,255,255,10,0,
54,27,0,
17,55,0,
51,255,255,27,0,3,
28,28,0,
-17,62,0,1,
+39,
+16,0,64,0,0,62,0,1,
51,27,0,
51,255,255,27,0,
54,29,0,
@@ -249,7 +263,8 @@
17,55,0,
51,255,255,10,0,3,
28,31,0,
-17,69,0,2,
+39,
+16,0,64,0,0,69,0,2,
51,29,0,
51,30,0,
51,255,255,10,0,
@@ -260,7 +275,8 @@
17,55,0,
51,255,255,27,0,3,
28,34,0,
-17,69,0,2,
+39,
+16,0,64,0,0,69,0,2,
51,32,0,
51,33,0,
51,255,255,27,0,
@@ -268,14 +284,16 @@
17,74,0,
51,255,255,10,0,3,
28,36,0,
-17,69,0,1,
+39,
+16,0,64,0,0,69,0,1,
51,35,0,
51,255,255,10,0,
54,37,0,
17,74,0,
51,255,255,27,0,3,
28,38,0,
-17,69,0,1,
+39,
+16,0,64,0,0,69,0,1,
51,37,0,
51,255,255,27,0,
54,39,0,
@@ -283,7 +301,7 @@
51,255,255,10,0,3,
28,40,0,
39,
-16,0,32,0,0,83,0,1,
+16,0,96,0,0,83,0,1,
51,39,0,
51,255,255,10,0,
54,41,0,
@@ -291,7 +309,7 @@
51,255,255,27,0,3,
28,42,0,
39,
-16,0,32,0,0,83,0,1,
+16,0,96,0,0,83,0,1,
51,41,0,
51,255,255,27,0,
54,43,0,
@@ -299,7 +317,7 @@
51,255,255,10,0,3,
28,44,0,
39,
-16,0,32,0,0,88,0,1,
+16,0,96,0,0,88,0,1,
51,43,0,
51,255,255,10,0,
54,45,0,
@@ -307,7 +325,7 @@
51,255,255,27,0,3,
28,46,0,
39,
-16,0,32,0,0,88,0,1,
+16,0,96,0,0,88,0,1,
51,45,0,
51,255,255,27,0,
54,47,0,
@@ -315,7 +333,7 @@
51,255,255,10,0,3,
28,48,0,
39,
-16,0,32,0,0,93,0,1,
+16,0,96,0,0,93,0,1,
51,47,0,
51,255,255,10,0,
54,49,0,
@@ -323,7 +341,7 @@
51,255,255,27,0,3,
28,50,0,
39,
-16,0,32,0,0,93,0,1,
+16,0,96,0,0,93,0,1,
51,49,0,
51,255,255,27,0,
54,51,0,
@@ -331,7 +349,7 @@
51,255,255,10,0,3,
28,52,0,
39,
-16,0,32,0,0,98,0,1,
+16,0,96,0,0,98,0,1,
51,51,0,
51,255,255,10,0,
54,53,0,
@@ -339,7 +357,7 @@
51,255,255,27,0,3,
28,54,0,
39,
-16,0,32,0,0,98,0,1,
+16,0,96,0,0,98,0,1,
51,53,0,
51,255,255,27,0,
54,55,0,
@@ -347,7 +365,7 @@
51,255,255,10,0,3,
28,56,0,
39,
-16,0,32,0,0,104,0,1,
+16,0,96,0,0,104,0,1,
51,55,0,
51,255,255,10,0,
54,57,0,
@@ -355,7 +373,7 @@
51,255,255,27,0,3,
28,58,0,
39,
-16,0,32,0,0,104,0,1,
+16,0,96,0,0,104,0,1,
51,57,0,
51,255,255,27,0,
54,59,0,
@@ -363,7 +381,7 @@
51,255,255,10,0,3,
28,60,0,
39,
-16,0,32,0,0,110,0,1,
+16,0,96,0,0,110,0,1,
51,59,0,
51,255,255,10,0,
54,61,0,
@@ -371,7 +389,7 @@
51,255,255,27,0,3,
28,62,0,
39,
-16,0,32,0,0,110,0,1,
+16,0,96,0,0,110,0,1,
51,61,0,
51,255,255,27,0,
54,63,0,
@@ -381,7 +399,8 @@
17,67,0,
51,255,255,10,0,3,
28,65,0,
-17,116,0,2,
+39,
+16,0,64,0,0,116,0,2,
51,63,0,
51,64,0,
51,255,255,10,0,
@@ -392,7 +411,8 @@
17,67,0,
51,255,255,27,0,3,
28,68,0,
-17,116,0,2,
+39,
+16,0,64,0,0,116,0,2,
51,66,0,
51,67,0,
51,255,255,27,0,
@@ -400,154 +420,176 @@
17,55,0,
51,255,255,10,0,3,
28,70,0,
-17,120,0,1,
+39,
+16,0,64,0,0,120,0,1,
51,69,0,
51,255,255,10,0,
54,71,0,
17,55,0,
51,255,255,27,0,3,
28,72,0,
-17,120,0,1,
+39,
+16,0,64,0,0,120,0,1,
51,71,0,
51,255,255,27,0,
54,73,0,
17,55,0,
51,255,255,10,0,3,
28,74,0,
-17,124,0,1,
+39,
+16,0,64,0,0,124,0,1,
51,73,0,
51,255,255,10,0,
54,75,0,
17,55,0,
51,255,255,27,0,3,
28,76,0,
-17,124,0,1,
+39,
+16,0,64,0,0,124,0,1,
51,75,0,
51,255,255,27,0,
54,77,0,
17,55,0,
51,255,255,10,0,3,
28,78,0,
-17,128,0,1,
+39,
+16,0,64,0,0,128,0,1,
51,77,0,
51,255,255,10,0,
54,79,0,
17,55,0,
51,255,255,27,0,3,
28,80,0,
-17,128,0,1,
+39,
+16,0,64,0,0,128,0,1,
51,79,0,
51,255,255,27,0,
54,81,0,
17,55,0,
51,255,255,10,0,3,
28,82,0,
-17,133,0,1,
+39,
+16,0,64,0,0,133,0,1,
51,81,0,
51,255,255,10,0,
54,83,0,
17,55,0,
51,255,255,27,0,3,
28,84,0,
-17,133,0,1,
+39,
+16,0,64,0,0,133,0,1,
51,83,0,
51,255,255,27,0,
54,85,0,
17,55,0,
51,255,255,10,0,3,
28,86,0,
-17,138,0,1,
+39,
+16,0,64,0,0,138,0,1,
51,85,0,
51,255,255,10,0,
54,87,0,
17,55,0,
51,255,255,27,0,3,
28,88,0,
-17,138,0,1,
+39,
+16,0,64,0,0,138,0,1,
51,87,0,
51,255,255,27,0,
54,89,0,
17,55,0,
51,255,255,10,0,3,
28,90,0,
-17,143,0,1,
+39,
+16,0,64,0,0,143,0,1,
51,89,0,
51,255,255,10,0,
54,91,0,
17,55,0,
51,255,255,27,0,3,
28,92,0,
-17,143,0,1,
+39,
+16,0,64,0,0,143,0,1,
51,91,0,
51,255,255,27,0,
54,93,0,
17,55,0,
51,255,255,10,0,3,
28,94,0,
-17,155,0,1,
+39,
+16,0,64,0,0,155,0,1,
51,93,0,
51,255,255,10,0,
54,95,0,
17,55,0,
51,255,255,27,0,3,
28,96,0,
-17,155,0,1,
+39,
+16,0,64,0,0,155,0,1,
51,95,0,
51,255,255,27,0,
54,97,0,
17,55,0,
51,255,255,10,0,3,
28,98,0,
-17,159,0,1,
+39,
+16,0,64,0,0,159,0,1,
51,97,0,
51,255,255,10,0,
54,99,0,
17,55,0,
51,255,255,27,0,3,
28,100,0,
-17,159,0,1,
+39,
+16,0,64,0,0,159,0,1,
51,99,0,
51,255,255,27,0,
54,101,0,
17,55,0,
51,255,255,10,0,3,
28,102,0,
-17,164,0,1,
+39,
+16,0,64,0,0,164,0,1,
51,101,0,
51,255,255,10,0,
54,103,0,
17,55,0,
51,255,255,27,0,3,
28,104,0,
-17,164,0,1,
+39,
+16,0,64,0,0,164,0,1,
51,103,0,
51,255,255,27,0,
54,105,0,
17,55,0,
51,255,255,10,0,3,
28,106,0,
-17,170,0,1,
+39,
+16,0,64,0,0,170,0,1,
51,105,0,
51,255,255,10,0,
54,107,0,
17,55,0,
51,255,255,27,0,3,
28,108,0,
-17,170,0,1,
+39,
+16,0,64,0,0,170,0,1,
51,107,0,
51,255,255,27,0,
54,109,0,
17,55,0,
51,255,255,10,0,3,
28,110,0,
-17,175,0,1,
+39,
+16,0,64,0,0,175,0,1,
51,109,0,
51,255,255,10,0,
54,111,0,
17,55,0,
51,255,255,27,0,3,
28,112,0,
-17,175,0,1,
+39,
+16,0,64,0,0,175,0,1,
51,111,0,
51,255,255,27,0,
54,113,0,
@@ -557,7 +599,8 @@
17,67,0,
51,255,255,181,0,3,
28,115,0,
-17,187,0,2,
+39,
+16,0,64,0,0,187,0,2,
51,113,0,
51,114,0,
51,255,255,10,0,
@@ -568,7 +611,8 @@
17,67,0,
51,255,255,10,0,3,
28,118,0,
-17,187,0,2,
+39,
+16,0,64,0,0,187,0,2,
51,116,0,
51,117,0,
51,255,255,10,0,
@@ -579,7 +623,8 @@
17,67,0,
51,255,255,191,0,3,
28,121,0,
-17,187,0,2,
+39,
+16,0,64,0,0,187,0,2,
51,119,0,
51,120,0,
51,255,255,27,0,
@@ -590,7 +635,8 @@
17,67,0,
51,255,255,27,0,3,
28,124,0,
-17,187,0,2,
+39,
+16,0,64,0,0,187,0,2,
51,122,0,
51,123,0,
51,255,255,27,0,
@@ -601,7 +647,8 @@
17,67,0,
51,255,255,10,0,3,
28,127,0,
-17,196,0,2,
+39,
+16,0,64,0,0,196,0,2,
51,125,0,
51,126,0,
51,255,255,10,0,
@@ -612,7 +659,8 @@
17,67,0,
51,255,255,181,0,3,
28,130,0,
-17,196,0,2,
+39,
+16,0,64,0,0,196,0,2,
51,128,0,
51,129,0,
51,255,255,10,0,
@@ -623,7 +671,8 @@
17,67,0,
51,255,255,27,0,3,
28,133,0,
-17,196,0,2,
+39,
+16,0,64,0,0,196,0,2,
51,131,0,
51,132,0,
51,255,255,27,0,
@@ -634,7 +683,8 @@
17,67,0,
51,255,255,191,0,3,
28,136,0,
-17,196,0,2,
+39,
+16,0,64,0,0,196,0,2,
51,134,0,
51,135,0,
51,255,255,27,0,
@@ -645,7 +695,8 @@
17,67,0,
51,255,255,10,0,3,
28,139,0,
-17,200,0,2,
+39,
+16,0,64,0,0,200,0,2,
51,137,0,
51,138,0,
51,255,255,10,0,
@@ -656,7 +707,8 @@
17,67,0,
51,255,255,181,0,3,
28,142,0,
-17,200,0,2,
+39,
+16,0,64,0,0,200,0,2,
51,140,0,
51,141,0,
51,255,255,10,0,
@@ -667,7 +719,8 @@
17,67,0,
51,255,255,27,0,3,
28,145,0,
-17,200,0,2,
+39,
+16,0,64,0,0,200,0,2,
51,143,0,
51,144,0,
51,255,255,27,0,
@@ -678,7 +731,8 @@
17,67,0,
51,255,255,191,0,3,
28,148,0,
-17,200,0,2,
+39,
+16,0,64,0,0,200,0,2,
51,146,0,
51,147,0,
51,255,255,27,0,
@@ -692,7 +746,8 @@
17,211,0,
51,255,255,10,0,3,
28,152,0,
-17,218,0,3,
+39,
+16,0,64,0,0,218,0,3,
51,149,0,
51,150,0,
51,151,0,
@@ -707,7 +762,8 @@
17,211,0,
51,255,255,181,0,3,
28,156,0,
-17,218,0,3,
+39,
+16,0,64,0,0,218,0,3,
51,153,0,
51,154,0,
51,155,0,
@@ -722,7 +778,8 @@
17,211,0,
51,255,255,27,0,3,
28,160,0,
-17,218,0,3,
+39,
+16,0,64,0,0,218,0,3,
51,157,0,
51,158,0,
51,159,0,
@@ -737,7 +794,8 @@
17,211,0,
51,255,255,191,0,3,
28,164,0,
-17,218,0,3,
+39,
+16,0,64,0,0,218,0,3,
51,161,0,
51,162,0,
51,163,0,
@@ -746,14 +804,16 @@
17,55,0,
51,255,255,10,0,3,
28,166,0,
-17,224,0,1,
+39,
+16,0,64,0,0,224,0,1,
51,165,0,
51,255,255,10,0,
54,167,0,
17,55,0,
51,255,255,27,0,3,
28,168,0,
-17,224,0,1,
+39,
+16,0,64,0,0,224,0,1,
51,167,0,
51,255,255,27,0,
54,169,0,
@@ -766,7 +826,8 @@
17,233,0,
51,255,255,10,0,3,
28,172,0,
-17,235,0,3,
+39,
+16,0,64,0,0,235,0,3,
51,169,0,
51,170,0,
51,171,0,
@@ -781,7 +842,8 @@
17,233,0,
51,255,255,181,0,3,
28,176,0,
-17,235,0,3,
+39,
+16,0,64,0,0,235,0,3,
51,173,0,
51,174,0,
51,175,0,
@@ -796,7 +858,8 @@
17,233,0,
51,255,255,27,0,3,
28,180,0,
-17,235,0,3,
+39,
+16,0,64,0,0,235,0,3,
51,177,0,
51,178,0,
51,179,0,
@@ -811,7 +874,8 @@
17,233,0,
51,255,255,191,0,3,
28,184,0,
-17,235,0,3,
+39,
+16,0,64,0,0,235,0,3,
51,181,0,
51,182,0,
51,183,0,
@@ -823,7 +887,8 @@
17,55,0,
51,255,255,10,0,3,
28,187,0,
-17,244,0,2,
+39,
+16,0,64,0,0,244,0,2,
51,185,0,
51,186,0,
51,255,255,10,0,
@@ -834,7 +899,8 @@
17,55,0,
51,255,255,10,0,3,
28,190,0,
-17,244,0,2,
+39,
+16,0,64,0,0,244,0,2,
51,188,0,
51,189,0,
51,255,255,10,0,
@@ -845,7 +911,8 @@
17,55,0,
51,255,255,27,0,3,
28,193,0,
-17,244,0,2,
+39,
+16,0,64,0,0,244,0,2,
51,191,0,
51,192,0,
51,255,255,27,0,
@@ -856,7 +923,8 @@
17,55,0,
51,255,255,27,0,3,
28,196,0,
-17,244,0,2,
+39,
+16,0,64,0,0,244,0,2,
51,194,0,
51,195,0,
51,255,255,27,0,
@@ -870,7 +938,8 @@
17,55,0,
51,255,255,10,0,3,
28,200,0,
-17,5,1,3,
+39,
+16,0,64,0,0,5,1,3,
51,197,0,
51,198,0,
51,199,0,
@@ -885,7 +954,8 @@
17,55,0,
51,255,255,10,0,3,
28,204,0,
-17,5,1,3,
+39,
+16,0,64,0,0,5,1,3,
51,201,0,
51,202,0,
51,203,0,
@@ -900,7 +970,8 @@
17,55,0,
51,255,255,27,0,3,
28,208,0,
-17,5,1,3,
+39,
+16,0,64,0,0,5,1,3,
51,205,0,
51,206,0,
51,207,0,
@@ -915,7 +986,8 @@
17,55,0,
51,255,255,27,0,3,
28,212,0,
-17,5,1,3,
+39,
+16,0,64,0,0,5,1,3,
51,209,0,
51,210,0,
51,211,0,
@@ -925,7 +997,7 @@
51,255,255,16,1,3,
28,214,0,
39,
-16,0,32,0,0,155,0,1,
+16,0,96,0,0,155,0,1,
51,213,0,
51,255,255,16,1,
54,215,0,
@@ -933,7 +1005,7 @@
51,255,255,16,1,3,
28,216,0,
39,
-16,0,32,0,0,159,0,1,
+16,0,96,0,0,159,0,1,
51,215,0,
51,255,255,16,1,
54,217,0,
@@ -941,7 +1013,7 @@
51,255,255,10,0,3,
28,218,0,
39,
-16,0,32,0,0,32,1,1,
+16,0,96,0,0,32,1,1,
51,217,0,
51,255,255,16,1,
54,219,0,
@@ -949,7 +1021,7 @@
51,255,255,10,0,3,
28,220,0,
39,
-16,0,32,0,0,47,1,1,
+16,0,96,0,0,47,1,1,
51,219,0,
51,255,255,63,1,
54,221,0,
@@ -957,7 +1029,7 @@
51,255,255,16,1,3,
28,222,0,
39,
-16,0,32,0,0,73,1,1,
+16,0,96,0,0,73,1,1,
51,221,0,
51,255,255,10,0,
54,223,0,
@@ -965,7 +1037,7 @@
51,255,255,63,1,3,
28,224,0,
39,
-16,0,32,0,0,88,1,1,
+16,0,96,0,0,88,1,1,
51,223,0,
51,255,255,10,0,
54,225,0,
@@ -973,7 +1045,7 @@
51,255,255,10,0,3,
28,226,0,
39,
-16,0,32,0,0,104,1,1,
+16,0,96,0,0,104,1,1,
51,225,0,
51,255,255,10,0,
54,227,0,
@@ -981,7 +1053,7 @@
51,255,255,27,0,3,
28,228,0,
39,
-16,0,32,0,0,104,1,1,
+16,0,96,0,0,104,1,1,
51,227,0,
51,255,255,27,0,
54,229,0,
@@ -989,7 +1061,7 @@
51,255,255,10,0,3,
28,230,0,
39,
-16,0,32,0,0,110,1,1,
+16,0,96,0,0,110,1,1,
51,229,0,
51,255,255,10,0,
54,231,0,
@@ -997,7 +1069,7 @@
51,255,255,27,0,3,
28,232,0,
39,
-16,0,32,0,0,110,1,1,
+16,0,96,0,0,110,1,1,
51,231,0,
51,255,255,27,0,
54,233,0,
@@ -1005,7 +1077,7 @@
51,255,255,10,0,3,
28,234,0,
39,
-16,0,32,0,0,116,1,1,
+16,0,96,0,0,116,1,1,
51,233,0,
51,255,255,10,0,
54,235,0,
@@ -1013,7 +1085,7 @@
51,255,255,27,0,3,
28,236,0,
39,
-16,0,32,0,0,116,1,1,
+16,0,96,0,0,116,1,1,
51,235,0,
51,255,255,27,0,
54,237,0,
@@ -1024,7 +1096,7 @@
51,255,255,16,1,3,
28,239,0,
39,
-16,0,32,0,0,196,0,2,
+16,0,96,0,0,196,0,2,
51,237,0,
51,238,0,
51,255,255,16,1,
@@ -1036,7 +1108,7 @@
51,255,255,126,1,3,
28,242,0,
39,
-16,0,32,0,0,196,0,2,
+16,0,96,0,0,196,0,2,
51,240,0,
51,241,0,
51,255,255,16,1,
@@ -1048,7 +1120,7 @@
51,255,255,16,1,3,
28,245,0,
39,
-16,0,32,0,0,200,0,2,
+16,0,96,0,0,200,0,2,
51,243,0,
51,244,0,
51,255,255,16,1,
@@ -1060,7 +1132,7 @@
51,255,255,126,1,3,
28,248,0,
39,
-16,0,32,0,0,200,0,2,
+16,0,96,0,0,200,0,2,
51,246,0,
51,247,0,
51,255,255,16,1,
@@ -1075,7 +1147,7 @@
51,255,255,16,1,3,
28,252,0,
39,
-16,0,32,0,0,218,0,3,
+16,0,96,0,0,218,0,3,
51,249,0,
51,250,0,
51,251,0,
@@ -1091,7 +1163,7 @@
51,255,255,126,1,3,
28,0,1,
39,
-16,0,32,0,0,218,0,3,
+16,0,96,0,0,218,0,3,
51,253,0,
51,254,0,
51,255,0,
@@ -1107,7 +1179,7 @@
51,255,255,63,1,3,
28,4,1,
39,
-16,0,32,0,0,218,0,3,
+16,0,96,0,0,218,0,3,
51,1,1,
51,2,1,
51,3,1,
@@ -1123,7 +1195,7 @@
51,255,255,130,1,3,
28,8,1,
39,
-16,0,32,0,0,218,0,3,
+16,0,96,0,0,218,0,3,
51,5,1,
51,6,1,
51,7,1,
@@ -1139,7 +1211,7 @@
51,255,255,135,1,3,
28,12,1,
39,
-16,0,32,0,0,235,0,3,
+16,0,96,0,0,235,0,3,
51,9,1,
51,10,1,
51,11,1,
@@ -1155,7 +1227,7 @@
51,255,255,135,1,3,
28,16,1,
39,
-16,0,32,0,0,235,0,3,
+16,0,96,0,0,235,0,3,
51,13,1,
51,14,1,
51,15,1,
@@ -1165,7 +1237,7 @@
51,255,255,10,0,3,
28,18,1,
39,
-16,0,32,0,0,145,1,1,
+16,0,96,0,0,145,1,1,
51,17,1,
51,255,255,135,1,
54,19,1,
@@ -1173,7 +1245,7 @@
51,255,255,27,0,3,
28,20,1,
39,
-16,0,32,0,0,145,1,1,
+16,0,96,0,0,145,1,1,
51,19,1,
51,255,255,135,1,
54,21,1,
@@ -1181,7 +1253,7 @@
51,255,255,10,0,3,
28,22,1,
39,
-16,0,32,0,0,151,1,1,
+16,0,96,0,0,151,1,1,
51,21,1,
51,255,255,135,1,
54,23,1,
@@ -1189,7 +1261,7 @@
51,255,255,27,0,3,
28,24,1,
39,
-16,0,32,0,0,151,1,1,
+16,0,96,0,0,151,1,1,
51,23,1,
51,255,255,135,1,
54,25,1,
@@ -1201,7 +1273,7 @@
51,255,255,10,0,3,
28,27,1,
39,
-16,0,32,0,0,159,1,2,
+16,0,96,0,0,159,1,2,
51,25,1,
51,26,1,
51,255,255,10,0,
@@ -1214,7 +1286,7 @@
51,255,255,27,0,3,
28,30,1,
39,
-16,0,32,0,0,159,1,2,
+16,0,96,0,0,159,1,2,
51,28,1,
51,29,1,
51,255,255,27,0,
@@ -1223,7 +1295,7 @@
51,255,255,166,1,3,
28,32,1,
39,
-16,0,32,0,0,173,1,1,
+16,0,96,0,0,173,1,1,
51,31,1,
51,255,255,130,1,
54,33,1,
@@ -1231,21 +1303,23 @@
51,255,255,130,1,3,
28,34,1,
39,
-16,0,32,0,0,189,1,1,
+16,0,96,0,0,189,1,1,
51,33,1,
51,255,255,166,1,
54,35,1,
17,55,0,
51,255,255,10,0,3,
28,36,1,
-17,205,1,1,
+39,
+16,0,64,0,0,205,1,1,
51,35,1,
51,255,255,181,0,
54,37,1,
17,55,0,
51,255,255,27,0,3,
28,38,1,
-17,205,1,1,
+39,
+16,0,64,0,0,205,1,1,
51,37,1,
51,255,255,191,0,
54,39,1,
@@ -1255,7 +1329,8 @@
17,215,1,
51,255,255,10,0,3,
28,41,1,
-17,218,1,2,
+39,
+16,0,64,0,0,218,1,2,
51,39,1,
51,40,1,
51,255,255,181,0,
@@ -1266,7 +1341,8 @@
17,215,1,
51,255,255,27,0,3,
28,44,1,
-17,218,1,2,
+39,
+16,0,64,0,0,218,1,2,
51,42,1,
51,43,1,
51,255,255,191,0,
@@ -1277,7 +1353,8 @@
17,67,0,
51,255,255,10,0,3,
28,47,1,
-17,227,1,2,
+39,
+16,0,64,0,0,227,1,2,
51,45,1,
51,46,1,
51,255,255,181,0,
@@ -1288,7 +1365,8 @@
17,67,0,
51,255,255,27,0,3,
28,50,1,
-17,227,1,2,
+39,
+16,0,64,0,0,227,1,2,
51,48,1,
51,49,1,
51,255,255,191,0,
@@ -1299,7 +1377,8 @@
17,67,0,
51,255,255,231,1,3,
28,53,1,
-17,238,1,2,
+39,
+16,0,64,0,0,238,1,2,
51,51,1,
51,52,1,
51,255,255,231,1,
@@ -1310,7 +1389,8 @@
17,67,0,
51,255,255,244,1,3,
28,56,1,
-17,238,1,2,
+39,
+16,0,64,0,0,238,1,2,
51,54,1,
51,55,1,
51,255,255,244,1,
@@ -1318,14 +1398,16 @@
17,55,0,
51,255,255,10,0,3,
28,58,1,
-17,250,1,1,
+39,
+16,0,64,0,0,250,1,1,
51,57,1,
51,255,255,10,0,
54,59,1,
17,55,0,
51,255,255,27,0,3,
28,60,1,
-17,250,1,1,
+39,
+16,0,64,0,0,250,1,1,
51,59,1,
51,255,255,27,0,
54,61,1,
@@ -1338,7 +1420,8 @@
17,8,2,
51,255,255,10,0,3,
28,64,1,
-17,13,2,3,
+39,
+16,0,64,0,0,13,2,3,
51,61,1,
51,62,1,
51,63,1,
@@ -1353,7 +1436,8 @@
17,8,2,
51,255,255,27,0,3,
28,68,1,
-17,13,2,3,
+39,
+16,0,64,0,0,13,2,3,
51,65,1,
51,66,1,
51,67,1,
@@ -1365,7 +1449,8 @@
17,4,2,
51,255,255,10,0,3,
28,71,1,
-17,25,2,2,
+39,
+16,0,64,0,0,25,2,2,
51,69,1,
51,70,1,
51,255,255,10,0,
@@ -1376,7 +1461,8 @@
17,4,2,
51,255,255,27,0,3,
28,74,1,
-17,25,2,2,
+39,
+16,0,64,0,0,25,2,2,
51,72,1,
51,73,1,
51,255,255,27,0,
@@ -1390,7 +1476,8 @@
17,33,2,
51,255,255,181,0,3,
28,78,1,
-17,37,2,3,
+39,
+16,0,64,0,0,37,2,3,
51,75,1,
51,76,1,
51,77,1,
@@ -1405,7 +1492,8 @@
17,33,2,
51,255,255,191,0,3,
28,82,1,
-17,37,2,3,
+39,
+16,0,64,0,0,37,2,3,
51,79,1,
51,80,1,
51,81,1,
@@ -1417,7 +1505,8 @@
17,67,0,
51,255,255,45,2,3,
28,85,1,
-17,56,2,2,
+39,
+16,0,64,0,0,56,2,2,
51,83,1,
51,84,1,
51,255,255,45,2,
@@ -1428,7 +1517,8 @@
17,67,0,
51,255,255,71,2,3,
28,88,1,
-17,56,2,2,
+39,
+16,0,64,0,0,56,2,2,
51,86,1,
51,87,1,
51,255,255,71,2,
@@ -1440,7 +1530,7 @@
51,255,255,83,2,3,
28,91,1,
39,
-16,0,32,0,0,56,2,2,
+16,0,96,0,0,56,2,2,
51,89,1,
51,90,1,
51,255,255,83,2,
@@ -1452,7 +1542,7 @@
51,255,255,88,2,3,
28,94,1,
39,
-16,0,32,0,0,56,2,2,
+16,0,96,0,0,56,2,2,
51,92,1,
51,93,1,
51,255,255,88,2,
@@ -1460,14 +1550,16 @@
17,94,2,
51,255,255,45,2,3,
28,96,1,
-17,96,2,1,
+39,
+16,0,64,0,0,96,2,1,
51,95,1,
51,255,255,45,2,
54,97,1,
17,94,2,
51,255,255,71,2,3,
28,98,1,
-17,96,2,1,
+39,
+16,0,64,0,0,96,2,1,
51,97,1,
51,255,255,71,2,
54,99,1,
@@ -1475,7 +1567,7 @@
51,255,255,45,2,3,
28,100,1,
39,
-16,0,32,0,0,104,2,1,
+16,0,96,0,0,104,2,1,
51,99,1,
51,255,255,181,0,
54,101,1,
@@ -1483,7 +1575,7 @@
51,255,255,71,2,3,
28,102,1,
39,
-16,0,32,0,0,104,2,1,
+16,0,96,0,0,104,2,1,
51,101,1,
51,255,255,191,0,
54,103,1,
@@ -1491,7 +1583,7 @@
51,255,255,45,2,3,
28,104,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,103,1,
51,255,255,45,2,
54,105,1,
@@ -1499,7 +1591,7 @@
51,255,255,71,2,3,
28,106,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,105,1,
51,255,255,71,2,
54,107,1,
@@ -1507,7 +1599,7 @@
51,255,255,126,2,3,
28,108,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,107,1,
51,255,255,135,2,
54,109,1,
@@ -1515,7 +1607,7 @@
51,255,255,144,2,3,
28,110,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,109,1,
51,255,255,152,2,
54,111,1,
@@ -1523,7 +1615,7 @@
51,255,255,160,2,3,
28,112,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,111,1,
51,255,255,169,2,
54,113,1,
@@ -1531,7 +1623,7 @@
51,255,255,178,2,3,
28,114,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,113,1,
51,255,255,186,2,
54,115,1,
@@ -1539,7 +1631,7 @@
51,255,255,135,2,3,
28,116,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,115,1,
51,255,255,126,2,
54,117,1,
@@ -1547,7 +1639,7 @@
51,255,255,152,2,3,
28,118,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,117,1,
51,255,255,144,2,
54,119,1,
@@ -1555,7 +1647,7 @@
51,255,255,194,2,3,
28,120,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,119,1,
51,255,255,203,2,
54,121,1,
@@ -1563,7 +1655,7 @@
51,255,255,212,2,3,
28,122,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,121,1,
51,255,255,220,2,
54,123,1,
@@ -1571,7 +1663,7 @@
51,255,255,169,2,3,
28,124,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,123,1,
51,255,255,160,2,
54,125,1,
@@ -1579,7 +1671,7 @@
51,255,255,186,2,3,
28,126,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,125,1,
51,255,255,178,2,
54,127,1,
@@ -1587,7 +1679,7 @@
51,255,255,203,2,3,
28,128,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,127,1,
51,255,255,194,2,
54,129,1,
@@ -1595,7 +1687,7 @@
51,255,255,220,2,3,
28,130,1,
39,
-16,0,32,0,0,116,2,1,
+16,0,96,0,0,116,2,1,
51,129,1,
51,255,255,212,2,
54,131,1,
@@ -1606,7 +1698,7 @@
51,255,255,230,2,3,
28,133,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,131,1,
51,132,1,
51,255,255,45,2,
@@ -1618,7 +1710,7 @@
51,255,255,250,2,3,
28,136,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,134,1,
51,135,1,
51,255,255,71,2,
@@ -1630,7 +1722,7 @@
51,255,255,166,1,3,
28,139,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,137,1,
51,138,1,
51,255,255,135,2,
@@ -1642,7 +1734,7 @@
51,255,255,0,3,3,
28,142,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,140,1,
51,141,1,
51,255,255,152,2,
@@ -1654,7 +1746,7 @@
51,255,255,231,1,3,
28,145,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,143,1,
51,144,1,
51,255,255,126,2,
@@ -1666,7 +1758,7 @@
51,255,255,244,1,3,
28,148,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,146,1,
51,147,1,
51,255,255,144,2,
@@ -1678,7 +1770,7 @@
51,255,255,166,1,3,
28,151,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,149,1,
51,150,1,
51,255,255,169,2,
@@ -1690,7 +1782,7 @@
51,255,255,0,3,3,
28,154,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,152,1,
51,153,1,
51,255,255,186,2,
@@ -1702,7 +1794,7 @@
51,255,255,6,3,3,
28,157,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,155,1,
51,156,1,
51,255,255,160,2,
@@ -1714,7 +1806,7 @@
51,255,255,13,3,3,
28,160,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,158,1,
51,159,1,
51,255,255,178,2,
@@ -1726,7 +1818,7 @@
51,255,255,231,1,3,
28,163,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,161,1,
51,162,1,
51,255,255,203,2,
@@ -1738,7 +1830,7 @@
51,255,255,244,1,3,
28,166,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,164,1,
51,165,1,
51,255,255,220,2,
@@ -1750,7 +1842,7 @@
51,255,255,6,3,3,
28,169,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,167,1,
51,168,1,
51,255,255,194,2,
@@ -1762,7 +1854,7 @@
51,255,255,13,3,3,
28,172,1,
39,
-16,0,32,0,0,237,2,2,
+16,0,96,0,0,237,2,2,
51,170,1,
51,171,1,
51,255,255,212,2,
@@ -1773,7 +1865,8 @@
17,67,0,
51,255,255,230,2,3,
28,175,1,
-17,19,3,2,
+39,
+16,0,64,0,0,19,3,2,
51,173,1,
51,174,1,
51,255,255,28,3,
@@ -1784,7 +1877,8 @@
17,67,0,
51,255,255,250,2,3,
28,178,1,
-17,19,3,2,
+39,
+16,0,64,0,0,19,3,2,
51,176,1,
51,177,1,
51,255,255,28,3,
@@ -1795,7 +1889,8 @@
17,67,0,
51,255,255,34,3,3,
28,181,1,
-17,19,3,2,
+39,
+16,0,64,0,0,19,3,2,
51,179,1,
51,180,1,
51,255,255,28,3,
@@ -1806,7 +1901,8 @@
17,67,0,
51,255,255,230,2,3,
28,184,1,
-17,40,3,2,
+39,
+16,0,64,0,0,40,3,2,
51,182,1,
51,183,1,
51,255,255,28,3,
@@ -1817,7 +1913,8 @@
17,67,0,
51,255,255,250,2,3,
28,187,1,
-17,40,3,2,
+39,
+16,0,64,0,0,40,3,2,
51,185,1,
51,186,1,
51,255,255,28,3,
@@ -1828,7 +1925,8 @@
17,67,0,
51,255,255,34,3,3,
28,190,1,
-17,40,3,2,
+39,
+16,0,64,0,0,40,3,2,
51,188,1,
51,189,1,
51,255,255,28,3,
@@ -1839,7 +1937,8 @@
17,67,0,
51,255,255,230,2,3,
28,193,1,
-17,54,3,2,
+39,
+16,0,64,0,0,54,3,2,
51,191,1,
51,192,1,
51,255,255,28,3,
@@ -1850,7 +1949,8 @@
17,67,0,
51,255,255,250,2,3,
28,196,1,
-17,54,3,2,
+39,
+16,0,64,0,0,54,3,2,
51,194,1,
51,195,1,
51,255,255,28,3,
@@ -1861,7 +1961,8 @@
17,67,0,
51,255,255,34,3,3,
28,199,1,
-17,54,3,2,
+39,
+16,0,64,0,0,54,3,2,
51,197,1,
51,198,1,
51,255,255,28,3,
@@ -1872,7 +1973,8 @@
17,67,0,
51,255,255,230,2,3,
28,202,1,
-17,66,3,2,
+39,
+16,0,64,0,0,66,3,2,
51,200,1,
51,201,1,
51,255,255,28,3,
@@ -1883,7 +1985,8 @@
17,67,0,
51,255,255,250,2,3,
28,205,1,
-17,66,3,2,
+39,
+16,0,64,0,0,66,3,2,
51,203,1,
51,204,1,
51,255,255,28,3,
@@ -1894,7 +1997,8 @@
17,67,0,
51,255,255,34,3,3,
28,208,1,
-17,66,3,2,
+39,
+16,0,64,0,0,66,3,2,
51,206,1,
51,207,1,
51,255,255,28,3,
@@ -1905,7 +2009,8 @@
17,67,0,
51,255,255,230,2,3,
28,211,1,
-17,83,3,2,
+39,
+16,0,64,0,0,83,3,2,
51,209,1,
51,210,1,
51,255,255,28,3,
@@ -1916,7 +2021,8 @@
17,67,0,
51,255,255,250,2,3,
28,214,1,
-17,83,3,2,
+39,
+16,0,64,0,0,83,3,2,
51,212,1,
51,213,1,
51,255,255,28,3,
@@ -1927,7 +2033,8 @@
17,67,0,
51,255,255,34,3,3,
28,217,1,
-17,83,3,2,
+39,
+16,0,64,0,0,83,3,2,
51,215,1,
51,216,1,
51,255,255,28,3,
@@ -1938,7 +2045,8 @@
17,67,0,
51,255,255,28,3,3,
28,220,1,
-17,83,3,2,
+39,
+16,0,64,0,0,83,3,2,
51,218,1,
51,219,1,
51,255,255,28,3,
@@ -1949,7 +2057,8 @@
17,67,0,
51,255,255,230,2,3,
28,223,1,
-17,89,3,2,
+39,
+16,0,64,0,0,89,3,2,
51,221,1,
51,222,1,
51,255,255,28,3,
@@ -1960,7 +2069,8 @@
17,67,0,
51,255,255,250,2,3,
28,226,1,
-17,89,3,2,
+39,
+16,0,64,0,0,89,3,2,
51,224,1,
51,225,1,
51,255,255,28,3,
@@ -1971,7 +2081,8 @@
17,67,0,
51,255,255,34,3,3,
28,229,1,
-17,89,3,2,
+39,
+16,0,64,0,0,89,3,2,
51,227,1,
51,228,1,
51,255,255,28,3,
@@ -1982,7 +2093,8 @@
17,67,0,
51,255,255,28,3,3,
28,232,1,
-17,89,3,2,
+39,
+16,0,64,0,0,89,3,2,
51,230,1,
51,231,1,
51,255,255,28,3,
@@ -1990,21 +2102,24 @@
17,55,0,
51,255,255,28,3,3,
28,234,1,
-17,98,3,1,
+39,
+16,0,64,0,0,98,3,1,
51,233,1,
51,255,255,102,3,
54,235,1,
17,55,0,
51,255,255,28,3,3,
28,236,1,
-17,107,3,1,
+39,
+16,0,64,0,0,107,3,1,
51,235,1,
51,255,255,102,3,
54,237,1,
17,55,0,
51,255,255,28,3,3,
28,238,1,
-17,111,3,1,
+39,
+16,0,64,0,0,111,3,1,
51,237,1,
51,255,255,28,3,
54,239,1,
@@ -2012,7 +2127,7 @@
51,255,255,10,0,3,
28,240,1,
39,
-16,0,32,0,0,115,3,1,
+16,0,96,0,0,115,3,1,
51,239,1,
51,255,255,10,0,
54,241,1,
@@ -2020,7 +2135,7 @@
51,255,255,10,0,3,
28,242,1,
39,
-16,0,32,0,0,120,3,1,
+16,0,96,0,0,120,3,1,
51,241,1,
51,255,255,10,0,
54,243,1,
@@ -2028,7 +2143,7 @@
51,255,255,27,0,3,
28,244,1,
39,
-16,0,32,0,0,115,3,1,
+16,0,96,0,0,115,3,1,
51,243,1,
51,255,255,27,0,
54,245,1,
@@ -2036,7 +2151,7 @@
51,255,255,27,0,3,
28,246,1,
39,
-16,0,32,0,0,120,3,1,
+16,0,96,0,0,120,3,1,
51,245,1,
51,255,255,27,0,
54,247,1,
@@ -2044,7 +2159,7 @@
51,255,255,10,0,3,
28,248,1,
39,
-16,0,32,0,0,125,3,1,
+16,0,96,0,0,125,3,1,
51,247,1,
51,255,255,10,0,
54,249,1,
@@ -2052,7 +2167,7 @@
51,255,255,27,0,3,
28,250,1,
39,
-16,0,32,0,0,125,3,1,
+16,0,96,0,0,125,3,1,
51,249,1,
51,255,255,27,0,
54,251,1,
diff --git a/src/sksl/ir/SkSLFunctionDeclaration.cpp b/src/sksl/ir/SkSLFunctionDeclaration.cpp
index eb5dd4b..55c4e75 100644
--- a/src/sksl/ir/SkSLFunctionDeclaration.cpp
+++ b/src/sksl/ir/SkSLFunctionDeclaration.cpp
@@ -35,10 +35,10 @@
static bool check_modifiers(const Context& context,
Position pos,
const Modifiers& modifiers) {
- const int permitted = Modifiers::kHasSideEffects_Flag |
- Modifiers::kInline_Flag |
+ const int permitted = Modifiers::kInline_Flag |
Modifiers::kNoInline_Flag |
- (context.fConfig->fIsBuiltinCode ? Modifiers::kES3_Flag : 0);
+ (context.fConfig->fIsBuiltinCode ? (Modifiers::kES3_Flag |
+ Modifiers::kPure_Flag) : 0);
modifiers.checkPermitted(context, pos, permitted, /*permittedLayoutFlags=*/0);
if ((modifiers.fFlags & Modifiers::kInline_Flag) &&
(modifiers.fFlags & Modifiers::kNoInline_Flag)) {
@@ -511,9 +511,9 @@
}
std::string FunctionDeclaration::description() const {
- // We don't want to add `sk_has_side_effects` to every function description, even if it's true.
+ // We don't want to show `$pure` and `$es3` on function descriptions, even if it's true.
int modifierFlags = this->modifiers().fFlags;
- modifierFlags &= ~Modifiers::kHasSideEffects_Flag;
+ modifierFlags &= ~(Modifiers::kPure_Flag | Modifiers::kES3_Flag);
std::string result =
(modifierFlags ? Modifiers::DescribeFlags(modifierFlags) + " " : std::string()) +
diff --git a/src/sksl/ir/SkSLModifiers.cpp b/src/sksl/ir/SkSLModifiers.cpp
index 6d209c2..320df40 100644
--- a/src/sksl/ir/SkSLModifiers.cpp
+++ b/src/sksl/ir/SkSLModifiers.cpp
@@ -25,7 +25,7 @@
{ Modifiers::kUniform_Flag, "uniform" },
{ Modifiers::kFlat_Flag, "flat" },
{ Modifiers::kNoPerspective_Flag, "noperspective" },
- { Modifiers::kHasSideEffects_Flag, "sk_has_side_effects" },
+ { Modifiers::kPure_Flag, "$pure" },
{ Modifiers::kInline_Flag, "inline" },
{ Modifiers::kNoInline_Flag, "noinline" },
{ Modifiers::kHighp_Flag, "highp" },
diff --git a/src/sksl/ir/SkSLVarDeclarations.cpp b/src/sksl/ir/SkSLVarDeclarations.cpp
index 8a06653..e135fd7 100644
--- a/src/sksl/ir/SkSLVarDeclarations.cpp
+++ b/src/sksl/ir/SkSLVarDeclarations.cpp
@@ -258,10 +258,6 @@
}
}
}
- // This modifier isn't actually allowed on variables, at all. However, it's restricted to only
- // appear in module code by the parser. We "allow" it here, to avoid double-reporting errors.
- // This means that module code could put it on a variable (to no effect). We'll live with that.
- permitted |= Modifiers::kHasSideEffects_Flag;
// TODO(skbug.com/11301): Migrate above checks into building a mask of permitted layout flags
diff --git a/src/sksl/lex/sksl.lex b/src/sksl/lex/sksl.lex
index b766884..fc276c9 100644
--- a/src/sksl/lex/sksl.lex
+++ b/src/sksl/lex/sksl.lex
@@ -37,7 +37,7 @@
NOPERSPECTIVE = "noperspective"
INLINE = "inline"
NOINLINE = "noinline"
-HASSIDEEFFECTS = "sk_has_side_effects"
+PURE = "$pure"
READONLY = "readonly"
WRITEONLY = "writeonly"
BUFFER = "buffer"
diff --git a/src/sksl/sksl_compute.sksl b/src/sksl/sksl_compute.sksl
index db0198c..5288f4f 100644
--- a/src/sksl/sksl_compute.sksl
+++ b/src/sksl/sksl_compute.sksl
@@ -2,10 +2,10 @@
layout(builtin=28) in uint3 sk_ThreadPosition;
-sk_has_side_effects half4 read($readableTexture2D t, uint2 pos);
-sk_has_side_effects void write($writableTexture2D t, uint2 pos, half4 color);
+$pure half4 read($readableTexture2D t, uint2 pos);
+void write($writableTexture2D t, uint2 pos, half4 color);
-uint width($genTexture2D t);
-uint height($genTexture2D t);
+$pure uint width($genTexture2D t);
+$pure uint height($genTexture2D t);
-sk_has_side_effects void threadgroupBarrier();
+void threadgroupBarrier();
diff --git a/src/sksl/sksl_gpu.sksl b/src/sksl/sksl_gpu.sksl
index ad3ea8b..e166cdb 100644
--- a/src/sksl/sksl_gpu.sksl
+++ b/src/sksl/sksl_gpu.sksl
@@ -1,93 +1,93 @@
// Not exposed in shared module
-$genIType mix($genIType x, $genIType y, $genBType a);
-$genBType mix($genBType x, $genBType y, $genBType a);
-$genType fma($genType a, $genType b, $genType c);
-$genHType fma($genHType a, $genHType b, $genHType c);
-sk_has_side_effects $genType frexp($genType x, out $genIType exp);
-sk_has_side_effects $genHType frexp($genHType x, out $genIType exp);
-$genType ldexp($genType x, in $genIType exp);
-$genHType ldexp($genHType x, in $genIType exp);
+$pure $genIType mix($genIType x, $genIType y, $genBType a);
+$pure $genBType mix($genBType x, $genBType y, $genBType a);
+$pure $genType fma($genType a, $genType b, $genType c);
+$pure $genHType fma($genHType a, $genHType b, $genHType c);
+ $genType frexp($genType x, out $genIType exp);
+ $genHType frexp($genHType x, out $genIType exp);
+$pure $genType ldexp($genType x, in $genIType exp);
+$pure $genHType ldexp($genHType x, in $genIType exp);
-uint packSnorm2x16(float2 v);
-uint packUnorm4x8(float4 v);
-uint packSnorm4x8(float4 v);
-float2 unpackSnorm2x16(uint p);
-float4 unpackUnorm4x8(uint p);
-float4 unpackSnorm4x8(uint p);
-uint packHalf2x16(float2 v);
-float2 unpackHalf2x16(uint v);
+$pure uint packSnorm2x16(float2 v);
+$pure uint packUnorm4x8(float4 v);
+$pure uint packSnorm4x8(float4 v);
+$pure float2 unpackSnorm2x16(uint p);
+$pure float4 unpackUnorm4x8(uint p);
+$pure float4 unpackSnorm4x8(uint p);
+$pure uint packHalf2x16(float2 v);
+$pure float2 unpackHalf2x16(uint v);
-$bvec lessThan($svec x, $svec y);
-$bvec lessThan($usvec x, $usvec y);
-$bvec lessThan($uvec x, $uvec y);
-$bvec lessThanEqual($uvec x, $uvec y);
-$bvec lessThanEqual($svec x, $svec y);
-$bvec lessThanEqual($usvec x, $usvec y);
-$bvec greaterThan($uvec x, $uvec y);
-$bvec greaterThan($svec x, $svec y);
-$bvec greaterThan($usvec x, $usvec y);
-$bvec greaterThanEqual($uvec x, $uvec y);
-$bvec greaterThanEqual($svec x, $svec y);
-$bvec greaterThanEqual($usvec x, $usvec y);
-$bvec equal($uvec x, $uvec y);
-$bvec equal($svec x, $svec y);
-$bvec equal($usvec x, $usvec y);
-$bvec notEqual($uvec x, $uvec y);
-$bvec notEqual($svec x, $svec y);
-$bvec notEqual($usvec x, $usvec y);
+$pure $bvec lessThan($svec x, $svec y);
+$pure $bvec lessThan($usvec x, $usvec y);
+$pure $bvec lessThan($uvec x, $uvec y);
+$pure $bvec lessThanEqual($uvec x, $uvec y);
+$pure $bvec lessThanEqual($svec x, $svec y);
+$pure $bvec lessThanEqual($usvec x, $usvec y);
+$pure $bvec greaterThan($uvec x, $uvec y);
+$pure $bvec greaterThan($svec x, $svec y);
+$pure $bvec greaterThan($usvec x, $usvec y);
+$pure $bvec greaterThanEqual($uvec x, $uvec y);
+$pure $bvec greaterThanEqual($svec x, $svec y);
+$pure $bvec greaterThanEqual($usvec x, $usvec y);
+$pure $bvec equal($uvec x, $uvec y);
+$pure $bvec equal($svec x, $svec y);
+$pure $bvec equal($usvec x, $usvec y);
+$pure $bvec notEqual($uvec x, $uvec y);
+$pure $bvec notEqual($svec x, $svec y);
+$pure $bvec notEqual($usvec x, $usvec y);
-$genIType bitCount($genIType value);
-$genIType bitCount($genUType value);
-$genIType findLSB($genIType value);
-$genIType findLSB($genUType value);
-$genIType findMSB($genIType value);
-$genIType findMSB($genUType value);
+$pure $genIType bitCount($genIType value);
+$pure $genIType bitCount($genUType value);
+$pure $genIType findLSB($genIType value);
+$pure $genIType findLSB($genUType value);
+$pure $genIType findMSB($genIType value);
+$pure $genIType findMSB($genUType value);
-sampler2D makeSampler2D(texture2D texture, sampler s);
+$pure sampler2D makeSampler2D(texture2D texture, sampler s);
-half4 sample(sampler2D s, float2 P);
-half4 sample(samplerExternalOES s, float2 P, float bias);
-half4 sample(samplerExternalOES s, float2 P);
+$pure half4 sample(sampler2D s, float2 P);
+$pure half4 sample(samplerExternalOES s, float2 P, float bias);
+$pure half4 sample(samplerExternalOES s, float2 P);
-half4 sample(sampler2DRect s, float2 P);
-half4 sample(sampler2DRect s, float3 P);
+$pure half4 sample(sampler2DRect s, float2 P);
+$pure half4 sample(sampler2DRect s, float3 P);
// Currently we do not support the generic types of loading subpassInput so we have some explicit
// versions that we currently use
-half4 subpassLoad(subpassInput subpass);
-half4 subpassLoad(subpassInputMS subpass, int sample);
+$pure half4 subpassLoad(subpassInput subpass);
+$pure half4 subpassLoad(subpassInputMS subpass, int sample);
-half4 sample(sampler2D s, float3 P);
-half4 sample(sampler2D s, float3 P, float bias);
+$pure half4 sample(sampler2D s, float3 P);
+$pure half4 sample(sampler2D s, float3 P, float bias);
// Definitions of functions implementing all of the SkBlendMode blends.
-half4 blend_clear(half4 src, half4 dst) { return half4(0); }
+$pure half4 blend_clear(half4 src, half4 dst) { return half4(0); }
-half4 blend_src(half4 src, half4 dst) { return src; }
+$pure half4 blend_src(half4 src, half4 dst) { return src; }
-half4 blend_dst(half4 src, half4 dst) { return dst; }
+$pure half4 blend_dst(half4 src, half4 dst) { return dst; }
-half4 blend_src_over(half4 src, half4 dst) { return src + (1 - src.a)*dst; }
+$pure half4 blend_src_over(half4 src, half4 dst) { return src + (1 - src.a)*dst; }
-half4 blend_dst_over(half4 src, half4 dst) { return (1 - dst.a)*src + dst; }
+$pure half4 blend_dst_over(half4 src, half4 dst) { return (1 - dst.a)*src + dst; }
-half4 blend_src_in(half4 src, half4 dst) { return src*dst.a; }
+$pure half4 blend_src_in(half4 src, half4 dst) { return src*dst.a; }
-half4 blend_dst_in(half4 src, half4 dst) { return dst*src.a; }
+$pure half4 blend_dst_in(half4 src, half4 dst) { return dst*src.a; }
-half4 blend_src_out(half4 src, half4 dst) { return (1 - dst.a)*src; }
+$pure half4 blend_src_out(half4 src, half4 dst) { return (1 - dst.a)*src; }
-half4 blend_dst_out(half4 src, half4 dst) { return (1 - src.a)*dst; }
+$pure half4 blend_dst_out(half4 src, half4 dst) { return (1 - src.a)*dst; }
-half4 blend_src_atop(half4 src, half4 dst) { return dst.a*src + (1 - src.a)*dst; }
+$pure half4 blend_src_atop(half4 src, half4 dst) { return dst.a*src + (1 - src.a)*dst; }
-half4 blend_dst_atop(half4 src, half4 dst) { return (1 - dst.a) * src + src.a*dst; }
+$pure half4 blend_dst_atop(half4 src, half4 dst) { return (1 - dst.a) * src + src.a*dst; }
-half4 blend_xor(half4 src, half4 dst) { return (1 - dst.a)*src + (1 - src.a)*dst; }
+$pure half4 blend_xor(half4 src, half4 dst) { return (1 - dst.a)*src + (1 - src.a)*dst; }
-half4 blend_plus(half4 src, half4 dst) { return min(src + dst, 1); }
+$pure half4 blend_plus(half4 src, half4 dst) { return min(src + dst, 1); }
// This multi-purpose Porter-Duff blend function can perform any of the thirteen blends above,
// when passed one of the following values for BlendOp:
@@ -104,21 +104,21 @@
// - DstATop: half4(0, 0, -1, 1)
// - Xor: half4(0, 0, -1, -1)
// - Plus: half4(1, 1, 0, 0)
-half4 blend_porter_duff(half4 blendOp, half4 src, half4 dst) {
+$pure half4 blend_porter_duff(half4 blendOp, half4 src, half4 dst) {
half2 coeff = blendOp.xy + (blendOp.zw * (half2(dst.a, src.a) + min(blendOp.zw, 0)));
return min(half4(1), src * coeff.x + dst * coeff.y);
}
-half4 blend_modulate(half4 src, half4 dst) { return src*dst; }
+$pure half4 blend_modulate(half4 src, half4 dst) { return src*dst; }
-half4 blend_screen(half4 src, half4 dst) { return src + (1 - src)*dst; }
+$pure half4 blend_screen(half4 src, half4 dst) { return src + (1 - src)*dst; }
-half $blend_overlay_component(half2 s, half2 d) {
+$pure half $blend_overlay_component(half2 s, half2 d) {
return (2*d.x <= d.y) ? 2*s.x*d.x
: s.y*d.y - 2*(d.y - d.x)*(s.y - s.x);
}
-half4 blend_overlay(half4 src, half4 dst) {
+$pure half4 blend_overlay(half4 src, half4 dst) {
half4 result = half4($blend_overlay_component(src.ra, dst.ra),
$blend_overlay_component(src.ga, dst.ga),
$blend_overlay_component(src.ba, dst.ba),
@@ -127,24 +127,24 @@
return result;
}
-half4 blend_overlay(half flip, half4 a, half4 b) {
+$pure half4 blend_overlay(half flip, half4 a, half4 b) {
return blend_overlay(bool(flip) ? b : a, bool(flip) ? a : b);
}
-half4 blend_lighten(half4 src, half4 dst) {
+$pure half4 blend_lighten(half4 src, half4 dst) {
half4 result = blend_src_over(src, dst);
result.rgb = max(result.rgb, (1 - dst.a)*src.rgb + dst.rgb);
return result;
}
-half4 blend_darken(half mode /* darken: 1, lighten: -1 */, half4 src, half4 dst) {
+$pure half4 blend_darken(half mode /* darken: 1, lighten: -1 */, half4 src, half4 dst) {
half4 a = blend_src_over(src, dst);
half3 b = (1 - dst.a) * src.rgb + dst.rgb; // DstOver.rgb
a.rgb = mode * min(a.rgb * mode, b.rgb * mode);
return a;
}
-half4 blend_darken(half4 src, half4 dst) {
+$pure half4 blend_darken(half4 src, half4 dst) {
return blend_darken(1, src, dst);
}
@@ -152,15 +152,15 @@
? 0.00000001
: 0.0;
-inline half $guarded_divide(half n, half d) {
+$pure inline half $guarded_divide(half n, half d) {
return n / (d + $kGuardedDivideEpsilon);
}
-inline half3 $guarded_divide(half3 n, half d) {
+$pure inline half3 $guarded_divide(half3 n, half d) {
return n / (d + $kGuardedDivideEpsilon);
}
-half $color_dodge_component(half2 s, half2 d) {
+$pure half $color_dodge_component(half2 s, half2 d) {
if (d.x == 0) {
return s.x*(1 - d.y);
} else {
@@ -174,14 +174,14 @@
}
}
-half4 blend_color_dodge(half4 src, half4 dst) {
+$pure half4 blend_color_dodge(half4 src, half4 dst) {
return half4($color_dodge_component(src.ra, dst.ra),
$color_dodge_component(src.ga, dst.ga),
$color_dodge_component(src.ba, dst.ba),
src.a + (1 - src.a)*dst.a);
}
-half $color_burn_component(half2 s, half2 d) {
+$pure half $color_burn_component(half2 s, half2 d) {
if (d.y == d.x) {
return s.y*d.y + s.x*(1 - d.y) + d.x*(1 - s.y);
} else if (s.x == 0) {
@@ -192,18 +192,18 @@
}
}
-half4 blend_color_burn(half4 src, half4 dst) {
+$pure half4 blend_color_burn(half4 src, half4 dst) {
return half4($color_burn_component(src.ra, dst.ra),
$color_burn_component(src.ga, dst.ga),
$color_burn_component(src.ba, dst.ba),
src.a + (1 - src.a)*dst.a);
}
-half4 blend_hard_light(half4 src, half4 dst) {
+$pure half4 blend_hard_light(half4 src, half4 dst) {
return blend_overlay(dst, src);
}
-half $soft_light_component(half2 s, half2 d) {
+$pure half $soft_light_component(half2 s, half2 d) {
if (2*s.x <= s.y) {
return $guarded_divide(d.x*d.x*(s.y - 2*s.x), d.y) + (1 - d.y)*s.x + d.x*(-s.y + 2*s.x + 1);
} else if (4.0 * d.x <= d.y) {
@@ -218,30 +218,30 @@
}
}
-half4 blend_soft_light(half4 src, half4 dst) {
+$pure half4 blend_soft_light(half4 src, half4 dst) {
return (dst.a == 0) ? src : half4($soft_light_component(src.ra, dst.ra),
$soft_light_component(src.ga, dst.ga),
$soft_light_component(src.ba, dst.ba),
src.a + (1 - src.a)*dst.a);
}
-half4 blend_difference(half4 src, half4 dst) {
+$pure half4 blend_difference(half4 src, half4 dst) {
return half4(src.rgb + dst.rgb - 2*min(src.rgb*dst.a, dst.rgb*src.a),
src.a + (1 - src.a)*dst.a);
}
-half4 blend_exclusion(half4 src, half4 dst) {
+$pure half4 blend_exclusion(half4 src, half4 dst) {
return half4(dst.rgb + src.rgb - 2*dst.rgb*src.rgb, src.a + (1 - src.a)*dst.a);
}
-half4 blend_multiply(half4 src, half4 dst) {
+$pure half4 blend_multiply(half4 src, half4 dst) {
return half4((1 - src.a)*dst.rgb + (1 - dst.a)*src.rgb + src.rgb*dst.rgb,
src.a + (1 - src.a)*dst.a);
}
-half $blend_color_luminance(half3 color) { return dot(half3(0.3, 0.59, 0.11), color); }
+$pure half $blend_color_luminance(half3 color) { return dot(half3(0.3, 0.59, 0.11), color); }
-half3 $blend_set_color_luminance(half3 hueSatColor, half alpha, half3 lumColor) {
+$pure half3 $blend_set_color_luminance(half3 hueSatColor, half alpha, half3 lumColor) {
half lum = $blend_color_luminance(lumColor);
half3 result = lum - $blend_color_luminance(hueSatColor) + hueSatColor;
half minComp = min(min(result.r, result.g), result.b);
@@ -255,11 +255,11 @@
return result;
}
-half $blend_color_saturation(half3 color) {
+$pure half $blend_color_saturation(half3 color) {
return max(max(color.r, color.g), color.b) - min(min(color.r, color.g), color.b);
}
-half3 $blend_set_color_saturation(half3 color, half3 satColor) {
+$pure half3 $blend_set_color_saturation(half3 color, half3 satColor) {
half mn = min(min(color.r, color.g), color.b);
half mx = max(max(color.r, color.g), color.b);
@@ -267,7 +267,7 @@
: half3(0);
}
-half4 blend_hslc(half2 flipSat, half4 src, half4 dst) {
+$pure half4 blend_hslc(half2 flipSat, half4 src, half4 dst) {
half alpha = dst.a * src.a;
half3 sda = src.rgb * dst.a;
half3 dsa = dst.rgb * src.a;
@@ -281,30 +281,30 @@
src.a + dst.a - alpha);
}
-half4 blend_hue(half4 src, half4 dst) {
+$pure half4 blend_hue(half4 src, half4 dst) {
return blend_hslc(half2(0, 1), src, dst);
}
-half4 blend_saturation(half4 src, half4 dst) {
+$pure half4 blend_saturation(half4 src, half4 dst) {
return blend_hslc(half2(1), src, dst);
}
-half4 blend_color(half4 src, half4 dst) {
+$pure half4 blend_color(half4 src, half4 dst) {
return blend_hslc(half2(0), src, dst);
}
-half4 blend_luminosity(half4 src, half4 dst) {
+$pure half4 blend_luminosity(half4 src, half4 dst) {
return blend_hslc(half2(1, 0), src, dst);
}
-float2 proj(float3 p) { return p.xy / p.z; }
+$pure float2 proj(float3 p) { return p.xy / p.z; }
// Implement cross() as a determinant to communicate our intent more clearly to the compiler.
// NOTE: Due to precision issues, it might be the case that cross(a, a) != 0.
-float cross_length_2d(float2 a, float2 b) {
+$pure float cross_length_2d(float2 a, float2 b) {
return determinant(float2x2(a, b));
}
-half cross_length_2d(half2 a, half2 b) {
+$pure half cross_length_2d(half2 a, half2 b) {
return determinant(half2x2(a, b));
}
diff --git a/src/sksl/sksl_graphite_frag.sksl b/src/sksl/sksl_graphite_frag.sksl
index aba7678..4a89ebe 100644
--- a/src/sksl/sksl_graphite_frag.sksl
+++ b/src/sksl/sksl_graphite_frag.sksl
@@ -8,26 +8,26 @@
const int $kFilterModeNearest = 0;
const int $kFilterModeLinear = 1;
-half4 sk_error() {
+$pure half4 sk_error() {
return half4(1.0, 0.0, 1.0, 1.0);
}
-half4 sk_passthrough(half4 color) {
+$pure half4 sk_passthrough(half4 color) {
return color;
}
-half4 sk_solid_shader(float4 colorParam) {
+$pure half4 sk_solid_shader(float4 colorParam) {
return half4(colorParam);
}
// The localMatrix is passed to the child by the glue code. This snippet just needs to bubble the
// child's output back up. Local coordinates are passed in from the default glue code and can
// just be ignored here.
-half4 sk_local_matrix_shader(float4, float4x4, half4 childResult) {
+$pure half4 sk_local_matrix_shader(float4, float4x4, half4 childResult) {
return childResult;
}
-float $tile(int tileMode, float f, float low, float high) {
+$pure float $tile(int tileMode, float f, float low, float high) {
switch (tileMode) {
case $kTileModeClamp:
return clamp(f, low, high);
@@ -48,15 +48,15 @@
}
}
-half4 sk_image_shader(float4 coords,
- float4x4 preLocal,
- float4 subset,
- int tileModeX,
- int tileModeY,
- int filterMode,
- int imgWidth,
- int imgHeight,
- sampler2D s) {
+$pure half4 sk_image_shader(float4 coords,
+ float4x4 preLocal,
+ float4 subset,
+ int tileModeX,
+ int tileModeY,
+ int filterMode,
+ int imgWidth,
+ int imgHeight,
+ sampler2D s) {
float2 pos = (preLocal * coords).xy;
// Do hard-edge shader transitions to the border color for nearest-neighbor decal tiling at the
@@ -105,7 +105,7 @@
return color;
}
-float2 $tile_grad(int tileMode, float2 t) {
+$pure float2 $tile_grad(int tileMode, float2 t) {
switch (tileMode) {
case $kTileModeClamp:
t.x = clamp(t.x, 0, 1);
@@ -138,7 +138,7 @@
return t;
}
-half4 $colorize_grad_4(float4 colorsParam[4], float offsetsParam[4], float2 t) {
+$pure half4 $colorize_grad_4(float4 colorsParam[4], float offsetsParam[4], float2 t) {
if (t.y < 0) {
return half4(0);
@@ -158,7 +158,7 @@
}
}
-half4 $colorize_grad_8(float4 colorsParam[8], float offsetsParam[8], float2 t) {
+$pure half4 $colorize_grad_8(float4 colorsParam[8], float offsetsParam[8], float2 t) {
if (t.y < 0) {
return half4(0);
@@ -211,19 +211,19 @@
}
}
-float2 $linear_grad_layout(float2 point0Param, float2 point1Param, float2 pos) {
+$pure float2 $linear_grad_layout(float2 point0Param, float2 point1Param, float2 pos) {
pos -= point0Param;
float2 delta = point1Param - point0Param;
float t = dot(pos, delta) / dot(delta, delta);
return float2(t, 1);
}
-float2 $radial_grad_layout(float2 centerParam, float radiusParam, float2 pos) {
+$pure float2 $radial_grad_layout(float2 centerParam, float radiusParam, float2 pos) {
float t = distance(pos, centerParam) / radiusParam;
return float2(t, 1);
}
-float2 $sweep_grad_layout(float2 centerParam, float biasParam, float scaleParam, float2 pos) {
+$pure float2 $sweep_grad_layout(float2 centerParam, float biasParam, float scaleParam, float2 pos) {
pos -= centerParam;
// Some devices incorrectly implement atan2(y,x) as atan(y/x). In actuality it is
@@ -239,7 +239,7 @@
return float2(t, 1);
}
-float3x3 $map_to_unit_x(float2 p0, float2 p1) {
+$pure float3x3 $map_to_unit_x(float2 p0, float2 p1) {
// Returns a matrix that maps [p0, p1] to [(0, 0), (1, 0)]. Results are undefined if p0 = p1.
// From skia/src/core/SkMatrix.cpp, SkMatrix::setPolyToPoly.
return float3x3(
@@ -253,11 +253,11 @@
));
}
-float2 $conical_grad_layout(float2 point0Param,
- float2 point1Param,
- float radius0Param,
- float radius1Param,
- float2 pos) {
+$pure float2 $conical_grad_layout(float2 point0Param,
+ float2 point1Param,
+ float radius0Param,
+ float radius1Param,
+ float2 pos) {
const float SK_ScalarNearlyZero = 1.0 / (1 << 12);
float dCenter = distance(point0Param, point1Param);
float dRadius = radius1Param - radius0Param;
@@ -366,120 +366,117 @@
}
}
-half4 sk_linear_grad_4_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[4],
- float offsetsParam[4],
- float2 point0Param,
- float2 point1Param,
- int tileMode) {
+$pure half4 sk_linear_grad_4_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[4],
+ float offsetsParam[4],
+ float2 point0Param,
+ float2 point1Param,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $linear_grad_layout(point0Param, point1Param, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_4(colorsParam, offsetsParam, t);
}
-half4 sk_linear_grad_8_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[8],
- float offsetsParam[8],
- float2 point0Param,
- float2 point1Param,
- int tileMode) {
+$pure half4 sk_linear_grad_8_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[8],
+ float offsetsParam[8],
+ float2 point0Param,
+ float2 point1Param,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $linear_grad_layout(point0Param, point1Param, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_8(colorsParam, offsetsParam, t);
}
-half4 sk_radial_grad_4_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[4],
- float offsetsParam[4],
- float2 centerParam,
- float radiusParam,
- int tileMode) {
+$pure half4 sk_radial_grad_4_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[4],
+ float offsetsParam[4],
+ float2 centerParam,
+ float radiusParam,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $radial_grad_layout(centerParam, radiusParam, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_4(colorsParam, offsetsParam, t);
}
-half4 sk_radial_grad_8_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[8],
- float offsetsParam[8],
- float2 centerParam,
- float radiusParam,
- int tileMode) {
+$pure half4 sk_radial_grad_8_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[8],
+ float offsetsParam[8],
+ float2 centerParam,
+ float radiusParam,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $radial_grad_layout(centerParam, radiusParam, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_8(colorsParam, offsetsParam, t);
}
-half4 sk_sweep_grad_4_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[4],
- float offsetsParam[4],
- float2 centerParam,
- float biasParam,
- float scaleParam,
- int tileMode) {
+$pure half4 sk_sweep_grad_4_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[4],
+ float offsetsParam[4],
+ float2 centerParam,
+ float biasParam,
+ float scaleParam,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $sweep_grad_layout(centerParam, biasParam, scaleParam, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_4(colorsParam, offsetsParam, t);
}
-half4 sk_sweep_grad_8_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[8],
- float offsetsParam[8],
- float2 centerParam,
- float biasParam,
- float scaleParam,
- int tileMode) {
+$pure half4 sk_sweep_grad_8_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[8],
+ float offsetsParam[8],
+ float2 centerParam,
+ float biasParam,
+ float scaleParam,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $sweep_grad_layout(centerParam, biasParam, scaleParam, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_8(colorsParam, offsetsParam, t);
}
-half4 sk_conical_grad_4_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[4],
- float offsetsParam[4],
- float2 point0Param,
- float2 point1Param,
- float radius0Param,
- float radius1Param,
- int tileMode) {
+$pure half4 sk_conical_grad_4_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[4],
+ float offsetsParam[4],
+ float2 point0Param,
+ float2 point1Param,
+ float radius0Param,
+ float radius1Param,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $conical_grad_layout(point0Param, point1Param, radius0Param, radius1Param, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_4(colorsParam, offsetsParam, t);
}
-half4 sk_conical_grad_8_shader(float4 coords,
- float4x4 preLocal,
- float4 colorsParam[8],
- float offsetsParam[8],
- float2 point0Param,
- float2 point1Param,
- float radius0Param,
- float radius1Param,
- int tileMode) {
+$pure half4 sk_conical_grad_8_shader(float4 coords,
+ float4x4 preLocal,
+ float4 colorsParam[8],
+ float offsetsParam[8],
+ float2 point0Param,
+ float2 point1Param,
+ float radius0Param,
+ float radius1Param,
+ int tileMode) {
float2 pos = (preLocal * coords).xy;
float2 t = $conical_grad_layout(point0Param, point1Param, radius0Param, radius1Param, pos);
t = $tile_grad(tileMode, t);
return $colorize_grad_8(colorsParam, offsetsParam, t);
}
-half4 sk_matrix_colorfilter(half4 colorIn,
- float4x4 m,
- float4 v,
- int inHSLA) {
+$pure half4 sk_matrix_colorfilter(half4 colorIn, float4x4 m, float4 v, int inHSLA) {
if (bool(inHSLA)) {
colorIn = $rgb_to_hsl(colorIn.rgb, colorIn.a); // includes unpremul
} else {
@@ -498,7 +495,7 @@
return colorOut;
}
-half4 sk_blend(int blendMode, half4 src, half4 dst) {
+$pure half4 sk_blend(int blendMode, half4 src, half4 dst) {
const int kClear = 0;
const int kSrc = 1;
const int kDst = 2;
@@ -563,15 +560,15 @@
}
}
-half4 sk_blend_shader(int blendMode, half4 src, half4 dst) {
+$pure half4 sk_blend_shader(int blendMode, half4 src, half4 dst) {
return sk_blend(blendMode, src, dst);
}
-half4 sk_blend_colorfilter(half4 dstColor, int blendMode, float4 srcColor) {
+$pure half4 sk_blend_colorfilter(half4 dstColor, int blendMode, float4 srcColor) {
return sk_blend(blendMode, half4(srcColor), dstColor);
}
-half4 sk_table_colorfilter(half4 inColor, sampler2D s) {
+$pure half4 sk_table_colorfilter(half4 inColor, sampler2D s) {
half4 coords = unpremul(inColor) * 255.0/256.0 + 0.5/256.0;
half4 color = half4(sample(s, half2(coords.r, 3.0/8.0)).r,
sample(s, half2(coords.g, 5.0/8.0)).r,
@@ -580,7 +577,7 @@
return color * sample(s, half2(coords.a, 1.0/8.0)).r;
}
-half4 sk_gaussian_colorfilter(half4 inColor) {
+$pure half4 sk_gaussian_colorfilter(half4 inColor) {
half factor = 1 - inColor.a;
factor = exp(-factor * factor * 4) - 0.018;
return half4(factor);
diff --git a/src/sksl/sksl_graphite_vert.sksl b/src/sksl/sksl_graphite_vert.sksl
index d8470cc..14d76c3 100644
--- a/src/sksl/sksl_graphite_vert.sksl
+++ b/src/sksl/sksl_graphite_vert.sksl
@@ -20,26 +20,26 @@
($kPrecision * $kPrecision);
// Returns the length squared of the largest forward difference from Wang's cubic formula.
-float wangs_formula_max_fdiff_p2(float2 p0, float2 p1, float2 p2, float2 p3,
- float2x2 matrix) {
+$pure float wangs_formula_max_fdiff_p2(float2 p0, float2 p1, float2 p2, float2 p3,
+ float2x2 matrix) {
float2 d0 = matrix * (fma(float2(-2), p1, p2) + p0);
float2 d1 = matrix * (fma(float2(-2), p2, p3) + p1);
return max(dot(d0,d0), dot(d1,d1));
}
-float wangs_formula_cubic(float2 p0, float2 p1, float2 p2, float2 p3,
- float2x2 matrix) {
+$pure float wangs_formula_cubic(float2 p0, float2 p1, float2 p2, float2 p3,
+ float2x2 matrix) {
float m = wangs_formula_max_fdiff_p2(p0, p1, p2, p3, matrix);
return max(ceil(sqrt($kLengthTerm * sqrt(m))), 1.0);
}
-float wangs_formula_cubic_log2(float2 p0, float2 p1, float2 p2, float2 p3,
- float2x2 matrix) {
+$pure float wangs_formula_cubic_log2(float2 p0, float2 p1, float2 p2, float2 p3,
+ float2x2 matrix) {
float m = wangs_formula_max_fdiff_p2(p0, p1, p2, p3, matrix);
return ceil(log2(max($kLengthTermPow2 * m, 1.0)) * .25);
}
-float wangs_formula_conic_p2(float2 p0, float2 p1, float2 p2, float w) {
+$pure float wangs_formula_conic_p2(float2 p0, float2 p1, float2 p2, float w) {
// Translate the bounding box center to the origin.
float2 C = (min(min(p0, p1), p2) + max(max(p0, p1), p2)) * 0.5;
p0 -= C;
@@ -62,19 +62,19 @@
return numer/denom;
}
-float wangs_formula_conic(float2 p0, float2 p1, float2 p2, float w) {
+$pure float wangs_formula_conic(float2 p0, float2 p1, float2 p2, float w) {
float n2 = wangs_formula_conic_p2(p0, p1, p2, w);
return max(ceil(sqrt(n2)), 1.0);
}
-float wangs_formula_conic_log2(float2 p0, float2 p1, float2 p2, float w) {
+$pure float wangs_formula_conic_log2(float2 p0, float2 p1, float2 p2, float w) {
float n2 = wangs_formula_conic_p2(p0, p1, p2, w);
return ceil(log2(max(n2, 1.0)) * .5);
}
// Returns the normalized difference between a and b, i.e. normalize(a - b), with care taken for
// if 'a' and/or 'b' have large coordinates.
-float2 robust_normalize_diff(float2 a, float2 b) {
+$pure float2 robust_normalize_diff(float2 a, float2 b) {
float2 diff = a - b;
if (diff == float2(0.0)) {
return float2(0.0);
@@ -86,7 +86,7 @@
// Returns the cosine of the angle between a and b, assuming a and b are unit vectors already.
// Guaranteed to be between [-1, 1].
-float cosine_between_unit_vectors(float2 a, float2 b) {
+$pure float cosine_between_unit_vectors(float2 a, float2 b) {
// Since a and b are assumed to be normalized, the cosine is equal to the dot product, although
// we clamp that to ensure it falls within the expected range of [-1, 1].
return clamp(dot(a, b), -1.0, 1.0);
@@ -94,35 +94,35 @@
// Extends the middle radius to either the miter point, or the bevel edge if we surpassed the
// miter limit and need to revert to a bevel join.
-float miter_extent(float cosTheta, float miterLimit) {
+$pure float miter_extent(float cosTheta, float miterLimit) {
float x = fma(cosTheta, .5, .5);
return (x * miterLimit * miterLimit >= 1.0) ? inversesqrt(x) : sqrt(x);
}
// Returns the number of radial segments required for each radian of rotation, in order for the
// curve to appear "smooth" as defined by the approximate device-space stroke radius.
-float num_radial_segments_per_radian(float approxDevStrokeRadius) {
+$pure float num_radial_segments_per_radian(float approxDevStrokeRadius) {
return .5 / acos(max(1.0 - (1.0 / $kPrecision) / approxDevStrokeRadius, -1.0));
}
// Unlike mix(), this does not return b when t==1. But it otherwise seems to get better
// precision than "a*(1 - t) + b*t" for things like chopping cubics on exact cusp points.
// We override this result anyway when t==1 so it shouldn't be a problem.
-float unchecked_mix(float a, float b, float T) {
+$pure float unchecked_mix(float a, float b, float T) {
return fma(b - a, T, a);
}
-float2 unchecked_mix(float2 a, float2 b, float T) {
+$pure float2 unchecked_mix(float2 a, float2 b, float T) {
return fma(b - a, float2(T), a);
}
-float4 unchecked_mix(float4 a, float4 b, float4 T) {
+$pure float4 unchecked_mix(float4 a, float4 b, float4 T) {
return fma(b - a, T, a);
}
// Compute a vertex position for the curve described by p01 and p23 packed control points,
// tessellated to the given resolve level, and assuming it will be drawn as a filled curve.
-float2 tessellate_filled_curve(float2x2 vectorXform,
- float resolveLevel, float idxInResolveLevel,
- float4 p01, float4 p23) {
+$pure float2 tessellate_filled_curve(float2x2 vectorXform,
+ float resolveLevel, float idxInResolveLevel,
+ float4 p01, float4 p23) {
float2 localcoord;
if (isinf(p23.z)) {
// This patch is an exact triangle.
@@ -182,13 +182,13 @@
}
// Device coords are in xy, local coords are in zw, since for now perspective isn't supported.
-float4 tessellate_stroked_curve(float edgeID, float maxEdges,
- float2x2 affineMatrix,
- float2 translate,
- float maxScale /* derived from affineMatrix */,
- float4 p01, float4 p23,
- float2 lastControlPoint,
- float2 strokeParams) {
+$pure float4 tessellate_stroked_curve(float edgeID, float maxEdges,
+ float2x2 affineMatrix,
+ float2 translate,
+ float maxScale /* derived from affineMatrix */,
+ float4 p01, float4 p23,
+ float2 lastControlPoint,
+ float2 strokeParams) {
float2 p0=p01.xy, p1=p01.zw, p2=p23.xy, p3=p23.zw;
float w = -1; // w<0 means the curve is an integral cubic.
if (isinf(p23.w)) {
diff --git a/src/sksl/sksl_public.sksl b/src/sksl/sksl_public.sksl
index 9225815..1168612 100644
--- a/src/sksl/sksl_public.sksl
+++ b/src/sksl/sksl_public.sksl
@@ -1,10 +1,10 @@
// SkSL intrinsics that are not part of GLSL
// Color space transformation, between the working (destination) space and fixed (known) spaces:
-half3 toLinearSrgb(half3 color);
-half3 fromLinearSrgb(half3 color);
+$pure half3 toLinearSrgb(half3 color);
+$pure half3 fromLinearSrgb(half3 color);
// SkSL intrinsics that reflect Skia's C++ object model:
-half4 $eval(float2 coords, shader s);
-half4 $eval(half4 color, colorFilter f);
-half4 $eval(half4 src, half4 dst, blender b);
+ half4 $eval(float2 coords, shader s);
+ half4 $eval(half4 color, colorFilter f);
+ half4 $eval(half4 src, half4 dst, blender b);
diff --git a/src/sksl/sksl_shared.sksl b/src/sksl/sksl_shared.sksl
index d0b62c0..08f1af6 100644
--- a/src/sksl/sksl_shared.sksl
+++ b/src/sksl/sksl_shared.sksl
@@ -3,237 +3,237 @@
// See "The OpenGL ES Shading Language, Section 8"
// 8.1 : Angle and Trigonometry Functions
-$genType radians($genType degrees);
-$genHType radians($genHType degrees);
-$genType degrees($genType radians);
-$genHType degrees($genHType radians);
+$pure $genType radians($genType degrees);
+$pure $genHType radians($genHType degrees);
+$pure $genType degrees($genType radians);
+$pure $genHType degrees($genHType radians);
-$genType sin($genType angle);
-$genHType sin($genHType angle);
-$genType cos($genType angle);
-$genHType cos($genHType angle);
-$genType tan($genType angle);
-$genHType tan($genHType angle);
+$pure $genType sin($genType angle);
+$pure $genHType sin($genHType angle);
+$pure $genType cos($genType angle);
+$pure $genHType cos($genHType angle);
+$pure $genType tan($genType angle);
+$pure $genHType tan($genHType angle);
-$genType asin($genType x);
-$genHType asin($genHType x);
-$genType acos($genType x);
-$genHType acos($genHType x);
-$genType atan($genType y, $genType x);
-$genHType atan($genHType y, $genHType x);
-$genType atan($genType y_over_x);
-$genHType atan($genHType y_over_x);
+$pure $genType asin($genType x);
+$pure $genHType asin($genHType x);
+$pure $genType acos($genType x);
+$pure $genHType acos($genHType x);
+$pure $genType atan($genType y, $genType x);
+$pure $genHType atan($genHType y, $genHType x);
+$pure $genType atan($genType y_over_x);
+$pure $genHType atan($genHType y_over_x);
// 8.1 : Angle and Trigonometry Functions (GLSL ES 3.0)
-$es3 $genType sinh($genType x);
-$es3 $genHType sinh($genHType x);
-$es3 $genType cosh($genType x);
-$es3 $genHType cosh($genHType x);
-$es3 $genType tanh($genType x);
-$es3 $genHType tanh($genHType x);
-$es3 $genType asinh($genType x);
-$es3 $genHType asinh($genHType x);
-$es3 $genType acosh($genType x);
-$es3 $genHType acosh($genHType x);
-$es3 $genType atanh($genType x);
-$es3 $genHType atanh($genHType x);
+$pure $es3 $genType sinh($genType x);
+$pure $es3 $genHType sinh($genHType x);
+$pure $es3 $genType cosh($genType x);
+$pure $es3 $genHType cosh($genHType x);
+$pure $es3 $genType tanh($genType x);
+$pure $es3 $genHType tanh($genHType x);
+$pure $es3 $genType asinh($genType x);
+$pure $es3 $genHType asinh($genHType x);
+$pure $es3 $genType acosh($genType x);
+$pure $es3 $genHType acosh($genHType x);
+$pure $es3 $genType atanh($genType x);
+$pure $es3 $genHType atanh($genHType x);
// 8.2 : Exponential Functions
-$genType pow($genType x, $genType y);
-$genHType pow($genHType x, $genHType y);
-$genType exp($genType x);
-$genHType exp($genHType x);
-$genType log($genType x);
-$genHType log($genHType x);
-$genType exp2($genType x);
-$genHType exp2($genHType x);
-$genType log2($genType x);
-$genHType log2($genHType x);
+$pure $genType pow($genType x, $genType y);
+$pure $genHType pow($genHType x, $genHType y);
+$pure $genType exp($genType x);
+$pure $genHType exp($genHType x);
+$pure $genType log($genType x);
+$pure $genHType log($genHType x);
+$pure $genType exp2($genType x);
+$pure $genHType exp2($genHType x);
+$pure $genType log2($genType x);
+$pure $genHType log2($genHType x);
-$genType sqrt($genType x);
-$genHType sqrt($genHType x);
-$genType inversesqrt($genType x);
-$genHType inversesqrt($genHType x);
+$pure $genType sqrt($genType x);
+$pure $genHType sqrt($genHType x);
+$pure $genType inversesqrt($genType x);
+$pure $genHType inversesqrt($genHType x);
// 8.3 : Common Functions
-$genType abs($genType x);
-$genHType abs($genHType x);
-$genType sign($genType x);
-$genHType sign($genHType x);
-$genType floor($genType x);
-$genHType floor($genHType x);
-$genType ceil($genType x);
-$genHType ceil($genHType x);
-$genType fract($genType x);
-$genHType fract($genHType x);
-$genType mod($genType x, float y);
-$genType mod($genType x, $genType y);
-$genHType mod($genHType x, half y);
-$genHType mod($genHType x, $genHType y);
+$pure $genType abs($genType x);
+$pure $genHType abs($genHType x);
+$pure $genType sign($genType x);
+$pure $genHType sign($genHType x);
+$pure $genType floor($genType x);
+$pure $genHType floor($genHType x);
+$pure $genType ceil($genType x);
+$pure $genHType ceil($genHType x);
+$pure $genType fract($genType x);
+$pure $genHType fract($genHType x);
+$pure $genType mod($genType x, float y);
+$pure $genType mod($genType x, $genType y);
+$pure $genHType mod($genHType x, half y);
+$pure $genHType mod($genHType x, $genHType y);
-$genType min($genType x, $genType y);
-$genType min($genType x, float y);
-$genHType min($genHType x, $genHType y);
-$genHType min($genHType x, half y);
-$genType max($genType x, $genType y);
-$genType max($genType x, float y);
-$genHType max($genHType x, $genHType y);
-$genHType max($genHType x, half y);
-$genType clamp($genType x, $genType minVal, $genType maxVal);
-$genType clamp($genType x, float minVal, float maxVal);
-$genHType clamp($genHType x, $genHType minVal, $genHType maxVal);
-$genHType clamp($genHType x, half minVal, half maxVal);
-$genType saturate($genType x); // SkSL extension
-$genHType saturate($genHType x); // SkSL extension
-$genType mix($genType x, $genType y, $genType a);
-$genType mix($genType x, $genType y, float a);
-$genHType mix($genHType x, $genHType y, $genHType a);
-$genHType mix($genHType x, $genHType y, half a);
-$genType step($genType edge, $genType x);
-$genType step(float edge, $genType x);
-$genHType step($genHType edge, $genHType x);
-$genHType step(half edge, $genHType x);
-$genType smoothstep($genType edge0, $genType edge1, $genType x);
-$genType smoothstep(float edge0, float edge1, $genType x);
-$genHType smoothstep($genHType edge0, $genHType edge1, $genHType x);
-$genHType smoothstep(half edge0, half edge1, $genHType x);
+$pure $genType min($genType x, $genType y);
+$pure $genType min($genType x, float y);
+$pure $genHType min($genHType x, $genHType y);
+$pure $genHType min($genHType x, half y);
+$pure $genType max($genType x, $genType y);
+$pure $genType max($genType x, float y);
+$pure $genHType max($genHType x, $genHType y);
+$pure $genHType max($genHType x, half y);
+$pure $genType clamp($genType x, $genType minVal, $genType maxVal);
+$pure $genType clamp($genType x, float minVal, float maxVal);
+$pure $genHType clamp($genHType x, $genHType minVal, $genHType maxVal);
+$pure $genHType clamp($genHType x, half minVal, half maxVal);
+$pure $genType saturate($genType x); // SkSL extension
+$pure $genHType saturate($genHType x); // SkSL extension
+$pure $genType mix($genType x, $genType y, $genType a);
+$pure $genType mix($genType x, $genType y, float a);
+$pure $genHType mix($genHType x, $genHType y, $genHType a);
+$pure $genHType mix($genHType x, $genHType y, half a);
+$pure $genType step($genType edge, $genType x);
+$pure $genType step(float edge, $genType x);
+$pure $genHType step($genHType edge, $genHType x);
+$pure $genHType step(half edge, $genHType x);
+$pure $genType smoothstep($genType edge0, $genType edge1, $genType x);
+$pure $genType smoothstep(float edge0, float edge1, $genType x);
+$pure $genHType smoothstep($genHType edge0, $genHType edge1, $genHType x);
+$pure $genHType smoothstep(half edge0, half edge1, $genHType x);
// 8.3 : Common Functions (GLSL ES 3.0)
-$es3 $genIType abs($genIType x);
-$es3 $genIType sign($genIType x);
-$es3 $genIType floatBitsToInt ($genType value);
-$es3 $genUType floatBitsToUint($genType value);
-$es3 $genType intBitsToFloat ($genIType value);
-$es3 $genType uintBitsToFloat($genUType value);
-$es3 $genType trunc($genType x);
-$es3 $genHType trunc($genHType x);
-$es3 $genType round($genType x);
-$es3 $genHType round($genHType x);
-$es3 $genType roundEven($genType x);
-$es3 $genHType roundEven($genHType x);
-$es3 $genIType min($genIType x, $genIType y);
-$es3 $genIType min($genIType x, int y);
-$es3 $genIType max($genIType x, $genIType y);
-$es3 $genIType max($genIType x, int y);
-$es3 $genIType clamp($genIType x, $genIType minVal, $genIType maxVal);
-$es3 $genIType clamp($genIType x, int minVal, int maxVal);
-$es3 $genUType clamp($genUType x, $genUType minVal, $genUType maxVal);
-$es3 $genUType clamp($genUType x, uint minVal, uint maxVal);
-$es3 $genType mix($genType x, $genType y, $genBType a);
-$es3 $genHType mix($genHType x, $genHType y, $genBType a);
+$pure $es3 $genIType abs($genIType x);
+$pure $es3 $genIType sign($genIType x);
+$pure $es3 $genIType floatBitsToInt ($genType value);
+$pure $es3 $genUType floatBitsToUint($genType value);
+$pure $es3 $genType intBitsToFloat ($genIType value);
+$pure $es3 $genType uintBitsToFloat($genUType value);
+$pure $es3 $genType trunc($genType x);
+$pure $es3 $genHType trunc($genHType x);
+$pure $es3 $genType round($genType x);
+$pure $es3 $genHType round($genHType x);
+$pure $es3 $genType roundEven($genType x);
+$pure $es3 $genHType roundEven($genHType x);
+$pure $es3 $genIType min($genIType x, $genIType y);
+$pure $es3 $genIType min($genIType x, int y);
+$pure $es3 $genIType max($genIType x, $genIType y);
+$pure $es3 $genIType max($genIType x, int y);
+$pure $es3 $genIType clamp($genIType x, $genIType minVal, $genIType maxVal);
+$pure $es3 $genIType clamp($genIType x, int minVal, int maxVal);
+$pure $es3 $genUType clamp($genUType x, $genUType minVal, $genUType maxVal);
+$pure $es3 $genUType clamp($genUType x, uint minVal, uint maxVal);
+$pure $es3 $genType mix($genType x, $genType y, $genBType a);
+$pure $es3 $genHType mix($genHType x, $genHType y, $genBType a);
// 8.3 : Common Functions (GLSL ES 3.0) -- cannot be used in constant-expressions
-$es3 $genBType isnan($genType x);
-$es3 $genBType isnan($genHType x);
-$es3 $genBType isinf($genType x);
-$es3 $genBType isinf($genHType x);
-$es3 $genType modf($genType x, out $genType i);
-$es3 $genHType modf($genHType x, out $genHType i);
+$pure $es3 $genBType isnan($genType x);
+$pure $es3 $genBType isnan($genHType x);
+$pure $es3 $genBType isinf($genType x);
+$pure $es3 $genBType isinf($genHType x);
+$pure $es3 $genType modf($genType x, out $genType i);
+$pure $es3 $genHType modf($genHType x, out $genHType i);
// 8.4 : Floating-Point Pack and Unpack Functions (GLSL ES 3.0)
-$es3 uint packUnorm2x16(float2 v);
-$es3 float2 unpackUnorm2x16(uint p);
+$pure $es3 uint packUnorm2x16(float2 v);
+$pure $es3 float2 unpackUnorm2x16(uint p);
// 8.5 : Geometric Functions
-float length($genType x);
-half length($genHType x);
-float distance($genType p0, $genType p1);
-half distance($genHType p0, $genHType p1);
-float dot($genType x, $genType y);
-half dot($genHType x, $genHType y);
-float3 cross(float3 x, float3 y);
-half3 cross(half3 x, half3 y);
-$genType normalize($genType x);
-$genHType normalize($genHType x);
-$genType faceforward($genType N, $genType I, $genType Nref);
-$genHType faceforward($genHType N, $genHType I, $genHType Nref);
-$genType reflect($genType I, $genType N);
-$genHType reflect($genHType I, $genHType N);
-$genType refract($genType I, $genType N, float eta);
-$genHType refract($genHType I, $genHType N, half eta);
+$pure float length($genType x);
+$pure half length($genHType x);
+$pure float distance($genType p0, $genType p1);
+$pure half distance($genHType p0, $genHType p1);
+$pure float dot($genType x, $genType y);
+$pure half dot($genHType x, $genHType y);
+$pure float3 cross(float3 x, float3 y);
+$pure half3 cross(half3 x, half3 y);
+$pure $genType normalize($genType x);
+$pure $genHType normalize($genHType x);
+$pure $genType faceforward($genType N, $genType I, $genType Nref);
+$pure $genHType faceforward($genHType N, $genHType I, $genHType Nref);
+$pure $genType reflect($genType I, $genType N);
+$pure $genHType reflect($genHType I, $genHType N);
+$pure $genType refract($genType I, $genType N, float eta);
+$pure $genHType refract($genHType I, $genHType N, half eta);
// 8.6 : Matrix Functions
-$squareMat matrixCompMult($squareMat x, $squareMat y);
-$squareHMat matrixCompMult($squareHMat x, $squareHMat y);
-$es3 $mat matrixCompMult($mat x, $mat y);
-$es3 $hmat matrixCompMult($hmat x, $hmat y);
+$pure $squareMat matrixCompMult($squareMat x, $squareMat y);
+$pure $squareHMat matrixCompMult($squareHMat x, $squareHMat y);
+$pure $es3 $mat matrixCompMult($mat x, $mat y);
+$pure $es3 $hmat matrixCompMult($hmat x, $hmat y);
// 8.6 : Matrix Functions (GLSL 1.4, poly-filled by SkSL as needed)
-$squareMat inverse($squareMat m);
-$squareHMat inverse($squareHMat m);
+$pure $squareMat inverse($squareMat m);
+$pure $squareHMat inverse($squareHMat m);
// 8.6 : Matrix Functions (GLSL ES 3.0)
-$es3 float determinant($squareMat m);
-$es3 half determinant($squareHMat m);
-$es3 $squareMat transpose($squareMat m);
-$es3 $squareHMat transpose($squareHMat m);
-$es3 float2x3 transpose(float3x2 m);
-$es3 half2x3 transpose(half3x2 m);
-$es3 float2x4 transpose(float4x2 m);
-$es3 half2x4 transpose(half4x2 m);
-$es3 float3x2 transpose(float2x3 m);
-$es3 half3x2 transpose(half2x3 m);
-$es3 float3x4 transpose(float4x3 m);
-$es3 half3x4 transpose(half4x3 m);
-$es3 float4x2 transpose(float2x4 m);
-$es3 half4x2 transpose(half2x4 m);
-$es3 float4x3 transpose(float3x4 m);
-$es3 half4x3 transpose(half3x4 m);
-$es3 $squareMat outerProduct($vec c, $vec r);
-$es3 $squareHMat outerProduct($hvec c, $hvec r);
-$es3 float2x3 outerProduct(float3 c, float2 r);
-$es3 half2x3 outerProduct(half3 c, half2 r);
-$es3 float3x2 outerProduct(float2 c, float3 r);
-$es3 half3x2 outerProduct(half2 c, half3 r);
-$es3 float2x4 outerProduct(float4 c, float2 r);
-$es3 half2x4 outerProduct(half4 c, half2 r);
-$es3 float4x2 outerProduct(float2 c, float4 r);
-$es3 half4x2 outerProduct(half2 c, half4 r);
-$es3 float3x4 outerProduct(float4 c, float3 r);
-$es3 half3x4 outerProduct(half4 c, half3 r);
-$es3 float4x3 outerProduct(float3 c, float4 r);
-$es3 half4x3 outerProduct(half3 c, half4 r);
+$pure $es3 float determinant($squareMat m);
+$pure $es3 half determinant($squareHMat m);
+$pure $es3 $squareMat transpose($squareMat m);
+$pure $es3 $squareHMat transpose($squareHMat m);
+$pure $es3 float2x3 transpose(float3x2 m);
+$pure $es3 half2x3 transpose(half3x2 m);
+$pure $es3 float2x4 transpose(float4x2 m);
+$pure $es3 half2x4 transpose(half4x2 m);
+$pure $es3 float3x2 transpose(float2x3 m);
+$pure $es3 half3x2 transpose(half2x3 m);
+$pure $es3 float3x4 transpose(float4x3 m);
+$pure $es3 half3x4 transpose(half4x3 m);
+$pure $es3 float4x2 transpose(float2x4 m);
+$pure $es3 half4x2 transpose(half2x4 m);
+$pure $es3 float4x3 transpose(float3x4 m);
+$pure $es3 half4x3 transpose(half3x4 m);
+$pure $es3 $squareMat outerProduct($vec c, $vec r);
+$pure $es3 $squareHMat outerProduct($hvec c, $hvec r);
+$pure $es3 float2x3 outerProduct(float3 c, float2 r);
+$pure $es3 half2x3 outerProduct(half3 c, half2 r);
+$pure $es3 float3x2 outerProduct(float2 c, float3 r);
+$pure $es3 half3x2 outerProduct(half2 c, half3 r);
+$pure $es3 float2x4 outerProduct(float4 c, float2 r);
+$pure $es3 half2x4 outerProduct(half4 c, half2 r);
+$pure $es3 float4x2 outerProduct(float2 c, float4 r);
+$pure $es3 half4x2 outerProduct(half2 c, half4 r);
+$pure $es3 float3x4 outerProduct(float4 c, float3 r);
+$pure $es3 half3x4 outerProduct(half4 c, half3 r);
+$pure $es3 float4x3 outerProduct(float3 c, float4 r);
+$pure $es3 half4x3 outerProduct(half3 c, half4 r);
// 8.7 : Vector Relational Functions
-$bvec lessThan($vec x, $vec y);
-$bvec lessThan($hvec x, $hvec y);
-$bvec lessThan($ivec x, $ivec y);
-$bvec lessThanEqual($vec x, $vec y);
-$bvec lessThanEqual($hvec x, $hvec y);
-$bvec lessThanEqual($ivec x, $ivec y);
-$bvec greaterThan($vec x, $vec y);
-$bvec greaterThan($hvec x, $hvec y);
-$bvec greaterThan($ivec x, $ivec y);
-$bvec greaterThanEqual($vec x, $vec y);
-$bvec greaterThanEqual($hvec x, $hvec y);
-$bvec greaterThanEqual($ivec x, $ivec y);
-$bvec equal($vec x, $vec y);
-$bvec equal($hvec x, $hvec y);
-$bvec equal($ivec x, $ivec y);
-$bvec equal($bvec x, $bvec y);
-$bvec notEqual($vec x, $vec y);
-$bvec notEqual($hvec x, $hvec y);
-$bvec notEqual($ivec x, $ivec y);
-$bvec notEqual($bvec x, $bvec y);
+$pure $bvec lessThan($vec x, $vec y);
+$pure $bvec lessThan($hvec x, $hvec y);
+$pure $bvec lessThan($ivec x, $ivec y);
+$pure $bvec lessThanEqual($vec x, $vec y);
+$pure $bvec lessThanEqual($hvec x, $hvec y);
+$pure $bvec lessThanEqual($ivec x, $ivec y);
+$pure $bvec greaterThan($vec x, $vec y);
+$pure $bvec greaterThan($hvec x, $hvec y);
+$pure $bvec greaterThan($ivec x, $ivec y);
+$pure $bvec greaterThanEqual($vec x, $vec y);
+$pure $bvec greaterThanEqual($hvec x, $hvec y);
+$pure $bvec greaterThanEqual($ivec x, $ivec y);
+$pure $bvec equal($vec x, $vec y);
+$pure $bvec equal($hvec x, $hvec y);
+$pure $bvec equal($ivec x, $ivec y);
+$pure $bvec equal($bvec x, $bvec y);
+$pure $bvec notEqual($vec x, $vec y);
+$pure $bvec notEqual($hvec x, $hvec y);
+$pure $bvec notEqual($ivec x, $ivec y);
+$pure $bvec notEqual($bvec x, $bvec y);
-bool any($bvec x);
-bool all($bvec x);
-$bvec not($bvec x);
+$pure bool any($bvec x);
+$pure bool all($bvec x);
+$pure $bvec not($bvec x);
// 8.9 : Fragment Processing Functions (GLSL ES 3.0)
-$es3 $genType dFdx($genType p);
-$es3 $genType dFdy($genType p);
-$es3 $genHType dFdx($genHType p);
-$es3 $genHType dFdy($genHType p);
-$es3 $genType fwidth($genType p);
-$es3 $genHType fwidth($genHType p);
+$pure $es3 $genType dFdx($genType p);
+$pure $es3 $genType dFdy($genType p);
+$pure $es3 $genHType dFdx($genHType p);
+$pure $es3 $genHType dFdy($genHType p);
+$pure $es3 $genType fwidth($genType p);
+$pure $es3 $genHType fwidth($genHType p);
// SkSL utility functions
// The max() guards against division by zero when the incoming color is transparent black
-half4 unpremul(half4 color) { return half4 (color.rgb / max(color.a, 0.0001), color.a); }
-float4 unpremul(float4 color) { return float4(color.rgb / max(color.a, 0.0001), color.a); }
+$pure half4 unpremul(half4 color) { return half4 (color.rgb / max(color.a, 0.0001), color.a); }
+$pure float4 unpremul(float4 color) { return float4(color.rgb / max(color.a, 0.0001), color.a); }
// Convert RGBA -> HSLA (including unpremul).
//
@@ -255,7 +255,7 @@
// [2] http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl
// [3] http://www.chilliant.com/rgb2hsv.html
-half4 $rgb_to_hsl(half3 c, half a) {
+$pure half4 $rgb_to_hsl(half3 c, half a) {
half4 p = (c.g < c.b) ? half4(c.bg, -1, 2/3.0)
: half4(c.gb, 0, -1/3.0);
half4 q = (c.r < p.x) ? half4(p.x, c.r, p.yw)
@@ -284,7 +284,7 @@
// [2] http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl
// [3] http://www.chilliant.com/rgb2hsv.html
-half3 $hsl_to_rgb(half3 hsl) {
+$pure half3 $hsl_to_rgb(half3 hsl) {
half C = (1 - abs(2 * hsl.z - 1)) * hsl.y;
half3 p = hsl.xxx + half3(0, 2/3.0, 1/3.0);
half3 q = saturate(abs(fract(p) * 6 - 3) - 1);
@@ -292,6 +292,6 @@
return (q - 0.5) * C + hsl.z;
}
-half4 $hsl_to_rgb(half3 hsl, half a) {
+$pure half4 $hsl_to_rgb(half3 hsl, half a) {
return saturate(half4($hsl_to_rgb(hsl) * a, a));
}
diff --git a/tests/sksl/errors/BadModifiers.glsl b/tests/sksl/errors/BadModifiers.glsl
index 4f228c6..ea00692 100644
--- a/tests/sksl/errors/BadModifiers.glsl
+++ b/tests/sksl/errors/BadModifiers.glsl
@@ -1,89 +1,83 @@
### Compilation failed:
-error: 1: 'sk_has_side_effects' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
- ^^^^^^^^^^^^^^^^^^^
error: 1: type 'void' does not support qualifier 'readonly writeonly'
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'const' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'in' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'out' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'uniform' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'flat' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'noperspective' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+error: 1: '$pure' is not permitted here
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: 'buffer' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 1: functions cannot be both 'inline' and 'noinline'
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
-error: 4: 'sk_has_side_effects' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: type 'float' does not support qualifier 'readonly writeonly'
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: 'uniform' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: 'flat' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: 'noperspective' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
-error: 4: 'sk_has_side_effects' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+error: 4: '$pure' is not permitted here
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: 'inline' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: 'noinline' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 4: 'buffer' is not permitted here
-void func2(const in out uniform flat noperspective sk_has_side_effects
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
-error: 7: 'sk_has_side_effects' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
- ^^^^^^^^^^^^^^^^^^^
+void func2(const in out uniform flat noperspective $pure
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: type 'float' does not support qualifier 'readonly writeonly'
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: 'in uniform' variables not permitted
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: 'uniform buffer' variables not permitted
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+error: 7: '$pure' is not permitted here
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: 'inline' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: 'noinline' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: 'buffer' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 7: 'const' variables must be initialized
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
-error: 10: 'sk_has_side_effects' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
- ^^^^^^^^^^^^^^^^^^^
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 11: 'in uniform' variables not permitted
buffer MyInterfaceBlock { float var; };
^^^^^^^^^^^^^^^^
@@ -93,13 +87,16 @@
error: 11: 'uniform buffer' variables not permitted
buffer MyInterfaceBlock { float var; };
^^^^^^^^^^^^^^^^
+error: 10: '$pure' is not permitted here
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 10: 'inline' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 10: 'noinline' is not permitted here
-const in out uniform flat noperspective sk_has_side_effects inline noinline readonly writeonly
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
+const in out uniform flat noperspective $pure inline noinline readonly writeonly
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
error: 11: 'const' variables must be initialized
buffer MyInterfaceBlock { float var; };
^^^^^^^^^^^^^^^^
-34 errors
+33 errors
diff --git a/tests/sksl/runtime_errors/IllegalModifiers.skvm b/tests/sksl/runtime_errors/IllegalModifiers.skvm
index c263181..b86e7b3 100644
--- a/tests/sksl/runtime_errors/IllegalModifiers.skvm
+++ b/tests/sksl/runtime_errors/IllegalModifiers.skvm
@@ -18,9 +18,9 @@
error: 6: '$es3' is not permitted here
$es3 float _es3;
^^^^
-error: 7: 'sk_has_side_effects' is not permitted here
-sk_has_side_effects float _sk_has_side_effects;
-^^^^^^^^^^^^^^^^^^^
+error: 7: '$pure' is not permitted here
+$pure float _pure;
+^^^^^
error: 8: 'inline' is not permitted here
inline float _inline;
^^^^^^
@@ -51,9 +51,9 @@
error: 18: '$es3' is not permitted here
$es3 void es3_fn() {}
^^^^
-error: 19: 'sk_has_side_effects' is not permitted here
-sk_has_side_effects void sk_has_side_effect_fn() {}
-^^^^^^^^^^^^^^^^^^^
+error: 19: '$pure' is not permitted here
+$pure void sk_pure_fn() {}
+^^^^^
error: 20: type 'void' does not support qualifier 'readonly'
readonly void readonly_fn() {}
^^^^^^^^