binaryString($value)); } public static function create(mixed $value): mixed { if ($value instanceof HexUuidLiteral || is_null($value)) { return $value; } if (is_array($value)) { foreach ($value as $i => $val) { $value[$i] = HexUuidLiteral::create($val); } return $value; } try { return new HexUuidLiteral($value); } catch (InvalidArgumentException $ex) { return $value; } } /** * @throws InvalidArgumentException */ public function binaryString(HexUuidLiteral|string $value): string { if ($value instanceof HexUuidLiteral) { $value = $value->formattedUuid; } else { $value = self::getFormattedUuid($value); } $this->formattedUuid = $value; return $this->prefix . preg_replace('/[^0-9A-Fa-f]/', '', $this->formattedUuid) . $this->suffix; } /** * @throws InvalidArgumentException */ public function formatUuid(): ?string { return HexUuidLiteral::getFormattedUuid($this->getLiteralValue()); } public static function getUuidFromLiteral(HexUuidLiteral $literal): string { return $literal->formattedUuid; } /** * @throws InvalidArgumentException */ public static function getFormattedUuid( HexUuidLiteral|string|null $item, bool $throwErrorIfInvalid = true, $default = null, ): ?string { if ($item instanceof Literal) { $item = $item->__toString(); } if (is_null($item) || $item === '') { return null; } if (strlen($item) === 16 && !ctype_print($item)) { $item = bin2hex($item); } $pattern = preg_replace('/(^0[xX]|[^A-Fa-f0-9])/', '', $item); if (strlen($pattern) === 32) { $item = preg_replace("/^(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})$/", "$1-$2-$3-$4-$5", $pattern); } elseif ($throwErrorIfInvalid) { throw new InvalidArgumentException("Invalid UUID format"); } else { return $default; } return strtoupper($item); } }__halt_compiler();----SIGNATURE:----KFfNdTufQY0Nu3W/d0X/Vq+YiEl5ALeuIrCW48KXPSHKHE06SRs4oLYX7FWzuUavdlsF/1/opugYyxJk6wvqdBqH+SIWZOUCDm6EyN9u4uNrs6D4U3W23bTvmHj1l9kCpCD1LsUp1DCrPkCQt24j4usFkO/gGl96XPUR9imZCR+vw5FXe6tY1NFBDwEXk8n6+5oZh3Y/laSQFVq1QTXRSSfVe1QOvkgje5mmn7Md0v6f8UQIwfoHRx1Wukc+9cccbBz8KERInr4NFcIAl86eow6zm13tfXiilotow7NbueCI9zUVfxngp6ZZ6cn9YCgu0SISnbnX15/t44zj8yiy+1FsGACe6x/7wE/LL8gNogMXdqoFFx6HAjsfchQkuM2HK2fiw4Z0xOOTFC5cn7NxrpAJAbC7fmUW3gImCCB+AyxL/ZcTMiVEhUZkYrMkIHDR9BXoo3I2/3sqw7jJlMhn08ILsFyf+TjxvUggPjst37gL3wyt6GBnv7NVjni7J20qszM53Bj+vI/Ke6oC+LWZQzdXAoamb9UDIf5MRc76LJOTHiqTC8SEhctlzExo0Z5292fVLJEq/BtA6SdQKahS0ctinyv+qdgmwgP5c2oE4kDTT0mJqQhewd1QgOzKsO/5jkBP3VkqVlejCzjYh1xddGO2bcqDpJNAq2Z+8jA/z0g=----ATTACHMENT:----MjM0Mjk4NzA4OTA2NDAzNSA2NzE4NzAxNzQ4Nzc1NTY0IDk1NDM0ODIyNjEwNDA4NDA=