CHAT_OUTPUT_BEGIN
COMMAND_ID=SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046
STATUS=FAIL
RC=3
HOST=pve01
MODE=read-only
COMPONENT=gram-support-datatype-evidence
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0
COMMAND_SHA256=2912e8a38ca2a4553f5608d66d932f5b7b402cf92eec4c3b93e2f683c18002c4
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=3
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=d3105032468f050c04b0fb02bcd7ea00c487c07fa27ba6fa7d2f74292c00fd8b
SANITIZED_OUTPUT_SHA256=d3105032468f050c04b0fb02bcd7ea00c487c07fa27ba6fa7d2f74292c00fd8b
OUTPUT_BEGIN
SUPPORT046_BEGIN
ERROR_REGISTER_CHECK=OK
REFERENCE_CHECK=OK
AUTHORITY_CHECK_SCOPE=READABILITY_ONLY_INCIDENTS_NOT_CLOSED
RUNNER_SHA256=b248a4c32c9cc64e5747e7dce6c7fc0a23f5124a77c71ce72e27a81aceae9d2d
SUPPORT046_QGA_STATE={"exitcode":3,"state":"GUEST_HOLD"}
SUPPORT046_VM211={"artifact_sha256":"c20ca0744835ab3e6d7e4d944923a51e86cc53ffa7371a1a58b72b13453a8b3b","candidate":{"code_event_listeners.xml":{"attrs":["active","callback_class","callback_method","event_id","execute_order"],"child_tags":["listener"],"nested_tags":[],"root":"code_event_listeners"},"content_type_fields.xml":{"attrs":["content_type","field_name"],"child_tags":["field"],"nested_tags":[],"root":"content_type_fields"},"option_groups.xml":{"attrs":["debug_only","display_order","group_id"],"child_tags":["group"],"nested_tags":[],"root":"option_groups"},"options.xml":{"attrs":["data_type","edit_format","option_id"],"child_tags":["option"],"nested_tags":["default_value","relation"],"root":"options"},"permission_interface_groups.xml":{"attrs":["display_order","interface_group_id","is_moderator"],"child_tags":["interface_group"],"nested_tags":[],"root":"permission_interface_groups"},"permissions.xml":{"attrs":["display_order","interface_group_id","permission_group_id","permission_id","permission_type"],"child_tags":["permission"],"nested_tags":[],"root":"permissions"},"phrases.xml":{"attrs":["title","version_id","version_string"],"child_tags":["phrase"],"nested_tags":[],"root":"phrases"},"routes.xml":{"attrs":["action_prefix","context","controller","format","route_prefix","route_type","sub_name"],"child_tags":["route"],"nested_tags":[],"root":"routes"},"template_modifications.xml":{"attrs":["action","description","enabled","execution_order","modification_key","template","type"],"child_tags":["modification"],"nested_tags":["find","replace"],"root":"template_modifications"},"templates.xml":{"attrs":["title","type","version_id","version_string"],"child_tags":["template"],"nested_tags":[],"root":"templates"}},"command_id":"SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046","db":{"addon":0,"board_active":"0","errors_after_43":1,"options":0,"phrases":0,"routes":0,"tables":0,"templates":0},"decision":"HOLD","evidence":{"datatypes":{"code_event_listeners.xml":{"class":"XF\\AddOn\\DataType\\CodeEventListener","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":40,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->order(['event_id', 'callback_class', 'callback_method'])->fetch();"},{"line":31,"text":""},{"line":32,"text":"\t\tforeach ($entries AS $entry)"},{"line":33,"text":"\t\t{"},{"line":34,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":"\t\t\t$container->appendChild($node);"},{"line":37,"text":"\t\t}"},{"line":38,"text":""},{"line":39,"text":"\t\treturn $entries->count() ? true : false;"},{"line":40,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":26},"getChildTag":{"ok":true,"value":"listener"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'listener';"},{"line":24,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":21},"getContainerTag":{"ok":true,"value":"code_event_listeners"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'code_event_listeners';"},{"line":19,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["event_id","execute_order","callback_class","callback_method","active","hint","description"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":138,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":127,"text":"\tprotected function getMappedAttributes()"},{"line":128,"text":"\t{"},{"line":129,"text":"\t\treturn ["},{"line":130,"text":"\t\t\t'event_id',"},{"line":131,"text":"\t\t\t'execute_order',"},{"line":132,"text":"\t\t\t'callback_class',"},{"line":133,"text":"\t\t\t'callback_method',"},{"line":134,"text":"\t\t\t'active',"},{"line":135,"text":"\t\t\t'hint',"},{"line":136,"text":"\t\t\t'description',"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":127},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":86,"file":"src/XF/AddOn/DataType/CodeEventListener.php","lines":[{"line":42,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$startTime = microtime(true);"},{"line":45,"text":""},{"line":46,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":47,"text":"\t\tif (!$entries)"},{"line":48,"text":"\t\t{"},{"line":49,"text":"\t\t\treturn false;"},{"line":50,"text":"\t\t}"},{"line":51,"text":""},{"line":52,"text":"\t\t$existing = [];"},{"line":53,"text":"\t\tforeach ($this->findAllForType($addOnId)->fetch() AS $listener)"},{"line":54,"text":"\t\t{"},{"line":55,"text":"\t\t\t$existing[$listener->getAddOnUniqueKey()] = $listener;"},{"line":56,"text":"\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t$i = 0;"},{"line":59,"text":"\t\t$last = 0;"},{"line":60,"text":"\t\tforeach ($entries AS $entry)"},{"line":61,"text":"\t\t{"},{"line":62,"text":"\t\t\t$i++;"},{"line":63,"text":""},{"line":64,"text":"\t\t\tif ($i <= $start)"},{"line":65,"text":"\t\t\t{"},{"line":66,"text":"\t\t\t\tcontinue;"},{"line":67,"text":"\t\t\t}"},{"line":68,"text":""},{"line":69,"text":"\t\t\t$key = $this->getAddOnUniqueKeyFromXml($entry);"},{"line":70,"text":"\t\t\t$entity = $existing[$key] ?? $this->create();"},{"line":71,"text":""},{"line":72,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":73,"text":"\t\t\t$entity->setOption('check_duplicate', false);"},{"line":74,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":75,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":76,"text":""},{"line":77,"text":"\t\t\t$entity->save(true, false);"},{"line":78,"text":""},{"line":79,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":80,"text":"\t\t\t{"},{"line":81,"text":"\t\t\t\t$last = $i;"},{"line":82,"text":"\t\t\t\tbreak;"},{"line":83,"text":"\t\t\t}"},{"line":84,"text":"\t\t}"},{"line":85,"text":"\t\treturn ($last ?: false);"},{"line":86,"text":"\t}"}],"sha256":"eba1c2560c9c5c48d1185886609203bf73665d664c2ae0f2db0ff17dbad574ab","start_line":42}},"content_type_fields.xml":{"class":"XF\\AddOn\\DataType\\ContentTypeField","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":45,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->order(['content_type', 'field_name'])->fetch();"},{"line":31,"text":""},{"line":32,"text":"\t\t$doc = $container->ownerDocument;"},{"line":33,"text":""},{"line":34,"text":"\t\tforeach ($entries AS $entry)"},{"line":35,"text":"\t\t{"},{"line":36,"text":"\t\t\t$node = $doc->createElement($this->getChildTag());"},{"line":37,"text":""},{"line":38,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":39,"text":"\t\t\t$node->appendChild($doc->createTextNode($entry->field_value));"},{"line":40,"text":""},{"line":41,"text":"\t\t\t$container->appendChild($node);"},{"line":42,"text":"\t\t}"},{"line":43,"text":""},{"line":44,"text":"\t\treturn $entries->count() ? true : false;"},{"line":45,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":26},"getChildTag":{"ok":true,"value":"field"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'field';"},{"line":24,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":21},"getContainerTag":{"ok":true,"value":"content_type_fields"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'content_type_fields';"},{"line":19,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["content_type","field_name"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":138,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":132,"text":"\tprotected function getMappedAttributes()"},{"line":133,"text":"\t{"},{"line":134,"text":"\t\treturn ["},{"line":135,"text":"\t\t\t'content_type',"},{"line":136,"text":"\t\t\t'field_name',"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":132},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":88,"file":"src/XF/AddOn/DataType/ContentTypeField.php","lines":[{"line":47,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":48,"text":"\t{"},{"line":49,"text":"\t\t$startTime = microtime(true);"},{"line":50,"text":""},{"line":51,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":52,"text":"\t\tif (!$entries)"},{"line":53,"text":"\t\t{"},{"line":54,"text":"\t\t\treturn false;"},{"line":55,"text":"\t\t}"},{"line":56,"text":""},{"line":57,"text":"\t\t$existing = $this->finder()->fetch()->groupBy('content_type', 'field_name');"},{"line":58,"text":""},{"line":59,"text":"\t\t$i = 0;"},{"line":60,"text":"\t\t$last = 0;"},{"line":61,"text":"\t\tforeach ($entries AS $entry)"},{"line":62,"text":"\t\t{"},{"line":63,"text":"\t\t\t$i++;"},{"line":64,"text":""},{"line":65,"text":"\t\t\tif ($i <= $start)"},{"line":66,"text":"\t\t\t{"},{"line":67,"text":"\t\t\t\tcontinue;"},{"line":68,"text":"\t\t\t}"},{"line":69,"text":""},{"line":70,"text":"\t\t\t$type = (string) $entry['content_type'];"},{"line":71,"text":"\t\t\t$name = (string) $entry['field_name'];"},{"line":72,"text":"\t\t\t$entity = $existing[$type][$name] ?? $this->create();"},{"line":73,"text":""},{"line":74,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":75,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":76,"text":"\t\t\t$entity->field_value = (string) $entry;"},{"line":77,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":78,"text":""},{"line":79,"text":"\t\t\t$entity->save(true, false);"},{"line":80,"text":""},{"line":81,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":82,"text":"\t\t\t{"},{"line":83,"text":"\t\t\t\t$last = $i;"},{"line":84,"text":"\t\t\t\tbreak;"},{"line":85,"text":"\t\t\t}"},{"line":86,"text":"\t\t}"},{"line":87,"text":"\t\treturn ($last ?: false);"},{"line":88,"text":"\t}"}],"sha256":"6c954db974138ac73a76ba87a119c4efdfb85f922a81832928e9ee022e23f594","start_line":47}},"option_groups.xml":{"class":"XF\\AddOn\\DataType\\OptionGroup","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":40,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":24,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":25,"text":"\t{"},{"line":26,"text":"\t\t$entries = $this->finder()"},{"line":27,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":28,"text":"\t\t\t->order('group_id')->fetch();"},{"line":29,"text":""},{"line":30,"text":"\t\tforeach ($entries AS $entry)"},{"line":31,"text":"\t\t{"},{"line":32,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":33,"text":""},{"line":34,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":35,"text":""},{"line":36,"text":"\t\t\t$container->appendChild($node);"},{"line":37,"text":"\t\t}"},{"line":38,"text":""},{"line":39,"text":"\t\treturn $entries->count() ? true : false;"},{"line":40,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":24},"getChildTag":{"ok":true,"value":"group"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":22,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":19,"text":"\tpublic function getChildTag()"},{"line":20,"text":"\t{"},{"line":21,"text":"\t\treturn 'group';"},{"line":22,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":19},"getContainerTag":{"ok":true,"value":"option_groups"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":17,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":14,"text":"\tpublic function getContainerTag()"},{"line":15,"text":"\t{"},{"line":16,"text":"\t\treturn 'option_groups';"},{"line":17,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":14},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["group_id","icon","display_order","debug_only"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":96,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":88,"text":"\tprotected function getMappedAttributes()"},{"line":89,"text":"\t{"},{"line":90,"text":"\t\treturn ["},{"line":91,"text":"\t\t\t'group_id',"},{"line":92,"text":"\t\t\t'icon',"},{"line":93,"text":"\t\t\t'display_order',"},{"line":94,"text":"\t\t\t'debug_only',"},{"line":95,"text":"\t\t];"},{"line":96,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":88},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":81,"file":"src/XF/AddOn/DataType/OptionGroup.php","lines":[{"line":42,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":43,"text":"\t{"},{"line":44,"text":"\t\t$startTime = microtime(true);"},{"line":45,"text":""},{"line":46,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":47,"text":"\t\tif (!$entries)"},{"line":48,"text":"\t\t{"},{"line":49,"text":"\t\t\treturn false;"},{"line":50,"text":"\t\t}"},{"line":51,"text":""},{"line":52,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'group_id');"},{"line":53,"text":"\t\t$existing = $this->findByIds($ids);"},{"line":54,"text":""},{"line":55,"text":"\t\t$i = 0;"},{"line":56,"text":"\t\t$last = 0;"},{"line":57,"text":"\t\tforeach ($entries AS $entry)"},{"line":58,"text":"\t\t{"},{"line":59,"text":"\t\t\t$id = $ids[$i++];"},{"line":60,"text":""},{"line":61,"text":"\t\t\tif ($i <= $start)"},{"line":62,"text":"\t\t\t{"},{"line":63,"text":"\t\t\t\tcontinue;"},{"line":64,"text":"\t\t\t}"},{"line":65,"text":""},{"line":66,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":67,"text":""},{"line":68,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":69,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":70,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":71,"text":""},{"line":72,"text":"\t\t\t$entity->save(true, false);"},{"line":73,"text":""},{"line":74,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":75,"text":"\t\t\t{"},{"line":76,"text":"\t\t\t\t$last = $i;"},{"line":77,"text":"\t\t\t\tbreak;"},{"line":78,"text":"\t\t\t}"},{"line":79,"text":"\t\t}"},{"line":80,"text":"\t\treturn ($last ?: false);"},{"line":81,"text":"\t}"}],"sha256":"9d75fc1cf5be6c69063ecaed7e0d89a5a2e29ff560e6e57125b59f90405718da","start_line":42}},"options.xml":{"class":"XF\\AddOn\\DataType\\Option","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":62,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":27,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":28,"text":"\t{"},{"line":29,"text":"\t\t$entries = $this->finder()"},{"line":30,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":31,"text":"\t\t\t->order('option_id')->fetch();"},{"line":32,"text":""},{"line":33,"text":"\t\t$doc = $container->ownerDocument;"},{"line":34,"text":""},{"line":35,"text":"\t\tforeach ($entries AS $entry)"},{"line":36,"text":"\t\t{"},{"line":37,"text":"\t\t\t$node = $doc->createElement($this->getChildTag());"},{"line":38,"text":""},{"line":39,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":40,"text":"\t\t\t$node->appendChild(Xml::createDomElement($doc, 'default_value', $entry->getValue('default_value')));"},{"line":41,"text":"\t\t\tif ($entry->edit_format_params !== '')"},{"line":42,"text":"\t\t\t{"},{"line":43,"text":"\t\t\t\t$node->appendChild(Xml::createDomElement($doc, 'edit_format_params', $entry->edit_format_params));"},{"line":44,"text":"\t\t\t}"},{"line":45,"text":"\t\t\tif ($entry->sub_options)"},{"line":46,"text":"\t\t\t{"},{"line":47,"text":"\t\t\t\t$node->appendChild(Xml::createDomElement($doc, 'sub_options', implode(\"\\n\", $entry->sub_options)));"},{"line":48,"text":"\t\t\t}"},{"line":49,"text":""},{"line":50,"text":"\t\t\tforeach ($entry->Relations AS $relation)"},{"line":51,"text":"\t\t\t{"},{"line":52,"text":"\t\t\t\t$relationNode = $doc->createElement('relation');"},{"line":53,"text":"\t\t\t\t$relationNode->setAttribute('group_id', $relation->group_id);"},{"line":54,"text":"\t\t\t\t$relationNode->setAttribute('display_order', $relation->display_order);"},{"line":55,"text":"\t\t\t\t$node->appendChild($relationNode);"},{"line":56,"text":"\t\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t\t$container->appendChild($node);"},{"line":59,"text":"\t\t}"},{"line":60,"text":""},{"line":61,"text":"\t\treturn $entries->count() ? true : false;"},{"line":62,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":27},"getChildTag":{"ok":true,"value":"option"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":25,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":22,"text":"\tpublic function getChildTag()"},{"line":23,"text":"\t{"},{"line":24,"text":"\t\treturn 'option';"},{"line":25,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":22},"getContainerTag":{"ok":true,"value":"options"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":20,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":17,"text":"\tpublic function getContainerTag()"},{"line":18,"text":"\t{"},{"line":19,"text":"\t\treturn 'options';"},{"line":20,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":17},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["option_id","edit_format","data_type","validation_class","validation_method","advanced"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":138,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":128,"text":"\tprotected function getMappedAttributes()"},{"line":129,"text":"\t{"},{"line":130,"text":"\t\treturn ["},{"line":131,"text":"\t\t\t'option_id',"},{"line":132,"text":"\t\t\t'edit_format',"},{"line":133,"text":"\t\t\t'data_type',"},{"line":134,"text":"\t\t\t'validation_class',"},{"line":135,"text":"\t\t\t'validation_method',"},{"line":136,"text":"\t\t\t'advanced',"},{"line":137,"text":"\t\t];"},{"line":138,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":128},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":121,"file":"src/XF/AddOn/DataType/Option.php","lines":[{"line":64,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":65,"text":"\t{"},{"line":66,"text":"\t\t$startTime = microtime(true);"},{"line":67,"text":""},{"line":68,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":69,"text":"\t\tif (!$entries)"},{"line":70,"text":"\t\t{"},{"line":71,"text":"\t\t\treturn false;"},{"line":72,"text":"\t\t}"},{"line":73,"text":""},{"line":74,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'option_id');"},{"line":75,"text":"\t\t$existing = $this->findByIds($ids);"},{"line":76,"text":""},{"line":77,"text":"\t\t$i = 0;"},{"line":78,"text":"\t\t$last = 0;"},{"line":79,"text":"\t\tforeach ($entries AS $entry)"},{"line":80,"text":"\t\t{"},{"line":81,"text":"\t\t\t$id = $ids[$i++];"},{"line":82,"text":""},{"line":83,"text":"\t\t\tif ($i <= $start)"},{"line":84,"text":"\t\t\t{"},{"line":85,"text":"\t\t\t\tcontinue;"},{"line":86,"text":"\t\t\t}"},{"line":87,"text":""},{"line":88,"text":"\t\t\t/** @var \\XF\\Entity\\Option $entity */"},{"line":89,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":90,"text":""},{"line":91,"text":"\t\t\t$entity->setOptions(["},{"line":92,"text":"\t\t\t\t'verify_validation_callback' => false,"},{"line":93,"text":"\t\t\t\t'verify_value' => false,"},{"line":94,"text":"\t\t\t]);"},{"line":95,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":96,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":97,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":98,"text":"\t\t\t$entity->default_value = (string) $entry->default_value;"},{"line":99,"text":"\t\t\t$entity->edit_format_params = (string) $entry->edit_format_params;"},{"line":100,"text":""},{"line":101,"text":"\t\t\t$subOptions = (string) $entry->sub_options;"},{"line":102,"text":"\t\t\t$entity->sub_options = strlen($subOptions) ? explode(\"\\n\", $subOptions) : [];"},{"line":103,"text":""},{"line":104,"text":"\t\t\t$entity->save(true, false);"},{"line":105,"text":""},{"line":106,"text":"\t\t\t$relations = [];"},{"line":107,"text":"\t\t\tforeach ($entry->relation AS $relation)"},{"line":108,"text":"\t\t\t{"},{"line":109,"text":"\t\t\t\t$relations[(string) $relation['group_id']] = (string) $relation['display_order'];"},{"line":110,"text":"\t\t\t}"},{"line":111,"text":""},{"line":112,"text":"\t\t\t$entity->updateRelations($relations);"},{"line":113,"text":""},{"line":114,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":115,"text":"\t\t\t{"},{"line":116,"text":"\t\t\t\t$last = $i;"},{"line":117,"text":"\t\t\t\tbreak;"},{"line":118,"text":"\t\t\t}"},{"line":119,"text":"\t\t}"},{"line":120,"text":"\t\treturn ($last ?: false);"},{"line":121,"text":"\t}"}],"sha256":"d2a6129dbd3f40dde334388d185aec02a74e33e010b5f81305211f093d1e4e60","start_line":64}},"permission_interface_groups.xml":{"class":"XF\\AddOn\\DataType\\PermissionInterfaceGroup","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":41,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":25,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":26,"text":"\t{"},{"line":27,"text":"\t\t$entries = $this->finder()"},{"line":28,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":29,"text":"\t\t\t->order('interface_group_id')->fetch();"},{"line":30,"text":""},{"line":31,"text":"\t\tforeach ($entries AS $entry)"},{"line":32,"text":"\t\t{"},{"line":33,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":34,"text":""},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":""},{"line":37,"text":"\t\t\t$container->appendChild($node);"},{"line":38,"text":"\t\t}"},{"line":39,"text":""},{"line":40,"text":"\t\treturn $entries->count() ? true : false;"},{"line":41,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":25},"getChildTag":{"ok":true,"value":"interface_group"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":23,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'interface_group';"},{"line":23,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":20},"getContainerTag":{"ok":true,"value":"permission_interface_groups"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":18,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'permission_interface_groups';"},{"line":18,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":15},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["interface_group_id","display_order","is_moderator"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":102,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":95,"text":"\tprotected function getMappedAttributes()"},{"line":96,"text":"\t{"},{"line":97,"text":"\t\treturn ["},{"line":98,"text":"\t\t\t'interface_group_id',"},{"line":99,"text":"\t\t\t'display_order',"},{"line":100,"text":"\t\t\t'is_moderator',"},{"line":101,"text":"\t\t];"},{"line":102,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":95},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":82,"file":"src/XF/AddOn/DataType/PermissionInterfaceGroup.php","lines":[{"line":43,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":44,"text":"\t{"},{"line":45,"text":"\t\t$startTime = microtime(true);"},{"line":46,"text":""},{"line":47,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":48,"text":"\t\tif (!$entries)"},{"line":49,"text":"\t\t{"},{"line":50,"text":"\t\t\treturn false;"},{"line":51,"text":"\t\t}"},{"line":52,"text":""},{"line":53,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'interface_group_id');"},{"line":54,"text":"\t\t$existing = $this->findByIds($ids);"},{"line":55,"text":""},{"line":56,"text":"\t\t$i = 0;"},{"line":57,"text":"\t\t$last = 0;"},{"line":58,"text":"\t\tforeach ($entries AS $entry)"},{"line":59,"text":"\t\t{"},{"line":60,"text":"\t\t\t$id = $ids[$i++];"},{"line":61,"text":""},{"line":62,"text":"\t\t\tif ($i <= $start)"},{"line":63,"text":"\t\t\t{"},{"line":64,"text":"\t\t\t\tcontinue;"},{"line":65,"text":"\t\t\t}"},{"line":66,"text":""},{"line":67,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":68,"text":""},{"line":69,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":70,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":71,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":72,"text":""},{"line":73,"text":"\t\t\t$entity->save(true, false);"},{"line":74,"text":""},{"line":75,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":76,"text":"\t\t\t{"},{"line":77,"text":"\t\t\t\t$last = $i;"},{"line":78,"text":"\t\t\t\tbreak;"},{"line":79,"text":"\t\t\t}"},{"line":80,"text":"\t\t}"},{"line":81,"text":"\t\treturn ($last ?: false);"},{"line":82,"text":"\t}"}],"sha256":"b2b1397ba1dc3174f680ebe4796a88904aa577db969177485d56cd7568c1f8d6","start_line":43}},"permissions.xml":{"class":"XF\\AddOn\\DataType\\Permission","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":44,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":28,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":29,"text":"\t{"},{"line":30,"text":"\t\t$entries = $this->finder()"},{"line":31,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":32,"text":"\t\t\t->order(['permission_group_id', 'permission_id'])->fetch();"},{"line":33,"text":""},{"line":34,"text":"\t\tforeach ($entries AS $entry)"},{"line":35,"text":"\t\t{"},{"line":36,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":37,"text":""},{"line":38,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":39,"text":""},{"line":40,"text":"\t\t\t$container->appendChild($node);"},{"line":41,"text":"\t\t}"},{"line":42,"text":""},{"line":43,"text":"\t\treturn $entries->count() ? true : false;"},{"line":44,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":28},"getChildTag":{"ok":true,"value":"permission"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":26,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'permission';"},{"line":26,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":23},"getContainerTag":{"ok":true,"value":"permissions"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":21,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'permissions';"},{"line":21,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":18},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["permission_group_id","permission_id","permission_type","depend_permission_id","interface_group_id","display_order"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":159,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":149,"text":"\tprotected function getMappedAttributes()"},{"line":150,"text":"\t{"},{"line":151,"text":"\t\treturn ["},{"line":152,"text":"\t\t\t'permission_group_id',"},{"line":153,"text":"\t\t\t'permission_id',"},{"line":154,"text":"\t\t\t'permission_type',"},{"line":155,"text":"\t\t\t'depend_permission_id',"},{"line":156,"text":"\t\t\t'interface_group_id',"},{"line":157,"text":"\t\t\t'display_order',"},{"line":158,"text":"\t\t];"},{"line":159,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":149},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":102,"file":"src/XF/AddOn/DataType/Permission.php","lines":[{"line":46,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":47,"text":"\t{"},{"line":48,"text":"\t\t$startTime = microtime(true);"},{"line":49,"text":""},{"line":50,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":51,"text":"\t\tif (!$entries)"},{"line":52,"text":"\t\t{"},{"line":53,"text":"\t\t\treturn false;"},{"line":54,"text":"\t\t}"},{"line":55,"text":""},{"line":56,"text":"\t\t$conditions = [];"},{"line":57,"text":"\t\tforeach ($entries AS $entry)"},{"line":58,"text":"\t\t{"},{"line":59,"text":"\t\t\t$conditions[] = ["},{"line":60,"text":"\t\t\t\t'permission_group_id' => (string) $entry['permission_group_id'],"},{"line":61,"text":"\t\t\t\t'permission_id' => (string) $entry['permission_id'],"},{"line":62,"text":"\t\t\t];"},{"line":63,"text":"\t\t}"},{"line":64,"text":"\t\tif ($conditions)"},{"line":65,"text":"\t\t{"},{"line":66,"text":"\t\t\t$existing = $this->finder()->whereOr($conditions)->fetch()->groupBy('permission_group_id', 'permission_id');"},{"line":67,"text":"\t\t}"},{"line":68,"text":"\t\telse"},{"line":69,"text":"\t\t{"},{"line":70,"text":"\t\t\t$existing = [];"},{"line":71,"text":"\t\t}"},{"line":72,"text":""},{"line":73,"text":"\t\t$i = 0;"},{"line":74,"text":"\t\t$last = 0;"},{"line":75,"text":"\t\tforeach ($entries AS $entry)"},{"line":76,"text":"\t\t{"},{"line":77,"text":"\t\t\t$i++;"},{"line":78,"text":""},{"line":79,"text":"\t\t\tif ($i <= $start)"},{"line":80,"text":"\t\t\t{"},{"line":81,"text":"\t\t\t\tcontinue;"},{"line":82,"text":"\t\t\t}"},{"line":83,"text":""},{"line":84,"text":"\t\t\t$groupId = (string) $entry['permission_group_id'];"},{"line":85,"text":"\t\t\t$permissionId = (string) $entry['permission_id'];"},{"line":86,"text":"\t\t\t$entity = $existing[$groupId][$permissionId] ?? $this->create();"},{"line":87,"text":""},{"line":88,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":89,"text":"\t\t\t$entity->setOption('dependent_check', false);"},{"line":90,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":91,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":92,"text":""},{"line":93,"text":"\t\t\t$entity->save(true, false);"},{"line":94,"text":""},{"line":95,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":96,"text":"\t\t\t{"},{"line":97,"text":"\t\t\t\t$last = $i;"},{"line":98,"text":"\t\t\t\tbreak;"},{"line":99,"text":"\t\t\t}"},{"line":100,"text":"\t\t}"},{"line":101,"text":"\t\treturn ($last ?: false);"},{"line":102,"text":"\t}"}],"sha256":"8d6b8657e8585eb8da7f1401df882e0033f93e07179ce4df398b95d22d74c477","start_line":46}},"phrases.xml":{"class":"XF\\AddOn\\DataType\\Phrase","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":47,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->where('language_id', 0)"},{"line":31,"text":"\t\t\t->order('title')->fetch();"},{"line":32,"text":"\t\tforeach ($entries AS $entry)"},{"line":33,"text":"\t\t{"},{"line":34,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":35,"text":""},{"line":36,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":37,"text":"\t\t\tif ($entry['global_cache'])"},{"line":38,"text":"\t\t\t{"},{"line":39,"text":"\t\t\t\t$node->setAttribute('global_cache', '1');"},{"line":40,"text":"\t\t\t}"},{"line":41,"text":"\t\t\t$this->exportCdata($node, $entry->phrase_text);"},{"line":42,"text":""},{"line":43,"text":"\t\t\t$container->appendChild($node);"},{"line":44,"text":"\t\t}"},{"line":45,"text":""},{"line":46,"text":"\t\treturn $entries->count() ? true : false;"},{"line":47,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":26},"getChildTag":{"ok":true,"value":"phrase"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'phrase';"},{"line":24,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":21},"getContainerTag":{"ok":true,"value":"phrases"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'phrases';"},{"line":19,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["title","version_id","version_string"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":128,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":121,"text":"\tprotected function getMappedAttributes()"},{"line":122,"text":"\t{"},{"line":123,"text":"\t\treturn ["},{"line":124,"text":"\t\t\t'title',"},{"line":125,"text":"\t\t\t'version_id',"},{"line":126,"text":"\t\t\t'version_string',"},{"line":127,"text":"\t\t];"},{"line":128,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":121},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":114,"file":"src/XF/AddOn/DataType/Phrase.php","lines":[{"line":49,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":50,"text":"\t{"},{"line":51,"text":"\t\t$startTime = microtime(true);"},{"line":52,"text":""},{"line":53,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":54,"text":"\t\tif (!$entries)"},{"line":55,"text":"\t\t{"},{"line":56,"text":"\t\t\treturn false;"},{"line":57,"text":"\t\t}"},{"line":58,"text":""},{"line":59,"text":"\t\t$ids = $this->pluckXmlAttribute($entries, 'title');"},{"line":60,"text":""},{"line":61,"text":"\t\t// This chucking approach has been taken due to a MariaDB performance regression with large"},{"line":62,"text":"\t\t// IN clauses (see #187523). However, this may have benefits on some slower servers as this"},{"line":63,"text":"\t\t// will reduce the number of times we attempt to instantiate phrase entities that won't be"},{"line":64,"text":"\t\t// processed in this run."},{"line":65,"text":"\t\t$chunkSize = 200;"},{"line":66,"text":"\t\t$nextFetch = null;"},{"line":67,"text":""},{"line":68,"text":"\t\t$i = 0;"},{"line":69,"text":"\t\t$last = 0;"},{"line":70,"text":"\t\tforeach ($entries AS $entry)"},{"line":71,"text":"\t\t{"},{"line":72,"text":"\t\t\t$originalI = $i;"},{"line":73,"text":""},{"line":74,"text":"\t\t\t$id = $ids[$i++];"},{"line":75,"text":""},{"line":76,"text":"\t\t\tif ($i <= $start)"},{"line":77,"text":"\t\t\t{"},{"line":78,"text":"\t\t\t\tcontinue;"},{"line":79,"text":"\t\t\t}"},{"line":80,"text":""},{"line":81,"text":"\t\t\tif ($nextFetch === null || $originalI >= $nextFetch)"},{"line":82,"text":"\t\t\t{"},{"line":83,"text":"\t\t\t\t$slice = array_slice($ids, $originalI, $chunkSize);"},{"line":84,"text":"\t\t\t\t$nextFetch = $originalI + $chunkSize;"},{"line":85,"text":""},{"line":86,"text":"\t\t\t\t$existing = $this->finder()"},{"line":87,"text":"\t\t\t\t\t->where('title', $slice)"},{"line":88,"text":"\t\t\t\t\t->where('language_id', 0)"},{"line":89,"text":"\t\t\t\t\t->keyedBy('title')"},{"line":90,"text":"\t\t\t\t\t->fetch();"},{"line":91,"text":"\t\t\t}"},{"line":92,"text":""},{"line":93,"text":"\t\t\t$entity = $existing[$id] ?? $this->create();"},{"line":94,"text":"\t\t\t$entity->setOption('check_duplicate', false);"},{"line":95,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":96,"text":""},{"line":97,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":98,"text":"\t\t\t$entity->language_id = 0;"},{"line":99,"text":"\t\t\t$entity->global_cache = (int) $entry['global_cache'];"},{"line":100,"text":"\t\t\t$entity->phrase_text = $this->getCdataValue($entry);"},{"line":101,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":102,"text":"\t\t\t$entity->save(true, false);"},{"line":103,"text":""},{"line":104,"text":"\t\t\t\\XF::dequeueRunOnce('styleLastModifiedDate');"},{"line":105,"text":""},{"line":106,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":107,"text":"\t\t\t{"},{"line":108,"text":"\t\t\t\t$last = $i;"},{"line":109,"text":"\t\t\t\tbreak;"},{"line":110,"text":"\t\t\t}"},{"line":111,"text":"\t\t}"},{"line":112,"text":""},{"line":113,"text":"\t\treturn ($last ?: false);"},{"line":114,"text":"\t}"}],"sha256":"af1d53936447b820d9f3dc3e50a7058dfe96890417f5fd466fb1361d99988266","start_line":49}},"routes.xml":{"class":"XF\\AddOn\\DataType\\Route","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":41,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":26,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":27,"text":"\t{"},{"line":28,"text":"\t\t$entries = $this->finder()"},{"line":29,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":30,"text":"\t\t\t->order(['route_type', 'route_prefix', 'sub_name'])->fetch();"},{"line":31,"text":"\t\tforeach ($entries AS $entry)"},{"line":32,"text":"\t\t{"},{"line":33,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":34,"text":""},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":""},{"line":37,"text":"\t\t\t$container->appendChild($node);"},{"line":38,"text":"\t\t}"},{"line":39,"text":""},{"line":40,"text":"\t\treturn $entries->count() ? true : false;"},{"line":41,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":26},"getChildTag":{"ok":true,"value":"route"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":24,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":21,"text":"\tpublic function getChildTag()"},{"line":22,"text":"\t{"},{"line":23,"text":"\t\treturn 'route';"},{"line":24,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":21},"getContainerTag":{"ok":true,"value":"routes"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":19,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":16,"text":"\tpublic function getContainerTag()"},{"line":17,"text":"\t{"},{"line":18,"text":"\t\treturn 'routes';"},{"line":19,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":16},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["route_type","route_prefix","sub_name","format","build_class","build_method","controller","context","action_prefix"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":167,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":154,"text":"\tprotected function getMappedAttributes()"},{"line":155,"text":"\t{"},{"line":156,"text":"\t\treturn ["},{"line":157,"text":"\t\t\t'route_type',"},{"line":158,"text":"\t\t\t'route_prefix',"},{"line":159,"text":"\t\t\t'sub_name',"},{"line":160,"text":"\t\t\t'format',"},{"line":161,"text":"\t\t\t'build_class',"},{"line":162,"text":"\t\t\t'build_method',"},{"line":163,"text":"\t\t\t'controller',"},{"line":164,"text":"\t\t\t'context',"},{"line":165,"text":"\t\t\t'action_prefix',"},{"line":166,"text":"\t\t];"},{"line":167,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":154},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":104,"file":"src/XF/AddOn/DataType/Route.php","lines":[{"line":43,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":44,"text":"\t{"},{"line":45,"text":"\t\t$startTime = microtime(true);"},{"line":46,"text":""},{"line":47,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":48,"text":"\t\tif (!$entries)"},{"line":49,"text":"\t\t{"},{"line":50,"text":"\t\t\treturn false;"},{"line":51,"text":"\t\t}"},{"line":52,"text":""},{"line":53,"text":"\t\t$conditions = [];"},{"line":54,"text":"\t\t$existing = [];"},{"line":55,"text":"\t\tforeach ($entries AS $entry)"},{"line":56,"text":"\t\t{"},{"line":57,"text":"\t\t\t$conditions[] = ["},{"line":58,"text":"\t\t\t\t'route_type' => (string) $entry['route_type'],"},{"line":59,"text":"\t\t\t\t'route_prefix' => (string) $entry['route_prefix'],"},{"line":60,"text":"\t\t\t\t'sub_name' => (string) $entry['sub_name'],"},{"line":61,"text":"\t\t\t];"},{"line":62,"text":"\t\t}"},{"line":63,"text":"\t\tif ($conditions)"},{"line":64,"text":"\t\t{"},{"line":65,"text":"\t\t\tforeach ($this->finder()->whereOr($conditions)->fetch() AS $route)"},{"line":66,"text":"\t\t\t{"},{"line":67,"text":"\t\t\t\t$existing[$route->route_type][$route->route_prefix][$route->sub_name] = $route;"},{"line":68,"text":"\t\t\t}"},{"line":69,"text":"\t\t}"},{"line":70,"text":""},{"line":71,"text":"\t\t$i = 0;"},{"line":72,"text":"\t\t$last = 0;"},{"line":73,"text":"\t\tforeach ($entries AS $entry)"},{"line":74,"text":"\t\t{"},{"line":75,"text":"\t\t\t$i++;"},{"line":76,"text":""},{"line":77,"text":"\t\t\tif ($i <= $start)"},{"line":78,"text":"\t\t\t{"},{"line":79,"text":"\t\t\t\tcontinue;"},{"line":80,"text":"\t\t\t}"},{"line":81,"text":""},{"line":82,"text":"\t\t\t$type = (string) $entry['route_type'];"},{"line":83,"text":"\t\t\t$prefix = (string) $entry['route_prefix'];"},{"line":84,"text":"\t\t\t$subName = (string) $entry['sub_name'];"},{"line":85,"text":"\t\t\t$entity = $existing[$type][$prefix][$subName] ?? $this->create();"},{"line":86,"text":""},{"line":87,"text":"\t\t\t$entity->setOptions(["},{"line":88,"text":"\t\t\t\t'check_duplicate' => false,"},{"line":89,"text":"\t\t\t]);"},{"line":90,"text":""},{"line":91,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":92,"text":""},{"line":93,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":94,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":95,"text":"\t\t\t$entity->save(true, false);"},{"line":96,"text":""},{"line":97,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":98,"text":"\t\t\t{"},{"line":99,"text":"\t\t\t\t$last = $i;"},{"line":100,"text":"\t\t\t\tbreak;"},{"line":101,"text":"\t\t\t}"},{"line":102,"text":"\t\t}"},{"line":103,"text":"\t\treturn ($last ?: false);"},{"line":104,"text":"\t}"}],"sha256":"ffd5dc9411b761a264810af2241af71c553ab2b409f670305687e9d4d75a34bb","start_line":43}},"template_modifications.xml":{"class":"XF\\AddOn\\DataType\\TemplateModification","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":46,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":28,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":29,"text":"\t{"},{"line":30,"text":"\t\t$entries = $this->finder()"},{"line":31,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":32,"text":"\t\t\t->order(['template', 'modification_key'])->fetch();"},{"line":33,"text":"\t\tforeach ($entries AS $entry)"},{"line":34,"text":"\t\t{"},{"line":35,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":36,"text":""},{"line":37,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":38,"text":""},{"line":39,"text":"\t\t\t$this->exportCdataToNewNode($node, 'find', $entry);"},{"line":40,"text":"\t\t\t$this->exportCdataToNewNode($node, 'replace', $entry);"},{"line":41,"text":""},{"line":42,"text":"\t\t\t$container->appendChild($node);"},{"line":43,"text":"\t\t}"},{"line":44,"text":""},{"line":45,"text":"\t\treturn $entries->count() ? true : false;"},{"line":46,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":28},"getChildTag":{"ok":true,"value":"modification"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":26,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":23,"text":"\tpublic function getChildTag()"},{"line":24,"text":"\t{"},{"line":25,"text":"\t\treturn 'modification';"},{"line":26,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":23},"getContainerTag":{"ok":true,"value":"template_modifications"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":21,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":18,"text":"\tpublic function getContainerTag()"},{"line":19,"text":"\t{"},{"line":20,"text":"\t\treturn 'template_modifications';"},{"line":21,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":18},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":["enabled"]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":158,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":153,"text":"\tprotected function getMaintainedAttributes()"},{"line":154,"text":"\t{"},{"line":155,"text":"\t\treturn ["},{"line":156,"text":"\t\t\t'enabled',"},{"line":157,"text":"\t\t];"},{"line":158,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":153},"getMappedAttributes":{"ok":true,"value":["type","template","modification_key","description","execution_order","enabled","action"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":151,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":140,"text":"\tprotected function getMappedAttributes()"},{"line":141,"text":"\t{"},{"line":142,"text":"\t\treturn ["},{"line":143,"text":"\t\t\t'type',"},{"line":144,"text":"\t\t\t'template',"},{"line":145,"text":"\t\t\t'modification_key',"},{"line":146,"text":"\t\t\t'description',"},{"line":147,"text":"\t\t\t'execution_order',"},{"line":148,"text":"\t\t\t'enabled',"},{"line":149,"text":"\t\t\t'action',"},{"line":150,"text":"\t\t];"},{"line":151,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":140},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":96,"file":"src/XF/AddOn/DataType/TemplateModification.php","lines":[{"line":48,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":49,"text":"\t{"},{"line":50,"text":"\t\t$startTime = microtime(true);"},{"line":51,"text":""},{"line":52,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":53,"text":"\t\tif (!$entries)"},{"line":54,"text":"\t\t{"},{"line":55,"text":"\t\t\treturn false;"},{"line":56,"text":"\t\t}"},{"line":57,"text":""},{"line":58,"text":"\t\t$keys = $this->pluckXmlAttribute($entries, 'modification_key');"},{"line":59,"text":"\t\t$existing = $this->finder()"},{"line":60,"text":"\t\t\t->where('modification_key', $keys)"},{"line":61,"text":"\t\t\t->keyedBy('modification_key')"},{"line":62,"text":"\t\t\t->fetch();"},{"line":63,"text":""},{"line":64,"text":"\t\t$i = 0;"},{"line":65,"text":"\t\t$last = 0;"},{"line":66,"text":"\t\tforeach ($entries AS $entry)"},{"line":67,"text":"\t\t{"},{"line":68,"text":"\t\t\t$i++;"},{"line":69,"text":""},{"line":70,"text":"\t\t\tif ($i <= $start)"},{"line":71,"text":"\t\t\t{"},{"line":72,"text":"\t\t\t\tcontinue;"},{"line":73,"text":"\t\t\t}"},{"line":74,"text":""},{"line":75,"text":"\t\t\t$entity = $existing[(string) $entry['modification_key']] ?? $this->create();"},{"line":76,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":77,"text":"\t\t\t$entity->setOption('hide_errors', true);"},{"line":78,"text":""},{"line":79,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":80,"text":""},{"line":81,"text":"\t\t\t$entity->find = $this->getCdataValue($entry->find);"},{"line":82,"text":"\t\t\t$entity->replace = $this->getCdataValue($entry->replace);"},{"line":83,"text":""},{"line":84,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":85,"text":"\t\t\t$entity->save(true, false);"},{"line":86,"text":""},{"line":87,"text":"\t\t\t\\XF::dequeueRunOnce('styleLastModifiedDate');"},{"line":88,"text":""},{"line":89,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":90,"text":"\t\t\t{"},{"line":91,"text":"\t\t\t\t$last = $i;"},{"line":92,"text":"\t\t\t\tbreak;"},{"line":93,"text":"\t\t\t}"},{"line":94,"text":"\t\t}"},{"line":95,"text":"\t\treturn ($last ?: false);"},{"line":96,"text":"\t}"}],"sha256":"c27e2bb5baa379dcaf0eab73f35fcc62f5ce656fbccbcb4d6ded095d83b4b31a","start_line":48}},"templates.xml":{"class":"XF\\AddOn\\DataType\\Template","exists":true,"exportAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":2},"exportAddOnData_source":{"end_line":42,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":25,"text":"\tpublic function exportAddOnData($addOnId, \\DOMElement $container)"},{"line":26,"text":"\t{"},{"line":27,"text":"\t\t$entries = $this->finder()"},{"line":28,"text":"\t\t\t->where('addon_id', $addOnId)"},{"line":29,"text":"\t\t\t->where('style_id', 0)"},{"line":30,"text":"\t\t\t->order(['type', 'title'])->fetch();"},{"line":31,"text":"\t\tforeach ($entries AS $entry)"},{"line":32,"text":"\t\t{"},{"line":33,"text":"\t\t\t$node = $container->ownerDocument->createElement($this->getChildTag());"},{"line":34,"text":""},{"line":35,"text":"\t\t\t$this->exportMappedAttributes($node, $entry);"},{"line":36,"text":"\t\t\t$this->exportCdata($node, $entry->template);"},{"line":37,"text":""},{"line":38,"text":"\t\t\t$container->appendChild($node);"},{"line":39,"text":"\t\t}"},{"line":40,"text":""},{"line":41,"text":"\t\treturn $entries->count() ? true : false;"},{"line":42,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":25},"getChildTag":{"ok":true,"value":"template"},"getChildTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getChildTag_source":{"end_line":23,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":20,"text":"\tpublic function getChildTag()"},{"line":21,"text":"\t{"},{"line":22,"text":"\t\treturn 'template';"},{"line":23,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":20},"getContainerTag":{"ok":true,"value":"templates"},"getContainerTag_sig":{"params":[],"protected":false,"public":true,"required":0,"static":false,"total":0},"getContainerTag_source":{"end_line":18,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":15,"text":"\tpublic function getContainerTag()"},{"line":16,"text":"\t{"},{"line":17,"text":"\t\treturn 'templates';"},{"line":18,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":15},"getEntityId_sig":null,"getEntityId_source":null,"getEntityShortName_sig":null,"getEntityShortName_source":null,"getMaintainedAttributes":{"ok":true,"value":[]},"getMaintainedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMaintainedAttributes_source":{"end_line":182,"file":"src/XF/AddOn/DataType/AbstractDataType.php","lines":[{"line":179,"text":"\tprotected function getMaintainedAttributes()"},{"line":180,"text":"\t{"},{"line":181,"text":"\t\treturn [];"},{"line":182,"text":"\t}"}],"sha256":"a4f6ec14e4009be0029548b07272dc77c6ad96f4cca4e067a7d3ea0004126815","start_line":179},"getMappedAttributes":{"ok":true,"value":["type","title","version_id","version_string"]},"getMappedAttributes_sig":{"params":[],"protected":true,"public":false,"required":0,"static":false,"total":0},"getMappedAttributes_source":{"end_line":164,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":156,"text":"\tprotected function getMappedAttributes()"},{"line":157,"text":"\t{"},{"line":158,"text":"\t\treturn ["},{"line":159,"text":"\t\t\t'type',"},{"line":160,"text":"\t\t\t'title',"},{"line":161,"text":"\t\t\t'version_id',"},{"line":162,"text":"\t\t\t'version_string',"},{"line":163,"text":"\t\t];"},{"line":164,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":156},"importAddOnData_sig":{"params":[{"name":"addOnId","required":true,"variadic":false},{"name":"container","required":true,"variadic":false},{"name":"start","required":false,"variadic":false},{"name":"maxRunTime","required":false,"variadic":false}],"protected":false,"public":true,"required":2,"static":false,"total":4},"importAddOnData_source":{"end_line":109,"file":"src/XF/AddOn/DataType/Template.php","lines":[{"line":44,"text":"\tpublic function importAddOnData($addOnId, \\SimpleXMLElement $container, $start = 0, $maxRunTime = 0)"},{"line":45,"text":"\t{"},{"line":46,"text":"\t\t$startTime = microtime(true);"},{"line":47,"text":""},{"line":48,"text":"\t\t$entries = $this->getEntries($container, $start);"},{"line":49,"text":"\t\tif (!$entries)"},{"line":50,"text":"\t\t{"},{"line":51,"text":"\t\t\treturn false;"},{"line":52,"text":"\t\t}"},{"line":53,"text":""},{"line":54,"text":"\t\t$conditions = [];"},{"line":55,"text":"\t\tforeach ($entries AS $entry)"},{"line":56,"text":"\t\t{"},{"line":57,"text":"\t\t\t$conditions[] = ["},{"line":58,"text":"\t\t\t\t'type' => (string) $entry['type'],"},{"line":59,"text":"\t\t\t\t'title' => (string) $entry['title'],"},{"line":60,"text":"\t\t\t];"},{"line":61,"text":"\t\t}"},{"line":62,"text":"\t\tif ($conditions)"},{"line":63,"text":"\t\t{"},{"line":64,"text":"\t\t\t$existing = $this->finder()"},{"line":65,"text":"\t\t\t\t->whereOr($conditions)"},{"line":66,"text":"\t\t\t\t->where('style_id', 0)"},{"line":67,"text":"\t\t\t\t->fetch()"},{"line":68,"text":"\t\t\t\t->groupBy('type', 'title');"},{"line":69,"text":"\t\t}"},{"line":70,"text":"\t\telse"},{"line":71,"text":"\t\t{"},{"line":72,"text":"\t\t\t$existing = [];"},{"line":73,"text":"\t\t}"},{"line":74,"text":""},{"line":75,"text":"\t\t$i = 0;"},{"line":76,"text":"\t\t$last = 0;"},{"line":77,"text":""},{"line":78,"text":"\t\tforeach ($entries AS $entry)"},{"line":79,"text":"\t\t{"},{"line":80,"text":"\t\t\t$i++;"},{"line":81,"text":""},{"line":82,"text":"\t\t\tif ($i <= $start)"},{"line":83,"text":"\t\t\t{"},{"line":84,"text":"\t\t\t\tcontinue;"},{"line":85,"text":"\t\t\t}"},{"line":86,"text":""},{"line":87,"text":"\t\t\t$type = (string) $entry['type'];"},{"line":88,"text":"\t\t\t$title = (string) $entry['title'];"},{"line":89,"text":"\t\t\t$entity = $existing[$type][$title] ?? $this->create();"},{"line":90,"text":"\t\t\t$entity->setOption('check_duplicate', false);"},{"line":91,"text":"\t\t\t$entity->setOption('report_modification_errors', false);"},{"line":92,"text":"\t\t\t$entity->getBehavior(DevOutputWritable::class)->setOption('write_dev_output', false);"},{"line":93,"text":""},{"line":94,"text":"\t\t\t$this->importMappedAttributes($entry, $entity);"},{"line":95,"text":"\t\t\t$entity->style_id = 0;"},{"line":96,"text":"\t\t\t$entity->template = $this->getCdataValue($entry);"},{"line":97,"text":"\t\t\t$entity->addon_id = $addOnId;"},{"line":98,"text":"\t\t\t$entity->save(true, false);"},{"line":99,"text":""},{"line":100,"text":"\t\t\t\\XF::dequeueRunOnce('styleLastModifiedDate');"},{"line":101,"text":""},{"line":102,"text":"\t\t\tif ($this->resume($maxRunTime, $startTime))"},{"line":103,"text":"\t\t\t{"},{"line":104,"text":"\t\t\t\t$last = $i;"},{"line":105,"text":"\t\t\t\tbreak;"},{"line":106,"text":"\t\t\t}"},{"line":107,"text":"\t\t}"},{"line":108,"text":"\t\treturn ($last ?: false);"},{"line":109,"text":"\t}"}],"sha256":"fecae5772cfd98cb53672180957a3a50a521d6ee6194dd5d7a346630afb3933a","start_line":44}}},"xf_version_id":2031270},"guest":"newfi-staging","holds":["DB_NOT_CLEAN"],"scope":"READ_ONLY_NO_MUTATION","status":"HOLD","structural":{"code_event_listeners.xml":{"candidate_attrs":["active","callback_class","callback_method","event_id","execute_order"],"candidate_child_tags":["listener"],"candidate_nested_tags":[],"candidate_root":"code_event_listeners","child_runtime":"listener","children_match":true,"container_match":true,"container_runtime":"code_event_listeners"},"content_type_fields.xml":{"candidate_attrs":["content_type","field_name"],"candidate_child_tags":["field"],"candidate_nested_tags":[],"candidate_root":"content_type_fields","child_runtime":"field","children_match":true,"container_match":true,"container_runtime":"content_type_fields"},"option_groups.xml":{"candidate_attrs":["debug_only","display_order","group_id"],"candidate_child_tags":["group"],"candidate_nested_tags":[],"candidate_root":"option_groups","child_runtime":"group","children_match":true,"container_match":true,"container_runtime":"option_groups"},"options.xml":{"candidate_attrs":["data_type","edit_format","option_id"],"candidate_child_tags":["option"],"candidate_nested_tags":["default_value","relation"],"candidate_root":"options","child_runtime":"option","children_match":true,"container_match":true,"container_runtime":"options"},"permission_interface_groups.xml":{"candidate_attrs":["display_order","interface_group_id","is_moderator"],"candidate_child_tags":["interface_group"],"candidate_nested_tags":[],"candidate_root":"permission_interface_groups","child_runtime":"interface_group","children_match":true,"container_match":true,"container_runtime":"permission_interface_groups"},"permissions.xml":{"candidate_attrs":["display_order","interface_group_id","permission_group_id","permission_id","permission_type"],"candidate_child_tags":["permission"],"candidate_nested_tags":[],"candidate_root":"permissions","child_runtime":"permission","children_match":true,"container_match":true,"container_runtime":"permissions"},"phrases.xml":{"candidate_attrs":["title","version_id","version_string"],"candidate_child_tags":["phrase"],"candidate_nested_tags":[],"candidate_root":"phrases","child_runtime":"phrase","children_match":true,"container_match":true,"container_runtime":"phrases"},"routes.xml":{"candidate_attrs":["action_prefix","context","controller","format","route_prefix","route_type","sub_name"],"candidate_child_tags":["route"],"candidate_nested_tags":[],"candidate_root":"routes","child_runtime":"route","children_match":true,"container_match":true,"container_runtime":"routes"},"template_modifications.xml":{"candidate_attrs":["action","description","enabled","execution_order","modification_key","template","type"],"candidate_child_tags":["modification"],"candidate_nested_tags":["find","replace"],"candidate_root":"template_modifications","child_runtime":"modification","children_match":true,"container_match":true,"container_runtime":"template_modifications"},"templates.xml":{"candidate_attrs":["title","type","version_id","version_string"],"candidate_child_tags":["template"],"candidate_nested_tags":[],"candidate_root":"templates","child_runtime":"template","children_match":true,"container_match":true,"container_runtime":"templates"}}}
SUPPORT046_HOLD=RuntimeError
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"SUPPORT-260909-GRAM-XF-DATATYPE-EVIDENCE-046","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1}

OUTPUT_END
CHAT_OUTPUT_END
