#include <metal_stdlib>

using namespace metal;
struct tint_array_wrapper {
  /* 0x0000 */ int arr[6];
};
struct sspp962805860buildInformationS {
  /* 0x0000 */ float4 footprint;
  /* 0x0010 */ float4 offset;
  /* 0x0020 */ int essence;
  /* 0x0024 */ tint_array_wrapper orientation;
};
struct x_B4_BuildInformation {
  /* 0x0000 */ sspp962805860buildInformationS passthru;
};

void main_1(const device x_B4_BuildInformation& sspp962805860buildInformation) {
  tint_array_wrapper orientation = {};
  tint_array_wrapper const x_23 = sspp962805860buildInformation.passthru.orientation;
  orientation.arr[0] = x_23.arr[0u];
  orientation.arr[1] = x_23.arr[1u];
  orientation.arr[2] = x_23.arr[2u];
  orientation.arr[3] = x_23.arr[3u];
  orientation.arr[4] = x_23.arr[4u];
  orientation.arr[5] = x_23.arr[5u];
  return;
}

fragment void tint_symbol(const device x_B4_BuildInformation& sspp962805860buildInformation [[buffer(0)]]) {
  main_1(sspp962805860buildInformation);
  return;
}

