1617a3babSopenharmony_cihlsl.structbuffer.fn.frag 2617a3babSopenharmony_ciShader version: 500 3617a3babSopenharmony_cigl_FragCoord origin is upper left 4617a3babSopenharmony_ci0:? Sequence 5617a3babSopenharmony_ci0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 6617a3babSopenharmony_ci0:5 Function Parameters: 7617a3babSopenharmony_ci0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 8617a3babSopenharmony_ci0:5 'bufferOffset' ( in uint) 9617a3babSopenharmony_ci0:? Sequence 10617a3babSopenharmony_ci0:6 Branch: Return with expression 11617a3babSopenharmony_ci0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) 12617a3babSopenharmony_ci0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 13617a3babSopenharmony_ci0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 14617a3babSopenharmony_ci0:6 Constant: 15617a3babSopenharmony_ci0:6 0 (const uint) 16617a3babSopenharmony_ci0:6 'bufferOffset' ( in uint) 17617a3babSopenharmony_ci0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) 18617a3babSopenharmony_ci0:10 Function Parameters: 19617a3babSopenharmony_ci0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 20617a3babSopenharmony_ci0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) 21617a3babSopenharmony_ci0:10 'bufferOffset' ( in uint) 22617a3babSopenharmony_ci0:10 'data' ( in 4-component vector of uint) 23617a3babSopenharmony_ci0:? Sequence 24617a3babSopenharmony_ci0:11 move second child to first child ( temp 4-component vector of uint) 25617a3babSopenharmony_ci0:11 indirect index ( buffer 4-component vector of uint) 26617a3babSopenharmony_ci0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) 27617a3babSopenharmony_ci0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 28617a3babSopenharmony_ci0:11 Constant: 29617a3babSopenharmony_ci0:11 0 (const uint) 30617a3babSopenharmony_ci0:11 'bufferOffset' ( in uint) 31617a3babSopenharmony_ci0:11 'data' ( in 4-component vector of uint) 32617a3babSopenharmony_ci0:20 Function Definition: @main(u1; ( temp 4-component vector of float) 33617a3babSopenharmony_ci0:20 Function Parameters: 34617a3babSopenharmony_ci0:20 'pos' ( in uint) 35617a3babSopenharmony_ci0:? Sequence 36617a3babSopenharmony_ci0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) 37617a3babSopenharmony_ci0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 38617a3babSopenharmony_ci0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) 39617a3babSopenharmony_ci0:21 Constant: 40617a3babSopenharmony_ci0:21 2 (const uint) 41617a3babSopenharmony_ci0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 42617a3babSopenharmony_ci0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 43617a3babSopenharmony_ci0:21 Constant: 44617a3babSopenharmony_ci0:21 3 (const uint) 45617a3babSopenharmony_ci0:23 Branch: Return with expression 46617a3babSopenharmony_ci0:23 Constant: 47617a3babSopenharmony_ci0:23 0.000000 48617a3babSopenharmony_ci0:23 0.000000 49617a3babSopenharmony_ci0:23 0.000000 50617a3babSopenharmony_ci0:23 0.000000 51617a3babSopenharmony_ci0:20 Function Definition: main( ( temp void) 52617a3babSopenharmony_ci0:20 Function Parameters: 53617a3babSopenharmony_ci0:? Sequence 54617a3babSopenharmony_ci0:20 move second child to first child ( temp uint) 55617a3babSopenharmony_ci0:? 'pos' ( temp uint) 56617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 57617a3babSopenharmony_ci0:20 move second child to first child ( temp 4-component vector of float) 58617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 59617a3babSopenharmony_ci0:20 Function Call: @main(u1; ( temp 4-component vector of float) 60617a3babSopenharmony_ci0:? 'pos' ( temp uint) 61617a3babSopenharmony_ci0:? Linker Objects 62617a3babSopenharmony_ci0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 63617a3babSopenharmony_ci0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 64617a3babSopenharmony_ci0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 65617a3babSopenharmony_ci0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) 66617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 67617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 68617a3babSopenharmony_ci 69617a3babSopenharmony_ci 70617a3babSopenharmony_ciLinked fragment stage: 71617a3babSopenharmony_ci 72617a3babSopenharmony_ci 73617a3babSopenharmony_ciShader version: 500 74617a3babSopenharmony_cigl_FragCoord origin is upper left 75617a3babSopenharmony_ci0:? Sequence 76617a3babSopenharmony_ci0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 77617a3babSopenharmony_ci0:5 Function Parameters: 78617a3babSopenharmony_ci0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 79617a3babSopenharmony_ci0:5 'bufferOffset' ( in uint) 80617a3babSopenharmony_ci0:? Sequence 81617a3babSopenharmony_ci0:6 Branch: Return with expression 82617a3babSopenharmony_ci0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) 83617a3babSopenharmony_ci0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 84617a3babSopenharmony_ci0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 85617a3babSopenharmony_ci0:6 Constant: 86617a3babSopenharmony_ci0:6 0 (const uint) 87617a3babSopenharmony_ci0:6 'bufferOffset' ( in uint) 88617a3babSopenharmony_ci0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) 89617a3babSopenharmony_ci0:10 Function Parameters: 90617a3babSopenharmony_ci0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 91617a3babSopenharmony_ci0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) 92617a3babSopenharmony_ci0:10 'bufferOffset' ( in uint) 93617a3babSopenharmony_ci0:10 'data' ( in 4-component vector of uint) 94617a3babSopenharmony_ci0:? Sequence 95617a3babSopenharmony_ci0:11 move second child to first child ( temp 4-component vector of uint) 96617a3babSopenharmony_ci0:11 indirect index ( buffer 4-component vector of uint) 97617a3babSopenharmony_ci0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) 98617a3babSopenharmony_ci0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 99617a3babSopenharmony_ci0:11 Constant: 100617a3babSopenharmony_ci0:11 0 (const uint) 101617a3babSopenharmony_ci0:11 'bufferOffset' ( in uint) 102617a3babSopenharmony_ci0:11 'data' ( in 4-component vector of uint) 103617a3babSopenharmony_ci0:20 Function Definition: @main(u1; ( temp 4-component vector of float) 104617a3babSopenharmony_ci0:20 Function Parameters: 105617a3babSopenharmony_ci0:20 'pos' ( in uint) 106617a3babSopenharmony_ci0:? Sequence 107617a3babSopenharmony_ci0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) 108617a3babSopenharmony_ci0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 109617a3babSopenharmony_ci0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) 110617a3babSopenharmony_ci0:21 Constant: 111617a3babSopenharmony_ci0:21 2 (const uint) 112617a3babSopenharmony_ci0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 113617a3babSopenharmony_ci0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 114617a3babSopenharmony_ci0:21 Constant: 115617a3babSopenharmony_ci0:21 3 (const uint) 116617a3babSopenharmony_ci0:23 Branch: Return with expression 117617a3babSopenharmony_ci0:23 Constant: 118617a3babSopenharmony_ci0:23 0.000000 119617a3babSopenharmony_ci0:23 0.000000 120617a3babSopenharmony_ci0:23 0.000000 121617a3babSopenharmony_ci0:23 0.000000 122617a3babSopenharmony_ci0:20 Function Definition: main( ( temp void) 123617a3babSopenharmony_ci0:20 Function Parameters: 124617a3babSopenharmony_ci0:? Sequence 125617a3babSopenharmony_ci0:20 move second child to first child ( temp uint) 126617a3babSopenharmony_ci0:? 'pos' ( temp uint) 127617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 128617a3babSopenharmony_ci0:20 move second child to first child ( temp 4-component vector of float) 129617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 130617a3babSopenharmony_ci0:20 Function Call: @main(u1; ( temp 4-component vector of float) 131617a3babSopenharmony_ci0:? 'pos' ( temp uint) 132617a3babSopenharmony_ci0:? Linker Objects 133617a3babSopenharmony_ci0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 134617a3babSopenharmony_ci0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 135617a3babSopenharmony_ci0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 136617a3babSopenharmony_ci0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) 137617a3babSopenharmony_ci0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 138617a3babSopenharmony_ci0:? 'pos' (layout( location=0) flat in uint) 139617a3babSopenharmony_ci 140617a3babSopenharmony_ciValidation failed 141617a3babSopenharmony_ci// Module Version 10000 142617a3babSopenharmony_ci// Generated by (magic number): 8000b 143617a3babSopenharmony_ci// Id's are bound by 78 144617a3babSopenharmony_ci 145617a3babSopenharmony_ci Capability Shader 146617a3babSopenharmony_ci 1: ExtInstImport "GLSL.std.450" 147617a3babSopenharmony_ci MemoryModel Logical GLSL450 148617a3babSopenharmony_ci EntryPoint Fragment 4 "main" 63 66 149617a3babSopenharmony_ci ExecutionMode 4 OriginUpperLeft 150617a3babSopenharmony_ci Source HLSL 500 151617a3babSopenharmony_ci Name 4 "main" 152617a3babSopenharmony_ci Name 9 "" 153617a3babSopenharmony_ci MemberName 9 0 "@data" 154617a3babSopenharmony_ci Name 15 "get(block--vu4[0]1;u1;" 155617a3babSopenharmony_ci Name 13 "sb" 156617a3babSopenharmony_ci Name 14 "bufferOffset" 157617a3babSopenharmony_ci Name 18 "" 158617a3babSopenharmony_ci MemberName 18 0 "@data" 159617a3babSopenharmony_ci Name 20 "" 160617a3babSopenharmony_ci MemberName 20 0 "@count" 161617a3babSopenharmony_ci Name 28 "set(block--vu4[0]1;u1;vu4;" 162617a3babSopenharmony_ci Name 24 "sb" 163617a3babSopenharmony_ci Name 25 "sb@count" 164617a3babSopenharmony_ci Name 26 "bufferOffset" 165617a3babSopenharmony_ci Name 27 "data" 166617a3babSopenharmony_ci Name 34 "@main(u1;" 167617a3babSopenharmony_ci Name 33 "pos" 168617a3babSopenharmony_ci Name 47 "sbuf2" 169617a3babSopenharmony_ci Name 48 "sbuf2@count" 170617a3babSopenharmony_ci Name 50 "sbuf" 171617a3babSopenharmony_ci Name 52 "param" 172617a3babSopenharmony_ci Name 54 "param" 173617a3babSopenharmony_ci Name 55 "param" 174617a3babSopenharmony_ci Name 61 "pos" 175617a3babSopenharmony_ci Name 63 "pos" 176617a3babSopenharmony_ci Name 66 "@entryPointOutput" 177617a3babSopenharmony_ci Name 67 "param" 178617a3babSopenharmony_ci Name 70 "sbuf2@count" 179617a3babSopenharmony_ci MemberName 70(sbuf2@count) 0 "@count" 180617a3babSopenharmony_ci Name 72 "sbuf2@count" 181617a3babSopenharmony_ci Name 75 "sbuf3" 182617a3babSopenharmony_ci MemberName 75(sbuf3) 0 "@data" 183617a3babSopenharmony_ci Name 77 "sbuf3" 184617a3babSopenharmony_ci Decorate 8 ArrayStride 16 185617a3babSopenharmony_ci MemberDecorate 9 0 NonWritable 186617a3babSopenharmony_ci MemberDecorate 9 0 Offset 0 187617a3babSopenharmony_ci Decorate 9 BufferBlock 188617a3babSopenharmony_ci Decorate 13(sb) NonWritable 189617a3babSopenharmony_ci Decorate 17 ArrayStride 16 190617a3babSopenharmony_ci MemberDecorate 18 0 Offset 0 191617a3babSopenharmony_ci Decorate 18 BufferBlock 192617a3babSopenharmony_ci Decorate 20 BufferBlock 193617a3babSopenharmony_ci Decorate 47(sbuf2) DescriptorSet 0 194617a3babSopenharmony_ci Decorate 47(sbuf2) Binding 0 195617a3babSopenharmony_ci Decorate 48(sbuf2@count) DescriptorSet 0 196617a3babSopenharmony_ci Decorate 48(sbuf2@count) Binding 0 197617a3babSopenharmony_ci Decorate 50(sbuf) DescriptorSet 0 198617a3babSopenharmony_ci Decorate 50(sbuf) Binding 10 199617a3babSopenharmony_ci Decorate 63(pos) Flat 200617a3babSopenharmony_ci Decorate 63(pos) Location 0 201617a3babSopenharmony_ci Decorate 66(@entryPointOutput) Location 0 202617a3babSopenharmony_ci MemberDecorate 70(sbuf2@count) 0 Offset 0 203617a3babSopenharmony_ci Decorate 70(sbuf2@count) BufferBlock 204617a3babSopenharmony_ci Decorate 72(sbuf2@count) DescriptorSet 0 205617a3babSopenharmony_ci Decorate 72(sbuf2@count) Binding 0 206617a3babSopenharmony_ci Decorate 74 ArrayStride 16 207617a3babSopenharmony_ci MemberDecorate 75(sbuf3) 0 NonWritable 208617a3babSopenharmony_ci MemberDecorate 75(sbuf3) 0 Offset 0 209617a3babSopenharmony_ci Decorate 75(sbuf3) BufferBlock 210617a3babSopenharmony_ci Decorate 77(sbuf3) DescriptorSet 0 211617a3babSopenharmony_ci Decorate 77(sbuf3) Binding 12 212617a3babSopenharmony_ci 2: TypeVoid 213617a3babSopenharmony_ci 3: TypeFunction 2 214617a3babSopenharmony_ci 6: TypeInt 32 0 215617a3babSopenharmony_ci 7: TypeVector 6(int) 4 216617a3babSopenharmony_ci 8: TypeRuntimeArray 7(ivec4) 217617a3babSopenharmony_ci 9: TypeStruct 8 218617a3babSopenharmony_ci 10: TypePointer Uniform 9(struct) 219617a3babSopenharmony_ci 11: TypePointer Function 6(int) 220617a3babSopenharmony_ci 12: TypeFunction 7(ivec4) 10(ptr) 11(ptr) 221617a3babSopenharmony_ci 17: TypeRuntimeArray 7(ivec4) 222617a3babSopenharmony_ci 18: TypeStruct 17 223617a3babSopenharmony_ci 19: TypePointer Uniform 18(struct) 224617a3babSopenharmony_ci 20: TypeStruct 6(int) 225617a3babSopenharmony_ci 21: TypePointer Uniform 20(struct) 226617a3babSopenharmony_ci 22: TypePointer Function 7(ivec4) 227617a3babSopenharmony_ci 23: TypeFunction 2 19(ptr) 21(ptr) 11(ptr) 22(ptr) 228617a3babSopenharmony_ci 30: TypeFloat 32 229617a3babSopenharmony_ci 31: TypeVector 30(float) 4 230617a3babSopenharmony_ci 32: TypeFunction 31(fvec4) 11(ptr) 231617a3babSopenharmony_ci 36: TypeInt 32 1 232617a3babSopenharmony_ci 37: 36(int) Constant 0 233617a3babSopenharmony_ci 39: TypePointer Uniform 7(ivec4) 234617a3babSopenharmony_ci 47(sbuf2): 19(ptr) Variable Uniform 235617a3babSopenharmony_ci 48(sbuf2@count): 21(ptr) Variable Uniform 236617a3babSopenharmony_ci 49: 6(int) Constant 2 237617a3babSopenharmony_ci 50(sbuf): 10(ptr) Variable Uniform 238617a3babSopenharmony_ci 51: 6(int) Constant 3 239617a3babSopenharmony_ci 57: 30(float) Constant 0 240617a3babSopenharmony_ci 58: 31(fvec4) ConstantComposite 57 57 57 57 241617a3babSopenharmony_ci 62: TypePointer Input 6(int) 242617a3babSopenharmony_ci 63(pos): 62(ptr) Variable Input 243617a3babSopenharmony_ci 65: TypePointer Output 31(fvec4) 244617a3babSopenharmony_ci66(@entryPointOutput): 65(ptr) Variable Output 245617a3babSopenharmony_ci 70(sbuf2@count): TypeStruct 6(int) 246617a3babSopenharmony_ci 71: TypePointer Uniform 70(sbuf2@count) 247617a3babSopenharmony_ci 72(sbuf2@count): 71(ptr) Variable Uniform 248617a3babSopenharmony_ci 73: TypeVector 6(int) 3 249617a3babSopenharmony_ci 74: TypeRuntimeArray 73(ivec3) 250617a3babSopenharmony_ci 75(sbuf3): TypeStruct 74 251617a3babSopenharmony_ci 76: TypePointer Uniform 75(sbuf3) 252617a3babSopenharmony_ci 77(sbuf3): 76(ptr) Variable Uniform 253617a3babSopenharmony_ci 4(main): 2 Function None 3 254617a3babSopenharmony_ci 5: Label 255617a3babSopenharmony_ci 61(pos): 11(ptr) Variable Function 256617a3babSopenharmony_ci 67(param): 11(ptr) Variable Function 257617a3babSopenharmony_ci 64: 6(int) Load 63(pos) 258617a3babSopenharmony_ci Store 61(pos) 64 259617a3babSopenharmony_ci 68: 6(int) Load 61(pos) 260617a3babSopenharmony_ci Store 67(param) 68 261617a3babSopenharmony_ci 69: 31(fvec4) FunctionCall 34(@main(u1;) 67(param) 262617a3babSopenharmony_ci Store 66(@entryPointOutput) 69 263617a3babSopenharmony_ci Return 264617a3babSopenharmony_ci FunctionEnd 265617a3babSopenharmony_ci15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12 266617a3babSopenharmony_ci 13(sb): 10(ptr) FunctionParameter 267617a3babSopenharmony_ci14(bufferOffset): 11(ptr) FunctionParameter 268617a3babSopenharmony_ci 16: Label 269617a3babSopenharmony_ci 38: 6(int) Load 14(bufferOffset) 270617a3babSopenharmony_ci 40: 39(ptr) AccessChain 13(sb) 37 38 271617a3babSopenharmony_ci 41: 7(ivec4) Load 40 272617a3babSopenharmony_ci ReturnValue 41 273617a3babSopenharmony_ci FunctionEnd 274617a3babSopenharmony_ci28(set(block--vu4[0]1;u1;vu4;): 2 Function None 23 275617a3babSopenharmony_ci 24(sb): 19(ptr) FunctionParameter 276617a3babSopenharmony_ci 25(sb@count): 21(ptr) FunctionParameter 277617a3babSopenharmony_ci26(bufferOffset): 11(ptr) FunctionParameter 278617a3babSopenharmony_ci 27(data): 22(ptr) FunctionParameter 279617a3babSopenharmony_ci 29: Label 280617a3babSopenharmony_ci 44: 6(int) Load 26(bufferOffset) 281617a3babSopenharmony_ci 45: 7(ivec4) Load 27(data) 282617a3babSopenharmony_ci 46: 39(ptr) AccessChain 24(sb) 37 44 283617a3babSopenharmony_ci Store 46 45 284617a3babSopenharmony_ci Return 285617a3babSopenharmony_ci FunctionEnd 286617a3babSopenharmony_ci 34(@main(u1;): 31(fvec4) Function None 32 287617a3babSopenharmony_ci 33(pos): 11(ptr) FunctionParameter 288617a3babSopenharmony_ci 35: Label 289617a3babSopenharmony_ci 52(param): 11(ptr) Variable Function 290617a3babSopenharmony_ci 54(param): 11(ptr) Variable Function 291617a3babSopenharmony_ci 55(param): 22(ptr) Variable Function 292617a3babSopenharmony_ci Store 52(param) 51 293617a3babSopenharmony_ci 53: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param) 294617a3babSopenharmony_ci Store 54(param) 49 295617a3babSopenharmony_ci Store 55(param) 53 296617a3babSopenharmony_ci 56: 2 FunctionCall 28(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) 297617a3babSopenharmony_ci ReturnValue 58 298617a3babSopenharmony_ci FunctionEnd 299