summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-09-18 03:08:21 +0000
committerNorbert Preining <norbert@preining.info>2022-09-18 03:08:21 +0000
commitbaa3e10650110291de10e0e8e6a1e48ac4579afe (patch)
tree8eff974515ba91e538c94002db56558182e59a4e
parent9ae94dce28ea17b97ef24019e324353cd6af4dba (diff)
CTAN sync 202209180308
-rw-r--r--FILES.byname4371
-rw-r--r--FILES.byname.gzbin2455070 -> 2454299 bytes
-rw-r--r--FILES.last07days2475
-rw-r--r--fonts/fira/README2
-rw-r--r--fonts/fira/doc/fira-samples.pdfbin144812 -> 993591 bytes
-rw-r--r--fonts/fira/doc/fira-samples.tex3
-rw-r--r--fonts/fira/latex/FiraMono.sty3
-rw-r--r--fonts/fira/latex/FiraSans.sty3
-rw-r--r--fonts/librebaskerville/README2
-rw-r--r--fonts/librebaskerville/latex/LibreBskvl.sty59
-rw-r--r--fonts/librebaskerville/latex/librebaskerville.sty3
-rw-r--r--graphics/asymptote/ChangeLog651
-rw-r--r--graphics/asymptote/GUI/ContextWindow.py320
-rw-r--r--graphics/asymptote/GUI/Window1.py93
-rw-r--r--graphics/asymptote/GUI/xasy2asy.py182
-rw-r--r--graphics/asymptote/GUI/xasyBezierInterface.py8
-rw-r--r--graphics/asymptote/GUI/xasyFile.py14
-rw-r--r--graphics/asymptote/LspCpp/CMakeLists.txt3
-rw-r--r--graphics/asymptote/LspCpp/README.md2
-rw-r--r--graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp326
-rw-r--r--graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp218
-rw-r--r--graphics/asymptote/LspCpp/examples/TcpServerExample.cpp306
-rw-r--r--graphics/asymptote/LspCpp/examples/WebsocketExample.cpp22
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h76
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h52
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h308
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h88
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h82
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h607
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h82
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h62
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h178
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h80
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h86
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h42
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h260
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h380
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h58
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h24
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h584
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h164
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h24
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h212
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h4
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h2024
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h60
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h164
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h34
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h28
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h36
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h4
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h6
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h4
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h14
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h32
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h20
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h18
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h20
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h6
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h18
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h82
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h78
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h20
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h150
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h22
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h4
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h24
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h804
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h576
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h238
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h6
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h170
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h68
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h252
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h66
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h38
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h32
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h58
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h24
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h52
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h30
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h210
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h26
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h22
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h20
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h60
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h54
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h22
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h60
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h60
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h4
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h174
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h384
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h124
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h34
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h20
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h64
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h32
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h50
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h6
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h68
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h6
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h14
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h70
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h16
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h38
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h42
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h16
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h22
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h8
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h26
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h40
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h76
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h12
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h186
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h56
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h2
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h44
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h4
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h28
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h24
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h36
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h10
-rw-r--r--graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h22
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp58
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp68
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp915
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp314
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp166
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp98
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/message.cpp124
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp1846
-rw-r--r--graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp90
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/Markup.cpp34
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp130
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp1228
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/initialize.cpp66
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/lsp.cpp1350
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp112
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/textDocument.cpp518
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/utils.cpp466
-rw-r--r--graphics/asymptote/LspCpp/src/lsp/working_files.cpp4
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp6
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h2
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp2
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp2
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp14
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp14
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp16
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp44
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp2
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp4
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp2
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp4
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp4
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp2
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp6
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h20
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h78
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h24
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h24
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h14
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h18
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h30
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h14
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h16
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h22
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h22
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h42
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h16
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h20
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h42
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h28
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp14
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp12
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp16
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp26
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp26
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp8
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h10
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp48
-rw-r--r--graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp20
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG88
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/COPYING5
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/Jamfile.v213
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/Jamrules1
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt23
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/Makefile32
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/README10
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/TODO36
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp28
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp215
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp85
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp453
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp65
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp115
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp144
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp232
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp70
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp262
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp83
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp99
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp168
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile36
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox145
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt35
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm38
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox145
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt14
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm38
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm17
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm17
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm30
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm29
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html9
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox145
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt205
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm36
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox220
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm40
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css331
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox145
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt207
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm40
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v211
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp200
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v211
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README7
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp50
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v211
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp149
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v211
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp263
-rw-r--r--graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam2
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake4
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make12
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/Doxyfile8
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/Makefile24
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake6
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake4
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake16
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make78
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal158
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make2
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/Makefile72
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake4
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp6
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp6
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp40
-rw-r--r--graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp2
-rw-r--r--graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp6
-rw-r--r--graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h16
-rw-r--r--graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h2
-rw-r--r--graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h2
-rw-r--r--graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h18
-rw-r--r--graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp2
-rw-r--r--graphics/asymptote/ReleaseNotes9
-rw-r--r--graphics/asymptote/asy-keywords.el2
-rw-r--r--graphics/asymptote/asy.list317
-rw-r--r--graphics/asymptote/asymptote.spec2
-rw-r--r--graphics/asymptote/base/graph.asy48
-rw-r--r--graphics/asymptote/base/graph3.asy22
-rw-r--r--graphics/asymptote/base/slopefield.asy10
-rw-r--r--graphics/asymptote/base/three_surface.asy2
-rw-r--r--graphics/asymptote/base/v3dheadertypes.asy2
-rw-r--r--graphics/asymptote/base/v3dtypes.asy2
-rw-r--r--graphics/asymptote/base/webgl/asygl.js2
-rwxr-xr-xgraphics/asymptote/build-scripts/build-asymptote.dos25
-rwxr-xr-xgraphics/asymptote/configure18
-rw-r--r--graphics/asymptote/configure.ac2
-rw-r--r--graphics/asymptote/doc/CAD.pdfbin198570 -> 198487 bytes
-rw-r--r--graphics/asymptote/doc/FAQ/asy-faq.info2
-rw-r--r--graphics/asymptote/doc/TeXShopAndAsymptote.pdfbin81215 -> 81447 bytes
-rw-r--r--graphics/asymptote/doc/asy-latex.pdfbin206981 -> 208908 bytes
-rw-r--r--graphics/asymptote/doc/asyRefCard.pdfbin121145 -> 121145 bytes
-rw-r--r--graphics/asymptote/doc/asymptote.pdfbin1299081 -> 1288702 bytes
-rw-r--r--graphics/asymptote/doc/asymptote.sty404
-rw-r--r--graphics/asymptote/doc/png/asymptote.info84
-rw-r--r--graphics/asymptote/doc/slopefield1.asy4
-rw-r--r--graphics/asymptote/doc/vectorfield.asy2
-rw-r--r--graphics/asymptote/glrender.cc12
-rw-r--r--graphics/asymptote/mathop.h3
-rw-r--r--graphics/asymptote/optional.hpp (renamed from graphics/asymptote/LspCpp/include/optional.hpp)0
-rw-r--r--graphics/asymptote/revision.cc2
-rw-r--r--graphics/asymptote/runpicture.cc105
-rw-r--r--graphics/asymptote/runpicture.in3
-rw-r--r--graphics/asymptote/tests/arith/integer.asy31
-rw-r--r--graphics/asymptote/v3dheadertypes.h2
-rw-r--r--graphics/asymptote/v3dheadertypes.py2
-rw-r--r--graphics/asymptote/v3dtypes.h2
-rw-r--r--graphics/asymptote/v3dtypes.py2
-rw-r--r--graphics/asymptote/webgl/gl.js34
-rw-r--r--macros/generic/unicode-data/BidiBrackets.txt6
-rw-r--r--macros/generic/unicode-data/BidiMirroring.txt8
-rw-r--r--macros/generic/unicode-data/CaseFolding.txt10
-rw-r--r--macros/generic/unicode-data/EastAsianWidth.txt74
-rw-r--r--macros/generic/unicode-data/GraphemeBreakProperty.txt38
-rw-r--r--macros/generic/unicode-data/LineBreak.txt105
-rw-r--r--macros/generic/unicode-data/PropList.txt56
-rw-r--r--macros/generic/unicode-data/README.md6
-rw-r--r--macros/generic/unicode-data/ScriptExtensions.txt10
-rw-r--r--macros/generic/unicode-data/Scripts.txt106
-rw-r--r--macros/generic/unicode-data/SpecialCasing.txt10
-rw-r--r--macros/generic/unicode-data/UnicodeData.txt300
-rw-r--r--macros/generic/unicode-data/WordBreakProperty.txt53
-rw-r--r--macros/generic/unicode-data/emoji-data.txt85
-rw-r--r--macros/generic/unicode-data/load-unicode-data.tex6
-rw-r--r--macros/generic/unicode-data/load-unicode-math-classes.tex2
-rw-r--r--macros/generic/unicode-data/load-unicode-xetex-classes.tex2
-rw-r--r--macros/latex/contrib/calculator/README.md (renamed from macros/latex/contrib/calculator/README)11
-rw-r--r--macros/latex/contrib/calculator/calculator.dtx123
-rw-r--r--macros/latex/contrib/calculator/calculator.ins6
-rw-r--r--macros/latex/contrib/calculator/calculator.pdfbin565260 -> 572138 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.pdfbin511972 -> 511473 bytes
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix-french.tex57
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.dtx141
-rw-r--r--macros/latex/contrib/nicematrix/nicematrix.pdfbin1320819 -> 1325255 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.pdfbin191985 -> 264306 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.tex73
-rw-r--r--macros/latex/contrib/verifiche/verifiche.dtx150
-rw-r--r--macros/latex/contrib/verifiche/verifiche.pdfbin586335 -> 638888 bytes
-rw-r--r--macros/latex/required/babel/base/README.md28
-rw-r--r--macros/latex/required/babel/base/babel.dtx118
-rw-r--r--macros/latex/required/babel/base/babel.ins3
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin883632 -> 885746 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
-rw-r--r--systems/mac/mactex/ExtrasFolder.pdfbin38091 -> 38148 bytes
-rw-r--r--systems/mac/mactex/Licenses.txt4
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb196
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2407272 -> 2406844 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
400 files changed, 17158 insertions, 20150 deletions
diff --git a/FILES.byname b/FILES.byname
index bace97e898..6ef8d75316 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5278,7 +5278,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/09/16 | 91194 | FILES.last07days
+2022/09/17 | 88182 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -41384,8 +41384,8 @@
2011/01/11 | 8893 | fonts/figbas/type1/plrj.pfb
2013/01/25 | 176640 | fonts/figbas.zip
2019/10/10 | 69239 | fonts/fira/doc/Fira_4_3_Change_Log.pdf
-2019/10/14 | 144812 | fonts/fira/doc/fira-samples.pdf
-2019/06/04 | 2576 | fonts/fira/doc/fira-samples.tex
+2022/03/18 | 993591 | fonts/fira/doc/fira-samples.pdf
+2022/03/18 | 2585 | fonts/fira/doc/fira-samples.tex
2019/10/10 | 4393 | fonts/fira/doc/LICENSE
2019/10/10 | 569812 | fonts/fira/doc/TechnicalReportFiraSansItalic.pdf
2019/10/10 | 546766 | fonts/fira/doc/TechnicalReportFiraSans.pdf
@@ -41440,8 +41440,8 @@
2019/10/10 | 2954 | fonts/fira/enc/fir_wpkht5.enc
2019/10/10 | 2761 | fonts/fira/enc/fir_yz65wh.enc
2019/10/10 | 2911 | fonts/fira/enc/fir_znzycj.enc
-2019/10/10 | 4347 | fonts/fira/latex/FiraMono.sty
-2019/10/10 | 9386 | fonts/fira/latex/FiraSans.sty
+2022/09/17 | 4313 | fonts/fira/latex/FiraMono.sty
+2022/09/17 | 9352 | fonts/fira/latex/FiraSans.sty
2019/10/10 | 2571 | fonts/fira/latex/LGRFiraMono-Sup.fd
2019/10/10 | 2571 | fonts/fira/latex/LGRFiraMono-TLF.fd
2019/10/10 | 2616 | fonts/fira/latex/LGRFiraMono-TOsF.fd
@@ -41523,7 +41523,7 @@
2019/10/10 | 504384 | fonts/fira/opentype/FiraSans-Thin.otf
2019/10/10 | 522424 | fonts/fira/opentype/FiraSans-UltraLightItalic.otf
2019/10/10 | 504696 | fonts/fira/opentype/FiraSans-UltraLight.otf
-2020/06/05 | 3151 | fonts/fira/README
+2022/09/17 | 3151 | fonts/fira/README
2019/10/10 | 1544 | fonts/fira/tfm/FiraMono-BoldOblique-sup-lgr--base.tfm
2019/10/10 | 1548 | fonts/fira/tfm/FiraMono-BoldOblique-sup-lgr.tfm
2019/10/10 | 1540 | fonts/fira/tfm/FiraMono-BoldOblique-sup-ly1--base.tfm
@@ -43572,7 +43572,7 @@
2019/10/10 | 1712 | fonts/fira/vf/FiraSans-UltraLight-tosf-sc-t1.vf
2019/10/10 | 1728 | fonts/fira/vf/FiraSans-UltraLight-tosf-t1.vf
2019/10/10 | 600 | fonts/fira/vf/FiraSans-UltraLight-tosf-ts1.vf
-2020/06/06 | 25965953 | fonts/fira.zip
+2022/09/17 | 26811105 | fonts/fira.zip
2006/09/28 | 22 | fonts/foekfont/foekfont.map
2006/09/29 | 93608 | fonts/foekfont/foekfont.pdf
2006/12/04 | 8841 | fonts/foekfont/FoekFont.pfb
@@ -67905,7 +67905,7 @@
2020/07/27 | 2464 | fonts/librebaskerville/doc/FONTLOG.txt
2020/08/01 | 29079 | fonts/librebaskerville/doc/librebaskerville-samples.pdf
2020/08/01 | 303 | fonts/librebaskerville/doc/librebaskerville-samples.tex
-2020/07/27 | 4508 | fonts/librebaskerville/doc/OFL.txt
+2022/09/15 | 4508 | fonts/librebaskerville/doc/OFL.txt
2020/07/27 | 2901 | fonts/librebaskerville/enc/lbskvl_4uz6a2.enc
2020/07/27 | 2996 | fonts/librebaskerville/enc/lbskvl_4yc6wb.enc
2020/07/27 | 3232 | fonts/librebaskerville/enc/lbskvl_6hj2ra.enc
@@ -67915,8 +67915,7 @@
2020/07/27 | 3025 | fonts/librebaskerville/enc/lbskvl_vepvv3.enc
2020/07/27 | 2893 | fonts/librebaskerville/enc/lbskvl_wpcz7d.enc
2020/07/27 | 3048 | fonts/librebaskerville/enc/lbskvl_yeotsr.enc
-2020/08/01 | 1939 | fonts/librebaskerville/latex/librebaskerville.sty
-2020/07/27 | 2293 | fonts/librebaskerville/latex/LibreBskvl.sty
+2022/09/17 | 1905 | fonts/librebaskerville/latex/librebaskerville.sty
2020/07/27 | 2234 | fonts/librebaskerville/latex/LY1LibreBskvl-LF.fd
2020/07/27 | 2267 | fonts/librebaskerville/latex/LY1LibreBskvl-Sup.fd
2020/07/27 | 2234 | fonts/librebaskerville/latex/OT1LibreBskvl-LF.fd
@@ -67925,7 +67924,7 @@
2020/07/27 | 2245 | fonts/librebaskerville/latex/T1LibreBskvl-Sup.fd
2020/07/27 | 2234 | fonts/librebaskerville/latex/TS1LibreBskvl-LF.fd
2020/07/27 | 4067 | fonts/librebaskerville/map/LibreBaskerville.map
-2020/07/31 | 1652 | fonts/librebaskerville/README
+2022/09/17 | 1652 | fonts/librebaskerville/README
2020/07/27 | 2124 | fonts/librebaskerville/tfm/LibreBskvl-BoldItalic-lf-ly1--base.tfm
2020/07/27 | 47240 | fonts/librebaskerville/tfm/LibreBskvl-BoldItalic-lf-ly1.tfm
2020/07/27 | 14160 | fonts/librebaskerville/tfm/LibreBskvl-BoldItalic-lf-ot1.tfm
@@ -68002,7 +68001,7 @@
2020/07/27 | 500 | fonts/librebaskerville/vf/LibreBskvl-Regular-lf-ts1.vf
2020/07/27 | 1672 | fonts/librebaskerville/vf/LibreBskvl-Regular-sup-ly1.vf
2020/07/27 | 1696 | fonts/librebaskerville/vf/LibreBskvl-Regular-sup-t1.vf
-2020/08/01 | 859922 | fonts/librebaskerville.zip
+2022/09/17 | 858874 | fonts/librebaskerville.zip
2017/06/10 | 17274 | fonts/librebodoni/doc/librebodoni-samples.pdf
2017/06/10 | 300 | fonts/librebodoni/doc/librebodoni-samples.tex
2017/06/10 | 4358 | fonts/librebodoni/doc/OFL.txt
@@ -149361,2023 +149360,1971 @@
2012/11/17 | 1096 | graphics/AddTeX2Eps/default.tex
2006/04/17 | 836 | graphics/AddTeX2Eps/readme.txt
2012/11/17 | 5620 | graphics/AddTeX2Eps.zip
-2022/08/06 | 2146 | graphics/asymptote/abs3doutfile.h
-2022/08/06 | 504 | graphics/asymptote/absyn.cc
-2022/08/06 | 1140 | graphics/asymptote/absyn.h
-2022/08/06 | 3297 | graphics/asymptote/access.cc
-2022/08/06 | 2964 | graphics/asymptote/access.h
-2022/08/06 | 2266 | graphics/asymptote/align.h
-2022/08/06 | 886 | graphics/asymptote/angle.h
-2022/08/06 | 18578 | graphics/asymptote/application.cc
-2022/08/06 | 9088 | graphics/asymptote/application.h
-2022/08/06 | 4735 | graphics/asymptote/array.cc
-2022/08/06 | 1975 | graphics/asymptote/array.h
-2022/08/06 | 13980 | graphics/asymptote/arrayop.h
-2022/08/06 | 11541 | graphics/asymptote/aspy.py
-2022/08/06 | 4286 | graphics/asymptote/asy.ico
-2022/08/06 | 17958 | graphics/asymptote/asy-keywords.el
-2022/08/06 | 209457 | graphics/asymptote/asy.list
-2022/08/06 | 1612 | graphics/asymptote/asy-list.pl
-2022/08/06 | 6370 | graphics/asymptote/asymptote.nsi
-2022/08/06 | 3204 | graphics/asymptote/asymptote.spec
-2022/08/06 | 770 | graphics/asymptote/asy.rc
-2022/08/06 | 34 | graphics/asymptote/autogen.sh
-2022/08/06 | 12534 | graphics/asymptote/ax_pthread.m4
-2022/08/06 | 42 | graphics/asymptote/base/animate.asy
-2022/08/06 | 5238 | graphics/asymptote/base/animation.asy
-2022/08/06 | 578 | graphics/asymptote/base/annotate.asy
-2022/08/06 | 99 | graphics/asymptote/base/asy_filetype.vim
-2022/08/06 | 268 | graphics/asymptote/base/asy-init.el
-2022/08/06 | 8240 | graphics/asymptote/base/asy-kate.sh
-2022/08/06 | 71368 | graphics/asymptote/base/asy-mode.el
-2022/08/06 | 1276 | graphics/asymptote/base/asymptote.py
-2022/08/06 | 13477 | graphics/asymptote/base/asy.vim
-2022/08/06 | 50 | graphics/asymptote/base/babel.asy
-2022/08/06 | 9562 | graphics/asymptote/base/bezulate.asy
-2022/08/06 | 11656 | graphics/asymptote/base/binarytree.asy
-2022/08/06 | 5279 | graphics/asymptote/base/bsp.asy
-2022/08/06 | 10840 | graphics/asymptote/base/CAD.asy
-2022/08/06 | 205495 | graphics/asymptote/base/colormap.asy
-2022/08/06 | 14749 | graphics/asymptote/base/contour3.asy
-2022/08/06 | 20277 | graphics/asymptote/base/contour.asy
-2022/08/06 | 2109 | graphics/asymptote/base/drawtree.asy
-2022/08/06 | 1178 | graphics/asymptote/base/embed.asy
-2022/08/06 | 1120 | graphics/asymptote/base/external.asy
-2022/08/06 | 21448 | graphics/asymptote/base/feynman.asy
-2022/08/06 | 15277 | graphics/asymptote/base/flowchart.asy
-2022/08/06 | 35 | graphics/asymptote/base/fontsize.asy
-2022/08/06 | 321820 | graphics/asymptote/base/geometry.asy
-2022/08/06 | 70102 | graphics/asymptote/base/graph3.asy
-2022/08/06 | 64207 | graphics/asymptote/base/graph.asy
-2022/08/06 | 314 | graphics/asymptote/base/graph_settings.asy
-2022/08/06 | 7407 | graphics/asymptote/base/graph_splinetype.asy
-2022/08/06 | 13605 | graphics/asymptote/base/grid3.asy
-2022/08/06 | 3936 | graphics/asymptote/base/interpolate.asy
-2022/08/06 | 2451 | graphics/asymptote/base/labelpath3.asy
-2022/08/06 | 729 | graphics/asymptote/base/labelpath.asy
-2022/08/06 | 25357 | graphics/asymptote/base/lmfit.asy
-2022/08/06 | 908 | graphics/asymptote/base/map.asy
-2022/08/06 | 7302 | graphics/asymptote/base/markers.asy
-2022/08/06 | 11122 | graphics/asymptote/base/math.asy
-2022/08/06 | 251 | graphics/asymptote/base/metapost.asy
-2022/08/06 | 39 | graphics/asymptote/base/nopapersize.ps
-2022/08/06 | 3278 | graphics/asymptote/base/obj.asy
-2022/08/06 | 15601 | graphics/asymptote/base/ode.asy
-2022/08/06 | 15382 | graphics/asymptote/base/palette.asy
-2022/08/06 | 2649 | graphics/asymptote/base/patterns.asy
-2022/08/06 | 1213 | graphics/asymptote/base/plain_arcs.asy
-2022/08/06 | 19729 | graphics/asymptote/base/plain_arrows.asy
-2022/08/06 | 7634 | graphics/asymptote/base/plain.asy
-2022/08/06 | 20989 | graphics/asymptote/base/plain_bounds.asy
-2022/08/06 | 4088 | graphics/asymptote/base/plain_boxes.asy
-2022/08/06 | 3706 | graphics/asymptote/base/plain_constants.asy
-2022/08/06 | 2187 | graphics/asymptote/base/plain_debugger.asy
-2022/08/06 | 6278 | graphics/asymptote/base/plain_filldraw.asy
-2022/08/06 | 16492 | graphics/asymptote/base/plain_Label.asy
-2022/08/06 | 2310 | graphics/asymptote/base/plain_margins.asy
-2022/08/06 | 11373 | graphics/asymptote/base/plain_markers.asy
-2022/08/06 | 9334 | graphics/asymptote/base/plain_paths.asy
-2022/08/06 | 8711 | graphics/asymptote/base/plain_pens.asy
-2022/08/06 | 46531 | graphics/asymptote/base/plain_picture.asy
-2022/08/06 | 6287 | graphics/asymptote/base/plain_prethree.asy
-2022/08/06 | 5735 | graphics/asymptote/base/plain_scaling.asy
-2022/08/06 | 4487 | graphics/asymptote/base/plain_shipout.asy
-2022/08/06 | 6159 | graphics/asymptote/base/plain_strings.asy
-2022/08/06 | 354 | graphics/asymptote/base/pstoedit.asy
-2022/08/06 | 5521 | graphics/asymptote/base/rational.asy
-2022/08/06 | 9826 | graphics/asymptote/base/rationalSimplex.asy
-2022/08/06 | 657 | graphics/asymptote/base/reload.js
-2022/08/06 | 289 | graphics/asymptote/base/res/notes.txt
-2022/08/06 | 3374 | graphics/asymptote/base/roundedpath.asy
-2022/08/06 | 3346 | graphics/asymptote/base/shaders/blend.glsl
-2022/08/06 | 419 | graphics/asymptote/base/shaders/compress.glsl
-2022/08/06 | 301 | graphics/asymptote/base/shaders/count.glsl
-2022/08/06 | 6714 | graphics/asymptote/base/shaders/fragment.glsl
-2022/08/06 | 129 | graphics/asymptote/base/shaders/screen.glsl
-2022/08/06 | 730 | graphics/asymptote/base/shaders/sum1.glsl
-2022/08/06 | 1316 | graphics/asymptote/base/shaders/sum2fast.glsl
-2022/08/06 | 848 | graphics/asymptote/base/shaders/sum2.glsl
-2022/08/06 | 1752 | graphics/asymptote/base/shaders/sum3.glsl
-2022/08/06 | 677 | graphics/asymptote/base/shaders/vertex.glsl
-2022/08/06 | 192 | graphics/asymptote/base/shaders/zero.glsl
-2022/08/06 | 8342 | graphics/asymptote/base/simplex.asy
-2022/08/06 | 608 | graphics/asymptote/base/size10.asy
-2022/08/06 | 600 | graphics/asymptote/base/size11.asy
-2022/08/06 | 16089 | graphics/asymptote/base/slide.asy
-2022/08/06 | 2031 | graphics/asymptote/base/slopefield.asy
-2022/08/06 | 55991 | graphics/asymptote/base/smoothcontour3.asy
-2022/08/06 | 12012 | graphics/asymptote/base/solids.asy
-2022/08/06 | 8014 | graphics/asymptote/base/stats.asy
-2022/08/06 | 22946 | graphics/asymptote/base/syzygy.asy
-2022/08/06 | 2277 | graphics/asymptote/base/texcolors.asy
-2022/08/06 | 23717 | graphics/asymptote/base/three_arrows.asy
-2022/08/06 | 85989 | graphics/asymptote/base/three.asy
-2022/08/06 | 3719 | graphics/asymptote/base/three_light.asy
-2022/08/06 | 2492 | graphics/asymptote/base/three_margins.asy
-2022/08/06 | 72889 | graphics/asymptote/base/three_surface.asy
-2022/08/06 | 5975 | graphics/asymptote/base/three_tube.asy
-2022/08/06 | 1375 | graphics/asymptote/base/tree.asy
-2022/08/06 | 5789 | graphics/asymptote/base/trembling.asy
-2022/08/06 | 4992 | graphics/asymptote/base/tube.asy
-2022/08/06 | 15004 | graphics/asymptote/base/v3d.asy
-2022/08/06 | 1337 | graphics/asymptote/base/v3dheadertypes.asy
-2022/08/06 | 670 | graphics/asymptote/base/v3dtypes.asy
-2022/08/06 | 66352 | graphics/asymptote/base/webgl/asygl.js
-2022/08/06 | 4811 | graphics/asymptote/base/x11colors.asy
-2022/08/06 | 3640 | graphics/asymptote/bbox3.h
-2022/08/06 | 4514 | graphics/asymptote/bbox.h
-2022/08/06 | 1828 | graphics/asymptote/beziercurve.cc
-2022/08/06 | 1280 | graphics/asymptote/beziercurve.h
-2022/08/06 | 25651 | graphics/asymptote/bezierpatch.cc
-2022/08/06 | 5712 | graphics/asymptote/bezierpatch.h
+2022/09/17 | 2146 | graphics/asymptote/abs3doutfile.h
+2022/09/17 | 504 | graphics/asymptote/absyn.cc
+2022/09/17 | 1140 | graphics/asymptote/absyn.h
+2022/09/17 | 3297 | graphics/asymptote/access.cc
+2022/09/17 | 2964 | graphics/asymptote/access.h
+2022/09/17 | 2266 | graphics/asymptote/align.h
+2022/09/17 | 886 | graphics/asymptote/angle.h
+2022/09/17 | 18578 | graphics/asymptote/application.cc
+2022/09/17 | 9088 | graphics/asymptote/application.h
+2022/09/17 | 4735 | graphics/asymptote/array.cc
+2022/09/17 | 1975 | graphics/asymptote/array.h
+2022/09/17 | 13980 | graphics/asymptote/arrayop.h
+2022/09/17 | 11541 | graphics/asymptote/aspy.py
+2022/09/17 | 4286 | graphics/asymptote/asy.ico
+2022/09/17 | 17958 | graphics/asymptote/asy-keywords.el
+2022/09/17 | 209259 | graphics/asymptote/asy.list
+2022/09/17 | 1612 | graphics/asymptote/asy-list.pl
+2022/09/17 | 6370 | graphics/asymptote/asymptote.nsi
+2022/09/17 | 3204 | graphics/asymptote/asymptote.spec
+2022/09/17 | 770 | graphics/asymptote/asy.rc
+2022/09/17 | 34 | graphics/asymptote/autogen.sh
+2022/09/17 | 12534 | graphics/asymptote/ax_pthread.m4
+2022/09/17 | 42 | graphics/asymptote/base/animate.asy
+2022/09/17 | 5238 | graphics/asymptote/base/animation.asy
+2022/09/17 | 578 | graphics/asymptote/base/annotate.asy
+2022/09/17 | 99 | graphics/asymptote/base/asy_filetype.vim
+2022/09/17 | 268 | graphics/asymptote/base/asy-init.el
+2022/09/17 | 8240 | graphics/asymptote/base/asy-kate.sh
+2022/09/17 | 71368 | graphics/asymptote/base/asy-mode.el
+2022/09/17 | 1276 | graphics/asymptote/base/asymptote.py
+2022/09/17 | 13477 | graphics/asymptote/base/asy.vim
+2022/09/17 | 50 | graphics/asymptote/base/babel.asy
+2022/09/17 | 9562 | graphics/asymptote/base/bezulate.asy
+2022/09/17 | 11656 | graphics/asymptote/base/binarytree.asy
+2022/09/17 | 5279 | graphics/asymptote/base/bsp.asy
+2022/09/17 | 10840 | graphics/asymptote/base/CAD.asy
+2022/09/17 | 205495 | graphics/asymptote/base/colormap.asy
+2022/09/17 | 14749 | graphics/asymptote/base/contour3.asy
+2022/09/17 | 20277 | graphics/asymptote/base/contour.asy
+2022/09/17 | 2109 | graphics/asymptote/base/drawtree.asy
+2022/09/17 | 1178 | graphics/asymptote/base/embed.asy
+2022/09/17 | 1120 | graphics/asymptote/base/external.asy
+2022/09/17 | 21448 | graphics/asymptote/base/feynman.asy
+2022/09/17 | 15277 | graphics/asymptote/base/flowchart.asy
+2022/09/17 | 35 | graphics/asymptote/base/fontsize.asy
+2022/09/17 | 321820 | graphics/asymptote/base/geometry.asy
+2022/09/17 | 70145 | graphics/asymptote/base/graph3.asy
+2022/09/17 | 64114 | graphics/asymptote/base/graph.asy
+2022/09/17 | 314 | graphics/asymptote/base/graph_settings.asy
+2022/09/17 | 7407 | graphics/asymptote/base/graph_splinetype.asy
+2022/09/17 | 13605 | graphics/asymptote/base/grid3.asy
+2022/09/17 | 3936 | graphics/asymptote/base/interpolate.asy
+2022/09/17 | 2451 | graphics/asymptote/base/labelpath3.asy
+2022/09/17 | 729 | graphics/asymptote/base/labelpath.asy
+2022/09/17 | 25357 | graphics/asymptote/base/lmfit.asy
+2022/09/17 | 908 | graphics/asymptote/base/map.asy
+2022/09/17 | 7302 | graphics/asymptote/base/markers.asy
+2022/09/17 | 11122 | graphics/asymptote/base/math.asy
+2022/09/17 | 251 | graphics/asymptote/base/metapost.asy
+2022/09/17 | 39 | graphics/asymptote/base/nopapersize.ps
+2022/09/17 | 3278 | graphics/asymptote/base/obj.asy
+2022/09/17 | 15601 | graphics/asymptote/base/ode.asy
+2022/09/17 | 15382 | graphics/asymptote/base/palette.asy
+2022/09/17 | 2649 | graphics/asymptote/base/patterns.asy
+2022/09/17 | 1213 | graphics/asymptote/base/plain_arcs.asy
+2022/09/17 | 19729 | graphics/asymptote/base/plain_arrows.asy
+2022/09/17 | 7634 | graphics/asymptote/base/plain.asy
+2022/09/17 | 20989 | graphics/asymptote/base/plain_bounds.asy
+2022/09/17 | 4088 | graphics/asymptote/base/plain_boxes.asy
+2022/09/17 | 3706 | graphics/asymptote/base/plain_constants.asy
+2022/09/17 | 2187 | graphics/asymptote/base/plain_debugger.asy
+2022/09/17 | 6278 | graphics/asymptote/base/plain_filldraw.asy
+2022/09/17 | 16492 | graphics/asymptote/base/plain_Label.asy
+2022/09/17 | 2310 | graphics/asymptote/base/plain_margins.asy
+2022/09/17 | 11373 | graphics/asymptote/base/plain_markers.asy
+2022/09/17 | 9334 | graphics/asymptote/base/plain_paths.asy
+2022/09/17 | 8711 | graphics/asymptote/base/plain_pens.asy
+2022/09/17 | 46531 | graphics/asymptote/base/plain_picture.asy
+2022/09/17 | 6287 | graphics/asymptote/base/plain_prethree.asy
+2022/09/17 | 5735 | graphics/asymptote/base/plain_scaling.asy
+2022/09/17 | 4487 | graphics/asymptote/base/plain_shipout.asy
+2022/09/17 | 6159 | graphics/asymptote/base/plain_strings.asy
+2022/09/17 | 354 | graphics/asymptote/base/pstoedit.asy
+2022/09/17 | 5521 | graphics/asymptote/base/rational.asy
+2022/09/17 | 9826 | graphics/asymptote/base/rationalSimplex.asy
+2022/09/17 | 657 | graphics/asymptote/base/reload.js
+2022/09/17 | 289 | graphics/asymptote/base/res/notes.txt
+2022/09/17 | 3374 | graphics/asymptote/base/roundedpath.asy
+2022/09/17 | 3346 | graphics/asymptote/base/shaders/blend.glsl
+2022/09/17 | 419 | graphics/asymptote/base/shaders/compress.glsl
+2022/09/17 | 301 | graphics/asymptote/base/shaders/count.glsl
+2022/09/17 | 6714 | graphics/asymptote/base/shaders/fragment.glsl
+2022/09/17 | 129 | graphics/asymptote/base/shaders/screen.glsl
+2022/09/17 | 730 | graphics/asymptote/base/shaders/sum1.glsl
+2022/09/17 | 1316 | graphics/asymptote/base/shaders/sum2fast.glsl
+2022/09/17 | 848 | graphics/asymptote/base/shaders/sum2.glsl
+2022/09/17 | 1752 | graphics/asymptote/base/shaders/sum3.glsl
+2022/09/17 | 677 | graphics/asymptote/base/shaders/vertex.glsl
+2022/09/17 | 192 | graphics/asymptote/base/shaders/zero.glsl
+2022/09/17 | 8342 | graphics/asymptote/base/simplex.asy
+2022/09/17 | 608 | graphics/asymptote/base/size10.asy
+2022/09/17 | 600 | graphics/asymptote/base/size11.asy
+2022/09/17 | 16089 | graphics/asymptote/base/slide.asy
+2022/09/17 | 1971 | graphics/asymptote/base/slopefield.asy
+2022/09/17 | 55991 | graphics/asymptote/base/smoothcontour3.asy
+2022/09/17 | 12012 | graphics/asymptote/base/solids.asy
+2022/09/17 | 8014 | graphics/asymptote/base/stats.asy
+2022/09/17 | 22946 | graphics/asymptote/base/syzygy.asy
+2022/09/17 | 2277 | graphics/asymptote/base/texcolors.asy
+2022/09/17 | 23717 | graphics/asymptote/base/three_arrows.asy
+2022/09/17 | 85989 | graphics/asymptote/base/three.asy
+2022/09/17 | 3719 | graphics/asymptote/base/three_light.asy
+2022/09/17 | 2492 | graphics/asymptote/base/three_margins.asy
+2022/09/17 | 72887 | graphics/asymptote/base/three_surface.asy
+2022/09/17 | 5975 | graphics/asymptote/base/three_tube.asy
+2022/09/17 | 1375 | graphics/asymptote/base/tree.asy
+2022/09/17 | 5789 | graphics/asymptote/base/trembling.asy
+2022/09/17 | 4992 | graphics/asymptote/base/tube.asy
+2022/09/17 | 15004 | graphics/asymptote/base/v3d.asy
+2022/09/17 | 1337 | graphics/asymptote/base/v3dheadertypes.asy
+2022/09/17 | 670 | graphics/asymptote/base/v3dtypes.asy
+2022/09/17 | 66482 | graphics/asymptote/base/webgl/asygl.js
+2022/09/17 | 4811 | graphics/asymptote/base/x11colors.asy
+2022/09/17 | 3640 | graphics/asymptote/bbox3.h
+2022/09/17 | 4514 | graphics/asymptote/bbox.h
+2022/09/17 | 1828 | graphics/asymptote/beziercurve.cc
+2022/09/17 | 1280 | graphics/asymptote/beziercurve.h
+2022/09/17 | 25651 | graphics/asymptote/bezierpatch.cc
+2022/09/17 | 5712 | graphics/asymptote/bezierpatch.h
2022/01/31 | 3281267 | graphics/asymptote/binaries/i386-windows/cygwin1.dll
-2022/08/06 | 2505 | graphics/asymptote/binaries/i386-windows/README
-2022/08/07 | 8436736 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
+2022/09/17 | 2505 | graphics/asymptote/binaries/i386-windows/README
+2022/09/17 | 8436736 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
2020/08/06 | 297 | graphics/asymptote/binaries/i386-windows/texlive/README
2022/05/13 | 3569593 | graphics/asymptote/binaries/x86_64-windows/cygwin1.dll
-2022/08/06 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
-2022/08/07 | 8318976 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
+2022/09/17 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
+2022/09/17 | 8318976 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
2020/08/06 | 297 | graphics/asymptote/binaries/x86_64-windows/texlive/README
-2022/08/06 | 242 | graphics/asymptote/BUGS
-2022/08/06 | 1588 | graphics/asymptote/build-scripts/asy-format.el
-2022/08/06 | 210 | graphics/asymptote/build-scripts/asy-indent.el
-2022/08/06 | 1232 | graphics/asymptote/build-scripts/build-asygl
-2022/08/06 | 2471 | graphics/asymptote/build-scripts/build-asymptote
-2022/08/06 | 3556 | graphics/asymptote/build-scripts/build-asymptote.dos
-2022/08/06 | 1578 | graphics/asymptote/build-scripts/cc-format.el
-2022/08/06 | 183 | graphics/asymptote/build-scripts/cc-indent.el
-2022/08/06 | 2239 | graphics/asymptote/build-scripts/HOWTO-MSWindows
-2022/08/06 | 297 | graphics/asymptote/build-scripts/README-binaries
-2022/08/06 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
-2022/08/06 | 31342 | graphics/asymptote/builtin.cc
-2022/08/06 | 1630 | graphics/asymptote/builtin.h
-2022/08/06 | 1151 | graphics/asymptote/callable.cc
-2022/08/06 | 1640 | graphics/asymptote/callable.h
-2022/08/06 | 1190 | graphics/asymptote/camperror.cc
-2022/08/06 | 814 | graphics/asymptote/camperror.h
-2022/08/06 | 13357 | graphics/asymptote/camp.l
-2022/08/06 | 130266 | graphics/asymptote/camp.tab.cc
-2022/08/06 | 6190 | graphics/asymptote/camp.tab.h
-2022/08/06 | 20029 | graphics/asymptote/camp.y
-2022/08/06 | 4629 | graphics/asymptote/castop.h
-2022/08/06 | 1876 | graphics/asymptote/cc-mode2.el
-2022/08/06 | 1640960 | graphics/asymptote/ChangeLog
-2022/08/06 | 7790 | graphics/asymptote/coder.cc
-2022/08/06 | 11642 | graphics/asymptote/coder.h
-2022/08/06 | 1126 | graphics/asymptote/coenv.cc
-2022/08/06 | 908 | graphics/asymptote/coenv.h
-2022/08/06 | 2187 | graphics/asymptote/common.h
-2022/08/06 | 48441 | graphics/asymptote/config.guess
-2022/08/06 | 7260 | graphics/asymptote/config.h.in
-2022/08/06 | 31609 | graphics/asymptote/config.sub
-2022/08/06 | 293655 | graphics/asymptote/configure
-2022/08/06 | 17405 | graphics/asymptote/configure.ac
-2022/08/06 | 26 | graphics/asymptote/_config.yml
-2022/08/06 | 3676 | graphics/asymptote/constructor.cc
-2022/08/06 | 241 | graphics/asymptote/cudareflect/common.h
-2022/08/06 | 2514 | graphics/asymptote/cudareflect/EXRFiles.cc
-2022/08/06 | 1406 | graphics/asymptote/cudareflect/EXRFiles.h
-2022/08/06 | 883 | graphics/asymptote/cudareflect/helper.cuh
-2022/08/06 | 1070 | graphics/asymptote/cudareflect/IrradianceGenerator.sln
-2022/08/06 | 5820 | graphics/asymptote/cudareflect/IrradianceGenerator.vcxproj
-2022/08/06 | 4371 | graphics/asymptote/cudareflect/kernel.cu
-2022/08/06 | 445 | graphics/asymptote/cudareflect/kernel.h
-2022/08/06 | 7780 | graphics/asymptote/cudareflect/main.cc
-2022/08/06 | 548 | graphics/asymptote/cudareflect/Makefile
-2022/08/06 | 8519 | graphics/asymptote/cudareflect/ReflectanceMapper.cu
-2022/08/06 | 443 | graphics/asymptote/cudareflect/ReflectanceMapper.cuh
-2022/08/06 | 2598 | graphics/asymptote/cudareflect/simpson.cuh
-2022/08/06 | 242 | graphics/asymptote/cudareflect/tinyexr/appveyor.yml
-2022/08/06 | 1127425 | graphics/asymptote/cudareflect/tinyexr/asakusa.exr
-2022/08/06 | 202947 | graphics/asymptote/cudareflect/tinyexr/asakusa.png
-2022/08/06 | 366 | graphics/asymptote/cudareflect/tinyexr.cc
-2022/08/06 | 2479 | graphics/asymptote/cudareflect/tinyexr/CMakeLists.txt
-2022/08/06 | 2011 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/asan-wrapper
-2022/08/06 | 2144 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindASan.cmake
-2022/08/06 | 2292 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindMSan.cmake
-2022/08/06 | 3737 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindSanitizers.cmake
-2022/08/06 | 2555 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindTSan.cmake
-2022/08/06 | 1696 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindUBSan.cmake
-2022/08/06 | 7684 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/sanitize-helpers.cmake
-2022/08/06 | 1896 | graphics/asymptote/cudareflect/tinyexr/config-msvc.py
-2022/08/06 | 16705 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/ChangeLog.md
-2022/08/06 | 3109 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example1.c
-2022/08/06 | 6551 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example2.c
-2022/08/06 | 6726 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example3.c
-2022/08/06 | 2675 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example4.c
-2022/08/06 | 10571 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example5.c
-2022/08/06 | 4172 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example6.c
-2022/08/06 | 1162 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/LICENSE
-2022/08/06 | 319839 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.c
-2022/08/06 | 69441 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.h
-2022/08/06 | 4254 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/readme.md
-2022/08/06 | 39458 | graphics/asymptote/cudareflect/tinyexr/examples/common/cxxopts.hpp
-2022/08/06 | 260289 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image.h
-2022/08/06 | 113565 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image_resize.h
-2022/08/06 | 37685 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image_write.h
-2022/08/06 | 12630 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/cube2longlat.cc
-2022/08/06 | 569 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/Makefile
-2022/08/06 | 1072 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/README.md
-2022/08/06 | 3790199 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/deepview_screencast.gif
-2022/08/06 | 6553 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/main.cc
-2022/08/06 | 146 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/Makefile
-2022/08/06 | 8456 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/trackball.cc
-2022/08/06 | 3284 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/trackball.h
-2022/08/06 | 5323 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/exr2fptiff.cc
-2022/08/06 | 687 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/Makefile
-2022/08/06 | 117 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/README.md
-2022/08/06 | 37135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/tiny_dng_writer.h
-2022/08/06 | 3135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2ldr/exr2ldr.cc
-2022/08/06 | 189 | graphics/asymptote/cudareflect/tinyexr/examples/exr2ldr/Makefile
-2022/08/06 | 612 | graphics/asymptote/cudareflect/tinyexr/examples/exr2rgbe/exr2rgbe.cc
-2022/08/06 | 161 | graphics/asymptote/cudareflect/tinyexr/examples/exr2rgbe/Makefile
-2022/08/06 | 4635 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/exrfilter.cc
-2022/08/06 | 173 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/Makefile
-2022/08/06 | 88 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/README.md
-2022/08/06 | 190044 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/DroidSans.ttf
-2022/08/06 | 1198 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/exr-io.cc
-2022/08/06 | 248 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/exr-io.h
-2022/08/06 | 2741 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/findOpenGLGlewGlut.lua
-2022/08/06 | 15018 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/main.cc
-2022/08/06 | 13867 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear_btgui_gl2.h
-2022/08/06 | 952118 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear.h
-2022/08/06 | 2939 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/CommonWindowInterface.h
-2022/08/06 | 2514 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h
-2022/08/06 | 34316 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.mm
-2022/08/06 | 1648 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/OpenGL2Include.h
-2022/08/06 | 1813 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/OpenGLInclude.h
-2022/08/06 | 1318 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32InternalWindowData.h
-2022/08/06 | 4384 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.cpp
-2022/08/06 | 1753 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.h
-2022/08/06 | 18991 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32Window.cpp
-2022/08/06 | 2543 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32Window.h
-2022/08/06 | 36526 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.cpp
-2022/08/06 | 2040 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.h
-2022/08/06 | 2605 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/premake4.lua
-2022/08/06 | 1287 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/README.md
-2022/08/06 | 1044671 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/screenshots/exrview.png
-2022/08/06 | 235 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/shader.frag
-2022/08/06 | 186 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/shader.vert
-2022/08/06 | 989121 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glew.h
-2022/08/06 | 71994 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glxew.h
-2022/08/06 | 62206 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/wglew.h
-2022/08/06 | 968193 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/glew.c
-2022/08/06 | 820 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/LICENSE
-2022/08/06 | 4602 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/README.md
-2022/08/06 | 100007 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_cocoa.png
-2022/08/06 | 63193 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_gtk3.png
-2022/08/06 | 16188 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_win8.png
-2022/08/06 | 388 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/common.h
-2022/08/06 | 1733 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/include/nfd.h
-2022/08/06 | 6117 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_cocoa.m
-2022/08/06 | 2772 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.c
-2022/08/06 | 615 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.h
-2022/08/06 | 9022 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_gtk.c
-2022/08/06 | 17346 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_win.cpp
-2022/08/06 | 2477 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/SConstruct
-2022/08/06 | 1688 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/SConstruct
-2022/08/06 | 530 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialog.c
-2022/08/06 | 741 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialogmultiple.c
-2022/08/06 | 533 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_savedialog.c
-2022/08/06 | 2554 | graphics/asymptote/cudareflect/tinyexr/examples/ldr2exr/ldr2exr.cc
-2022/08/06 | 157 | graphics/asymptote/cudareflect/tinyexr/examples/ldr2exr/Makefile
-2022/08/06 | 6772 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/main.cc
-2022/08/06 | 167 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/Makefile
-2022/08/06 | 323 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/README.md
-2022/08/06 | 188 | graphics/asymptote/cudareflect/tinyexr/examples/resize/Makefile
-2022/08/06 | 1101 | graphics/asymptote/cudareflect/tinyexr/examples/resize/resize.cc
-2022/08/06 | 159 | graphics/asymptote/cudareflect/tinyexr/examples/rgbe2exr/Makefile
-2022/08/06 | 2272 | graphics/asymptote/cudareflect/tinyexr/examples/rgbe2exr/rgbe2exr.cc
-2022/08/06 | 174 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/Makefile
-2022/08/06 | 289 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/README.md
-2022/08/06 | 1950 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/testmapgen.cc
-2022/08/06 | 1955 | graphics/asymptote/cudareflect/tinyexr/experimental/js/binding.cc
-2022/08/06 | 494 | graphics/asymptote/cudareflect/tinyexr/experimental/js/compile_to_js.sh
-2022/08/06 | 1131 | graphics/asymptote/cudareflect/tinyexr/experimental/js/index.html
-2022/08/06 | 25 | graphics/asymptote/cudareflect/tinyexr/experimental/js/Makefile
-2022/08/06 | 612 | graphics/asymptote/cudareflect/tinyexr/experimental/js/README.md
-2022/08/06 | 495 | graphics/asymptote/cudareflect/tinyexr/experimental/js/test.js
-2022/08/06 | 223 | graphics/asymptote/cudareflect/tinyexr/jni/Android.mk
-2022/08/06 | 41 | graphics/asymptote/cudareflect/tinyexr/jni/Application.mk
-2022/08/06 | 160 | graphics/asymptote/cudareflect/tinyexr/jni/Makefile
-2022/08/06 | 108 | graphics/asymptote/cudareflect/tinyexr/jni/README.md
-2022/08/06 | 10561 | graphics/asymptote/cudareflect/tinyexr/kuroga.py
-2022/08/06 | 509 | graphics/asymptote/cudareflect/tinyexr/Makefile
-2022/08/06 | 437 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw
-2022/08/06 | 407 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw-msys
-2022/08/06 | 535 | graphics/asymptote/cudareflect/tinyexr/Makefile.llvm-mingw
-2022/08/06 | 1156 | graphics/asymptote/cudareflect/tinyexr/premake4.lua
-2022/08/06 | 17614 | graphics/asymptote/cudareflect/tinyexr/README.md
-2022/08/06 | 173 | graphics/asymptote/cudareflect/tinyexr/test/c-binding/Makefile
-2022/08/06 | 283 | graphics/asymptote/cudareflect/tinyexr/test/c-binding/test.c
-2022/08/06 | 339 | graphics/asymptote/cudareflect/tinyexr/test/CMakeLists.txt
-2022/08/06 | 3601 | graphics/asymptote/cudareflect/tinyexr/test/exrcat/exrcat.cpp
-2022/08/06 | 4116 | graphics/asymptote/cudareflect/tinyexr/test/exrwrite/exrwritetest.cpp
-2022/08/06 | 831 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/fuzz.cc
-2022/08/06 | 64 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-62-tinyexr_memcpy_heap-buffer-overflow
-2022/08/06 | 503 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-63-tinyexr_signed-integer-overflow
-2022/08/06 | 20829 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-77-heap-buffer-overflow
-2022/08/06 | 709 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/Makefile
-2022/08/06 | 185 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/README.md
-2022/08/06 | 1548 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/main.py
-2022/08/06 | 61 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/README.md
-2022/08/06 | 28 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/requirements.txt
-2022/08/06 | 15617 | graphics/asymptote/cudareflect/tinyexr/test_tinyexr.cc
-2022/08/06 | 376913 | graphics/asymptote/cudareflect/tinyexr/test/unit/catch.hpp
-2022/08/06 | 867 | graphics/asymptote/cudareflect/tinyexr/test/unit/config-msvc.py
-2022/08/06 | 1347 | graphics/asymptote/cudareflect/tinyexr/test/unit/config-posix.py
-2022/08/06 | 10563 | graphics/asymptote/cudareflect/tinyexr/test/unit/kuroga.py
-2022/08/06 | 400 | graphics/asymptote/cudareflect/tinyexr/test/unit/Makefile
-2022/08/06 | 401 | graphics/asymptote/cudareflect/tinyexr/test/unit/README.md
-2022/08/06 | 395 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/2by2.exr
-2022/08/06 | 4731 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/flaga.exr
-2022/08/06 | 155069 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/issue-160-piz-decode.exr
-2022/08/06 | 327 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/piz-bug-issue-100.exr
-2022/08/06 | 473703 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-1383755b301e5f505b2198dc0508918b537fdf48bbfc6deeffe268822e6f6cd6
-2022/08/06 | 630 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-24322747c47e87a10e4407528b779a1a763a48135384909b3d1010bbba1d4c28_min
-2022/08/06 | 832 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-255456016cca60ddb5c5ed6898182e13739bf687b17d1411e97bb60ad95e7a84_min
-2022/08/06 | 4738 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-360c3b0555cb979ca108f2d178cf8a80959cfeabaa4ec1d310d062fa653a8c6b_min
-2022/08/06 | 4471 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-3f1f642c3356fd8e8d2a0787613ec09a56572b3a1e38c9629b6db9e8dead1117_min
-2022/08/06 | 298 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-5ace655ef080932dcc7e4abc9eab1d4f82c845453464993dfa3eb6c5822a1621
-2022/08/06 | 678 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-5b66774a7498c635334ad386be0c3b359951738ac47f14878a3346d1c6ea0fe5_min
-2022/08/06 | 132 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-d5c9c893e559277a3320c196523095b94db93985620ac338d037487e0e613047_min
-2022/08/06 | 15 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-df76d1f27adb8927a1446a603028272140905c168a336128465a1162ec7af270.mini
-2022/08/06 | 473695 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-e7fa6404daa861369d2172fe68e08f9d38c0989f57da7bcfb510bab67e19ca9f
-2022/08/06 | 793 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-eedff3a9e99eb1c0fd3a3b0989e7c44c0a69f04f10b23e5264f362a4773f4397_min
-2022/08/06 | 15 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-efe9007bfdcbbe8a1569bf01fa9acadb8261ead49cb83f6e91fcdc4dae2e99a3_min
-2022/08/06 | 335 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/tiled_half_1x1_alpha.exr
-2022/08/06 | 52750 | graphics/asymptote/cudareflect/tinyexr/test/unit/tester.cc
-2022/08/06 | 133 | graphics/asymptote/cudareflect/tinyexr/test/unit/vcbuild.bat
-2022/08/06 | 50 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf16le.inc
-2022/08/06 | 31 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf8.inc
-2022/08/06 | 121 | graphics/asymptote/cudareflect/tinyexr/tinyexr.cc
-2022/08/06 | 270497 | graphics/asymptote/cudareflect/tinyexr/tinyexr.h
-2022/08/06 | 317 | graphics/asymptote/cudareflect/tinyexr/vcbuild.bat
-2022/08/06 | 85 | graphics/asymptote/cudareflect/tinyexr/vcsetup2019.bat
-2022/08/06 | 1950 | graphics/asymptote/cudareflect/utils.cuh
-2022/08/06 | 26693 | graphics/asymptote/dec.cc
-2022/08/06 | 17734 | graphics/asymptote/dec.h
-2022/08/06 | 5883 | graphics/asymptote/Delaunay.cc
-2022/08/06 | 384 | graphics/asymptote/Delaunay.h
-2022/08/06 | 9114 | graphics/asymptote/doc/asy.1
-2022/08/06 | 1005 | graphics/asymptote/doc/asy.1.begin
-2022/08/06 | 333 | graphics/asymptote/doc/asy.1.end
-2022/08/06 | 2800 | graphics/asymptote/doc/asycolors.sty
-2022/08/06 | 18095 | graphics/asymptote/doc/asy-latex.dtx
-2022/08/06 | 206981 | graphics/asymptote/doc/asy-latex.pdf
-2022/08/06 | 1299081 | graphics/asymptote/doc/asymptote.pdf
-2022/08/06 | 9805 | graphics/asymptote/doc/asymptote.sty
-2022/08/06 | 395983 | graphics/asymptote/doc/asymptote.texi
-2022/08/06 | 121145 | graphics/asymptote/doc/asyRefCard.pdf
-2022/08/06 | 20051 | graphics/asymptote/doc/asyRefCard.tex
-2022/08/06 | 246 | graphics/asymptote/doc/axis3.asy
-2022/08/06 | 416 | graphics/asymptote/doc/bezier2.asy
-2022/08/06 | 81 | graphics/asymptote/doc/bezier.asy
-2022/08/06 | 234 | graphics/asymptote/doc/beziercurve.asy
-2022/08/06 | 41 | graphics/asymptote/doc/bigdiagonal.asy
-2022/08/06 | 306 | graphics/asymptote/doc/binarytreetest.asy
-2022/08/06 | 677 | graphics/asymptote/doc/Bode.asy
-2022/08/06 | 524 | graphics/asymptote/doc/brokenaxis.asy
-2022/08/06 | 1391 | graphics/asymptote/doc/CAD1.asy
-2022/08/06 | 198570 | graphics/asymptote/doc/CAD.pdf
-2022/08/06 | 10196 | graphics/asymptote/doc/CAD.tex
-2022/08/06 | 518 | graphics/asymptote/doc/CDlabel.asy
-2022/08/06 | 4348 | graphics/asymptote/doc/colo-asy.tex
-2022/08/06 | 49 | graphics/asymptote/doc/colons.asy
-2022/08/06 | 1620 | graphics/asymptote/doc/colors.asy
-2022/08/06 | 243 | graphics/asymptote/doc/cube.asy
-2022/08/06 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
-2022/08/06 | 218 | graphics/asymptote/doc/datagraph.asy
-2022/08/06 | 24 | graphics/asymptote/doc/diagonal.asy
-2022/08/06 | 2979 | graphics/asymptote/doc/diatom.asy
-2022/08/06 | 4067 | graphics/asymptote/doc/diatom.csv
-2022/08/06 | 49 | graphics/asymptote/doc/dots.asy
-2022/08/06 | 1051 | graphics/asymptote/doc/eetomumu.asy
-2022/08/06 | 2034 | graphics/asymptote/doc/elliptic.asy
-2022/08/06 | 912 | graphics/asymptote/doc/errorbars.asy
-2022/08/06 | 202 | graphics/asymptote/doc/exp.asy
-2022/08/06 | 343 | graphics/asymptote/doc/externalprc.tex
-2022/08/06 | 19597 | graphics/asymptote/doc/external-proposal.html
-2022/08/06 | 25154 | graphics/asymptote/doc/extra/intro.asy
-2022/08/06 | 40899 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
-2022/08/06 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
-2022/08/06 | 9328 | graphics/asymptote/doc/FAQ/bfnnconv.pl
-2022/08/06 | 13663 | graphics/asymptote/doc/FAQ/install-sh
-2022/08/06 | 1000 | graphics/asymptote/doc/FAQ/Makefile
-2022/08/06 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
-2022/08/06 | 9822 | graphics/asymptote/doc/FAQ/m-html.pl
-2022/08/06 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
-2022/08/06 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
-2022/08/06 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
-2022/08/06 | 238 | graphics/asymptote/doc/filegraph.asy
-2022/08/06 | 26 | graphics/asymptote/doc/filegraph.dat
-2022/08/06 | 1053 | graphics/asymptote/doc/fillcontour.asy
-2022/08/06 | 604 | graphics/asymptote/doc/flow.asy
-2022/08/06 | 897 | graphics/asymptote/doc/flowchartdemo.asy
-2022/08/06 | 464 | graphics/asymptote/doc/GaussianSurface.asy
-2022/08/06 | 376 | graphics/asymptote/doc/generalaxis3.asy
-2022/08/06 | 277 | graphics/asymptote/doc/generalaxis.asy
-2022/08/06 | 754 | graphics/asymptote/doc/graphmarkers.asy
-2022/08/06 | 219 | graphics/asymptote/doc/graphwithderiv.asy
-2022/08/06 | 426 | graphics/asymptote/doc/grid3xyz.asy
-2022/08/06 | 279 | graphics/asymptote/doc/hatch.asy
-2022/08/06 | 423 | graphics/asymptote/doc/helix.asy
-2022/08/06 | 324 | graphics/asymptote/doc/HermiteSpline.asy
-2022/08/06 | 441 | graphics/asymptote/doc/histogram.asy
-2022/08/06 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
-2022/08/06 | 500 | graphics/asymptote/doc/Hobbydir.asy
-2022/08/06 | 378 | graphics/asymptote/doc/icon.asy
-2022/08/06 | 401 | graphics/asymptote/doc/image.asy
-2022/08/06 | 922 | graphics/asymptote/doc/imagecontour.asy
-2022/08/06 | 13663 | graphics/asymptote/doc/install-sh
-2022/08/06 | 357 | graphics/asymptote/doc/irregularcontour.asy
-2022/08/06 | 442 | graphics/asymptote/doc/join3.asy
-2022/08/06 | 261 | graphics/asymptote/doc/join.asy
-2022/08/06 | 417 | graphics/asymptote/doc/knots.asy
-2022/08/06 | 121 | graphics/asymptote/doc/labelsquare.asy
-2022/08/06 | 144 | graphics/asymptote/doc/latexmkrc
-2022/08/06 | 150 | graphics/asymptote/doc/latexmkrc_asydir
-2022/08/06 | 3125 | graphics/asymptote/doc/latexusage.tex
-2022/08/06 | 1008 | graphics/asymptote/doc/leastsquares.asy
-2022/08/06 | 6318 | graphics/asymptote/doc/leastsquares.dat
-2022/08/06 | 396 | graphics/asymptote/doc/legend.asy
-2022/08/06 | 366 | graphics/asymptote/doc/lineargraph0.asy
-2022/08/06 | 373 | graphics/asymptote/doc/lineargraph.asy
-2022/08/06 | 415 | graphics/asymptote/doc/linetype.asy
-2022/08/06 | 423 | graphics/asymptote/doc/log2graph.asy
-2022/08/06 | 262 | graphics/asymptote/doc/loggraph.asy
-2022/08/06 | 382 | graphics/asymptote/doc/loggrid.asy
-2022/08/06 | 480 | graphics/asymptote/doc/logimage.asy
-2022/08/06 | 617 | graphics/asymptote/doc/logo.asy
-2022/08/06 | 314 | graphics/asymptote/doc/logticks.asy
-2022/08/06 | 3023 | graphics/asymptote/doc/Makefile.in
-2022/08/06 | 293 | graphics/asymptote/doc/makepen.asy
-2022/08/06 | 2674 | graphics/asymptote/doc/markers1.asy
-2022/08/06 | 877 | graphics/asymptote/doc/markers2.asy
-2022/08/06 | 288 | graphics/asymptote/doc/mexicanhat.asy
-2022/08/06 | 374 | graphics/asymptote/doc/monthaxis.asy
-2022/08/06 | 458 | graphics/asymptote/doc/multicontour.asy
-2022/08/06 | 115 | graphics/asymptote/doc/onecontour.asy
-2022/08/06 | 240 | graphics/asymptote/doc/parametricgraph.asy
-2022/08/06 | 498 | graphics/asymptote/doc/penfunctionimage.asy
-2022/08/06 | 219 | graphics/asymptote/doc/penimage.asy
-2022/08/06 | 2771 | graphics/asymptote/doc/pixel.pdf
-2022/08/06 | 354 | graphics/asymptote/doc/planes.asy
-2022/08/06 | 475798 | graphics/asymptote/doc/png/asymptote.info
-2022/08/06 | 1469 | graphics/asymptote/doc/png/Makefile.in
-2022/08/06 | 49 | graphics/asymptote/doc/quartercircle.asy
-2022/08/06 | 354 | graphics/asymptote/doc/reloadpdf.tex
-2022/08/06 | 157 | graphics/asymptote/doc/saddle.asy
-2022/08/06 | 355 | graphics/asymptote/doc/scaledgraph.asy
-2022/08/06 | 792 | graphics/asymptote/doc/secondaryaxis.asy
-2022/08/06 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
-2022/08/06 | 256 | graphics/asymptote/doc/shadedtiling.asy
-2022/08/06 | 154 | graphics/asymptote/doc/slopefield1.asy
-2022/08/06 | 52 | graphics/asymptote/doc/square.asy
-2022/08/06 | 341 | graphics/asymptote/doc/subpictures.asy
-2022/08/06 | 123 | graphics/asymptote/doc/superpath.asy
-2022/08/06 | 81215 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
-2022/08/06 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
-2022/08/06 | 390 | graphics/asymptote/doc/tile.asy
-2022/08/06 | 396 | graphics/asymptote/doc/triangulate.asy
-2022/08/06 | 186 | graphics/asymptote/doc/unitcircle3.asy
-2022/08/06 | 147 | graphics/asymptote/doc/vectorfield.asy
-2022/08/06 | 1746 | graphics/asymptote/doc/westnile.asy
-2022/08/06 | 4727 | graphics/asymptote/doc/westnile.csv
-2022/08/06 | 880 | graphics/asymptote/doc/xasy.1x
-2022/08/06 | 1851 | graphics/asymptote/drawclipbegin.h
-2022/08/06 | 1197 | graphics/asymptote/drawclipend.h
-2022/08/06 | 11468 | graphics/asymptote/drawelement.h
-2022/08/06 | 4597 | graphics/asymptote/drawfill.cc
-2022/08/06 | 6525 | graphics/asymptote/drawfill.h
-2022/08/06 | 494 | graphics/asymptote/drawgrestore.h
-2022/08/06 | 2880 | graphics/asymptote/drawgroup.h
-2022/08/06 | 464 | graphics/asymptote/drawgsave.h
-2022/08/06 | 3024 | graphics/asymptote/drawimage.h
-2022/08/06 | 6787 | graphics/asymptote/drawlabel.cc
-2022/08/06 | 2134 | graphics/asymptote/drawlabel.h
-2022/08/06 | 1096 | graphics/asymptote/drawlayer.h
-2022/08/06 | 5542 | graphics/asymptote/drawpath3.cc
-2022/08/06 | 5767 | graphics/asymptote/drawpath3.h
-2022/08/06 | 4862 | graphics/asymptote/drawpath.cc
-2022/08/06 | 669 | graphics/asymptote/drawpath.h
-2022/08/06 | 24712 | graphics/asymptote/drawsurface.cc
-2022/08/06 | 23567 | graphics/asymptote/drawsurface.h
-2022/08/06 | 1266 | graphics/asymptote/drawverbatim.h
-2022/08/06 | 17987 | graphics/asymptote/entry.cc
-2022/08/06 | 13615 | graphics/asymptote/entry.h
-2022/08/06 | 5441 | graphics/asymptote/env.cc
-2022/08/06 | 1142 | graphics/asymptote/envcompleter.cc
-2022/08/06 | 845 | graphics/asymptote/envcompleter.h
-2022/08/06 | 4570 | graphics/asymptote/env.h
-2022/08/06 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
-2022/08/06 | 2279 | graphics/asymptote/errormsg.cc
-2022/08/06 | 5621 | graphics/asymptote/errormsg.h
-2022/08/06 | 9251 | graphics/asymptote/errors
-2022/08/06 | 6911 | graphics/asymptote/errortest.asy
-2022/08/06 | 43335 | graphics/asymptote/examples/100d.pdb1
-2022/08/06 | 657 | graphics/asymptote/examples/100d.views
-2022/08/06 | 163 | graphics/asymptote/examples/1overx.asy
-2022/08/06 | 4158 | graphics/asymptote/examples/advection.asy
-2022/08/06 | 375 | graphics/asymptote/examples/AiryDisk.asy
-2022/08/06 | 245 | graphics/asymptote/examples/alignbox.asy
-2022/08/06 | 2830 | graphics/asymptote/examples/alignedaxis.asy
-2022/08/06 | 946 | graphics/asymptote/examples/animations/cube.asy
-2022/08/06 | 160672 | graphics/asymptote/examples/animations/dice.u3d
-2022/08/06 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
-2022/08/06 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
-2022/08/06 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
-2022/08/06 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
-2022/08/06 | 414 | graphics/asymptote/examples/animations/glmovie.asy
-2022/08/06 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
-2022/08/06 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
-2022/08/06 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
-2022/08/06 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
-2022/08/06 | 1247 | graphics/asymptote/examples/animations/slidemovies.asy
-2022/08/06 | 856 | graphics/asymptote/examples/animations/sphere.asy
-2022/08/06 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
-2022/08/06 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
-2022/08/06 | 1120 | graphics/asymptote/examples/animations/wheel.asy
-2022/08/06 | 236 | graphics/asymptote/examples/annotation.asy
-2022/08/06 | 1240 | graphics/asymptote/examples/arrows3.asy
-2022/08/06 | 61 | graphics/asymptote/examples/axialshade.asy
-2022/08/06 | 496 | graphics/asymptote/examples/bars3.asy
-2022/08/06 | 1033 | graphics/asymptote/examples/basealign.asy
-2022/08/06 | 407 | graphics/asymptote/examples/BezierPatch.asy
-2022/08/06 | 581 | graphics/asymptote/examples/BezierSaddle.asy
-2022/08/06 | 1548 | graphics/asymptote/examples/BezierSurface.asy
-2022/08/06 | 199 | graphics/asymptote/examples/BezierTriangle.asy
-2022/08/06 | 154 | graphics/asymptote/examples/billboard.asy
-2022/08/06 | 513 | graphics/asymptote/examples/buildcycle.asy
-2022/08/06 | 233 | graphics/asymptote/examples/cardioid.asy
-2022/08/06 | 485 | graphics/asymptote/examples/cards.asy
-2022/08/06 | 688 | graphics/asymptote/examples/centroidfg.asy
-2022/08/06 | 322 | graphics/asymptote/examples/cheese.asy
-2022/08/06 | 576 | graphics/asymptote/examples/circles.asy
-2022/08/06 | 228 | graphics/asymptote/examples/circumcircle.asy
-2022/08/06 | 762 | graphics/asymptote/examples/clockarray.asy
-2022/08/06 | 264 | graphics/asymptote/examples/coag.asy
-2022/08/06 | 436 | graphics/asymptote/examples/colorpatch.asy
-2022/08/06 | 472 | graphics/asymptote/examples/colorplanes.asy
-2022/08/06 | 739 | graphics/asymptote/examples/condor.asy
-2022/08/06 | 495 | graphics/asymptote/examples/cones.asy
-2022/08/06 | 1778 | graphics/asymptote/examples/conicurv.asy
-2022/08/06 | 254 | graphics/asymptote/examples/contextfonts.asy
-2022/08/06 | 802 | graphics/asymptote/examples/controlsystem.asy
-2022/08/06 | 123 | graphics/asymptote/examples/Coons.asy
-2022/08/06 | 235 | graphics/asymptote/examples/cos2theta.asy
-2022/08/06 | 582 | graphics/asymptote/examples/cos3.asy
-2022/08/06 | 460 | graphics/asymptote/examples/cosaddition.asy
-2022/08/06 | 5537 | graphics/asymptote/examples/cpkcolors.asy
-2022/08/06 | 572 | graphics/asymptote/examples/curvedlabel3.asy
-2022/08/06 | 177 | graphics/asymptote/examples/curvedlabel.asy
-2022/08/06 | 1835 | graphics/asymptote/examples/cyclohexane.asy
-2022/08/06 | 352 | graphics/asymptote/examples/cylinder.asy
-2022/08/06 | 506 | graphics/asymptote/examples/delu.asy
-2022/08/06 | 509 | graphics/asymptote/examples/dimension.asy
-2022/08/06 | 1216 | graphics/asymptote/examples/dragon.asy
-2022/08/06 | 1298 | graphics/asymptote/examples/electromagnetic.asy
-2022/08/06 | 325 | graphics/asymptote/examples/elevation.asy
-2022/08/06 | 398 | graphics/asymptote/examples/epix.asy
-2022/08/06 | 242 | graphics/asymptote/examples/equilateral.asy
-2022/08/06 | 548 | graphics/asymptote/examples/equilchord.asy
-2022/08/06 | 579 | graphics/asymptote/examples/exp3.asy
-2022/08/06 | 519 | graphics/asymptote/examples/extrudedcontour.asy
-2022/08/06 | 498 | graphics/asymptote/examples/fano.asy
-2022/08/06 | 973 | graphics/asymptote/examples/fequlogo.asy
-2022/08/06 | 727 | graphics/asymptote/examples/fermi.asy
-2022/08/06 | 980 | graphics/asymptote/examples/filesurface.asy
-2022/08/06 | 5531 | graphics/asymptote/examples/filesurface.dat
-2022/08/06 | 4244 | graphics/asymptote/examples/fin.asy
-2022/08/06 | 710 | graphics/asymptote/examples/fjortoft.asy
-2022/08/06 | 558 | graphics/asymptote/examples/floatingdisk.asy
-2022/08/06 | 500 | graphics/asymptote/examples/floor.asy
-2022/08/06 | 683 | graphics/asymptote/examples/fractaltree.asy
-2022/08/06 | 1185 | graphics/asymptote/examples/functionshading.asy
-2022/08/06 | 499 | graphics/asymptote/examples/galleon.asy
-2022/08/06 | 713 | graphics/asymptote/examples/gamma3.asy
-2022/08/06 | 439 | graphics/asymptote/examples/gamma.asy
-2022/08/06 | 679 | graphics/asymptote/examples/genusthree.asy
-2022/08/06 | 1164 | graphics/asymptote/examples/genustwo.asy
-2022/08/06 | 383 | graphics/asymptote/examples/Gouraud.asy
-2022/08/06 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
-2022/08/06 | 76 | graphics/asymptote/examples/grid.asy
-2022/08/06 | 459 | graphics/asymptote/examples/hierarchy.asy
-2022/08/06 | 315 | graphics/asymptote/examples/hyperboloid.asy
-2022/08/06 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
-2022/08/06 | 1111 | graphics/asymptote/examples/imagehistogram.asy
-2022/08/06 | 610 | graphics/asymptote/examples/impact.asy
-2022/08/06 | 598 | graphics/asymptote/examples/integraltest.asy
-2022/08/06 | 4809 | graphics/asymptote/examples/interpolate1.asy
-2022/08/06 | 289 | graphics/asymptote/examples/jump.asy
-2022/08/06 | 1352 | graphics/asymptote/examples/Klein.asy
-2022/08/06 | 182 | graphics/asymptote/examples/label3.asy
-2022/08/06 | 196 | graphics/asymptote/examples/label3ribbon.asy
-2022/08/06 | 187 | graphics/asymptote/examples/label3solid.asy
-2022/08/06 | 632 | graphics/asymptote/examples/label3zoom.asy
-2022/08/06 | 264 | graphics/asymptote/examples/labelbox.asy
-2022/08/06 | 1114 | graphics/asymptote/examples/laserlattice.asy
-2022/08/06 | 136 | graphics/asymptote/examples/latticeshading.asy
-2022/08/06 | 690 | graphics/asymptote/examples/layers.asy
-2022/08/06 | 460 | graphics/asymptote/examples/lever.asy
-2022/08/06 | 654 | graphics/asymptote/examples/limit.asy
-2022/08/06 | 1910 | graphics/asymptote/examples/linearregression.asy
-2022/08/06 | 168 | graphics/asymptote/examples/lines.asy
-2022/08/06 | 1040 | graphics/asymptote/examples/lmfit1.asy
-2022/08/06 | 206 | graphics/asymptote/examples/log.asy
-2022/08/06 | 349 | graphics/asymptote/examples/logdown.asy
-2022/08/06 | 1461 | graphics/asymptote/examples/logo3.asy
-2022/08/06 | 196 | graphics/asymptote/examples/lowint.asy
-2022/08/06 | 657 | graphics/asymptote/examples/lowupint.asy
-2022/08/06 | 479 | graphics/asymptote/examples/magnetic.asy
-2022/08/06 | 879 | graphics/asymptote/examples/markregular.asy
-2022/08/06 | 1968 | graphics/asymptote/examples/mergeExample.asy
-2022/08/06 | 5216 | graphics/asymptote/examples/mosaic.asy
-2022/08/06 | 2504 | graphics/asymptote/examples/mosquito.asy
-2022/08/06 | 1566 | graphics/asymptote/examples/near_earth.asy
-2022/08/06 | 703 | graphics/asymptote/examples/NURBScurve.asy
-2022/08/06 | 1088 | graphics/asymptote/examples/NURBSsphere.asy
-2022/08/06 | 1598 | graphics/asymptote/examples/NURBSsurface.asy
-2022/08/06 | 1251 | graphics/asymptote/examples/odetest.asy
-2022/08/06 | 308 | graphics/asymptote/examples/oneoverx.asy
-2022/08/06 | 810 | graphics/asymptote/examples/orthocenter.asy
-2022/08/06 | 254 | graphics/asymptote/examples/parametricelevation.asy
-2022/08/06 | 407 | graphics/asymptote/examples/parametricsurface.asy
-2022/08/06 | 711 | graphics/asymptote/examples/partialsurface.asy
-2022/08/06 | 1055 | graphics/asymptote/examples/partitionExample.asy
-2022/08/06 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
-2022/08/06 | 3335 | graphics/asymptote/examples/pdb.asy
-2022/08/06 | 361 | graphics/asymptote/examples/phase.asy
-2022/08/06 | 22873 | graphics/asymptote/examples/piicon.png
-2022/08/06 | 362 | graphics/asymptote/examples/pipeintersection.asy
-2022/08/06 | 3857 | graphics/asymptote/examples/pipes.asy
-2022/08/06 | 418 | graphics/asymptote/examples/planeproject.asy
-2022/08/06 | 930 | graphics/asymptote/examples/polararea.asy
-2022/08/06 | 628 | graphics/asymptote/examples/polarcircle.asy
-2022/08/06 | 326 | graphics/asymptote/examples/polardatagraph.asy
-2022/08/06 | 641 | graphics/asymptote/examples/pOrbital.asy
-2022/08/06 | 954 | graphics/asymptote/examples/poster.asy
-2022/08/06 | 58 | graphics/asymptote/examples/progrid.asy
-2022/08/06 | 373 | graphics/asymptote/examples/projectelevation.asy
-2022/08/06 | 427 | graphics/asymptote/examples/projectrevolution.asy
-2022/08/06 | 747 | graphics/asymptote/examples/pseudosphere.asy
-2022/08/06 | 557 | graphics/asymptote/examples/Pythagoras.asy
-2022/08/06 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
-2022/08/06 | 734 | graphics/asymptote/examples/quilt.asy
-2022/08/06 | 345 | graphics/asymptote/examples/rainbow.asy
-2022/08/06 | 78 | graphics/asymptote/examples/randompath3.asy
-2022/08/06 | 1537 | graphics/asymptote/examples/refs.bib
-2022/08/06 | 990 | graphics/asymptote/examples/RiemannSphere.asy
-2022/08/06 | 348 | graphics/asymptote/examples/RiemannSurface.asy
-2022/08/06 | 384 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
-2022/08/06 | 141 | graphics/asymptote/examples/ring.asy
-2022/08/06 | 184 | graphics/asymptote/examples/roll.asy
-2022/08/06 | 1309 | graphics/asymptote/examples/roundpath.asy
-2022/08/06 | 288 | graphics/asymptote/examples/sacone3D.asy
-2022/08/06 | 445 | graphics/asymptote/examples/sacone.asy
-2022/08/06 | 341 | graphics/asymptote/examples/sacylinder3D.asy
-2022/08/06 | 400 | graphics/asymptote/examples/sacylinder.asy
-2022/08/06 | 66 | graphics/asymptote/examples/shade.asy
-2022/08/06 | 111 | graphics/asymptote/examples/shadestroke.asy
-2022/08/06 | 1065 | graphics/asymptote/examples/shellmethod.asy
-2022/08/06 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
-2022/08/06 | 410 | graphics/asymptote/examples/Sierpinski.asy
-2022/08/06 | 821 | graphics/asymptote/examples/SierpinskiGasket.asy
-2022/08/06 | 2398 | graphics/asymptote/examples/SierpinskiSponge.asy
-2022/08/06 | 327 | graphics/asymptote/examples/sin1x.asy
-2022/08/06 | 579 | graphics/asymptote/examples/sin3.asy
-2022/08/06 | 591 | graphics/asymptote/examples/sinc.asy
-2022/08/06 | 378 | graphics/asymptote/examples/sinxlex.asy
-2022/08/06 | 3358 | graphics/asymptote/examples/slidedemo.asy
-2022/08/06 | 341 | graphics/asymptote/examples/slidedemo_.bbl
-2022/08/06 | 2023 | graphics/asymptote/examples/slope.asy
-2022/08/06 | 520 | graphics/asymptote/examples/smoothelevation.asy
-2022/08/06 | 2680 | graphics/asymptote/examples/soccerball.asy
-2022/08/06 | 2362 | graphics/asymptote/examples/spectrum.asy
-2022/08/06 | 141 | graphics/asymptote/examples/sphere.asy
-2022/08/06 | 150 | graphics/asymptote/examples/spheresilhouette.asy
-2022/08/06 | 162 | graphics/asymptote/examples/sphereskeleton.asy
-2022/08/06 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
-2022/08/06 | 424 | graphics/asymptote/examples/spiral3.asy
-2022/08/06 | 210 | graphics/asymptote/examples/spiral.asy
-2022/08/06 | 608 | graphics/asymptote/examples/spline.asy
-2022/08/06 | 2191 | graphics/asymptote/examples/splitpatch.asy
-2022/08/06 | 38 | graphics/asymptote/examples/spring0.asy
-2022/08/06 | 43 | graphics/asymptote/examples/spring2.asy
-2022/08/06 | 667 | graphics/asymptote/examples/spring.asy
-2022/08/06 | 674 | graphics/asymptote/examples/sqrtx01.asy
-2022/08/06 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
-2022/08/06 | 145 | graphics/asymptote/examples/star.asy
-2022/08/06 | 162 | graphics/asymptote/examples/stereoscopic.asy
-2022/08/06 | 59 | graphics/asymptote/examples/stroke3.asy
-2022/08/06 | 300 | graphics/asymptote/examples/strokepath.asy
-2022/08/06 | 175 | graphics/asymptote/examples/strokeshade.asy
-2022/08/06 | 198 | graphics/asymptote/examples/tanh.asy
-2022/08/06 | 14378 | graphics/asymptote/examples/teapot.asy
-2022/08/06 | 34 | graphics/asymptote/examples/teapotIBL.asy
-2022/08/06 | 303 | graphics/asymptote/examples/tensor.asy
-2022/08/06 | 547 | graphics/asymptote/examples/tetra.asy
-2022/08/06 | 312 | graphics/asymptote/examples/textpath.asy
-2022/08/06 | 8429 | graphics/asymptote/examples/thermodynamics.asy
-2022/08/06 | 576 | graphics/asymptote/examples/threeviews.asy
-2022/08/06 | 104 | graphics/asymptote/examples/tiling.asy
-2022/08/06 | 419 | graphics/asymptote/examples/torus.asy
-2022/08/06 | 188 | graphics/asymptote/examples/transparency.asy
-2022/08/06 | 250 | graphics/asymptote/examples/transparentCubes.asy
-2022/08/06 | 602 | graphics/asymptote/examples/treetest.asy
-2022/08/06 | 589 | graphics/asymptote/examples/trefoilknot.asy
-2022/08/06 | 972 | graphics/asymptote/examples/triads.asy
-2022/08/06 | 207 | graphics/asymptote/examples/triangle.asy
-2022/08/06 | 441 | graphics/asymptote/examples/triangles.asy
-2022/08/06 | 251 | graphics/asymptote/examples/triceratops.asy
-2022/08/06 | 291 | graphics/asymptote/examples/trumpet.asy
-2022/08/06 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
-2022/08/06 | 40665 | graphics/asymptote/examples/tvgen.asy
-2022/08/06 | 868 | graphics/asymptote/examples/twistedtubes.asy
-2022/08/06 | 433 | graphics/asymptote/examples/twoSpheres.asy
-2022/08/06 | 24924 | graphics/asymptote/examples/uhrturm.obj
-2022/08/06 | 322 | graphics/asymptote/examples/unitcircle.asy
-2022/08/06 | 430 | graphics/asymptote/examples/unitoctant.asy
-2022/08/06 | 714 | graphics/asymptote/examples/unitoctantx.asy
-2022/08/06 | 199 | graphics/asymptote/examples/upint.asy
-2022/08/06 | 525 | graphics/asymptote/examples/vectorfield3.asy
-2022/08/06 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
-2022/08/06 | 839 | graphics/asymptote/examples/venn3.asy
-2022/08/06 | 626 | graphics/asymptote/examples/venn.asy
-2022/08/06 | 802 | graphics/asymptote/examples/vertexshading.asy
-2022/08/06 | 360 | graphics/asymptote/examples/washer.asy
-2022/08/06 | 1010 | graphics/asymptote/examples/washermethod.asy
-2022/08/06 | 628 | graphics/asymptote/examples/wedge.asy
-2022/08/06 | 1030 | graphics/asymptote/examples/workcone.asy
-2022/08/06 | 978 | graphics/asymptote/examples/worksheet.asy
-2022/08/06 | 2626 | graphics/asymptote/examples/worldmap.asy
-2022/08/06 | 1261761 | graphics/asymptote/examples/worldmap.dat
-2022/08/06 | 580 | graphics/asymptote/examples/xsin1x.asy
-2022/08/06 | 3739 | graphics/asymptote/examples/xstitch.asy
-2022/08/06 | 743 | graphics/asymptote/examples/xxsq01.asy
-2022/08/06 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
-2022/08/06 | 825 | graphics/asymptote/examples/xxsq01y.asy
-2022/08/06 | 222 | graphics/asymptote/examples/yingyang.asy
-2022/08/06 | 37889 | graphics/asymptote/exp.cc
-2022/08/06 | 30307 | graphics/asymptote/exp.h
-2022/08/06 | 1188 | graphics/asymptote/EXRFiles.cc
-2022/08/06 | 454 | graphics/asymptote/EXRFiles.h
-2022/08/06 | 178 | graphics/asymptote/fftw++asy.cc
-2022/08/06 | 1694 | graphics/asymptote/fftw++.cc
-2022/08/06 | 45411 | graphics/asymptote/fftw++.h
-2022/08/06 | 4866 | graphics/asymptote/fileio.cc
-2022/08/06 | 21360 | graphics/asymptote/fileio.h
-2022/08/06 | 1245 | graphics/asymptote/findsym.pl
-2022/08/06 | 1020 | graphics/asymptote/flatguide.cc
-2022/08/06 | 4209 | graphics/asymptote/flatguide.h
-2022/08/06 | 654 | graphics/asymptote/fpu.h
-2022/08/06 | 2164 | graphics/asymptote/frame.h
-2022/08/06 | 9772 | graphics/asymptote/fundec.cc
-2022/08/06 | 4895 | graphics/asymptote/fundec.h
-2022/08/06 | 1183225 | graphics/asymptote/gc-8.2.0.tar.gz
-2022/08/06 | 6275 | graphics/asymptote/generate_enums.py
-2022/08/06 | 3153 | graphics/asymptote/genv.cc
-2022/08/06 | 1626 | graphics/asymptote/genv.h
-2022/08/06 | 4520 | graphics/asymptote/getopt1.c
-2022/08/06 | 30147 | graphics/asymptote/getopt.c
-2022/08/06 | 6650 | graphics/asymptote/getopt.h
-2022/08/06 | 202 | graphics/asymptote/glew.c
-2022/08/06 | 1235777 | graphics/asymptote/GL/glew.c
-2022/08/06 | 1186601 | graphics/asymptote/GL/glew.h
-2022/08/06 | 73435 | graphics/asymptote/GL/glxew.h
-2022/08/06 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
-2022/08/06 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
-2022/08/06 | 66477 | graphics/asymptote/glrender.cc
-2022/08/06 | 9319 | graphics/asymptote/glrender.h
-2022/08/06 | 818 | graphics/asymptote/GLTextures.cc
-2022/08/06 | 3634 | graphics/asymptote/GLTextures.h
-2022/08/06 | 63314 | graphics/asymptote/GL/wglew.h
-2022/08/06 | 50437 | graphics/asymptote/gsl.cc
-2022/08/06 | 22 | graphics/asymptote/GUI/configs/__init__.py
-2022/08/06 | 1215 | graphics/asymptote/GUI/configs/xasyconfig.cson
-2022/08/06 | 476 | graphics/asymptote/GUI/configs/xasykeymap.cson
-2022/08/06 | 3592 | graphics/asymptote/GUI/CustMatTransform.py
-2022/08/06 | 100 | graphics/asymptote/GUI/DebugFlags.py
-2022/08/06 | 1149 | graphics/asymptote/guide.cc
-2022/08/06 | 294 | graphics/asymptote/guideflags.h
-2022/08/06 | 6725 | graphics/asymptote/guide.h
-2022/08/06 | 1751 | graphics/asymptote/GUI/GuidesManager.py
-2022/08/06 | 23 | graphics/asymptote/GUI/__init__.py
-2022/08/06 | 15895 | graphics/asymptote/GUI/InplaceAddObj.py
-2022/08/06 | 5272 | graphics/asymptote/GUI/labelEditor.py
-2022/08/06 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
-2022/08/06 | 2445 | graphics/asymptote/GUI/PrimitiveShape.py
-2022/08/06 | 10038 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
-2022/08/06 | 6247 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
-2022/08/06 | 2948 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
-2022/08/06 | 7222 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
-2022/08/06 | 2960 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
-2022/08/06 | 4942 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
-2022/08/06 | 4761 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
-2022/08/06 | 59583 | graphics/asymptote/GUI/pyUIClass/window1.py
-2022/08/06 | 57 | graphics/asymptote/GUI/requirements.txt
-2022/08/06 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
-2022/08/06 | 626 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
-2022/08/06 | 626 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
-2022/08/06 | 790 | graphics/asymptote/GUI/res/icons/android-camera.svg
-2022/08/06 | 683 | graphics/asymptote/GUI/res/icons/android-close.svg
-2022/08/06 | 1302 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
-2022/08/06 | 664 | graphics/asymptote/GUI/res/icons/android-delete.svg
-2022/08/06 | 620 | graphics/asymptote/GUI/res/icons/android-done.svg
-2022/08/06 | 810 | graphics/asymptote/GUI/res/icons/android-expand.svg
-2022/08/06 | 840 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
-2022/08/06 | 1467 | graphics/asymptote/GUI/res/icons/android-hand.svg
-2022/08/06 | 1108 | graphics/asymptote/GUI/res/icons/android-locate.svg
-2022/08/06 | 752 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
-2022/08/06 | 831 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
-2022/08/06 | 795 | graphics/asymptote/GUI/res/icons/android-refresh.svg
-2022/08/06 | 705 | graphics/asymptote/GUI/res/icons/arrow-move.svg
-2022/08/06 | 631 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
-2022/08/06 | 986 | graphics/asymptote/GUI/res/icons/brush.svg
-2022/08/06 | 593 | graphics/asymptote/GUI/res/icons/bucket.asy
-2022/08/06 | 1436 | graphics/asymptote/GUI/res/icons/bucket.svg
-2022/08/06 | 111 | graphics/asymptote/GUI/res/icons/center.asy
-2022/08/06 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
-2022/08/06 | 1022 | graphics/asymptote/GUI/res/icons/centerorigin.svg
-2022/08/06 | 858 | graphics/asymptote/GUI/res/icons/center.svg
-2022/08/06 | 771 | graphics/asymptote/GUI/res/icons/check.svg
-2022/08/06 | 1000 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
-2022/08/06 | 985 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
-2022/08/06 | 743 | graphics/asymptote/GUI/res/icons/circle.svg
-2022/08/06 | 109 | graphics/asymptote/GUI/res/icons/closedcurve.asy
-2022/08/06 | 1187 | graphics/asymptote/GUI/res/icons/closedcurve.svg
-2022/08/06 | 109 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
-2022/08/06 | 1058 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
-2022/08/06 | 829 | graphics/asymptote/GUI/res/icons/close-round.svg
-2022/08/06 | 1180 | graphics/asymptote/GUI/res/icons/code.svg
-2022/08/06 | 863 | graphics/asymptote/GUI/res/icons/edit.svg
-2022/08/06 | 988 | graphics/asymptote/GUI/res/icons/eye.svg
-2022/08/06 | 1884 | graphics/asymptote/GUI/res/icons/filledbucket.svg
-2022/08/06 | 1732 | graphics/asymptote/GUI/res/icons/grid.svg
-2022/08/06 | 951 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
-2022/08/06 | 102 | graphics/asymptote/GUI/res/icons/opencurve.asy
-2022/08/06 | 1139 | graphics/asymptote/GUI/res/icons/opencurve.svg
-2022/08/06 | 102 | graphics/asymptote/GUI/res/icons/openpolygon.asy
-2022/08/06 | 1043 | graphics/asymptote/GUI/res/icons/openpolygon.svg
-2022/08/06 | 750 | graphics/asymptote/GUI/res/icons/plus-round.svg
-2022/08/06 | 1808 | graphics/asymptote/GUI/res/icons.qrc
-2022/08/06 | 1090 | graphics/asymptote/GUI/res/icons/redo.svg
-2022/08/06 | 663 | graphics/asymptote/GUI/res/icons/save.svg
-2022/08/06 | 1899 | graphics/asymptote/GUI/res/icons/social-python.svg
-2022/08/06 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
-2022/08/06 | 284 | graphics/asymptote/GUI/res/icons/text.svg
-2022/08/06 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
-2022/08/06 | 1047 | graphics/asymptote/GUI/res/icons/undo.svg
-2022/08/06 | 1449 | graphics/asymptote/GUI/SetCustomAnchor.py
-2022/08/06 | 393 | graphics/asymptote/GUI/setup.py
-2022/08/06 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
-2022/08/06 | 3267 | graphics/asymptote/GUI/Widg_addLabel.py
-2022/08/06 | 877 | graphics/asymptote/GUI/Widg_addPolyOpt.py
-2022/08/06 | 1658 | graphics/asymptote/GUI/Widg_editBezier.py
-2022/08/06 | 94910 | graphics/asymptote/GUI/Window1.py
-2022/08/06 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
-2022/08/06 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
-2022/08/06 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
-2022/08/06 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
-2022/08/06 | 2941 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
-2022/08/06 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
-2022/08/06 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
-2022/08/06 | 79003 | graphics/asymptote/GUI/windows/window1.ui
-2022/08/06 | 60074 | graphics/asymptote/GUI/xasy2asy.py
-2022/08/06 | 1183 | graphics/asymptote/GUI/xasyArgs.py
-2022/08/06 | 14085 | graphics/asymptote/GUI/xasyBezierInterface.py
-2022/08/06 | 4084 | graphics/asymptote/GUI/xasyFile.py
-2022/08/06 | 6717 | graphics/asymptote/GUI/xasyOptions.py
-2022/08/06 | 611 | graphics/asymptote/GUI/xasy.py
-2022/08/06 | 586 | graphics/asymptote/GUI/xasyStrings.py
-2022/08/06 | 733 | graphics/asymptote/GUI/xasySvg.py
-2022/08/06 | 1015 | graphics/asymptote/GUI/xasyTransform.py
-2022/08/06 | 1542 | graphics/asymptote/GUI/xasyUtils.py
-2022/08/06 | 238 | graphics/asymptote/GUI/xasyValidator.py
-2022/08/06 | 12823 | graphics/asymptote/impdatum.cc
-2022/08/06 | 127 | graphics/asymptote/index.html
-2022/08/06 | 10445 | graphics/asymptote/INSTALL
-2022/08/06 | 15645 | graphics/asymptote/install-sh
-2022/08/06 | 1982 | graphics/asymptote/inst.h
-2022/08/06 | 5689 | graphics/asymptote/interact.cc
-2022/08/06 | 1345 | graphics/asymptote/interact.h
-2022/08/06 | 5733 | graphics/asymptote/item.h
-2022/08/06 | 11221 | graphics/asymptote/jsfile.cc
-2022/08/06 | 2623 | graphics/asymptote/jsfile.h
-2022/08/06 | 609 | graphics/asymptote/keywords.cc
-2022/08/06 | 1253 | graphics/asymptote/keywords.pl
-2022/08/06 | 22345 | graphics/asymptote/knot.cc
-2022/08/06 | 12259 | graphics/asymptote/knot.h
-2022/08/06 | 342 | graphics/asymptote/lexical.h
-2022/08/06 | 83449 | graphics/asymptote/lex.yy.cc
-2022/08/06 | 506313 | graphics/asymptote/libatomic_ops-7.6.12.tar.gz
-2022/08/06 | 35147 | graphics/asymptote/LICENSE
-2022/08/06 | 7639 | graphics/asymptote/LICENSE.LESSER
-2022/08/06 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
-2022/08/06 | 2194 | graphics/asymptote/locate.cc
-2022/08/06 | 631 | graphics/asymptote/locate.h
-2022/08/06 | 12054 | graphics/asymptote/LspCpp/CMakeLists.txt
-2022/08/06 | 4925 | graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
-2022/08/06 | 3597 | graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
-2022/08/06 | 4853 | graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
-2022/08/06 | 8105 | graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
-2022/08/06 | 460 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
-2022/08/06 | 867 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
-2022/08/06 | 7671 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Context.h
-2022/08/06 | 1665 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
-2022/08/06 | 217 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/GCThreadContext.h
-2022/08/06 | 2845 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
-2022/08/06 | 1159 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
-2022/08/06 | 1600 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
-2022/08/06 | 30640 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
-2022/08/06 | 628 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
-2022/08/06 | 4580 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
-2022/08/06 | 2122 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
-2022/08/06 | 241 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
-2022/08/06 | 1475 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
-2022/08/06 | 10070 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
-2022/08/06 | 1774 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
-2022/08/06 | 1765 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h
-2022/08/06 | 10581 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
-2022/08/06 | 2930 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
-2022/08/06 | 1000 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
-2022/08/06 | 1183 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
-2022/08/06 | 6386 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
-2022/08/06 | 6369 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/traits.h
-2022/08/06 | 2424 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/WebSocketServer.h
-2022/08/06 | 706 | graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
-2022/08/06 | 8521 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
-2022/08/06 | 1567 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
-2022/08/06 | 1019 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
-2022/08/06 | 2636 | graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
-2022/08/06 | 236 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
-2022/08/06 | 587 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
-2022/08/06 | 625 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
-2022/08/06 | 382 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
-2022/08/06 | 842 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
-2022/08/06 | 827 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
-2022/08/06 | 1002 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
-2022/08/06 | 631 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
-2022/08/06 | 294 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/classFileContents.h
-2022/08/06 | 1109 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
-2022/08/06 | 901 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
-2022/08/06 | 579 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
-2022/08/06 | 565 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
-2022/08/06 | 617 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
-2022/08/06 | 828 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
-2022/08/06 | 738 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
-2022/08/06 | 514 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
-2022/08/06 | 1673 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
-2022/08/06 | 2104 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
-2022/08/06 | 325 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/listOverridableMethods.h
-2022/08/06 | 320 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/Move.h
-2022/08/06 | 301 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/organizeImports.h
-2022/08/06 | 907 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
-2022/08/06 | 309 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/projectConfigurationUpdate.h
-2022/08/06 | 748 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
-2022/08/06 | 722 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
-2022/08/06 | 229 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
-2022/08/06 | 4688 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
-2022/08/06 | 203 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/exit.h
-2022/08/06 | 482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialized.h
-2022/08/06 | 1380 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
-2022/08/06 | 3418 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
-2022/08/06 | 1150 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
-2022/08/06 | 18994 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
-2022/08/06 | 22502 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
-2022/08/06 | 6889 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
-2022/08/06 | 693 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
-2022/08/06 | 487 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/shutdown.h
-2022/08/06 | 4578 | graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
-2022/08/06 | 2974 | graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
-2022/08/06 | 1808 | graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
-2022/08/06 | 4118 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lru_cache.h
-2022/08/06 | 3294 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
-2022/08/06 | 1213 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
-2022/08/06 | 1328 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
-2022/08/06 | 778 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
-2022/08/06 | 1192 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
-2022/08/06 | 1105 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
-2022/08/06 | 1411 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
-2022/08/06 | 7152 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
-2022/08/06 | 3834 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
-2022/08/06 | 1143 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
-2022/08/06 | 842 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
-2022/08/06 | 3004 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
-2022/08/06 | 688 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
-2022/08/06 | 424 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
-2022/08/06 | 676 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
-2022/08/06 | 667 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
-2022/08/06 | 2514 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
-2022/08/06 | 1154 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
-2022/08/06 | 2482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
-2022/08/06 | 3917 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
-2022/08/06 | 27859 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
-2022/08/06 | 74 | graphics/asymptote/LspCpp/include/LibLsp/lsp/method_type.h
-2022/08/06 | 588 | graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
-2022/08/06 | 348 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
-2022/08/06 | 842 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
-2022/08/06 | 176 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
-2022/08/06 | 2675 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
-2022/08/06 | 1185 | graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
-2022/08/06 | 4265 | graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
-2022/08/06 | 3731 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
-2022/08/06 | 2668 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
-2022/08/06 | 1129 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
-2022/08/06 | 1615 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
-2022/08/06 | 2524 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
-2022/08/06 | 934 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/declaration_definition.h
-2022/08/06 | 1493 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
-2022/08/06 | 768 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
-2022/08/06 | 937 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
-2022/08/06 | 1056 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
-2022/08/06 | 808 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
-2022/08/06 | 1831 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
-2022/08/06 | 1244 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
-2022/08/06 | 1814 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
-2022/08/06 | 1665 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
-2022/08/06 | 792 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
-2022/08/06 | 566 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
-2022/08/06 | 1617 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
-2022/08/06 | 488 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/implementation.h
-2022/08/06 | 1267 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
-2022/08/06 | 1054 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
-2022/08/06 | 1033 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
-2022/08/06 | 751 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
-2022/08/06 | 872 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
-2022/08/06 | 1195 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
-2022/08/06 | 1098 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
-2022/08/06 | 223 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCodeLens.h
-2022/08/06 | 489 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCompletionItem.h
-2022/08/06 | 789 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
-2022/08/06 | 1440 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
-2022/08/06 | 2632 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
-2022/08/06 | 9945 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
-2022/08/06 | 3391 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
-2022/08/06 | 490 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
-2022/08/06 | 4199 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
-2022/08/06 | 1924 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
-2022/08/06 | 4899 | graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
-2022/08/06 | 2257 | graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
-2022/08/06 | 2149 | graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
-2022/08/06 | 1077 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
-2022/08/06 | 1161 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
-2022/08/06 | 580 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
-2022/08/06 | 1352 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_watched_files.h
-2022/08/06 | 1321 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
-2022/08/06 | 794 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/execute_command.h
-2022/08/06 | 428 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/symbol.h
-2022/08/06 | 953 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
-2022/08/06 | 54109 | graphics/asymptote/LspCpp/include/optional.hpp
-2022/08/06 | 1066 | graphics/asymptote/LspCpp/LICENSE
-2022/08/06 | 1219 | graphics/asymptote/LspCpp/README.md
-2022/08/06 | 964 | graphics/asymptote/LspCpp/src/jsonrpc/Context.cpp
-2022/08/06 | 1201 | graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
-2022/08/06 | 277 | graphics/asymptote/LspCpp/src/jsonrpc/GCThreadContext.cpp
-2022/08/06 | 2144 | graphics/asymptote/LspCpp/src/jsonrpc/message.cpp
-2022/08/06 | 1190 | graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
-2022/08/06 | 54109 | graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp
-2022/08/06 | 17088 | graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
-2022/08/06 | 4822 | graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
-2022/08/06 | 4396 | graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
-2022/08/06 | 9003 | graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
-2022/08/06 | 465 | graphics/asymptote/LspCpp/src/jsonrpc/threaded_queue.cpp
-2022/08/06 | 10251 | graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
-2022/08/06 | 1074 | graphics/asymptote/LspCpp/src/lsp/initialize.cpp
-2022/08/06 | 23507 | graphics/asymptote/LspCpp/src/lsp/lsp.cpp
-2022/08/06 | 1673 | graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
-2022/08/06 | 33695 | graphics/asymptote/LspCpp/src/lsp/Markup.cpp
-2022/08/06 | 2913 | graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
-2022/08/06 | 23931 | graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
-2022/08/06 | 11255 | graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
-2022/08/06 | 15976 | graphics/asymptote/LspCpp/src/lsp/utils.cpp
-2022/08/06 | 5350 | graphics/asymptote/LspCpp/src/lsp/working_files.cpp
-2022/08/06 | 2662 | graphics/asymptote/LspCpp/third_party/rapidjson/appveyor.yml
-2022/08/06 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/abcde.txt
-2022/08/06 | 582 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
-2022/08/06 | 872 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json
-2022/08/06 | 103 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/readme.txt
-2022/08/06 | 687491 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/sample.json
-2022/08/06 | 3467 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json
-2022/08/06 | 601 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
-2022/08/06 | 4375 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/draft-04/schema
-2022/08/06 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16bebom.json
-2022/08/06 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16be.json
-2022/08/06 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16lebom.json
-2022/08/06 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16le.json
-2022/08/06 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32bebom.json
-2022/08/06 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32be.json
-2022/08/06 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32lebom.json
-2022/08/06 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32le.json
-2022/08/06 | 319 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
-2022/08/06 | 316 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
-2022/08/06 | 58 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail10.json
-2022/08/06 | 29 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail11.json
-2022/08/06 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail12.json
-2022/08/06 | 43 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail13.json
-2022/08/06 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail14.json
-2022/08/06 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail15.json
-2022/08/06 | 8 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail16.json
-2022/08/06 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail17.json
-2022/08/06 | 50 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail18.json
-2022/08/06 | 22 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail19.json
-2022/08/06 | 60 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail1.json
-2022/08/06 | 23 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail20.json
-2022/08/06 | 32 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail21.json
-2022/08/06 | 33 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail22.json
-2022/08/06 | 20 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail23.json
-2022/08/06 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail24.json
-2022/08/06 | 29 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail25.json
-2022/08/06 | 38 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail26.json
-2022/08/06 | 14 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail27.json
-2022/08/06 | 15 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail28.json
-2022/08/06 | 4 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail29.json
-2022/08/06 | 17 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail2.json
-2022/08/06 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail30.json
-2022/08/06 | 7 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail31.json
-2022/08/06 | 40 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail32.json
-2022/08/06 | 12 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail33.json
-2022/08/06 | 37 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail3.json
-2022/08/06 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail4.json
-2022/08/06 | 24 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail5.json
-2022/08/06 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail6.json
-2022/08/06 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail7.json
-2022/08/06 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail8.json
-2022/08/06 | 22 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail9.json
-2022/08/06 | 1441 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass1.json
-2022/08/06 | 52 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass2.json
-2022/08/06 | 148 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass3.json
-2022/08/06 | 173 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/readme.txt
-2022/08/06 | 9059 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/bin/jsonschema_suite
-2022/08/06 | 1057 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/LICENSE
-2022/08/06 | 4787 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/README.md
-2022/08/06 | 25 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json
-2022/08/06 | 25 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/integer.json
-2022/08/06 | 110 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/subSchemas.json
-2022/08/06 | 2257 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json
-2022/08/06 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json
-2022/08/06 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/default.json
-2022/08/06 | 2989 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/dependencies.json
-2022/08/06 | 1936 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/disallow.json
-2022/08/06 | 1544 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json
-2022/08/06 | 1964 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/enum.json
-2022/08/06 | 2591 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/extends.json
-2022/08/06 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/items.json
-2022/08/06 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maximum.json
-2022/08/06 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxItems.json
-2022/08/06 | 895 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxLength.json
-2022/08/06 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minimum.json
-2022/08/06 | 693 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minItems.json
-2022/08/06 | 886 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minLength.json
-2022/08/06 | 3075 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json
-2022/08/06 | 6751 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/format.json
-2022/08/06 | 463 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json
-2022/08/06 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json
-2022/08/06 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/pattern.json
-2022/08/06 | 3365 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json
-2022/08/06 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/properties.json
-2022/08/06 | 4385 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/ref.json
-2022/08/06 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/refRemote.json
-2022/08/06 | 1282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/required.json
-2022/08/06 | 13217 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/type.json
-2022/08/06 | 2613 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json
-2022/08/06 | 2282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json
-2022/08/06 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json
-2022/08/06 | 3025 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/allOf.json
-2022/08/06 | 1608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/anyOf.json
-2022/08/06 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/default.json
-2022/08/06 | 854 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/definitions.json
-2022/08/06 | 3139 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/dependencies.json
-2022/08/06 | 1975 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/enum.json
-2022/08/06 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/items.json
-2022/08/06 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maximum.json
-2022/08/06 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxItems.json
-2022/08/06 | 896 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxLength.json
-2022/08/06 | 759 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json
-2022/08/06 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minimum.json
-2022/08/06 | 693 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minItems.json
-2022/08/06 | 886 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minLength.json
-2022/08/06 | 725 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minProperties.json
-2022/08/06 | 1525 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json
-2022/08/06 | 2266 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/not.json
-2022/08/06 | 1607 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/oneOf.json
-2022/08/06 | 3075 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json
-2022/08/06 | 4608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/format.json
-2022/08/06 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json
-2022/08/06 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/pattern.json
-2022/08/06 | 3365 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json
-2022/08/06 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/properties.json
-2022/08/06 | 4366 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/ref.json
-2022/08/06 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/refRemote.json
-2022/08/06 | 923 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/required.json
-2022/08/06 | 9298 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/type.json
-2022/08/06 | 2613 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json
-2022/08/06 | 134 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tox.ini
-2022/08/06 | 30003 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/alotofkeys.json
-2022/08/06 | 849 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/booleans.json
-2022/08/06 | 1698 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/floats.json
-2022/08/06 | 4202 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/guids.json
-2022/08/06 | 1098 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/integers.json
-2022/08/06 | 15142 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/mixed.json
-2022/08/06 | 802 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/nulls.json
-2022/08/06 | 33764 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/paragraphs.json
-2022/08/06 | 86 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/readme.txt
-2022/08/06 | 3157 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/address.json
-2022/08/06 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/allOf_address.json
-2022/08/06 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/anyOf_address.json
-2022/08/06 | 1315 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/idandref.json
-2022/08/06 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/oneOf_address.json
-2022/08/06 | 6818 | graphics/asymptote/LspCpp/third_party/rapidjson/CHANGELOG.md
-2022/08/06 | 10312 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeLists.txt
-2022/08/06 | 828 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeModules/FindGTestSrc.cmake
-2022/08/06 | 2175 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/LICENSE
-2022/08/06 | 2603 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/rapidjson.natvis
-2022/08/06 | 678 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/README.md
-2022/08/06 | 1052 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/CMakeLists.txt
-2022/08/06 | 912 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.dot
-2022/08/06 | 16569 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.png
-2022/08/06 | 2239 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.dot
-2022/08/06 | 37281 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.png
-2022/08/06 | 1915 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.dot
-2022/08/06 | 92378 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.png
-2022/08/06 | 176 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/makefile
-2022/08/06 | 935 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.dot
-2022/08/06 | 16081 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.png
-2022/08/06 | 1502 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.dot
-2022/08/06 | 41517 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.png
-2022/08/06 | 1454 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.dot
-2022/08/06 | 36371 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.png
-2022/08/06 | 1427 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.dot
-2022/08/06 | 32887 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.png
-2022/08/06 | 1435 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.dot
-2022/08/06 | 43670 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.png
-2022/08/06 | 1456 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.dot
-2022/08/06 | 44634 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.png
-2022/08/06 | 1775 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.dot
-2022/08/06 | 99993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.png
-2022/08/06 | 15464 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.md
-2022/08/06 | 15393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.zh-cn.md
-2022/08/06 | 103393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.in
-2022/08/06 | 103478 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.zh-cn.in
-2022/08/06 | 6708 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.md
-2022/08/06 | 6860 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.zh-cn.md
-2022/08/06 | 15364 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.md
-2022/08/06 | 15030 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.zh-cn.md
-2022/08/06 | 5005 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.md
-2022/08/06 | 4805 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.zh-cn.md
-2022/08/06 | 22426 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.md
-2022/08/06 | 21956 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.zh-cn.md
-2022/08/06 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/docker/debian/Dockerfile
-2022/08/06 | 5259 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.png
-2022/08/06 | 4230 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.svg
-2022/08/06 | 6572 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/doxygenextra.css
-2022/08/06 | 6090 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/DoxygenLayout.xml
-2022/08/06 | 256 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/footer.html
-2022/08/06 | 1137 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/header.html
-2022/08/06 | 363 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/npm.md
-2022/08/06 | 1268 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.md
-2022/08/06 | 1236 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.zh-cn.md
-2022/08/06 | 8883 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/pointer.md
-2022/08/06 | 8532 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/pointer.zh-cn.md
-2022/08/06 | 21276 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.md
-2022/08/06 | 19967 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.zh-cn.md
-2022/08/06 | 17993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.md
-2022/08/06 | 9765 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.zh-cn.md
-2022/08/06 | 14531 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.md
-2022/08/06 | 14325 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.zh-cn.md
-2022/08/06 | 22121 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.md
-2022/08/06 | 21546 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.zh-cn.md
-2022/08/06 | 7130 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
-2022/08/06 | 3567 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
-2022/08/06 | 6862 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
-2022/08/06 | 2577 | graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
-2022/08/06 | 982 | graphics/asymptote/LspCpp/third_party/rapidjson/example/CMakeLists.txt
-2022/08/06 | 1015 | graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
-2022/08/06 | 5946 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
-2022/08/06 | 4979 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
-2022/08/06 | 6022 | graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
-2022/08/06 | 9461 | graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
-2022/08/06 | 2814 | graphics/asymptote/LspCpp/third_party/rapidjson/example/messagereader/messagereader.cpp
-2022/08/06 | 5150 | graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
-2022/08/06 | 2245 | graphics/asymptote/LspCpp/third_party/rapidjson/example/prettyauto/prettyauto.cpp
-2022/08/06 | 1019 | graphics/asymptote/LspCpp/third_party/rapidjson/example/pretty/pretty.cpp
-2022/08/06 | 8705 | graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
-2022/08/06 | 4590 | graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
-2022/08/06 | 685 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simpledom/simpledom.cpp
-2022/08/06 | 2259 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
-2022/08/06 | 1868 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
-2022/08/06 | 1031 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
-2022/08/06 | 1610 | graphics/asymptote/LspCpp/third_party/rapidjson/example/sortkeys/sortkeys.cpp
-2022/08/06 | 943 | graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
-2022/08/06 | 6263 | graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
-2022/08/06 | 94 | graphics/asymptote/LspCpp/third_party/rapidjson/include_dirs.js
-2022/08/06 | 22522 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
-2022/08/06 | 2260 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/cursorstreamwrapper.h
-2022/08/06 | 132820 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
-2022/08/06 | 10660 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
-2022/08/06 | 29260 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
-2022/08/06 | 8831 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
-2022/08/06 | 9744 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
-2022/08/06 | 2980 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
-2022/08/06 | 3125 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
-2022/08/06 | 4013 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
-2022/08/06 | 9271 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
-2022/08/06 | 2045 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/clzll.h
-2022/08/06 | 11559 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/diyfp.h
-2022/08/06 | 8433 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
-2022/08/06 | 2973 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
-2022/08/06 | 10110 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/itoa.h
-2022/08/06 | 6620 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
-2022/08/06 | 3574 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
-2022/08/06 | 26120 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
-2022/08/06 | 7163 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
-2022/08/06 | 2726 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
-2022/08/06 | 9045 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
-2022/08/06 | 1398 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/swap.h
-2022/08/06 | 4061 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
-2022/08/06 | 2539 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
-2022/08/06 | 2646 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
-2022/08/06 | 8372 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
-2022/08/06 | 9386 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
-2022/08/06 | 2310 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
-2022/08/06 | 63725 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
-2022/08/06 | 10518 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
-2022/08/06 | 25599 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
-2022/08/06 | 94336 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/reader.h
-2022/08/06 | 121147 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
-2022/08/06 | 6732 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stream.h
-2022/08/06 | 3972 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
-2022/08/06 | 19752 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/uri.h
-2022/08/06 | 26856 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
-2022/08/06 | 355 | graphics/asymptote/LspCpp/third_party/rapidjson/library.json
-2022/08/06 | 5152 | graphics/asymptote/LspCpp/third_party/rapidjson/license.txt
-2022/08/06 | 561 | graphics/asymptote/LspCpp/third_party/rapidjson/package.json
-2022/08/06 | 3407 | graphics/asymptote/LspCpp/third_party/rapidjson/rapidjson.autopkg
-2022/08/06 | 983 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfig.cmake.in
-2022/08/06 | 469 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfigVersion.cmake.in
-2022/08/06 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSON.pc.in
-2022/08/06 | 11146 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.md
-2022/08/06 | 8795 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.zh-cn.md
-2022/08/06 | 491 | graphics/asymptote/LspCpp/third_party/rapidjson/test/CMakeLists.txt
-2022/08/06 | 834 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/CMakeLists.txt
-2022/08/06 | 35467 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
-2022/08/06 | 975 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
-2022/08/06 | 5756 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
-2022/08/06 | 4456 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
-2022/08/06 | 16302 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
-2022/08/06 | 7218 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/schematest.cpp
-2022/08/06 | 9040 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
-2022/08/06 | 4420 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
-2022/08/06 | 1092 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
-2022/08/06 | 3060 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/CMakeLists.txt
-2022/08/06 | 3733 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/cursorstreamwrappertest.cpp
-2022/08/06 | 21279 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
-2022/08/06 | 3441 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
-2022/08/06 | 12004 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
-2022/08/06 | 19344 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
-2022/08/06 | 4389 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
-2022/08/06 | 5837 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
-2022/08/06 | 5419 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
-2022/08/06 | 3956 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/itoatest.cpp
-2022/08/06 | 4753 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
-2022/08/06 | 2401 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
-2022/08/06 | 2478 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
-2022/08/06 | 1457 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
-2022/08/06 | 62786 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
-2022/08/06 | 10350 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
-2022/08/06 | 98539 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/readertest.cpp
-2022/08/06 | 17263 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
-2022/08/06 | 125009 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
-2022/08/06 | 7020 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
-2022/08/06 | 1316 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
-2022/08/06 | 5544 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
-2022/08/06 | 4256 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
-2022/08/06 | 1527 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
-2022/08/06 | 3979 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
-2022/08/06 | 28158 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/uritest.cpp
-2022/08/06 | 57599 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
-2022/08/06 | 17932 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
-2022/08/06 | 242 | graphics/asymptote/LspCpp/third_party/rapidjson/test/valgrind.supp
-2022/08/06 | 3294 | graphics/asymptote/LspCpp/third_party/rapidjson/travis-doxygen.sh
-2022/08/06 | 4465 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp
-2022/08/06 | 2088 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp
-2022/08/06 | 13824 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp
-2022/08/06 | 1006 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp
-2022/08/06 | 2817 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp
-2022/08/06 | 2649 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp
-2022/08/06 | 663 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp
-2022/08/06 | 2000 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp
-2022/08/06 | 7632 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp
-2022/08/06 | 6550 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp
-2022/08/06 | 1957 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp
-2022/08/06 | 2396 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp
-2022/08/06 | 4345 | graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp
-2022/08/06 | 3723 | graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG
-2022/08/06 | 221 | graphics/asymptote/LspCpp/third_party/threadpool/COPYING
-2022/08/06 | 319 | graphics/asymptote/LspCpp/third_party/threadpool/Jamfile.v2
-2022/08/06 | 32 | graphics/asymptote/LspCpp/third_party/threadpool/Jamrules
-2022/08/06 | 5196 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox
-2022/08/06 | 1134 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm
-2022/08/06 | 1322 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt
-2022/08/06 | 5202 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox
-2022/08/06 | 1122 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm
-2022/08/06 | 113 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt
-2022/08/06 | 643 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm
-2022/08/06 | 625 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm
-2022/08/06 | 994 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm
-2022/08/06 | 967 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm
-2022/08/06 | 184 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html
-2022/08/06 | 801 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile
-2022/08/06 | 5221 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox
-2022/08/06 | 1188 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm
-2022/08/06 | 8296 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt
-2022/08/06 | 8411 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox
-2022/08/06 | 1283 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm
-2022/08/06 | 7619 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css
-2022/08/06 | 5203 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox
-2022/08/06 | 1332 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm
-2022/08/06 | 6350 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt
-2022/08/06 | 195 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2
-2022/08/06 | 4465 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp
-2022/08/06 | 194 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2
-2022/08/06 | 986 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp
-2022/08/06 | 321 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README
-2022/08/06 | 2315 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp
-2022/08/06 | 199 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2
-2022/08/06 | 190 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2
-2022/08/06 | 5265 | graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp
-2022/08/06 | 1338 | graphics/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt
-2022/08/06 | 1125 | graphics/asymptote/LspCpp/third_party/threadpool/Makefile
-2022/08/06 | 67 | graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam
-2022/08/06 | 279 | graphics/asymptote/LspCpp/third_party/threadpool/README
-2022/08/06 | 1088 | graphics/asymptote/LspCpp/third_party/threadpool/TODO
-2022/08/06 | 1216 | graphics/asymptote/LspCpp/third_party/uri/CHANGELOG.md
-2022/08/06 | 648 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
-2022/08/06 | 3036 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
-2022/08/06 | 188 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/cmake_clean.cmake
-2022/08/06 | 113 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/compiler_depend.make
-2022/08/06 | 107 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/compiler_depend.ts
-2022/08/06 | 423 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake
-2022/08/06 | 22 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/progress.make
-2022/08/06 | 2 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/progress.marks
-2022/08/06 | 1703 | graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake
-2022/08/06 | 3282 | graphics/asymptote/LspCpp/third_party/uri/CMakeLists.txt
-2022/08/06 | 6104 | graphics/asymptote/LspCpp/third_party/uri/deps/BUILD.bazel
-2022/08/06 | 4160 | graphics/asymptote/LspCpp/third_party/uri/deps/ci/linux-presubmit.sh
-2022/08/06 | 2608 | graphics/asymptote/LspCpp/third_party/uri/deps/ci/macos-presubmit.sh
-2022/08/06 | 784 | graphics/asymptote/LspCpp/third_party/uri/deps/CMakeLists.txt
-2022/08/06 | 5683 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTING.md
-2022/08/06 | 2223 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTORS
-2022/08/06 | 86552 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/advanced.md
-2022/08/06 | 342 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/community_created_documentation.md
-2022/08/06 | 18 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_config.yml
-2022/08/06 | 1200 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_data/navigation.yml
-2022/08/06 | 29900 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/faq.md
-2022/08/06 | 7364 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cheat_sheet.md
-2022/08/06 | 145014 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cook_book.md
-2022/08/06 | 14980 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_faq.md
-2022/08/06 | 29203 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_for_dummies.md
-2022/08/06 | 1034 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/index.md
-2022/08/06 | 2319 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_layouts/default.html
-2022/08/06 | 5062 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/pkgconfig.md
-2022/08/06 | 929 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/platforms.md
-2022/08/06 | 19136 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/primer.md
-2022/08/06 | 5204 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-bazel.md
-2022/08/06 | 5054 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-cmake.md
-2022/08/06 | 6872 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/actions.md
-2022/08/06 | 21535 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/assertions.md
-2022/08/06 | 20123 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/matchers.md
-2022/08/06 | 20974 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/mocking.md
-2022/08/06 | 43830 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/testing.md
-2022/08/06 | 1118 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/samples.md
-2022/08/06 | 2915 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_sass/main.scss
-2022/08/06 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock_main.pc.in
-2022/08/06 | 347 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock.pc.in
-2022/08/06 | 8129 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/CMakeLists.txt
-2022/08/06 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/docs/README.md
-2022/08/06 | 61667 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-actions.h
-2022/08/06 | 6097 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-cardinalities.h
-2022/08/06 | 25503 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-function-mocker.h
-2022/08/06 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock.h
-2022/08/06 | 207686 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-matchers.h
-2022/08/06 | 30920 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-actions.h
-2022/08/06 | 3419 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-matchers.h
-2022/08/06 | 10476 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-nice-strict.h
-2022/08/06 | 76445 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-spec-builders.h
-2022/08/06 | 314 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
-2022/08/06 | 1918 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-matchers.h
-2022/08/06 | 1953 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-port.h
-2022/08/06 | 510 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/README.md
-2022/08/06 | 18448 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-internal-utils.h
-2022/08/06 | 4807 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-port.h
-2022/08/06 | 13491 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-pp.h
-2022/08/06 | 1538 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/README.md
-2022/08/06 | 2107 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-all.cc
-2022/08/06 | 5262 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-cardinalities.cc
-2022/08/06 | 8528 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock.cc
-2022/08/06 | 9267 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-internal-utils.cc
-2022/08/06 | 3011 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock_main.cc
-2022/08/06 | 17951 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-matchers.cc
-2022/08/06 | 33482 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-spec-builders.cc
-2022/08/06 | 3266 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/BUILD.bazel
-2022/08/06 | 51302 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-actions_test.cc
-2022/08/06 | 2335 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_all_test.cc
-2022/08/06 | 12321 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-cardinalities_test.cc
-2022/08/06 | 3280 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_ex_test.cc
-2022/08/06 | 33667 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-function-mocker_test.cc
-2022/08/06 | 28114 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-internal-utils_test.cc
-2022/08/06 | 3230 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test_.cc
-2022/08/06 | 4357 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test.py
-2022/08/06 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link2_test.cc
-2022/08/06 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.cc
-2022/08/06 | 19604 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.h
-2022/08/06 | 287695 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-matchers_test.cc
-2022/08/06 | 53373 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-more-actions_test.cc
-2022/08/06 | 15529 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-nice-strict_test.cc
-2022/08/06 | 8561 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_.cc
-2022/08/06 | 13612 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_golden.txt
-2022/08/06 | 6175 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test.py
-2022/08/06 | 1977 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-port_test.cc
-2022/08/06 | 8789 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp-string_test.cc
-2022/08/06 | 3517 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp_test.cc
-2022/08/06 | 74749 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-spec-builders_test.cc
-2022/08/06 | 7287 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_stress_test.cc
-2022/08/06 | 6412 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test.cc
-2022/08/06 | 3218 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test_utils.py
-2022/08/06 | 284 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/Config.cmake.in
-2022/08/06 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest_main.pc.in
-2022/08/06 | 311 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest.pc.in
-2022/08/06 | 14575 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/internal_utils.cmake
-2022/08/06 | 499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/libgtest.la.in
-2022/08/06 | 11937 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeLists.txt
-2022/08/06 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/docs/README.md
-2022/08/06 | 8307 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-assertion-result.h
-2022/08/06 | 14651 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-death-test.h
-2022/08/06 | 88387 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest.h
-2022/08/06 | 33240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-matchers.h
-2022/08/06 | 8120 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-message.h
-2022/08/06 | 22663 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-param-test.h
-2022/08/06 | 15043 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_pred_impl.h
-2022/08/06 | 36540 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-printers.h
-2022/08/06 | 2499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_prod.h
-2022/08/06 | 10073 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-spi.h
-2022/08/06 | 6944 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-test-part.h
-2022/08/06 | 15959 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-typed-test.h
-2022/08/06 | 1858 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest.h
-2022/08/06 | 1873 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-port.h
-2022/08/06 | 2094 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-printers.h
-2022/08/06 | 1753 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/README.md
-2022/08/06 | 13366 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-death-test-internal.h
-2022/08/06 | 9856 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-filepath.h
-2022/08/06 | 61699 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-internal.h
-2022/08/06 | 35217 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-param-util.h
-2022/08/06 | 4207 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-port-arch.h
-2022/08/06 | 85342 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-port.h
-2022/08/06 | 7304 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-string.h
-2022/08/06 | 6252 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-type-util.h
-2022/08/06 | 8894 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/README.md
-2022/08/06 | 4247 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/prime_tables.h
-2022/08/06 | 4985 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample10_unittest.cc
-2022/08/06 | 2470 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.cc
-2022/08/06 | 1919 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.h
-2022/08/06 | 5111 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1_unittest.cc
-2022/08/06 | 2260 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2.cc
-2022/08/06 | 2982 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2.h
-2022/08/06 | 3917 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2_unittest.cc
-2022/08/06 | 5375 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3-inl.h
-2022/08/06 | 5360 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3_unittest.cc
-2022/08/06 | 2110 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.cc
-2022/08/06 | 2132 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.h
-2022/08/06 | 1995 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4_unittest.cc
-2022/08/06 | 6585 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample5_unittest.cc
-2022/08/06 | 8861 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample6_unittest.cc
-2022/08/06 | 4620 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample7_unittest.cc
-2022/08/06 | 6194 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample8_unittest.cc
-2022/08/06 | 5925 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample9_unittest.cc
-2022/08/06 | 2201 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc
-2022/08/06 | 3025 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-assertion-result.cc
-2022/08/06 | 252536 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest.cc
-2022/08/06 | 62413 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-death-test.cc
-2022/08/06 | 14081 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-filepath.cc
-2022/08/06 | 46854 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-internal-inl.h
-2022/08/06 | 1968 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc
-2022/08/06 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-matchers.cc
-2022/08/06 | 47582 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-port.cc
-2022/08/06 | 18474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-printers.cc
-2022/08/06 | 4126 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-test-part.cc
-2022/08/06 | 3780 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-typed-test.cc
-2022/08/06 | 15318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/BUILD.bazel
-2022/08/06 | 3240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-break-on-failure-unittest_.cc
-2022/08/06 | 7322 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-break-on-failure-unittest.py
-2022/08/06 | 8386 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test_.cc
-2022/08/06 | 10023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test.py
-2022/08/06 | 2505 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test_.cc
-2022/08/06 | 4896 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test.py
-2022/08/06 | 3601 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test_ex_test.cc
-2022/08/06 | 47993 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test-test.cc
-2022/08/06 | 3704 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test_.cc
-2022/08/06 | 4173 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test.py
-2022/08/06 | 5595 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest_.cc
-2022/08/06 | 14915 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest.py
-2022/08/06 | 22642 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filepath-test.cc
-2022/08/06 | 3466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest_.cc
-2022/08/06 | 21466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest.py
-2022/08/06 | 2286 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest_.cc
-2022/08/06 | 5254 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest.py
-2022/08/06 | 5705 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-json-outfiles-test.py
-2022/08/06 | 24483 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-json-output-unittest.py
-2022/08/06 | 24474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-listener-test.cc
-2022/08/06 | 4668 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-list-tests-unittest_.cc
-2022/08/06 | 6543 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-list-tests-unittest.py
-2022/08/06 | 5265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-message-test.cc
-2022/08/06 | 7957 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-options-test.cc
-2022/08/06 | 36152 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test_.cc
-2022/08/06 | 42714 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test-golden-lin.txt
-2022/08/06 | 12648 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test.py
-2022/08/06 | 2813 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test2-test.cc
-2022/08/06 | 2023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test_.cc
-2022/08/06 | 2400 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test.py
-2022/08/06 | 2138 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test_.cc
-2022/08/06 | 2355 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test.py
-2022/08/06 | 40998 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.cc
-2022/08/06 | 2282 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.h
-2022/08/06 | 40876 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-port-test.cc
-2022/08/06 | 63842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-printers-test.cc
-2022/08/06 | 1949 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-setuptestsuite-test_.cc
-2022/08/06 | 2265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-setuptestsuite-test.py
-2022/08/06 | 3219 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test_.cc
-2022/08/06 | 12539 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test.py
-2022/08/06 | 8112 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-test-part-test.cc
-2022/08/06 | 3069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-throw-on-failure-test_.cc
-2022/08/06 | 5658 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-throw-on-failure-test.py
-2022/08/06 | 1878 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test_.cc
-2022/08/06 | 2495 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test.py
-2022/08/06 | 2239 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_all_test.cc
-2022/08/06 | 3842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_assert_by_exception_test.cc
-2022/08/06 | 6418 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_environment_test.cc
-2022/08/06 | 2088 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test_.cc
-2022/08/06 | 6037 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test.py
-2022/08/06 | 2411 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_json_test_utils.py
-2022/08/06 | 3197 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest_.cc
-2022/08/06 | 9502 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest.py
-2022/08/06 | 1841 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_main_unittest.cc
-2022/08/06 | 2403 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_no_test_unittest.cc
-2022/08/06 | 77498 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_pred_impl_unittest.cc
-2022/08/06 | 4283 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_premature_exit_test.cc
-2022/08/06 | 2147 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_prod_test.cc
-2022/08/06 | 7180 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_repeat_test.cc
-2022/08/06 | 2411 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_check_output_test.py
-2022/08/06 | 2230 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_environment_check_output_test.py
-2022/08/06 | 2069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_in_environment_setup_test.cc
-2022/08/06 | 2005 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_test.cc
-2022/08/06 | 2175 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_sole_header_test.cc
-2022/08/06 | 9318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_stress_test.cc
-2022/08/06 | 1923 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_testbridge_test_.cc
-2022/08/06 | 2496 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_testbridge_test.py
-2022/08/06 | 3767 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_macro_stack_footprint_test.cc
-2022/08/06 | 8407 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_utils.py
-2022/08/06 | 3392 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_throw_on_failure_ex_test.cc
-2022/08/06 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test2_test.cc
-2022/08/06 | 14089 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.cc
-2022/08/06 | 2396 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.h
-2022/08/06 | 13060 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-unittest-api_test.cc
-2022/08/06 | 261756 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_unittest.cc
-2022/08/06 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfile1_test_.cc
-2022/08/06 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfile2_test_.cc
-2022/08/06 | 5415 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfiles_test.py
-2022/08/06 | 6376 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest_.cc
-2022/08/06 | 20639 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest.py
-2022/08/06 | 9327 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_test_utils.py
-2022/08/06 | 1675 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.cc
-2022/08/06 | 2130 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.h
-2022/08/06 | 1475 | graphics/asymptote/LspCpp/third_party/uri/deps/LICENSE
-2022/08/06 | 4613 | graphics/asymptote/LspCpp/third_party/uri/deps/README.md
-2022/08/06 | 781 | graphics/asymptote/LspCpp/third_party/uri/deps/WORKSPACE
-2022/08/06 | 74120 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile
-2022/08/06 | 74016 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile.in
-2022/08/06 | 16552 | graphics/asymptote/LspCpp/third_party/uri/include/network/optional.hpp
-2022/08/06 | 7731 | graphics/asymptote/LspCpp/third_party/uri/include/network/string_view.hpp
-2022/08/06 | 572 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/config.hpp
-2022/08/06 | 1898 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
-2022/08/06 | 4438 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
-2022/08/06 | 2151 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
-2022/08/06 | 2073 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
-2022/08/06 | 1031 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri.hpp
-2022/08/06 | 6917 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
-2022/08/06 | 2459 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
-2022/08/06 | 21998 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri.hpp
-2022/08/06 | 1710 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp
-2022/08/06 | 1338 | graphics/asymptote/LspCpp/third_party/uri/LICENSE_1_0.txt
-2022/08/06 | 7049 | graphics/asymptote/LspCpp/third_party/uri/Makefile
-2022/08/06 | 2328 | graphics/asymptote/LspCpp/third_party/uri/README.rst
-2022/08/06 | 648 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
-2022/08/06 | 20942 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
-2022/08/06 | 1104 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean.cmake
-2022/08/06 | 43 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean_target.cmake
-2022/08/06 | 67309 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
-2022/08/06 | 79178 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
-2022/08/06 | 118 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
-2022/08/06 | 2295 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
-2022/08/06 | 95 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
-2022/08/06 | 413 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
-2022/08/06 | 457 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
-2022/08/06 | 199 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/progress.make
-2022/08/06 | 2 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/progress.marks
-2022/08/06 | 1540 | graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
-2022/08/06 | 1008 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeLists.txt
-2022/08/06 | 2115 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm_find.hpp
-2022/08/06 | 2100 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm.hpp
-2022/08/06 | 2281 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm_split.hpp
-2022/08/06 | 3063 | graphics/asymptote/LspCpp/third_party/uri/src/detail/grammar.hpp
-2022/08/06 | 2313 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
-2022/08/06 | 639 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
-2022/08/06 | 2035 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
-2022/08/06 | 594 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
-2022/08/06 | 2996 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
-2022/08/06 | 710 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
-2022/08/06 | 10414 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.cpp
-2022/08/06 | 563 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.hpp
-2022/08/06 | 1830 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
-2022/08/06 | 2526 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
-2022/08/06 | 714 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
-2022/08/06 | 16661 | graphics/asymptote/LspCpp/third_party/uri/src/Makefile
-2022/08/06 | 4227 | graphics/asymptote/LspCpp/third_party/uri/src/uri_builder.cpp
-2022/08/06 | 18382 | graphics/asymptote/LspCpp/third_party/uri/src/uri.cpp
-2022/08/06 | 1916 | graphics/asymptote/LspCpp/third_party/uri/src/uri_errors.cpp
-2022/08/06 | 1039 | graphics/asymptote/LspCpp/third_party/uri/test/CMakeLists.txt
-2022/08/06 | 572 | graphics/asymptote/LspCpp/third_party/uri/test/invalid_urls.txt
-2022/08/06 | 4347 | graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
-2022/08/06 | 483 | graphics/asymptote/LspCpp/third_party/uri/test/string_utility.hpp
-2022/08/06 | 2053 | graphics/asymptote/LspCpp/third_party/uri/test/test_uri.hpp
-2022/08/06 | 22505 | graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
-2022/08/06 | 3139 | graphics/asymptote/LspCpp/third_party/uri/test/uri_comparison_test.cpp
-2022/08/06 | 5319 | graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
-2022/08/06 | 8767 | graphics/asymptote/LspCpp/third_party/uri/test/uri_normalization_test.cpp
-2022/08/06 | 3870 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_path_test.cpp
-2022/08/06 | 2578 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp
-2022/08/06 | 18327 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_test.cpp
-2022/08/06 | 2682 | graphics/asymptote/LspCpp/third_party/uri/test/uri_reference_test.cpp
-2022/08/06 | 10168 | graphics/asymptote/LspCpp/third_party/uri/test/uri_resolve_test.cpp
-2022/08/06 | 1419 | graphics/asymptote/LspCpp/third_party/uri/test/uri_stream_test.cpp
-2022/08/06 | 33275 | graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
-2022/08/06 | 1116 | graphics/asymptote/LspCpp/third_party/uri/test/valid_urls.txt
-2022/08/06 | 1291 | graphics/asymptote/LspCpp/third_party/utfcpp/CMakeLists.txt
-2022/08/06 | 1338 | graphics/asymptote/LspCpp/third_party/utfcpp/LICENSE
-2022/08/06 | 55726 | graphics/asymptote/LspCpp/third_party/utfcpp/README.md
-2022/08/06 | 2123 | graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
-2022/08/06 | 12474 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/checked.h
-2022/08/06 | 10928 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
-2022/08/06 | 3306 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
-2022/08/06 | 3298 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
-2022/08/06 | 1521 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8.h
-2022/08/06 | 10989 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
-2022/08/06 | 1734 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/CMakeLists.txt
-2022/08/06 | 125 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/docker/Dockerfile
-2022/08/06 | 2143 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
-2022/08/06 | 5578 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_api.cpp
-2022/08/06 | 1032 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_iterator.cpp
-2022/08/06 | 3036 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp11.cpp
-2022/08/06 | 2611 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp17.cpp
-2022/08/06 | 20010 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_data/utf8_invalid.txt
-2022/08/06 | 4626 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_unchecked_api.cpp
-2022/08/06 | 1002 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_unchecked_iterator.cpp
-2022/08/06 | 21507 | graphics/asymptote/lspserv.cc
-2022/08/06 | 6528 | graphics/asymptote/lspserv.h
-2022/08/06 | 6673 | graphics/asymptote/main.cc
-2022/08/06 | 12907 | graphics/asymptote/Makefile.in
-2022/08/06 | 920 | graphics/asymptote/makeUnique.h
-2022/08/06 | 2960 | graphics/asymptote/material.h
-2022/08/06 | 6414 | graphics/asymptote/mathop.h
-2022/08/06 | 5115 | graphics/asymptote/memory.h
-2022/08/06 | 714 | graphics/asymptote/mod.h
-2022/08/06 | 908 | graphics/asymptote/modifier.h
-2022/08/06 | 8037 | graphics/asymptote/name.cc
-2022/08/06 | 5691 | graphics/asymptote/name.h
-2022/08/06 | 4285 | graphics/asymptote/newexp.cc
-2022/08/06 | 1274 | graphics/asymptote/newexp.h
-2022/08/06 | 916 | graphics/asymptote/opcodes.h
-2022/08/06 | 1050 | graphics/asymptote/opsymbols.pl
-2022/08/06 | 5308 | graphics/asymptote/pair.h
-2022/08/06 | 4873 | graphics/asymptote/parser.cc
-2022/08/06 | 1171 | graphics/asymptote/parser.h
-2022/08/06 | 5262 | graphics/asymptote/patches/bison.patch
-2022/08/06 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
-2022/08/06 | 1299 | graphics/asymptote/patches/dvipdf
-2022/08/06 | 113 | graphics/asymptote/patches/fixmem.reg
-2022/08/06 | 1524 | graphics/asymptote/patches/flex.patch
-2022/08/06 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
-2022/08/06 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
-2022/08/06 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
-2022/08/06 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
-2022/08/06 | 1082 | graphics/asymptote/patches/README
-2022/08/06 | 37991 | graphics/asymptote/path3.cc
-2022/08/06 | 10585 | graphics/asymptote/path3.h
-2022/08/06 | 33417 | graphics/asymptote/path.cc
-2022/08/06 | 11663 | graphics/asymptote/path.h
-2022/08/06 | 1594 | graphics/asymptote/pen.cc
-2022/08/06 | 27958 | graphics/asymptote/pen.h
-2022/08/06 | 42828 | graphics/asymptote/picture.cc
-2022/08/06 | 3472 | graphics/asymptote/picture.h
-2022/08/06 | 5250 | graphics/asymptote/pipestream.cc
-2022/08/06 | 2614 | graphics/asymptote/pipestream.h
-2022/08/06 | 138 | graphics/asymptote/Pipfile
-2022/08/06 | 2542 | graphics/asymptote/policy.h
-2022/08/06 | 650 | graphics/asymptote/prcfile.h
-2022/08/06 | 974 | graphics/asymptote/prc/Makefile
-2022/08/06 | 71201 | graphics/asymptote/prc/oPRCFile.cc
-2022/08/06 | 51671 | graphics/asymptote/prc/oPRCFile.h
-2022/08/06 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
-2022/08/06 | 2518 | graphics/asymptote/prc/PRCbitStream.h
-2022/08/06 | 177246 | graphics/asymptote/prc/PRCdouble.cc
-2022/08/06 | 3765 | graphics/asymptote/prc/PRCdouble.h
-2022/08/06 | 30208 | graphics/asymptote/prc/PRC.h
-2022/08/06 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
-2022/08/06 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
-2022/08/06 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
-2022/08/06 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
-2022/08/06 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
-2022/08/06 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
-2022/08/06 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
-2022/08/06 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
-2022/08/06 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
-2022/08/06 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
-2022/08/06 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
-2022/08/06 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
-2022/08/06 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
-2022/08/06 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
-2022/08/06 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
-2022/08/06 | 95 | graphics/asymptote/prc/test.asy
-2022/08/06 | 36243 | graphics/asymptote/prc/test.cc
-2022/08/06 | 66751 | graphics/asymptote/prc/writePRC.cc
-2022/08/06 | 48481 | graphics/asymptote/prc/writePRC.h
-2022/08/06 | 116010 | graphics/asymptote/predicates.cc
-2022/08/06 | 986 | graphics/asymptote/predicates.h
-2022/08/06 | 1236 | graphics/asymptote/primitives.h
-2022/08/06 | 23904 | graphics/asymptote/process.cc
-2022/08/06 | 4919 | graphics/asymptote/process.h
-2022/08/06 | 2378 | graphics/asymptote/profile.py
-2022/08/06 | 9923 | graphics/asymptote/profiler.h
-2022/08/06 | 3265 | graphics/asymptote/program.cc
-2022/08/06 | 2561 | graphics/asymptote/program.h
-2022/08/06 | 19511 | graphics/asymptote/psfile.cc
-2022/08/06 | 9021 | graphics/asymptote/psfile.h
-2022/08/06 | 2505 | graphics/asymptote/README
-2022/08/06 | 1698 | graphics/asymptote/record.cc
-2022/08/06 | 2732 | graphics/asymptote/record.h
-2022/08/06 | 1096 | graphics/asymptote/refaccess.cc
-2022/08/06 | 1936 | graphics/asymptote/refaccess.h
-2022/08/06 | 129968 | graphics/asymptote/ReleaseNotes
-2022/08/06 | 62 | graphics/asymptote/revision.cc
-2022/08/06 | 3441 | graphics/asymptote/rounding.h
-2022/08/06 | 76339 | graphics/asymptote/runarray.cc
-2022/08/06 | 1492 | graphics/asymptote/runarray.h
-2022/08/06 | 50934 | graphics/asymptote/runarray.in
-2022/08/06 | 2661 | graphics/asymptote/runbacktrace.cc
-2022/08/06 | 169 | graphics/asymptote/runbacktrace.h
-2022/08/06 | 831 | graphics/asymptote/runbacktrace.in
-2022/08/06 | 17798 | graphics/asymptote/runfile.cc
-2022/08/06 | 969 | graphics/asymptote/runfile.h
-2022/08/06 | 5987 | graphics/asymptote/runfile.in
-2022/08/06 | 8096 | graphics/asymptote/runhistory.cc
-2022/08/06 | 161 | graphics/asymptote/runhistory.h
-2022/08/06 | 5064 | graphics/asymptote/runhistory.in
-2022/08/06 | 15253 | graphics/asymptote/runlabel.cc
-2022/08/06 | 153 | graphics/asymptote/runlabel.h
-2022/08/06 | 11513 | graphics/asymptote/runlabel.in
-2022/08/06 | 21874 | graphics/asymptote/runmath.cc
-2022/08/06 | 269 | graphics/asymptote/runmath.h
-2022/08/06 | 8804 | graphics/asymptote/runmath.in
-2022/08/06 | 16483 | graphics/asymptote/runpair.cc
-2022/08/06 | 299 | graphics/asymptote/runpair.h
-2022/08/06 | 4156 | graphics/asymptote/runpair.in
-2022/08/06 | 25701 | graphics/asymptote/runpath3d.cc
-2022/08/06 | 186 | graphics/asymptote/runpath3d.h
-2022/08/06 | 8008 | graphics/asymptote/runpath3d.in
-2022/08/06 | 26844 | graphics/asymptote/runpath.cc
-2022/08/06 | 177 | graphics/asymptote/runpath.h
-2022/08/06 | 8439 | graphics/asymptote/runpath.in
-2022/08/06 | 57944 | graphics/asymptote/runpicture.cc
-2022/08/06 | 191 | graphics/asymptote/runpicture.h
-2022/08/06 | 20090 | graphics/asymptote/runpicture.in
-2022/08/06 | 18739 | graphics/asymptote/runstring.cc
-2022/08/06 | 188 | graphics/asymptote/runstring.h
-2022/08/06 | 9867 | graphics/asymptote/runstring.in
-2022/08/06 | 12604 | graphics/asymptote/runsystem.cc
-2022/08/06 | 157 | graphics/asymptote/runsystem.h
-2022/08/06 | 5111 | graphics/asymptote/runsystem.in
-2022/08/06 | 1341 | graphics/asymptote/runtimebase.in
-2022/08/06 | 61659 | graphics/asymptote/runtime.cc
-2022/08/06 | 1163 | graphics/asymptote/runtime.h
-2022/08/06 | 20796 | graphics/asymptote/runtime.in
-2022/08/06 | 7274 | graphics/asymptote/runtime.pl
-2022/08/06 | 13944 | graphics/asymptote/runtriple.cc
-2022/08/06 | 320 | graphics/asymptote/runtriple.h
-2022/08/06 | 2707 | graphics/asymptote/runtriple.in
-2022/08/06 | 2136 | graphics/asymptote/seconds.h
-2022/08/06 | 54963 | graphics/asymptote/settings.cc
-2022/08/06 | 2707 | graphics/asymptote/settings.h
-2022/08/06 | 3553 | graphics/asymptote/shaders.cc
-2022/08/06 | 830 | graphics/asymptote/shaders.h
-2022/08/06 | 6634 | graphics/asymptote/simpson.cc
-2022/08/06 | 14532 | graphics/asymptote/stack.cc
-2022/08/06 | 3295 | graphics/asymptote/stack.h
-2022/08/06 | 942 | graphics/asymptote/statistics.h
-2022/08/06 | 14795 | graphics/asymptote/stm.cc
-2022/08/06 | 5183 | graphics/asymptote/stm.h
-2022/08/06 | 9104 | graphics/asymptote/symbol.cc
-2022/08/06 | 2776 | graphics/asymptote/symbol.h
-2022/08/06 | 24784 | graphics/asymptote/symbolmaps.cc
-2022/08/06 | 28328 | graphics/asymptote/symbolmaps.h
-2022/08/06 | 2697 | graphics/asymptote/table.h
-2022/08/06 | 620 | graphics/asymptote/tests/arith/integer.asy
-2022/08/06 | 449 | graphics/asymptote/tests/arith/pair.asy
-2022/08/06 | 193 | graphics/asymptote/tests/arith/random.asy
-2022/08/06 | 383 | graphics/asymptote/tests/arith/real.asy
-2022/08/06 | 1710 | graphics/asymptote/tests/arith/roots.asy
-2022/08/06 | 639 | graphics/asymptote/tests/arith/transform.asy
-2022/08/06 | 244 | graphics/asymptote/tests/arith/triple.asy
-2022/08/06 | 936 | graphics/asymptote/tests/array/array.asy
-2022/08/06 | 680 | graphics/asymptote/tests/array/delete.asy
-2022/08/06 | 737 | graphics/asymptote/tests/array/determinant.asy
-2022/08/06 | 1927 | graphics/asymptote/tests/array/fields.asy
-2022/08/06 | 4841 | graphics/asymptote/tests/array/slice.asy
-2022/08/06 | 966 | graphics/asymptote/tests/array/solve.asy
-2022/08/06 | 746 | graphics/asymptote/tests/array/sort.asy
-2022/08/06 | 1096 | graphics/asymptote/tests/array/transpose.asy
-2022/08/06 | 276 | graphics/asymptote/tests/bench/6000circles.asy
-2022/08/06 | 2222 | graphics/asymptote/tests/frames/loop.asy
-2022/08/06 | 202 | graphics/asymptote/tests/frames/stat2.asy
-2022/08/06 | 158 | graphics/asymptote/tests/frames/stat.asy
-2022/08/06 | 62 | graphics/asymptote/tests/gc/array.asy
-2022/08/06 | 102 | graphics/asymptote/tests/gc/file.asy
-2022/08/06 | 54 | graphics/asymptote/tests/gc/funcall.asy
-2022/08/06 | 65 | graphics/asymptote/tests/gc/guide.asy
-2022/08/06 | 143 | graphics/asymptote/tests/gc/label.asy
-2022/08/06 | 124 | graphics/asymptote/tests/gc/path.asy
-2022/08/06 | 72 | graphics/asymptote/tests/gc/pen.asy
-2022/08/06 | 193 | graphics/asymptote/tests/gc/shipout.asy
-2022/08/06 | 77 | graphics/asymptote/tests/gc/string.asy
-2022/08/06 | 129 | graphics/asymptote/tests/gc/struct.asy
-2022/08/06 | 70 | graphics/asymptote/tests/gc/transform.asy
-2022/08/06 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
-2022/08/06 | 11907 | graphics/asymptote/tests/gsl/random.asy
-2022/08/06 | 1209 | graphics/asymptote/tests/imp/unravel.asy
-2022/08/06 | 308 | graphics/asymptote/tests/Makefile
-2022/08/06 | 18 | graphics/asymptote/tests/output/circle.asy
-2022/08/06 | 22 | graphics/asymptote/tests/output/line.asy
-2022/08/06 | 1284 | graphics/asymptote/tests/output/Makefile
-2022/08/06 | 1384 | graphics/asymptote/tests/pic/trans.asy
-2022/08/06 | 236 | graphics/asymptote/tests/string/erase.asy
-2022/08/06 | 182 | graphics/asymptote/tests/string/find.asy
-2022/08/06 | 109 | graphics/asymptote/tests/string/insert.asy
-2022/08/06 | 132 | graphics/asymptote/tests/string/length.asy
-2022/08/06 | 187 | graphics/asymptote/tests/string/rfind.asy
-2022/08/06 | 118 | graphics/asymptote/tests/string/substr.asy
-2022/08/06 | 238 | graphics/asymptote/tests/TestLib.asy
-2022/08/06 | 159 | graphics/asymptote/tests/types/cast.asy
-2022/08/06 | 6503 | graphics/asymptote/tests/types/constructor.asy
-2022/08/06 | 155 | graphics/asymptote/tests/types/ecast.asy
-2022/08/06 | 3375 | graphics/asymptote/tests/types/guide.asy
-2022/08/06 | 224 | graphics/asymptote/tests/types/init.asy
-2022/08/06 | 4242 | graphics/asymptote/tests/types/keyword.asy
-2022/08/06 | 4072 | graphics/asymptote/tests/types/order.asy
-2022/08/06 | 2731 | graphics/asymptote/tests/types/resolve.asy
-2022/08/06 | 308 | graphics/asymptote/tests/types/shadow.asy
-2022/08/06 | 1331 | graphics/asymptote/tests/types/spec.asy
-2022/08/06 | 1189 | graphics/asymptote/tests/types/var.asy
-2022/08/06 | 14283 | graphics/asymptote/testv3d.asy
-2022/08/06 | 17540 | graphics/asymptote/texfile.cc
-2022/08/06 | 13440 | graphics/asymptote/texfile.h
-2022/08/06 | 667 | graphics/asymptote/tinyexr.cc
-2022/08/06 | 1293 | graphics/asymptote/TODO
-2022/08/06 | 6288 | graphics/asymptote/transform.h
-2022/08/06 | 10224 | graphics/asymptote/tr.cc
-2022/08/06 | 3912 | graphics/asymptote/tr.h
-2022/08/06 | 9784 | graphics/asymptote/triple.h
-2022/08/06 | 14072 | graphics/asymptote/types.cc
-2022/08/06 | 15451 | graphics/asymptote/types.h
-2022/08/06 | 10131 | graphics/asymptote/util.cc
-2022/08/06 | 4602 | graphics/asymptote/util.h
-2022/08/06 | 9755 | graphics/asymptote/v3dfile.cc
-2022/08/06 | 4481 | graphics/asymptote/v3dfile.h
-2022/08/06 | 1075 | graphics/asymptote/v3dheadertypes.csv
-2022/08/06 | 1239 | graphics/asymptote/v3dheadertypes.h
-2022/08/06 | 1611 | graphics/asymptote/v3dheadertypes.py
-2022/08/06 | 422 | graphics/asymptote/v3dtypes.csv
-2022/08/06 | 548 | graphics/asymptote/v3dtypes.h
-2022/08/06 | 821 | graphics/asymptote/v3dtypes.py
-2022/08/06 | 2004 | graphics/asymptote/varinit.cc
-2022/08/06 | 2012 | graphics/asymptote/varinit.h
-2022/08/06 | 901 | graphics/asymptote/virtualfieldaccess.cc
-2022/08/06 | 2328 | graphics/asymptote/virtualfieldaccess.h
-2022/08/06 | 766 | graphics/asymptote/vm.h
-2022/08/06 | 222 | graphics/asymptote/wce
-2022/08/06 | 4531 | graphics/asymptote/webgl/fragment.glsl
-2022/08/06 | 101221 | graphics/asymptote/webgl/gl.js
-2022/08/06 | 820 | graphics/asymptote/webgl/license
-2022/08/06 | 1728 | graphics/asymptote/webgl/vertex.glsl
-2022/08/06 | 8668 | graphics/asymptote/xstream.h
-2022/08/07 | 26705241 | graphics/asymptote.zip
+2022/09/17 | 242 | graphics/asymptote/BUGS
+2022/09/17 | 1588 | graphics/asymptote/build-scripts/asy-format.el
+2022/09/17 | 210 | graphics/asymptote/build-scripts/asy-indent.el
+2022/09/17 | 1232 | graphics/asymptote/build-scripts/build-asygl
+2022/09/17 | 2471 | graphics/asymptote/build-scripts/build-asymptote
+2022/09/17 | 3480 | graphics/asymptote/build-scripts/build-asymptote.dos
+2022/09/17 | 1578 | graphics/asymptote/build-scripts/cc-format.el
+2022/09/17 | 183 | graphics/asymptote/build-scripts/cc-indent.el
+2022/09/17 | 2239 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2022/09/17 | 297 | graphics/asymptote/build-scripts/README-binaries
+2022/09/17 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
+2022/09/17 | 31342 | graphics/asymptote/builtin.cc
+2022/09/17 | 1630 | graphics/asymptote/builtin.h
+2022/09/17 | 1151 | graphics/asymptote/callable.cc
+2022/09/17 | 1640 | graphics/asymptote/callable.h
+2022/09/17 | 1190 | graphics/asymptote/camperror.cc
+2022/09/17 | 814 | graphics/asymptote/camperror.h
+2022/09/17 | 13357 | graphics/asymptote/camp.l
+2022/09/17 | 130266 | graphics/asymptote/camp.tab.cc
+2022/09/17 | 6190 | graphics/asymptote/camp.tab.h
+2022/09/17 | 20029 | graphics/asymptote/camp.y
+2022/09/17 | 4629 | graphics/asymptote/castop.h
+2022/09/17 | 1876 | graphics/asymptote/cc-mode2.el
+2022/09/17 | 1659636 | graphics/asymptote/ChangeLog
+2022/09/17 | 7790 | graphics/asymptote/coder.cc
+2022/09/17 | 11642 | graphics/asymptote/coder.h
+2022/09/17 | 1126 | graphics/asymptote/coenv.cc
+2022/09/17 | 908 | graphics/asymptote/coenv.h
+2022/09/17 | 2187 | graphics/asymptote/common.h
+2022/09/17 | 48441 | graphics/asymptote/config.guess
+2022/09/17 | 7260 | graphics/asymptote/config.h.in
+2022/09/17 | 31609 | graphics/asymptote/config.sub
+2022/09/17 | 293655 | graphics/asymptote/configure
+2022/09/17 | 17405 | graphics/asymptote/configure.ac
+2022/09/17 | 26 | graphics/asymptote/_config.yml
+2022/09/17 | 3676 | graphics/asymptote/constructor.cc
+2022/09/17 | 241 | graphics/asymptote/cudareflect/common.h
+2022/09/17 | 2514 | graphics/asymptote/cudareflect/EXRFiles.cc
+2022/09/17 | 1406 | graphics/asymptote/cudareflect/EXRFiles.h
+2022/09/17 | 883 | graphics/asymptote/cudareflect/helper.cuh
+2022/09/17 | 1070 | graphics/asymptote/cudareflect/IrradianceGenerator.sln
+2022/09/17 | 5820 | graphics/asymptote/cudareflect/IrradianceGenerator.vcxproj
+2022/09/17 | 4371 | graphics/asymptote/cudareflect/kernel.cu
+2022/09/17 | 445 | graphics/asymptote/cudareflect/kernel.h
+2022/09/17 | 7780 | graphics/asymptote/cudareflect/main.cc
+2022/09/17 | 548 | graphics/asymptote/cudareflect/Makefile
+2022/09/17 | 8519 | graphics/asymptote/cudareflect/ReflectanceMapper.cu
+2022/09/17 | 443 | graphics/asymptote/cudareflect/ReflectanceMapper.cuh
+2022/09/17 | 2598 | graphics/asymptote/cudareflect/simpson.cuh
+2022/09/17 | 242 | graphics/asymptote/cudareflect/tinyexr/appveyor.yml
+2022/09/17 | 1127425 | graphics/asymptote/cudareflect/tinyexr/asakusa.exr
+2022/09/17 | 202947 | graphics/asymptote/cudareflect/tinyexr/asakusa.png
+2022/09/17 | 366 | graphics/asymptote/cudareflect/tinyexr.cc
+2022/09/17 | 2479 | graphics/asymptote/cudareflect/tinyexr/CMakeLists.txt
+2022/09/17 | 2011 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/asan-wrapper
+2022/09/17 | 2144 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindASan.cmake
+2022/09/17 | 2292 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindMSan.cmake
+2022/09/17 | 3737 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindSanitizers.cmake
+2022/09/17 | 2555 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindTSan.cmake
+2022/09/17 | 1696 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindUBSan.cmake
+2022/09/17 | 7684 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/sanitize-helpers.cmake
+2022/09/17 | 1896 | graphics/asymptote/cudareflect/tinyexr/config-msvc.py
+2022/09/17 | 16705 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/ChangeLog.md
+2022/09/17 | 3109 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example1.c
+2022/09/17 | 6551 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example2.c
+2022/09/17 | 6726 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example3.c
+2022/09/17 | 2675 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example4.c
+2022/09/17 | 10571 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example5.c
+2022/09/17 | 4172 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example6.c
+2022/09/17 | 1162 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/LICENSE
+2022/09/17 | 319839 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.c
+2022/09/17 | 69441 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.h
+2022/09/17 | 4254 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/readme.md
+2022/09/17 | 39458 | graphics/asymptote/cudareflect/tinyexr/examples/common/cxxopts.hpp
+2022/09/17 | 260289 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image.h
+2022/09/17 | 113565 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image_resize.h
+2022/09/17 | 37685 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image_write.h
+2022/09/17 | 12630 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/cube2longlat.cc
+2022/09/17 | 569 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/Makefile
+2022/09/17 | 1072 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/README.md
+2022/09/17 | 3790199 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/deepview_screencast.gif
+2022/09/17 | 6553 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/main.cc
+2022/09/17 | 146 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/Makefile
+2022/09/17 | 8456 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/trackball.cc
+2022/09/17 | 3284 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/trackball.h
+2022/09/17 | 5323 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/exr2fptiff.cc
+2022/09/17 | 687 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/Makefile
+2022/09/17 | 117 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/README.md
+2022/09/17 | 37135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/tiny_dng_writer.h
+2022/09/17 | 3135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2ldr/exr2ldr.cc
+2022/09/17 | 189 | graphics/asymptote/cudareflect/tinyexr/examples/exr2ldr/Makefile
+2022/09/17 | 612 | graphics/asymptote/cudareflect/tinyexr/examples/exr2rgbe/exr2rgbe.cc
+2022/09/17 | 161 | graphics/asymptote/cudareflect/tinyexr/examples/exr2rgbe/Makefile
+2022/09/17 | 4635 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/exrfilter.cc
+2022/09/17 | 173 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/Makefile
+2022/09/17 | 88 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/README.md
+2022/09/17 | 190044 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/DroidSans.ttf
+2022/09/17 | 1198 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/exr-io.cc
+2022/09/17 | 248 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/exr-io.h
+2022/09/17 | 2741 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/findOpenGLGlewGlut.lua
+2022/09/17 | 15018 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/main.cc
+2022/09/17 | 13867 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear_btgui_gl2.h
+2022/09/17 | 952118 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear.h
+2022/09/17 | 2939 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/CommonWindowInterface.h
+2022/09/17 | 2514 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h
+2022/09/17 | 34316 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.mm
+2022/09/17 | 1648 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/OpenGL2Include.h
+2022/09/17 | 1813 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/OpenGLInclude.h
+2022/09/17 | 1318 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32InternalWindowData.h
+2022/09/17 | 4384 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.cpp
+2022/09/17 | 1753 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.h
+2022/09/17 | 18991 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32Window.cpp
+2022/09/17 | 2543 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32Window.h
+2022/09/17 | 36526 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.cpp
+2022/09/17 | 2040 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.h
+2022/09/17 | 2605 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/premake4.lua
+2022/09/17 | 1287 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/README.md
+2022/09/17 | 1044671 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/screenshots/exrview.png
+2022/09/17 | 235 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/shader.frag
+2022/09/17 | 186 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/shader.vert
+2022/09/17 | 989121 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glew.h
+2022/09/17 | 71994 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glxew.h
+2022/09/17 | 62206 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/wglew.h
+2022/09/17 | 968193 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/glew.c
+2022/09/17 | 820 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/LICENSE
+2022/09/17 | 4602 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/README.md
+2022/09/17 | 100007 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_cocoa.png
+2022/09/17 | 63193 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_gtk3.png
+2022/09/17 | 16188 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_win8.png
+2022/09/17 | 388 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/common.h
+2022/09/17 | 1733 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/include/nfd.h
+2022/09/17 | 6117 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_cocoa.m
+2022/09/17 | 2772 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.c
+2022/09/17 | 615 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.h
+2022/09/17 | 9022 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_gtk.c
+2022/09/17 | 17346 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_win.cpp
+2022/09/17 | 2477 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/SConstruct
+2022/09/17 | 1688 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/SConstruct
+2022/09/17 | 530 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialog.c
+2022/09/17 | 741 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialogmultiple.c
+2022/09/17 | 533 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_savedialog.c
+2022/09/17 | 2554 | graphics/asymptote/cudareflect/tinyexr/examples/ldr2exr/ldr2exr.cc
+2022/09/17 | 157 | graphics/asymptote/cudareflect/tinyexr/examples/ldr2exr/Makefile
+2022/09/17 | 6772 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/main.cc
+2022/09/17 | 167 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/Makefile
+2022/09/17 | 323 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/README.md
+2022/09/17 | 188 | graphics/asymptote/cudareflect/tinyexr/examples/resize/Makefile
+2022/09/17 | 1101 | graphics/asymptote/cudareflect/tinyexr/examples/resize/resize.cc
+2022/09/17 | 159 | graphics/asymptote/cudareflect/tinyexr/examples/rgbe2exr/Makefile
+2022/09/17 | 2272 | graphics/asymptote/cudareflect/tinyexr/examples/rgbe2exr/rgbe2exr.cc
+2022/09/17 | 174 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/Makefile
+2022/09/17 | 289 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/README.md
+2022/09/17 | 1950 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/testmapgen.cc
+2022/09/17 | 1955 | graphics/asymptote/cudareflect/tinyexr/experimental/js/binding.cc
+2022/09/17 | 494 | graphics/asymptote/cudareflect/tinyexr/experimental/js/compile_to_js.sh
+2022/09/17 | 1131 | graphics/asymptote/cudareflect/tinyexr/experimental/js/index.html
+2022/09/17 | 25 | graphics/asymptote/cudareflect/tinyexr/experimental/js/Makefile
+2022/09/17 | 612 | graphics/asymptote/cudareflect/tinyexr/experimental/js/README.md
+2022/09/17 | 495 | graphics/asymptote/cudareflect/tinyexr/experimental/js/test.js
+2022/09/17 | 223 | graphics/asymptote/cudareflect/tinyexr/jni/Android.mk
+2022/09/17 | 41 | graphics/asymptote/cudareflect/tinyexr/jni/Application.mk
+2022/09/17 | 160 | graphics/asymptote/cudareflect/tinyexr/jni/Makefile
+2022/09/17 | 108 | graphics/asymptote/cudareflect/tinyexr/jni/README.md
+2022/09/17 | 10561 | graphics/asymptote/cudareflect/tinyexr/kuroga.py
+2022/09/17 | 509 | graphics/asymptote/cudareflect/tinyexr/Makefile
+2022/09/17 | 437 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw
+2022/09/17 | 407 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw-msys
+2022/09/17 | 535 | graphics/asymptote/cudareflect/tinyexr/Makefile.llvm-mingw
+2022/09/17 | 1156 | graphics/asymptote/cudareflect/tinyexr/premake4.lua
+2022/09/17 | 17614 | graphics/asymptote/cudareflect/tinyexr/README.md
+2022/09/17 | 173 | graphics/asymptote/cudareflect/tinyexr/test/c-binding/Makefile
+2022/09/17 | 283 | graphics/asymptote/cudareflect/tinyexr/test/c-binding/test.c
+2022/09/17 | 339 | graphics/asymptote/cudareflect/tinyexr/test/CMakeLists.txt
+2022/09/17 | 3601 | graphics/asymptote/cudareflect/tinyexr/test/exrcat/exrcat.cpp
+2022/09/17 | 4116 | graphics/asymptote/cudareflect/tinyexr/test/exrwrite/exrwritetest.cpp
+2022/09/17 | 831 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/fuzz.cc
+2022/09/17 | 64 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-62-tinyexr_memcpy_heap-buffer-overflow
+2022/09/17 | 503 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-63-tinyexr_signed-integer-overflow
+2022/09/17 | 20829 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-77-heap-buffer-overflow
+2022/09/17 | 709 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/Makefile
+2022/09/17 | 185 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/README.md
+2022/09/17 | 1548 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/main.py
+2022/09/17 | 61 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/README.md
+2022/09/17 | 28 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/requirements.txt
+2022/09/17 | 15617 | graphics/asymptote/cudareflect/tinyexr/test_tinyexr.cc
+2022/09/17 | 376913 | graphics/asymptote/cudareflect/tinyexr/test/unit/catch.hpp
+2022/09/17 | 867 | graphics/asymptote/cudareflect/tinyexr/test/unit/config-msvc.py
+2022/09/17 | 1347 | graphics/asymptote/cudareflect/tinyexr/test/unit/config-posix.py
+2022/09/17 | 10563 | graphics/asymptote/cudareflect/tinyexr/test/unit/kuroga.py
+2022/09/17 | 400 | graphics/asymptote/cudareflect/tinyexr/test/unit/Makefile
+2022/09/17 | 401 | graphics/asymptote/cudareflect/tinyexr/test/unit/README.md
+2022/09/17 | 395 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/2by2.exr
+2022/09/17 | 4731 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/flaga.exr
+2022/09/17 | 155069 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/issue-160-piz-decode.exr
+2022/09/17 | 327 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/piz-bug-issue-100.exr
+2022/09/17 | 473703 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-1383755b301e5f505b2198dc0508918b537fdf48bbfc6deeffe268822e6f6cd6
+2022/09/17 | 630 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-24322747c47e87a10e4407528b779a1a763a48135384909b3d1010bbba1d4c28_min
+2022/09/17 | 832 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-255456016cca60ddb5c5ed6898182e13739bf687b17d1411e97bb60ad95e7a84_min
+2022/09/17 | 4738 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-360c3b0555cb979ca108f2d178cf8a80959cfeabaa4ec1d310d062fa653a8c6b_min
+2022/09/17 | 4471 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-3f1f642c3356fd8e8d2a0787613ec09a56572b3a1e38c9629b6db9e8dead1117_min
+2022/09/17 | 298 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-5ace655ef080932dcc7e4abc9eab1d4f82c845453464993dfa3eb6c5822a1621
+2022/09/17 | 678 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-5b66774a7498c635334ad386be0c3b359951738ac47f14878a3346d1c6ea0fe5_min
+2022/09/17 | 132 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-d5c9c893e559277a3320c196523095b94db93985620ac338d037487e0e613047_min
+2022/09/17 | 15 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-df76d1f27adb8927a1446a603028272140905c168a336128465a1162ec7af270.mini
+2022/09/17 | 473695 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-e7fa6404daa861369d2172fe68e08f9d38c0989f57da7bcfb510bab67e19ca9f
+2022/09/17 | 793 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-eedff3a9e99eb1c0fd3a3b0989e7c44c0a69f04f10b23e5264f362a4773f4397_min
+2022/09/17 | 15 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-efe9007bfdcbbe8a1569bf01fa9acadb8261ead49cb83f6e91fcdc4dae2e99a3_min
+2022/09/17 | 335 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/tiled_half_1x1_alpha.exr
+2022/09/17 | 52750 | graphics/asymptote/cudareflect/tinyexr/test/unit/tester.cc
+2022/09/17 | 133 | graphics/asymptote/cudareflect/tinyexr/test/unit/vcbuild.bat
+2022/09/17 | 50 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf16le.inc
+2022/09/17 | 31 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf8.inc
+2022/09/17 | 121 | graphics/asymptote/cudareflect/tinyexr/tinyexr.cc
+2022/09/17 | 270497 | graphics/asymptote/cudareflect/tinyexr/tinyexr.h
+2022/09/17 | 317 | graphics/asymptote/cudareflect/tinyexr/vcbuild.bat
+2022/09/17 | 85 | graphics/asymptote/cudareflect/tinyexr/vcsetup2019.bat
+2022/09/17 | 1950 | graphics/asymptote/cudareflect/utils.cuh
+2022/09/17 | 26693 | graphics/asymptote/dec.cc
+2022/09/17 | 17734 | graphics/asymptote/dec.h
+2022/09/17 | 5883 | graphics/asymptote/Delaunay.cc
+2022/09/17 | 384 | graphics/asymptote/Delaunay.h
+2022/09/17 | 9114 | graphics/asymptote/doc/asy.1
+2022/09/17 | 1005 | graphics/asymptote/doc/asy.1.begin
+2022/09/17 | 333 | graphics/asymptote/doc/asy.1.end
+2022/09/17 | 2800 | graphics/asymptote/doc/asycolors.sty
+2022/09/17 | 18095 | graphics/asymptote/doc/asy-latex.dtx
+2022/09/17 | 208908 | graphics/asymptote/doc/asy-latex.pdf
+2022/09/17 | 1288702 | graphics/asymptote/doc/asymptote.pdf
+2022/09/17 | 395983 | graphics/asymptote/doc/asymptote.texi
+2022/09/17 | 121145 | graphics/asymptote/doc/asyRefCard.pdf
+2022/09/17 | 20051 | graphics/asymptote/doc/asyRefCard.tex
+2022/09/17 | 246 | graphics/asymptote/doc/axis3.asy
+2022/09/17 | 416 | graphics/asymptote/doc/bezier2.asy
+2022/09/17 | 81 | graphics/asymptote/doc/bezier.asy
+2022/09/17 | 234 | graphics/asymptote/doc/beziercurve.asy
+2022/09/17 | 41 | graphics/asymptote/doc/bigdiagonal.asy
+2022/09/17 | 306 | graphics/asymptote/doc/binarytreetest.asy
+2022/09/17 | 677 | graphics/asymptote/doc/Bode.asy
+2022/09/17 | 524 | graphics/asymptote/doc/brokenaxis.asy
+2022/09/17 | 1391 | graphics/asymptote/doc/CAD1.asy
+2022/09/17 | 198487 | graphics/asymptote/doc/CAD.pdf
+2022/09/17 | 10196 | graphics/asymptote/doc/CAD.tex
+2022/09/17 | 518 | graphics/asymptote/doc/CDlabel.asy
+2022/09/17 | 4348 | graphics/asymptote/doc/colo-asy.tex
+2022/09/17 | 49 | graphics/asymptote/doc/colons.asy
+2022/09/17 | 1620 | graphics/asymptote/doc/colors.asy
+2022/09/17 | 243 | graphics/asymptote/doc/cube.asy
+2022/09/17 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
+2022/09/17 | 218 | graphics/asymptote/doc/datagraph.asy
+2022/09/17 | 24 | graphics/asymptote/doc/diagonal.asy
+2022/09/17 | 2979 | graphics/asymptote/doc/diatom.asy
+2022/09/17 | 4067 | graphics/asymptote/doc/diatom.csv
+2022/09/17 | 49 | graphics/asymptote/doc/dots.asy
+2022/09/17 | 1051 | graphics/asymptote/doc/eetomumu.asy
+2022/09/17 | 2034 | graphics/asymptote/doc/elliptic.asy
+2022/09/17 | 912 | graphics/asymptote/doc/errorbars.asy
+2022/09/17 | 202 | graphics/asymptote/doc/exp.asy
+2022/09/17 | 343 | graphics/asymptote/doc/externalprc.tex
+2022/09/17 | 19597 | graphics/asymptote/doc/external-proposal.html
+2022/09/17 | 25154 | graphics/asymptote/doc/extra/intro.asy
+2022/09/17 | 40899 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
+2022/09/17 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
+2022/09/17 | 9328 | graphics/asymptote/doc/FAQ/bfnnconv.pl
+2022/09/17 | 13663 | graphics/asymptote/doc/FAQ/install-sh
+2022/09/17 | 1000 | graphics/asymptote/doc/FAQ/Makefile
+2022/09/17 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
+2022/09/17 | 9822 | graphics/asymptote/doc/FAQ/m-html.pl
+2022/09/17 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
+2022/09/17 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
+2022/09/17 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
+2022/09/17 | 238 | graphics/asymptote/doc/filegraph.asy
+2022/09/17 | 26 | graphics/asymptote/doc/filegraph.dat
+2022/09/17 | 1053 | graphics/asymptote/doc/fillcontour.asy
+2022/09/17 | 604 | graphics/asymptote/doc/flow.asy
+2022/09/17 | 897 | graphics/asymptote/doc/flowchartdemo.asy
+2022/09/17 | 464 | graphics/asymptote/doc/GaussianSurface.asy
+2022/09/17 | 376 | graphics/asymptote/doc/generalaxis3.asy
+2022/09/17 | 277 | graphics/asymptote/doc/generalaxis.asy
+2022/09/17 | 754 | graphics/asymptote/doc/graphmarkers.asy
+2022/09/17 | 219 | graphics/asymptote/doc/graphwithderiv.asy
+2022/09/17 | 426 | graphics/asymptote/doc/grid3xyz.asy
+2022/09/17 | 279 | graphics/asymptote/doc/hatch.asy
+2022/09/17 | 423 | graphics/asymptote/doc/helix.asy
+2022/09/17 | 324 | graphics/asymptote/doc/HermiteSpline.asy
+2022/09/17 | 441 | graphics/asymptote/doc/histogram.asy
+2022/09/17 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
+2022/09/17 | 500 | graphics/asymptote/doc/Hobbydir.asy
+2022/09/17 | 378 | graphics/asymptote/doc/icon.asy
+2022/09/17 | 401 | graphics/asymptote/doc/image.asy
+2022/09/17 | 922 | graphics/asymptote/doc/imagecontour.asy
+2022/09/17 | 13663 | graphics/asymptote/doc/install-sh
+2022/09/17 | 357 | graphics/asymptote/doc/irregularcontour.asy
+2022/09/17 | 442 | graphics/asymptote/doc/join3.asy
+2022/09/17 | 261 | graphics/asymptote/doc/join.asy
+2022/09/17 | 417 | graphics/asymptote/doc/knots.asy
+2022/09/17 | 121 | graphics/asymptote/doc/labelsquare.asy
+2022/09/17 | 144 | graphics/asymptote/doc/latexmkrc
+2022/09/17 | 150 | graphics/asymptote/doc/latexmkrc_asydir
+2022/09/17 | 3125 | graphics/asymptote/doc/latexusage.tex
+2022/09/17 | 1008 | graphics/asymptote/doc/leastsquares.asy
+2022/09/17 | 6318 | graphics/asymptote/doc/leastsquares.dat
+2022/09/17 | 396 | graphics/asymptote/doc/legend.asy
+2022/09/17 | 366 | graphics/asymptote/doc/lineargraph0.asy
+2022/09/17 | 373 | graphics/asymptote/doc/lineargraph.asy
+2022/09/17 | 415 | graphics/asymptote/doc/linetype.asy
+2022/09/17 | 423 | graphics/asymptote/doc/log2graph.asy
+2022/09/17 | 262 | graphics/asymptote/doc/loggraph.asy
+2022/09/17 | 382 | graphics/asymptote/doc/loggrid.asy
+2022/09/17 | 480 | graphics/asymptote/doc/logimage.asy
+2022/09/17 | 617 | graphics/asymptote/doc/logo.asy
+2022/09/17 | 314 | graphics/asymptote/doc/logticks.asy
+2022/09/17 | 3023 | graphics/asymptote/doc/Makefile.in
+2022/09/17 | 293 | graphics/asymptote/doc/makepen.asy
+2022/09/17 | 2674 | graphics/asymptote/doc/markers1.asy
+2022/09/17 | 877 | graphics/asymptote/doc/markers2.asy
+2022/09/17 | 288 | graphics/asymptote/doc/mexicanhat.asy
+2022/09/17 | 374 | graphics/asymptote/doc/monthaxis.asy
+2022/09/17 | 458 | graphics/asymptote/doc/multicontour.asy
+2022/09/17 | 115 | graphics/asymptote/doc/onecontour.asy
+2022/09/17 | 240 | graphics/asymptote/doc/parametricgraph.asy
+2022/09/17 | 498 | graphics/asymptote/doc/penfunctionimage.asy
+2022/09/17 | 219 | graphics/asymptote/doc/penimage.asy
+2022/09/17 | 2771 | graphics/asymptote/doc/pixel.pdf
+2022/09/17 | 354 | graphics/asymptote/doc/planes.asy
+2022/09/17 | 475783 | graphics/asymptote/doc/png/asymptote.info
+2022/09/17 | 1469 | graphics/asymptote/doc/png/Makefile.in
+2022/09/17 | 49 | graphics/asymptote/doc/quartercircle.asy
+2022/09/17 | 354 | graphics/asymptote/doc/reloadpdf.tex
+2022/09/17 | 157 | graphics/asymptote/doc/saddle.asy
+2022/09/17 | 355 | graphics/asymptote/doc/scaledgraph.asy
+2022/09/17 | 792 | graphics/asymptote/doc/secondaryaxis.asy
+2022/09/17 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
+2022/09/17 | 256 | graphics/asymptote/doc/shadedtiling.asy
+2022/09/17 | 146 | graphics/asymptote/doc/slopefield1.asy
+2022/09/17 | 52 | graphics/asymptote/doc/square.asy
+2022/09/17 | 341 | graphics/asymptote/doc/subpictures.asy
+2022/09/17 | 123 | graphics/asymptote/doc/superpath.asy
+2022/09/17 | 81447 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+2022/09/17 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
+2022/09/17 | 390 | graphics/asymptote/doc/tile.asy
+2022/09/17 | 396 | graphics/asymptote/doc/triangulate.asy
+2022/09/17 | 186 | graphics/asymptote/doc/unitcircle3.asy
+2022/09/17 | 140 | graphics/asymptote/doc/vectorfield.asy
+2022/09/17 | 1746 | graphics/asymptote/doc/westnile.asy
+2022/09/17 | 4727 | graphics/asymptote/doc/westnile.csv
+2022/09/17 | 880 | graphics/asymptote/doc/xasy.1x
+2022/09/17 | 1851 | graphics/asymptote/drawclipbegin.h
+2022/09/17 | 1197 | graphics/asymptote/drawclipend.h
+2022/09/17 | 11468 | graphics/asymptote/drawelement.h
+2022/09/17 | 4597 | graphics/asymptote/drawfill.cc
+2022/09/17 | 6525 | graphics/asymptote/drawfill.h
+2022/09/17 | 494 | graphics/asymptote/drawgrestore.h
+2022/09/17 | 2880 | graphics/asymptote/drawgroup.h
+2022/09/17 | 464 | graphics/asymptote/drawgsave.h
+2022/09/17 | 3024 | graphics/asymptote/drawimage.h
+2022/09/17 | 6787 | graphics/asymptote/drawlabel.cc
+2022/09/17 | 2134 | graphics/asymptote/drawlabel.h
+2022/09/17 | 1096 | graphics/asymptote/drawlayer.h
+2022/09/17 | 5542 | graphics/asymptote/drawpath3.cc
+2022/09/17 | 5767 | graphics/asymptote/drawpath3.h
+2022/09/17 | 4862 | graphics/asymptote/drawpath.cc
+2022/09/17 | 669 | graphics/asymptote/drawpath.h
+2022/09/17 | 24712 | graphics/asymptote/drawsurface.cc
+2022/09/17 | 23567 | graphics/asymptote/drawsurface.h
+2022/09/17 | 1266 | graphics/asymptote/drawverbatim.h
+2022/09/17 | 17987 | graphics/asymptote/entry.cc
+2022/09/17 | 13615 | graphics/asymptote/entry.h
+2022/09/17 | 5441 | graphics/asymptote/env.cc
+2022/09/17 | 1142 | graphics/asymptote/envcompleter.cc
+2022/09/17 | 845 | graphics/asymptote/envcompleter.h
+2022/09/17 | 4570 | graphics/asymptote/env.h
+2022/09/17 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
+2022/09/17 | 2279 | graphics/asymptote/errormsg.cc
+2022/09/17 | 5621 | graphics/asymptote/errormsg.h
+2022/09/17 | 9251 | graphics/asymptote/errors
+2022/09/17 | 6911 | graphics/asymptote/errortest.asy
+2022/09/17 | 43335 | graphics/asymptote/examples/100d.pdb1
+2022/09/17 | 657 | graphics/asymptote/examples/100d.views
+2022/09/17 | 163 | graphics/asymptote/examples/1overx.asy
+2022/09/17 | 4158 | graphics/asymptote/examples/advection.asy
+2022/09/17 | 375 | graphics/asymptote/examples/AiryDisk.asy
+2022/09/17 | 245 | graphics/asymptote/examples/alignbox.asy
+2022/09/17 | 2830 | graphics/asymptote/examples/alignedaxis.asy
+2022/09/17 | 946 | graphics/asymptote/examples/animations/cube.asy
+2022/09/17 | 160672 | graphics/asymptote/examples/animations/dice.u3d
+2022/09/17 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
+2022/09/17 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
+2022/09/17 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
+2022/09/17 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
+2022/09/17 | 414 | graphics/asymptote/examples/animations/glmovie.asy
+2022/09/17 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
+2022/09/17 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
+2022/09/17 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
+2022/09/17 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
+2022/09/17 | 1247 | graphics/asymptote/examples/animations/slidemovies.asy
+2022/09/17 | 856 | graphics/asymptote/examples/animations/sphere.asy
+2022/09/17 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
+2022/09/17 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
+2022/09/17 | 1120 | graphics/asymptote/examples/animations/wheel.asy
+2022/09/17 | 236 | graphics/asymptote/examples/annotation.asy
+2022/09/17 | 1240 | graphics/asymptote/examples/arrows3.asy
+2022/09/17 | 61 | graphics/asymptote/examples/axialshade.asy
+2022/09/17 | 496 | graphics/asymptote/examples/bars3.asy
+2022/09/17 | 1033 | graphics/asymptote/examples/basealign.asy
+2022/09/17 | 407 | graphics/asymptote/examples/BezierPatch.asy
+2022/09/17 | 581 | graphics/asymptote/examples/BezierSaddle.asy
+2022/09/17 | 1548 | graphics/asymptote/examples/BezierSurface.asy
+2022/09/17 | 199 | graphics/asymptote/examples/BezierTriangle.asy
+2022/09/17 | 154 | graphics/asymptote/examples/billboard.asy
+2022/09/17 | 513 | graphics/asymptote/examples/buildcycle.asy
+2022/09/17 | 233 | graphics/asymptote/examples/cardioid.asy
+2022/09/17 | 485 | graphics/asymptote/examples/cards.asy
+2022/09/17 | 688 | graphics/asymptote/examples/centroidfg.asy
+2022/09/17 | 322 | graphics/asymptote/examples/cheese.asy
+2022/09/17 | 576 | graphics/asymptote/examples/circles.asy
+2022/09/17 | 228 | graphics/asymptote/examples/circumcircle.asy
+2022/09/17 | 762 | graphics/asymptote/examples/clockarray.asy
+2022/09/17 | 264 | graphics/asymptote/examples/coag.asy
+2022/09/17 | 436 | graphics/asymptote/examples/colorpatch.asy
+2022/09/17 | 472 | graphics/asymptote/examples/colorplanes.asy
+2022/09/17 | 739 | graphics/asymptote/examples/condor.asy
+2022/09/17 | 495 | graphics/asymptote/examples/cones.asy
+2022/09/17 | 1778 | graphics/asymptote/examples/conicurv.asy
+2022/09/17 | 254 | graphics/asymptote/examples/contextfonts.asy
+2022/09/17 | 802 | graphics/asymptote/examples/controlsystem.asy
+2022/09/17 | 123 | graphics/asymptote/examples/Coons.asy
+2022/09/17 | 235 | graphics/asymptote/examples/cos2theta.asy
+2022/09/17 | 582 | graphics/asymptote/examples/cos3.asy
+2022/09/17 | 460 | graphics/asymptote/examples/cosaddition.asy
+2022/09/17 | 5537 | graphics/asymptote/examples/cpkcolors.asy
+2022/09/17 | 572 | graphics/asymptote/examples/curvedlabel3.asy
+2022/09/17 | 177 | graphics/asymptote/examples/curvedlabel.asy
+2022/09/17 | 1835 | graphics/asymptote/examples/cyclohexane.asy
+2022/09/17 | 352 | graphics/asymptote/examples/cylinder.asy
+2022/09/17 | 506 | graphics/asymptote/examples/delu.asy
+2022/09/17 | 509 | graphics/asymptote/examples/dimension.asy
+2022/09/17 | 1216 | graphics/asymptote/examples/dragon.asy
+2022/09/17 | 1298 | graphics/asymptote/examples/electromagnetic.asy
+2022/09/17 | 325 | graphics/asymptote/examples/elevation.asy
+2022/09/17 | 398 | graphics/asymptote/examples/epix.asy
+2022/09/17 | 242 | graphics/asymptote/examples/equilateral.asy
+2022/09/17 | 548 | graphics/asymptote/examples/equilchord.asy
+2022/09/17 | 579 | graphics/asymptote/examples/exp3.asy
+2022/09/17 | 519 | graphics/asymptote/examples/extrudedcontour.asy
+2022/09/17 | 498 | graphics/asymptote/examples/fano.asy
+2022/09/17 | 973 | graphics/asymptote/examples/fequlogo.asy
+2022/09/17 | 727 | graphics/asymptote/examples/fermi.asy
+2022/09/17 | 980 | graphics/asymptote/examples/filesurface.asy
+2022/09/17 | 5531 | graphics/asymptote/examples/filesurface.dat
+2022/09/17 | 4244 | graphics/asymptote/examples/fin.asy
+2022/09/17 | 710 | graphics/asymptote/examples/fjortoft.asy
+2022/09/17 | 558 | graphics/asymptote/examples/floatingdisk.asy
+2022/09/17 | 500 | graphics/asymptote/examples/floor.asy
+2022/09/17 | 683 | graphics/asymptote/examples/fractaltree.asy
+2022/09/17 | 1185 | graphics/asymptote/examples/functionshading.asy
+2022/09/17 | 499 | graphics/asymptote/examples/galleon.asy
+2022/09/17 | 713 | graphics/asymptote/examples/gamma3.asy
+2022/09/17 | 439 | graphics/asymptote/examples/gamma.asy
+2022/09/17 | 679 | graphics/asymptote/examples/genusthree.asy
+2022/09/17 | 1164 | graphics/asymptote/examples/genustwo.asy
+2022/09/17 | 383 | graphics/asymptote/examples/Gouraud.asy
+2022/09/17 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
+2022/09/17 | 76 | graphics/asymptote/examples/grid.asy
+2022/09/17 | 459 | graphics/asymptote/examples/hierarchy.asy
+2022/09/17 | 315 | graphics/asymptote/examples/hyperboloid.asy
+2022/09/17 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
+2022/09/17 | 1111 | graphics/asymptote/examples/imagehistogram.asy
+2022/09/17 | 610 | graphics/asymptote/examples/impact.asy
+2022/09/17 | 598 | graphics/asymptote/examples/integraltest.asy
+2022/09/17 | 4809 | graphics/asymptote/examples/interpolate1.asy
+2022/09/17 | 289 | graphics/asymptote/examples/jump.asy
+2022/09/17 | 1352 | graphics/asymptote/examples/Klein.asy
+2022/09/17 | 182 | graphics/asymptote/examples/label3.asy
+2022/09/17 | 196 | graphics/asymptote/examples/label3ribbon.asy
+2022/09/17 | 187 | graphics/asymptote/examples/label3solid.asy
+2022/09/17 | 632 | graphics/asymptote/examples/label3zoom.asy
+2022/09/17 | 264 | graphics/asymptote/examples/labelbox.asy
+2022/09/17 | 1114 | graphics/asymptote/examples/laserlattice.asy
+2022/09/17 | 136 | graphics/asymptote/examples/latticeshading.asy
+2022/09/17 | 690 | graphics/asymptote/examples/layers.asy
+2022/09/17 | 460 | graphics/asymptote/examples/lever.asy
+2022/09/17 | 654 | graphics/asymptote/examples/limit.asy
+2022/09/17 | 1910 | graphics/asymptote/examples/linearregression.asy
+2022/09/17 | 168 | graphics/asymptote/examples/lines.asy
+2022/09/17 | 1040 | graphics/asymptote/examples/lmfit1.asy
+2022/09/17 | 206 | graphics/asymptote/examples/log.asy
+2022/09/17 | 349 | graphics/asymptote/examples/logdown.asy
+2022/09/17 | 1461 | graphics/asymptote/examples/logo3.asy
+2022/09/17 | 196 | graphics/asymptote/examples/lowint.asy
+2022/09/17 | 657 | graphics/asymptote/examples/lowupint.asy
+2022/09/17 | 479 | graphics/asymptote/examples/magnetic.asy
+2022/09/17 | 879 | graphics/asymptote/examples/markregular.asy
+2022/09/17 | 1968 | graphics/asymptote/examples/mergeExample.asy
+2022/09/17 | 5216 | graphics/asymptote/examples/mosaic.asy
+2022/09/17 | 2504 | graphics/asymptote/examples/mosquito.asy
+2022/09/17 | 1566 | graphics/asymptote/examples/near_earth.asy
+2022/09/17 | 703 | graphics/asymptote/examples/NURBScurve.asy
+2022/09/17 | 1088 | graphics/asymptote/examples/NURBSsphere.asy
+2022/09/17 | 1598 | graphics/asymptote/examples/NURBSsurface.asy
+2022/09/17 | 1251 | graphics/asymptote/examples/odetest.asy
+2022/09/17 | 308 | graphics/asymptote/examples/oneoverx.asy
+2022/09/17 | 810 | graphics/asymptote/examples/orthocenter.asy
+2022/09/17 | 254 | graphics/asymptote/examples/parametricelevation.asy
+2022/09/17 | 407 | graphics/asymptote/examples/parametricsurface.asy
+2022/09/17 | 711 | graphics/asymptote/examples/partialsurface.asy
+2022/09/17 | 1055 | graphics/asymptote/examples/partitionExample.asy
+2022/09/17 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
+2022/09/17 | 3335 | graphics/asymptote/examples/pdb.asy
+2022/09/17 | 361 | graphics/asymptote/examples/phase.asy
+2022/09/17 | 22873 | graphics/asymptote/examples/piicon.png
+2022/09/17 | 362 | graphics/asymptote/examples/pipeintersection.asy
+2022/09/17 | 3857 | graphics/asymptote/examples/pipes.asy
+2022/09/17 | 418 | graphics/asymptote/examples/planeproject.asy
+2022/09/17 | 930 | graphics/asymptote/examples/polararea.asy
+2022/09/17 | 628 | graphics/asymptote/examples/polarcircle.asy
+2022/09/17 | 326 | graphics/asymptote/examples/polardatagraph.asy
+2022/09/17 | 641 | graphics/asymptote/examples/pOrbital.asy
+2022/09/17 | 954 | graphics/asymptote/examples/poster.asy
+2022/09/17 | 58 | graphics/asymptote/examples/progrid.asy
+2022/09/17 | 373 | graphics/asymptote/examples/projectelevation.asy
+2022/09/17 | 427 | graphics/asymptote/examples/projectrevolution.asy
+2022/09/17 | 747 | graphics/asymptote/examples/pseudosphere.asy
+2022/09/17 | 557 | graphics/asymptote/examples/Pythagoras.asy
+2022/09/17 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
+2022/09/17 | 734 | graphics/asymptote/examples/quilt.asy
+2022/09/17 | 345 | graphics/asymptote/examples/rainbow.asy
+2022/09/17 | 78 | graphics/asymptote/examples/randompath3.asy
+2022/09/17 | 1537 | graphics/asymptote/examples/refs.bib
+2022/09/17 | 990 | graphics/asymptote/examples/RiemannSphere.asy
+2022/09/17 | 348 | graphics/asymptote/examples/RiemannSurface.asy
+2022/09/17 | 384 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
+2022/09/17 | 141 | graphics/asymptote/examples/ring.asy
+2022/09/17 | 184 | graphics/asymptote/examples/roll.asy
+2022/09/17 | 1309 | graphics/asymptote/examples/roundpath.asy
+2022/09/17 | 288 | graphics/asymptote/examples/sacone3D.asy
+2022/09/17 | 445 | graphics/asymptote/examples/sacone.asy
+2022/09/17 | 341 | graphics/asymptote/examples/sacylinder3D.asy
+2022/09/17 | 400 | graphics/asymptote/examples/sacylinder.asy
+2022/09/17 | 66 | graphics/asymptote/examples/shade.asy
+2022/09/17 | 111 | graphics/asymptote/examples/shadestroke.asy
+2022/09/17 | 1065 | graphics/asymptote/examples/shellmethod.asy
+2022/09/17 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
+2022/09/17 | 410 | graphics/asymptote/examples/Sierpinski.asy
+2022/09/17 | 821 | graphics/asymptote/examples/SierpinskiGasket.asy
+2022/09/17 | 2398 | graphics/asymptote/examples/SierpinskiSponge.asy
+2022/09/17 | 327 | graphics/asymptote/examples/sin1x.asy
+2022/09/17 | 579 | graphics/asymptote/examples/sin3.asy
+2022/09/17 | 591 | graphics/asymptote/examples/sinc.asy
+2022/09/17 | 378 | graphics/asymptote/examples/sinxlex.asy
+2022/09/17 | 3358 | graphics/asymptote/examples/slidedemo.asy
+2022/09/17 | 341 | graphics/asymptote/examples/slidedemo_.bbl
+2022/09/17 | 2023 | graphics/asymptote/examples/slope.asy
+2022/09/17 | 520 | graphics/asymptote/examples/smoothelevation.asy
+2022/09/17 | 2680 | graphics/asymptote/examples/soccerball.asy
+2022/09/17 | 2362 | graphics/asymptote/examples/spectrum.asy
+2022/09/17 | 141 | graphics/asymptote/examples/sphere.asy
+2022/09/17 | 150 | graphics/asymptote/examples/spheresilhouette.asy
+2022/09/17 | 162 | graphics/asymptote/examples/sphereskeleton.asy
+2022/09/17 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
+2022/09/17 | 424 | graphics/asymptote/examples/spiral3.asy
+2022/09/17 | 210 | graphics/asymptote/examples/spiral.asy
+2022/09/17 | 608 | graphics/asymptote/examples/spline.asy
+2022/09/17 | 2191 | graphics/asymptote/examples/splitpatch.asy
+2022/09/17 | 38 | graphics/asymptote/examples/spring0.asy
+2022/09/17 | 43 | graphics/asymptote/examples/spring2.asy
+2022/09/17 | 667 | graphics/asymptote/examples/spring.asy
+2022/09/17 | 674 | graphics/asymptote/examples/sqrtx01.asy
+2022/09/17 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
+2022/09/17 | 145 | graphics/asymptote/examples/star.asy
+2022/09/17 | 162 | graphics/asymptote/examples/stereoscopic.asy
+2022/09/17 | 59 | graphics/asymptote/examples/stroke3.asy
+2022/09/17 | 300 | graphics/asymptote/examples/strokepath.asy
+2022/09/17 | 175 | graphics/asymptote/examples/strokeshade.asy
+2022/09/17 | 198 | graphics/asymptote/examples/tanh.asy
+2022/09/17 | 14378 | graphics/asymptote/examples/teapot.asy
+2022/09/17 | 34 | graphics/asymptote/examples/teapotIBL.asy
+2022/09/17 | 303 | graphics/asymptote/examples/tensor.asy
+2022/09/17 | 547 | graphics/asymptote/examples/tetra.asy
+2022/09/17 | 312 | graphics/asymptote/examples/textpath.asy
+2022/09/17 | 8429 | graphics/asymptote/examples/thermodynamics.asy
+2022/09/17 | 576 | graphics/asymptote/examples/threeviews.asy
+2022/09/17 | 104 | graphics/asymptote/examples/tiling.asy
+2022/09/17 | 419 | graphics/asymptote/examples/torus.asy
+2022/09/17 | 188 | graphics/asymptote/examples/transparency.asy
+2022/09/17 | 250 | graphics/asymptote/examples/transparentCubes.asy
+2022/09/17 | 602 | graphics/asymptote/examples/treetest.asy
+2022/09/17 | 589 | graphics/asymptote/examples/trefoilknot.asy
+2022/09/17 | 972 | graphics/asymptote/examples/triads.asy
+2022/09/17 | 207 | graphics/asymptote/examples/triangle.asy
+2022/09/17 | 441 | graphics/asymptote/examples/triangles.asy
+2022/09/17 | 251 | graphics/asymptote/examples/triceratops.asy
+2022/09/17 | 291 | graphics/asymptote/examples/trumpet.asy
+2022/09/17 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
+2022/09/17 | 40665 | graphics/asymptote/examples/tvgen.asy
+2022/09/17 | 868 | graphics/asymptote/examples/twistedtubes.asy
+2022/09/17 | 433 | graphics/asymptote/examples/twoSpheres.asy
+2022/09/17 | 24924 | graphics/asymptote/examples/uhrturm.obj
+2022/09/17 | 322 | graphics/asymptote/examples/unitcircle.asy
+2022/09/17 | 430 | graphics/asymptote/examples/unitoctant.asy
+2022/09/17 | 714 | graphics/asymptote/examples/unitoctantx.asy
+2022/09/17 | 199 | graphics/asymptote/examples/upint.asy
+2022/09/17 | 525 | graphics/asymptote/examples/vectorfield3.asy
+2022/09/17 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
+2022/09/17 | 839 | graphics/asymptote/examples/venn3.asy
+2022/09/17 | 626 | graphics/asymptote/examples/venn.asy
+2022/09/17 | 802 | graphics/asymptote/examples/vertexshading.asy
+2022/09/17 | 360 | graphics/asymptote/examples/washer.asy
+2022/09/17 | 1010 | graphics/asymptote/examples/washermethod.asy
+2022/09/17 | 628 | graphics/asymptote/examples/wedge.asy
+2022/09/17 | 1030 | graphics/asymptote/examples/workcone.asy
+2022/09/17 | 978 | graphics/asymptote/examples/worksheet.asy
+2022/09/17 | 2626 | graphics/asymptote/examples/worldmap.asy
+2022/09/17 | 1261761 | graphics/asymptote/examples/worldmap.dat
+2022/09/17 | 580 | graphics/asymptote/examples/xsin1x.asy
+2022/09/17 | 3739 | graphics/asymptote/examples/xstitch.asy
+2022/09/17 | 743 | graphics/asymptote/examples/xxsq01.asy
+2022/09/17 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
+2022/09/17 | 825 | graphics/asymptote/examples/xxsq01y.asy
+2022/09/17 | 222 | graphics/asymptote/examples/yingyang.asy
+2022/09/17 | 37889 | graphics/asymptote/exp.cc
+2022/09/17 | 30307 | graphics/asymptote/exp.h
+2022/09/17 | 1188 | graphics/asymptote/EXRFiles.cc
+2022/09/17 | 454 | graphics/asymptote/EXRFiles.h
+2022/09/17 | 178 | graphics/asymptote/fftw++asy.cc
+2022/09/17 | 1694 | graphics/asymptote/fftw++.cc
+2022/09/17 | 45411 | graphics/asymptote/fftw++.h
+2022/09/17 | 4866 | graphics/asymptote/fileio.cc
+2022/09/17 | 21360 | graphics/asymptote/fileio.h
+2022/09/17 | 1245 | graphics/asymptote/findsym.pl
+2022/09/17 | 1020 | graphics/asymptote/flatguide.cc
+2022/09/17 | 4209 | graphics/asymptote/flatguide.h
+2022/09/17 | 654 | graphics/asymptote/fpu.h
+2022/09/17 | 2164 | graphics/asymptote/frame.h
+2022/09/17 | 9772 | graphics/asymptote/fundec.cc
+2022/09/17 | 4895 | graphics/asymptote/fundec.h
+2022/09/17 | 1183225 | graphics/asymptote/gc-8.2.0.tar.gz
+2022/09/17 | 6275 | graphics/asymptote/generate_enums.py
+2022/09/17 | 3153 | graphics/asymptote/genv.cc
+2022/09/17 | 1626 | graphics/asymptote/genv.h
+2022/09/17 | 4520 | graphics/asymptote/getopt1.c
+2022/09/17 | 30147 | graphics/asymptote/getopt.c
+2022/09/17 | 6650 | graphics/asymptote/getopt.h
+2022/09/17 | 202 | graphics/asymptote/glew.c
+2022/09/17 | 1235777 | graphics/asymptote/GL/glew.c
+2022/09/17 | 1186601 | graphics/asymptote/GL/glew.h
+2022/09/17 | 73435 | graphics/asymptote/GL/glxew.h
+2022/09/17 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
+2022/09/17 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
+2022/09/17 | 66414 | graphics/asymptote/glrender.cc
+2022/09/17 | 9319 | graphics/asymptote/glrender.h
+2022/09/17 | 818 | graphics/asymptote/GLTextures.cc
+2022/09/17 | 3634 | graphics/asymptote/GLTextures.h
+2022/09/17 | 63314 | graphics/asymptote/GL/wglew.h
+2022/09/17 | 50437 | graphics/asymptote/gsl.cc
+2022/09/17 | 22 | graphics/asymptote/GUI/configs/__init__.py
+2022/09/17 | 1215 | graphics/asymptote/GUI/configs/xasyconfig.cson
+2022/09/17 | 476 | graphics/asymptote/GUI/configs/xasykeymap.cson
+2022/09/17 | 13764 | graphics/asymptote/GUI/ContextWindow.py
+2022/09/17 | 3592 | graphics/asymptote/GUI/CustMatTransform.py
+2022/09/17 | 100 | graphics/asymptote/GUI/DebugFlags.py
+2022/09/17 | 1149 | graphics/asymptote/guide.cc
+2022/09/17 | 294 | graphics/asymptote/guideflags.h
+2022/09/17 | 6725 | graphics/asymptote/guide.h
+2022/09/17 | 1751 | graphics/asymptote/GUI/GuidesManager.py
+2022/09/17 | 23 | graphics/asymptote/GUI/__init__.py
+2022/09/17 | 15895 | graphics/asymptote/GUI/InplaceAddObj.py
+2022/09/17 | 5272 | graphics/asymptote/GUI/labelEditor.py
+2022/09/17 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
+2022/09/17 | 2445 | graphics/asymptote/GUI/PrimitiveShape.py
+2022/09/17 | 10038 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
+2022/09/17 | 6247 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
+2022/09/17 | 2948 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
+2022/09/17 | 7222 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
+2022/09/17 | 2960 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
+2022/09/17 | 4942 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
+2022/09/17 | 4761 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
+2022/09/17 | 59583 | graphics/asymptote/GUI/pyUIClass/window1.py
+2022/09/17 | 57 | graphics/asymptote/GUI/requirements.txt
+2022/09/17 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
+2022/09/17 | 626 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
+2022/09/17 | 626 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
+2022/09/17 | 790 | graphics/asymptote/GUI/res/icons/android-camera.svg
+2022/09/17 | 683 | graphics/asymptote/GUI/res/icons/android-close.svg
+2022/09/17 | 1302 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
+2022/09/17 | 664 | graphics/asymptote/GUI/res/icons/android-delete.svg
+2022/09/17 | 620 | graphics/asymptote/GUI/res/icons/android-done.svg
+2022/09/17 | 810 | graphics/asymptote/GUI/res/icons/android-expand.svg
+2022/09/17 | 840 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
+2022/09/17 | 1467 | graphics/asymptote/GUI/res/icons/android-hand.svg
+2022/09/17 | 1108 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2022/09/17 | 752 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
+2022/09/17 | 831 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
+2022/09/17 | 795 | graphics/asymptote/GUI/res/icons/android-refresh.svg
+2022/09/17 | 705 | graphics/asymptote/GUI/res/icons/arrow-move.svg
+2022/09/17 | 631 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
+2022/09/17 | 986 | graphics/asymptote/GUI/res/icons/brush.svg
+2022/09/17 | 593 | graphics/asymptote/GUI/res/icons/bucket.asy
+2022/09/17 | 1436 | graphics/asymptote/GUI/res/icons/bucket.svg
+2022/09/17 | 111 | graphics/asymptote/GUI/res/icons/center.asy
+2022/09/17 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
+2022/09/17 | 1022 | graphics/asymptote/GUI/res/icons/centerorigin.svg
+2022/09/17 | 858 | graphics/asymptote/GUI/res/icons/center.svg
+2022/09/17 | 771 | graphics/asymptote/GUI/res/icons/check.svg
+2022/09/17 | 1000 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+2022/09/17 | 985 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+2022/09/17 | 743 | graphics/asymptote/GUI/res/icons/circle.svg
+2022/09/17 | 109 | graphics/asymptote/GUI/res/icons/closedcurve.asy
+2022/09/17 | 1187 | graphics/asymptote/GUI/res/icons/closedcurve.svg
+2022/09/17 | 109 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
+2022/09/17 | 1058 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
+2022/09/17 | 829 | graphics/asymptote/GUI/res/icons/close-round.svg
+2022/09/17 | 1180 | graphics/asymptote/GUI/res/icons/code.svg
+2022/09/17 | 863 | graphics/asymptote/GUI/res/icons/edit.svg
+2022/09/17 | 988 | graphics/asymptote/GUI/res/icons/eye.svg
+2022/09/17 | 1884 | graphics/asymptote/GUI/res/icons/filledbucket.svg
+2022/09/17 | 1732 | graphics/asymptote/GUI/res/icons/grid.svg
+2022/09/17 | 951 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
+2022/09/17 | 102 | graphics/asymptote/GUI/res/icons/opencurve.asy
+2022/09/17 | 1139 | graphics/asymptote/GUI/res/icons/opencurve.svg
+2022/09/17 | 102 | graphics/asymptote/GUI/res/icons/openpolygon.asy
+2022/09/17 | 1043 | graphics/asymptote/GUI/res/icons/openpolygon.svg
+2022/09/17 | 750 | graphics/asymptote/GUI/res/icons/plus-round.svg
+2022/09/17 | 1808 | graphics/asymptote/GUI/res/icons.qrc
+2022/09/17 | 1090 | graphics/asymptote/GUI/res/icons/redo.svg
+2022/09/17 | 663 | graphics/asymptote/GUI/res/icons/save.svg
+2022/09/17 | 1899 | graphics/asymptote/GUI/res/icons/social-python.svg
+2022/09/17 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
+2022/09/17 | 284 | graphics/asymptote/GUI/res/icons/text.svg
+2022/09/17 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
+2022/09/17 | 1047 | graphics/asymptote/GUI/res/icons/undo.svg
+2022/09/17 | 1449 | graphics/asymptote/GUI/SetCustomAnchor.py
+2022/09/17 | 393 | graphics/asymptote/GUI/setup.py
+2022/09/17 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
+2022/09/17 | 3267 | graphics/asymptote/GUI/Widg_addLabel.py
+2022/09/17 | 877 | graphics/asymptote/GUI/Widg_addPolyOpt.py
+2022/09/17 | 1658 | graphics/asymptote/GUI/Widg_editBezier.py
+2022/09/17 | 98015 | graphics/asymptote/GUI/Window1.py
+2022/09/17 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
+2022/09/17 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
+2022/09/17 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
+2022/09/17 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
+2022/09/17 | 2941 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
+2022/09/17 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
+2022/09/17 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
+2022/09/17 | 79003 | graphics/asymptote/GUI/windows/window1.ui
+2022/09/17 | 67146 | graphics/asymptote/GUI/xasy2asy.py
+2022/09/17 | 1183 | graphics/asymptote/GUI/xasyArgs.py
+2022/09/17 | 13816 | graphics/asymptote/GUI/xasyBezierInterface.py
+2022/09/17 | 4766 | graphics/asymptote/GUI/xasyFile.py
+2022/09/17 | 6717 | graphics/asymptote/GUI/xasyOptions.py
+2022/09/17 | 611 | graphics/asymptote/GUI/xasy.py
+2022/09/17 | 586 | graphics/asymptote/GUI/xasyStrings.py
+2022/09/17 | 733 | graphics/asymptote/GUI/xasySvg.py
+2022/09/17 | 1015 | graphics/asymptote/GUI/xasyTransform.py
+2022/09/17 | 1542 | graphics/asymptote/GUI/xasyUtils.py
+2022/09/17 | 238 | graphics/asymptote/GUI/xasyValidator.py
+2022/09/17 | 12823 | graphics/asymptote/impdatum.cc
+2022/09/17 | 127 | graphics/asymptote/index.html
+2022/09/17 | 10445 | graphics/asymptote/INSTALL
+2022/09/17 | 15645 | graphics/asymptote/install-sh
+2022/09/17 | 1982 | graphics/asymptote/inst.h
+2022/09/17 | 5689 | graphics/asymptote/interact.cc
+2022/09/17 | 1345 | graphics/asymptote/interact.h
+2022/09/17 | 5733 | graphics/asymptote/item.h
+2022/09/17 | 11221 | graphics/asymptote/jsfile.cc
+2022/09/17 | 2623 | graphics/asymptote/jsfile.h
+2022/09/17 | 609 | graphics/asymptote/keywords.cc
+2022/09/17 | 1253 | graphics/asymptote/keywords.pl
+2022/09/17 | 22345 | graphics/asymptote/knot.cc
+2022/09/17 | 12259 | graphics/asymptote/knot.h
+2022/09/17 | 342 | graphics/asymptote/lexical.h
+2022/09/17 | 83449 | graphics/asymptote/lex.yy.cc
+2022/09/17 | 506313 | graphics/asymptote/libatomic_ops-7.6.12.tar.gz
+2022/09/17 | 35147 | graphics/asymptote/LICENSE
+2022/09/17 | 7639 | graphics/asymptote/LICENSE.LESSER
+2022/09/17 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
+2022/09/17 | 2194 | graphics/asymptote/locate.cc
+2022/09/17 | 631 | graphics/asymptote/locate.h
+2022/09/17 | 12011 | graphics/asymptote/LspCpp/CMakeLists.txt
+2022/09/17 | 6593 | graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
+2022/09/17 | 4904 | graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
+2022/09/17 | 6915 | graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
+2022/09/17 | 8092 | graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
+2022/09/17 | 492 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
+2022/09/17 | 1480 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
+2022/09/17 | 7671 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Context.h
+2022/09/17 | 1831 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
+2022/09/17 | 5114 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h
+2022/09/17 | 217 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/GCThreadContext.h
+2022/09/17 | 2901 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
+2022/09/17 | 1545 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
+2022/09/17 | 2013 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
+2022/09/17 | 30638 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
+2022/09/17 | 751 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
+2022/09/17 | 6964 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
+2022/09/17 | 2418 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
+2022/09/17 | 260 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
+2022/09/17 | 1832 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
+2022/09/17 | 14139 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
+2022/09/17 | 2205 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
+2022/09/17 | 1765 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h
+2022/09/17 | 11656 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
+2022/09/17 | 5366 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
+2022/09/17 | 1299 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
+2022/09/17 | 1182 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
+2022/09/17 | 6623 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
+2022/09/17 | 6369 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/traits.h
+2022/09/17 | 2424 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/WebSocketServer.h
+2022/09/17 | 790 | graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
+2022/09/17 | 11801 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
+2022/09/17 | 1658 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
+2022/09/17 | 1103 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
+2022/09/17 | 3477 | graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
+2022/09/17 | 264 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
+2022/09/17 | 663 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
+2022/09/17 | 646 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
+2022/09/17 | 390 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
+2022/09/17 | 891 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
+2022/09/17 | 869 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
+2022/09/17 | 1142 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
+2022/09/17 | 722 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
+2022/09/17 | 294 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/classFileContents.h
+2022/09/17 | 1158 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
+2022/09/17 | 973 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
+2022/09/17 | 606 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
+2022/09/17 | 586 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
+2022/09/17 | 645 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
+2022/09/17 | 870 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
+2022/09/17 | 822 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
+2022/09/17 | 533 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
+2022/09/17 | 2016 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
+2022/09/17 | 2374 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
+2022/09/17 | 325 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/listOverridableMethods.h
+2022/09/17 | 320 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/Move.h
+2022/09/17 | 301 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/organizeImports.h
+2022/09/17 | 1075 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
+2022/09/17 | 309 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/projectConfigurationUpdate.h
+2022/09/17 | 846 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
+2022/09/17 | 750 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
+2022/09/17 | 243 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
+2022/09/17 | 5319 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
+2022/09/17 | 203 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/exit.h
+2022/09/17 | 482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialized.h
+2022/09/17 | 1391 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
+2022/09/17 | 3453 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
+2022/09/17 | 1219 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
+2022/09/17 | 21996 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
+2022/09/17 | 24589 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
+2022/09/17 | 7670 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
+2022/09/17 | 714 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
+2022/09/17 | 487 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/shutdown.h
+2022/09/17 | 5818 | graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
+2022/09/17 | 3533 | graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
+2022/09/17 | 2040 | graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
+2022/09/17 | 4118 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lru_cache.h
+2022/09/17 | 4789 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
+2022/09/17 | 1396 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
+2022/09/17 | 1482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
+2022/09/17 | 881 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
+2022/09/17 | 1438 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
+2022/09/17 | 1181 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
+2022/09/17 | 1579 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
+2022/09/17 | 7331 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
+2022/09/17 | 4021 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
+2022/09/17 | 1291 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
+2022/09/17 | 941 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
+2022/09/17 | 3637 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
+2022/09/17 | 842 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
+2022/09/17 | 453 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
+2022/09/17 | 747 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
+2022/09/17 | 721 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
+2022/09/17 | 2709 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
+2022/09/17 | 1190 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
+2022/09/17 | 2650 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
+2022/09/17 | 3915 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
+2022/09/17 | 45222 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
+2022/09/17 | 74 | graphics/asymptote/LspCpp/include/LibLsp/lsp/method_type.h
+2022/09/17 | 594 | graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
+2022/09/17 | 376 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
+2022/09/17 | 1318 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
+2022/09/17 | 218 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
+2022/09/17 | 3141 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
+2022/09/17 | 1192 | graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
+2022/09/17 | 4760 | graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
+2022/09/17 | 4131 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
+2022/09/17 | 2787 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
+2022/09/17 | 1184 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
+2022/09/17 | 1819 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
+2022/09/17 | 2527 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
+2022/09/17 | 934 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/declaration_definition.h
+2022/09/17 | 1659 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
+2022/09/17 | 800 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
+2022/09/17 | 931 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
+2022/09/17 | 1189 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
+2022/09/17 | 815 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
+2022/09/17 | 2182 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
+2022/09/17 | 1249 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
+2022/09/17 | 1843 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
+2022/09/17 | 1875 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
+2022/09/17 | 848 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
+2022/09/17 | 573 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
+2022/09/17 | 1852 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
+2022/09/17 | 488 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/implementation.h
+2022/09/17 | 1435 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
+2022/09/17 | 1138 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
+2022/09/17 | 1079 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
+2022/09/17 | 770 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
+2022/09/17 | 900 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
+2022/09/17 | 1250 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
+2022/09/17 | 1147 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
+2022/09/17 | 223 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCodeLens.h
+2022/09/17 | 489 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCompletionItem.h
+2022/09/17 | 880 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
+2022/09/17 | 1564 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
+2022/09/17 | 2868 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
+2022/09/17 | 11269 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
+2022/09/17 | 3419 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
+2022/09/17 | 498 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
+2022/09/17 | 4730 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
+2022/09/17 | 2189 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
+2022/09/17 | 4898 | graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
+2022/09/17 | 2407 | graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
+2022/09/17 | 2161 | graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
+2022/09/17 | 1175 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
+2022/09/17 | 1239 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
+2022/09/17 | 615 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
+2022/09/17 | 1352 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_watched_files.h
+2022/09/17 | 1423 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
+2022/09/17 | 794 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/execute_command.h
+2022/09/17 | 428 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/symbol.h
+2022/09/17 | 1022 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
+2022/09/17 | 1066 | graphics/asymptote/LspCpp/LICENSE
+2022/09/17 | 1203 | graphics/asymptote/LspCpp/README.md
+2022/09/17 | 964 | graphics/asymptote/LspCpp/src/jsonrpc/Context.cpp
+2022/09/17 | 1388 | graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
+2022/09/17 | 277 | graphics/asymptote/LspCpp/src/jsonrpc/GCThreadContext.cpp
+2022/09/17 | 2804 | graphics/asymptote/LspCpp/src/jsonrpc/message.cpp
+2022/09/17 | 1532 | graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
+2022/09/17 | 24091 | graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
+2022/09/17 | 5242 | graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
+2022/09/17 | 7133 | graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
+2022/09/17 | 9641 | graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
+2022/09/17 | 465 | graphics/asymptote/LspCpp/src/jsonrpc/threaded_queue.cpp
+2022/09/17 | 10632 | graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
+2022/09/17 | 1390 | graphics/asymptote/LspCpp/src/lsp/initialize.cpp
+2022/09/17 | 30730 | graphics/asymptote/LspCpp/src/lsp/lsp.cpp
+2022/09/17 | 2289 | graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
+2022/09/17 | 33741 | graphics/asymptote/LspCpp/src/lsp/Markup.cpp
+2022/09/17 | 4269 | graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
+2022/09/17 | 29193 | graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
+2022/09/17 | 13804 | graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
+2022/09/17 | 18867 | graphics/asymptote/LspCpp/src/lsp/utils.cpp
+2022/09/17 | 5358 | graphics/asymptote/LspCpp/src/lsp/working_files.cpp
+2022/09/17 | 2662 | graphics/asymptote/LspCpp/third_party/rapidjson/appveyor.yml
+2022/09/17 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/abcde.txt
+2022/09/17 | 582 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
+2022/09/17 | 872 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json
+2022/09/17 | 103 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/readme.txt
+2022/09/17 | 687491 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/sample.json
+2022/09/17 | 3467 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json
+2022/09/17 | 601 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
+2022/09/17 | 4375 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/draft-04/schema
+2022/09/17 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16bebom.json
+2022/09/17 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16be.json
+2022/09/17 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16lebom.json
+2022/09/17 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16le.json
+2022/09/17 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32bebom.json
+2022/09/17 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32be.json
+2022/09/17 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32lebom.json
+2022/09/17 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32le.json
+2022/09/17 | 319 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
+2022/09/17 | 316 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
+2022/09/17 | 58 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail10.json
+2022/09/17 | 29 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail11.json
+2022/09/17 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail12.json
+2022/09/17 | 43 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail13.json
+2022/09/17 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail14.json
+2022/09/17 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail15.json
+2022/09/17 | 8 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail16.json
+2022/09/17 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail17.json
+2022/09/17 | 50 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail18.json
+2022/09/17 | 22 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail19.json
+2022/09/17 | 60 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail1.json
+2022/09/17 | 23 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail20.json
+2022/09/17 | 32 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail21.json
+2022/09/17 | 33 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail22.json
+2022/09/17 | 20 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail23.json
+2022/09/17 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail24.json
+2022/09/17 | 29 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail25.json
+2022/09/17 | 38 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail26.json
+2022/09/17 | 14 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail27.json
+2022/09/17 | 15 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail28.json
+2022/09/17 | 4 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail29.json
+2022/09/17 | 17 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail2.json
+2022/09/17 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail30.json
+2022/09/17 | 7 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail31.json
+2022/09/17 | 40 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail32.json
+2022/09/17 | 12 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail33.json
+2022/09/17 | 37 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail3.json
+2022/09/17 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail4.json
+2022/09/17 | 24 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail5.json
+2022/09/17 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail6.json
+2022/09/17 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail7.json
+2022/09/17 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail8.json
+2022/09/17 | 22 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail9.json
+2022/09/17 | 1441 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass1.json
+2022/09/17 | 52 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass2.json
+2022/09/17 | 148 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass3.json
+2022/09/17 | 173 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/readme.txt
+2022/09/17 | 9059 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/bin/jsonschema_suite
+2022/09/17 | 1057 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/LICENSE
+2022/09/17 | 4787 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/README.md
+2022/09/17 | 25 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json
+2022/09/17 | 25 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/integer.json
+2022/09/17 | 110 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/subSchemas.json
+2022/09/17 | 2257 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json
+2022/09/17 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json
+2022/09/17 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/default.json
+2022/09/17 | 2989 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/dependencies.json
+2022/09/17 | 1936 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/disallow.json
+2022/09/17 | 1544 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json
+2022/09/17 | 1964 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/enum.json
+2022/09/17 | 2591 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/extends.json
+2022/09/17 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/items.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maximum.json
+2022/09/17 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxItems.json
+2022/09/17 | 895 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxLength.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minimum.json
+2022/09/17 | 693 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minItems.json
+2022/09/17 | 886 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minLength.json
+2022/09/17 | 3075 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json
+2022/09/17 | 6751 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/format.json
+2022/09/17 | 463 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json
+2022/09/17 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json
+2022/09/17 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/pattern.json
+2022/09/17 | 3365 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json
+2022/09/17 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/properties.json
+2022/09/17 | 4385 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/ref.json
+2022/09/17 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/refRemote.json
+2022/09/17 | 1282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/required.json
+2022/09/17 | 13217 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/type.json
+2022/09/17 | 2613 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json
+2022/09/17 | 2282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json
+2022/09/17 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json
+2022/09/17 | 3025 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/allOf.json
+2022/09/17 | 1608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/anyOf.json
+2022/09/17 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/default.json
+2022/09/17 | 854 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/definitions.json
+2022/09/17 | 3139 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/dependencies.json
+2022/09/17 | 1975 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/enum.json
+2022/09/17 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/items.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maximum.json
+2022/09/17 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxItems.json
+2022/09/17 | 896 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxLength.json
+2022/09/17 | 759 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minimum.json
+2022/09/17 | 693 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minItems.json
+2022/09/17 | 886 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minLength.json
+2022/09/17 | 725 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minProperties.json
+2022/09/17 | 1525 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json
+2022/09/17 | 2266 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/not.json
+2022/09/17 | 1607 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/oneOf.json
+2022/09/17 | 3075 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json
+2022/09/17 | 4608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/format.json
+2022/09/17 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json
+2022/09/17 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/pattern.json
+2022/09/17 | 3365 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json
+2022/09/17 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/properties.json
+2022/09/17 | 4366 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/ref.json
+2022/09/17 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/refRemote.json
+2022/09/17 | 923 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/required.json
+2022/09/17 | 9298 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/type.json
+2022/09/17 | 2613 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json
+2022/09/17 | 134 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tox.ini
+2022/09/17 | 30003 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/alotofkeys.json
+2022/09/17 | 849 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/booleans.json
+2022/09/17 | 1698 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/floats.json
+2022/09/17 | 4202 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/guids.json
+2022/09/17 | 1098 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/integers.json
+2022/09/17 | 15142 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/mixed.json
+2022/09/17 | 802 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/nulls.json
+2022/09/17 | 33764 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/paragraphs.json
+2022/09/17 | 86 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/readme.txt
+2022/09/17 | 3157 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/address.json
+2022/09/17 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/allOf_address.json
+2022/09/17 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/anyOf_address.json
+2022/09/17 | 1315 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/idandref.json
+2022/09/17 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/oneOf_address.json
+2022/09/17 | 6818 | graphics/asymptote/LspCpp/third_party/rapidjson/CHANGELOG.md
+2022/09/17 | 10312 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeLists.txt
+2022/09/17 | 828 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeModules/FindGTestSrc.cmake
+2022/09/17 | 2175 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/LICENSE
+2022/09/17 | 2603 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/rapidjson.natvis
+2022/09/17 | 678 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/README.md
+2022/09/17 | 1052 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/CMakeLists.txt
+2022/09/17 | 912 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.dot
+2022/09/17 | 16569 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.png
+2022/09/17 | 2239 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.dot
+2022/09/17 | 37281 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.png
+2022/09/17 | 1915 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.dot
+2022/09/17 | 92378 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.png
+2022/09/17 | 176 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/makefile
+2022/09/17 | 935 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.dot
+2022/09/17 | 16081 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.png
+2022/09/17 | 1502 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.dot
+2022/09/17 | 41517 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.png
+2022/09/17 | 1454 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.dot
+2022/09/17 | 36371 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.png
+2022/09/17 | 1427 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.dot
+2022/09/17 | 32887 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.png
+2022/09/17 | 1435 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.dot
+2022/09/17 | 43670 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.png
+2022/09/17 | 1456 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.dot
+2022/09/17 | 44634 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.png
+2022/09/17 | 1775 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.dot
+2022/09/17 | 99993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.png
+2022/09/17 | 15464 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.md
+2022/09/17 | 15393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.zh-cn.md
+2022/09/17 | 103393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.in
+2022/09/17 | 103478 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.zh-cn.in
+2022/09/17 | 6708 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.md
+2022/09/17 | 6860 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.zh-cn.md
+2022/09/17 | 15364 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.md
+2022/09/17 | 15030 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.zh-cn.md
+2022/09/17 | 5005 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.md
+2022/09/17 | 4805 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.zh-cn.md
+2022/09/17 | 22426 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.md
+2022/09/17 | 21956 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.zh-cn.md
+2022/09/17 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/docker/debian/Dockerfile
+2022/09/17 | 5259 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.png
+2022/09/17 | 4230 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.svg
+2022/09/17 | 6572 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/doxygenextra.css
+2022/09/17 | 6090 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/DoxygenLayout.xml
+2022/09/17 | 256 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/footer.html
+2022/09/17 | 1137 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/header.html
+2022/09/17 | 363 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/npm.md
+2022/09/17 | 1268 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.md
+2022/09/17 | 1236 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.zh-cn.md
+2022/09/17 | 8883 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/pointer.md
+2022/09/17 | 8532 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/pointer.zh-cn.md
+2022/09/17 | 21276 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.md
+2022/09/17 | 19967 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.zh-cn.md
+2022/09/17 | 17993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.md
+2022/09/17 | 9765 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.zh-cn.md
+2022/09/17 | 14531 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.md
+2022/09/17 | 14325 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.zh-cn.md
+2022/09/17 | 22121 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.md
+2022/09/17 | 21546 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.zh-cn.md
+2022/09/17 | 7125 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
+2022/09/17 | 3563 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
+2022/09/17 | 6849 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
+2022/09/17 | 2576 | graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
+2022/09/17 | 982 | graphics/asymptote/LspCpp/third_party/rapidjson/example/CMakeLists.txt
+2022/09/17 | 1014 | graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
+2022/09/17 | 5933 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
+2022/09/17 | 4963 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
+2022/09/17 | 5996 | graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
+2022/09/17 | 9349 | graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
+2022/09/17 | 2814 | graphics/asymptote/LspCpp/third_party/rapidjson/example/messagereader/messagereader.cpp
+2022/09/17 | 5129 | graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
+2022/09/17 | 2245 | graphics/asymptote/LspCpp/third_party/rapidjson/example/prettyauto/prettyauto.cpp
+2022/09/17 | 1019 | graphics/asymptote/LspCpp/third_party/rapidjson/example/pretty/pretty.cpp
+2022/09/17 | 8701 | graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
+2022/09/17 | 4581 | graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
+2022/09/17 | 685 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simpledom/simpledom.cpp
+2022/09/17 | 2255 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
+2022/09/17 | 1866 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
+2022/09/17 | 1026 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
+2022/09/17 | 1610 | graphics/asymptote/LspCpp/third_party/rapidjson/example/sortkeys/sortkeys.cpp
+2022/09/17 | 942 | graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
+2022/09/17 | 6253 | graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
+2022/09/17 | 94 | graphics/asymptote/LspCpp/third_party/rapidjson/include_dirs.js
+2022/09/17 | 22506 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
+2022/09/17 | 2260 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/cursorstreamwrapper.h
+2022/09/17 | 132742 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
+2022/09/17 | 10641 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
+2022/09/17 | 29242 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
+2022/09/17 | 8815 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
+2022/09/17 | 9740 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
+2022/09/17 | 2974 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
+2022/09/17 | 3119 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
+2022/09/17 | 4007 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
+2022/09/17 | 9231 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
+2022/09/17 | 2045 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/clzll.h
+2022/09/17 | 11559 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/diyfp.h
+2022/09/17 | 8429 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
+2022/09/17 | 2969 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
+2022/09/17 | 10110 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/itoa.h
+2022/09/17 | 6616 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
+2022/09/17 | 3567 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
+2022/09/17 | 26102 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
+2022/09/17 | 7157 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
+2022/09/17 | 2721 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
+2022/09/17 | 9032 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
+2022/09/17 | 1398 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/swap.h
+2022/09/17 | 4051 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
+2022/09/17 | 2534 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
+2022/09/17 | 2642 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
+2022/09/17 | 8361 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
+2022/09/17 | 9375 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
+2022/09/17 | 2303 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
+2022/09/17 | 63680 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
+2022/09/17 | 10504 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
+2022/09/17 | 25589 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
+2022/09/17 | 94336 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/reader.h
+2022/09/17 | 121098 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
+2022/09/17 | 6732 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stream.h
+2022/09/17 | 3968 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
+2022/09/17 | 19752 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/uri.h
+2022/09/17 | 26817 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
+2022/09/17 | 355 | graphics/asymptote/LspCpp/third_party/rapidjson/library.json
+2022/09/17 | 5152 | graphics/asymptote/LspCpp/third_party/rapidjson/license.txt
+2022/09/17 | 561 | graphics/asymptote/LspCpp/third_party/rapidjson/package.json
+2022/09/17 | 3407 | graphics/asymptote/LspCpp/third_party/rapidjson/rapidjson.autopkg
+2022/09/17 | 983 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfig.cmake.in
+2022/09/17 | 469 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfigVersion.cmake.in
+2022/09/17 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSON.pc.in
+2022/09/17 | 11146 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.md
+2022/09/17 | 8795 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.zh-cn.md
+2022/09/17 | 491 | graphics/asymptote/LspCpp/third_party/rapidjson/test/CMakeLists.txt
+2022/09/17 | 834 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/CMakeLists.txt
+2022/09/17 | 35461 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
+2022/09/17 | 971 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
+2022/09/17 | 5752 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
+2022/09/17 | 4438 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
+2022/09/17 | 16298 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
+2022/09/17 | 7218 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/schematest.cpp
+2022/09/17 | 9036 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
+2022/09/17 | 4416 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
+2022/09/17 | 1088 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
+2022/09/17 | 3060 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/CMakeLists.txt
+2022/09/17 | 3733 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/cursorstreamwrappertest.cpp
+2022/09/17 | 21271 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
+2022/09/17 | 3437 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
+2022/09/17 | 11996 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
+2022/09/17 | 19321 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
+2022/09/17 | 4381 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
+2022/09/17 | 5832 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
+2022/09/17 | 5415 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
+2022/09/17 | 3956 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/itoatest.cpp
+2022/09/17 | 4733 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
+2022/09/17 | 2396 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
+2022/09/17 | 2481 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
+2022/09/17 | 1452 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
+2022/09/17 | 62767 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
+2022/09/17 | 10310 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
+2022/09/17 | 98539 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/readertest.cpp
+2022/09/17 | 17258 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
+2022/09/17 | 124978 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
+2022/09/17 | 7016 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
+2022/09/17 | 1312 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
+2022/09/17 | 5540 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
+2022/09/17 | 4248 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
+2022/09/17 | 1523 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
+2022/09/17 | 3967 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
+2022/09/17 | 28158 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/uritest.cpp
+2022/09/17 | 57598 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
+2022/09/17 | 17907 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
+2022/09/17 | 242 | graphics/asymptote/LspCpp/third_party/rapidjson/test/valgrind.supp
+2022/09/17 | 3294 | graphics/asymptote/LspCpp/third_party/rapidjson/travis-doxygen.sh
+2022/09/17 | 1216 | graphics/asymptote/LspCpp/third_party/uri/CHANGELOG.md
+2022/09/17 | 648 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
+2022/09/17 | 3036 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
+2022/09/17 | 188 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/cmake_clean.cmake
+2022/09/17 | 113 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/compiler_depend.make
+2022/09/17 | 107 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/compiler_depend.ts
+2022/09/17 | 423 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake
+2022/09/17 | 22 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/progress.make
+2022/09/17 | 2 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/progress.marks
+2022/09/17 | 1703 | graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake
+2022/09/17 | 3282 | graphics/asymptote/LspCpp/third_party/uri/CMakeLists.txt
+2022/09/17 | 6104 | graphics/asymptote/LspCpp/third_party/uri/deps/BUILD.bazel
+2022/09/17 | 4160 | graphics/asymptote/LspCpp/third_party/uri/deps/ci/linux-presubmit.sh
+2022/09/17 | 2608 | graphics/asymptote/LspCpp/third_party/uri/deps/ci/macos-presubmit.sh
+2022/09/17 | 784 | graphics/asymptote/LspCpp/third_party/uri/deps/CMakeLists.txt
+2022/09/17 | 5683 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTING.md
+2022/09/17 | 2223 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTORS
+2022/09/17 | 86552 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/advanced.md
+2022/09/17 | 342 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/community_created_documentation.md
+2022/09/17 | 18 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_config.yml
+2022/09/17 | 1200 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_data/navigation.yml
+2022/09/17 | 29900 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/faq.md
+2022/09/17 | 7364 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cheat_sheet.md
+2022/09/17 | 145014 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cook_book.md
+2022/09/17 | 14980 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_faq.md
+2022/09/17 | 29203 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_for_dummies.md
+2022/09/17 | 1034 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/index.md
+2022/09/17 | 2319 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_layouts/default.html
+2022/09/17 | 5062 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/pkgconfig.md
+2022/09/17 | 929 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/platforms.md
+2022/09/17 | 19136 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/primer.md
+2022/09/17 | 5204 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-bazel.md
+2022/09/17 | 5054 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-cmake.md
+2022/09/17 | 6872 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/actions.md
+2022/09/17 | 21535 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/assertions.md
+2022/09/17 | 20123 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/matchers.md
+2022/09/17 | 20974 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/mocking.md
+2022/09/17 | 43830 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/testing.md
+2022/09/17 | 1118 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/samples.md
+2022/09/17 | 2915 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_sass/main.scss
+2022/09/17 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock_main.pc.in
+2022/09/17 | 347 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock.pc.in
+2022/09/17 | 8129 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/CMakeLists.txt
+2022/09/17 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/docs/README.md
+2022/09/17 | 61667 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-actions.h
+2022/09/17 | 6097 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-cardinalities.h
+2022/09/17 | 25503 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-function-mocker.h
+2022/09/17 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock.h
+2022/09/17 | 207686 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-matchers.h
+2022/09/17 | 30920 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-actions.h
+2022/09/17 | 3419 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-matchers.h
+2022/09/17 | 10476 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-nice-strict.h
+2022/09/17 | 76445 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-spec-builders.h
+2022/09/17 | 314 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
+2022/09/17 | 1918 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-matchers.h
+2022/09/17 | 1953 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-port.h
+2022/09/17 | 510 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/README.md
+2022/09/17 | 18448 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-internal-utils.h
+2022/09/17 | 4807 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-port.h
+2022/09/17 | 13491 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-pp.h
+2022/09/17 | 1538 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/README.md
+2022/09/17 | 2107 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-all.cc
+2022/09/17 | 5262 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-cardinalities.cc
+2022/09/17 | 8528 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock.cc
+2022/09/17 | 9267 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-internal-utils.cc
+2022/09/17 | 3011 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock_main.cc
+2022/09/17 | 17951 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-matchers.cc
+2022/09/17 | 33482 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-spec-builders.cc
+2022/09/17 | 3266 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/BUILD.bazel
+2022/09/17 | 51302 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-actions_test.cc
+2022/09/17 | 2335 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_all_test.cc
+2022/09/17 | 12321 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-cardinalities_test.cc
+2022/09/17 | 3280 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_ex_test.cc
+2022/09/17 | 33667 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-function-mocker_test.cc
+2022/09/17 | 28114 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-internal-utils_test.cc
+2022/09/17 | 3230 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test_.cc
+2022/09/17 | 4357 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test.py
+2022/09/17 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link2_test.cc
+2022/09/17 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.cc
+2022/09/17 | 19604 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.h
+2022/09/17 | 287695 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-matchers_test.cc
+2022/09/17 | 53373 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-more-actions_test.cc
+2022/09/17 | 15529 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-nice-strict_test.cc
+2022/09/17 | 8561 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_.cc
+2022/09/17 | 13612 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_golden.txt
+2022/09/17 | 6175 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test.py
+2022/09/17 | 1977 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-port_test.cc
+2022/09/17 | 8789 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp-string_test.cc
+2022/09/17 | 3517 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp_test.cc
+2022/09/17 | 74749 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-spec-builders_test.cc
+2022/09/17 | 7287 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_stress_test.cc
+2022/09/17 | 6412 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test.cc
+2022/09/17 | 3218 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test_utils.py
+2022/09/17 | 284 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/Config.cmake.in
+2022/09/17 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest_main.pc.in
+2022/09/17 | 311 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest.pc.in
+2022/09/17 | 14575 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/internal_utils.cmake
+2022/09/17 | 499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/libgtest.la.in
+2022/09/17 | 11937 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeLists.txt
+2022/09/17 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/docs/README.md
+2022/09/17 | 8307 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-assertion-result.h
+2022/09/17 | 14651 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-death-test.h
+2022/09/17 | 88387 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest.h
+2022/09/17 | 33240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-matchers.h
+2022/09/17 | 8120 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-message.h
+2022/09/17 | 22663 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-param-test.h
+2022/09/17 | 15043 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_pred_impl.h
+2022/09/17 | 36540 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-printers.h
+2022/09/17 | 2499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_prod.h
+2022/09/17 | 10073 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-spi.h
+2022/09/17 | 6944 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-test-part.h
+2022/09/17 | 15959 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-typed-test.h
+2022/09/17 | 1858 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest.h
+2022/09/17 | 1873 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-port.h
+2022/09/17 | 2094 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-printers.h
+2022/09/17 | 1753 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/README.md
+2022/09/17 | 13366 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-death-test-internal.h
+2022/09/17 | 9856 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-filepath.h
+2022/09/17 | 61699 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-internal.h
+2022/09/17 | 35217 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-param-util.h
+2022/09/17 | 4207 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-port-arch.h
+2022/09/17 | 85342 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-port.h
+2022/09/17 | 7304 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-string.h
+2022/09/17 | 6252 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-type-util.h
+2022/09/17 | 8894 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/README.md
+2022/09/17 | 4247 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/prime_tables.h
+2022/09/17 | 4985 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample10_unittest.cc
+2022/09/17 | 2470 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.cc
+2022/09/17 | 1919 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.h
+2022/09/17 | 5111 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1_unittest.cc
+2022/09/17 | 2260 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2.cc
+2022/09/17 | 2982 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2.h
+2022/09/17 | 3917 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2_unittest.cc
+2022/09/17 | 5375 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3-inl.h
+2022/09/17 | 5360 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3_unittest.cc
+2022/09/17 | 2110 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.cc
+2022/09/17 | 2132 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.h
+2022/09/17 | 1995 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4_unittest.cc
+2022/09/17 | 6585 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample5_unittest.cc
+2022/09/17 | 8861 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample6_unittest.cc
+2022/09/17 | 4620 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample7_unittest.cc
+2022/09/17 | 6194 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample8_unittest.cc
+2022/09/17 | 5925 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample9_unittest.cc
+2022/09/17 | 2201 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc
+2022/09/17 | 3025 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-assertion-result.cc
+2022/09/17 | 252536 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest.cc
+2022/09/17 | 62413 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-death-test.cc
+2022/09/17 | 14081 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-filepath.cc
+2022/09/17 | 46854 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-internal-inl.h
+2022/09/17 | 1968 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc
+2022/09/17 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-matchers.cc
+2022/09/17 | 47582 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-port.cc
+2022/09/17 | 18474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-printers.cc
+2022/09/17 | 4126 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-test-part.cc
+2022/09/17 | 3780 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-typed-test.cc
+2022/09/17 | 15318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/BUILD.bazel
+2022/09/17 | 3240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-break-on-failure-unittest_.cc
+2022/09/17 | 7322 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-break-on-failure-unittest.py
+2022/09/17 | 8386 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test_.cc
+2022/09/17 | 10023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test.py
+2022/09/17 | 2505 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test_.cc
+2022/09/17 | 4896 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test.py
+2022/09/17 | 3601 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test_ex_test.cc
+2022/09/17 | 47993 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test-test.cc
+2022/09/17 | 3704 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test_.cc
+2022/09/17 | 4173 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test.py
+2022/09/17 | 5595 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest_.cc
+2022/09/17 | 14915 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest.py
+2022/09/17 | 22642 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filepath-test.cc
+2022/09/17 | 3466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest_.cc
+2022/09/17 | 21466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest.py
+2022/09/17 | 2286 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest_.cc
+2022/09/17 | 5254 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest.py
+2022/09/17 | 5705 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-json-outfiles-test.py
+2022/09/17 | 24483 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-json-output-unittest.py
+2022/09/17 | 24474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-listener-test.cc
+2022/09/17 | 4668 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-list-tests-unittest_.cc
+2022/09/17 | 6543 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-list-tests-unittest.py
+2022/09/17 | 5265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-message-test.cc
+2022/09/17 | 7957 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-options-test.cc
+2022/09/17 | 36152 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test_.cc
+2022/09/17 | 42714 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test-golden-lin.txt
+2022/09/17 | 12648 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test.py
+2022/09/17 | 2813 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test2-test.cc
+2022/09/17 | 2023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test_.cc
+2022/09/17 | 2400 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test.py
+2022/09/17 | 2138 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test_.cc
+2022/09/17 | 2355 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test.py
+2022/09/17 | 40998 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.cc
+2022/09/17 | 2282 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.h
+2022/09/17 | 40876 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-port-test.cc
+2022/09/17 | 63842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-printers-test.cc
+2022/09/17 | 1949 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-setuptestsuite-test_.cc
+2022/09/17 | 2265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-setuptestsuite-test.py
+2022/09/17 | 3219 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test_.cc
+2022/09/17 | 12539 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test.py
+2022/09/17 | 8112 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-test-part-test.cc
+2022/09/17 | 3069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-throw-on-failure-test_.cc
+2022/09/17 | 5658 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-throw-on-failure-test.py
+2022/09/17 | 1878 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test_.cc
+2022/09/17 | 2495 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test.py
+2022/09/17 | 2239 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_all_test.cc
+2022/09/17 | 3842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_assert_by_exception_test.cc
+2022/09/17 | 6418 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_environment_test.cc
+2022/09/17 | 2088 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test_.cc
+2022/09/17 | 6037 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test.py
+2022/09/17 | 2411 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_json_test_utils.py
+2022/09/17 | 3197 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest_.cc
+2022/09/17 | 9502 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest.py
+2022/09/17 | 1841 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_main_unittest.cc
+2022/09/17 | 2403 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_no_test_unittest.cc
+2022/09/17 | 77498 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_pred_impl_unittest.cc
+2022/09/17 | 4283 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_premature_exit_test.cc
+2022/09/17 | 2147 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_prod_test.cc
+2022/09/17 | 7180 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_repeat_test.cc
+2022/09/17 | 2411 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_check_output_test.py
+2022/09/17 | 2230 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_environment_check_output_test.py
+2022/09/17 | 2069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_in_environment_setup_test.cc
+2022/09/17 | 2005 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_test.cc
+2022/09/17 | 2175 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_sole_header_test.cc
+2022/09/17 | 9318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_stress_test.cc
+2022/09/17 | 1923 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_testbridge_test_.cc
+2022/09/17 | 2496 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_testbridge_test.py
+2022/09/17 | 3767 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_macro_stack_footprint_test.cc
+2022/09/17 | 8407 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_utils.py
+2022/09/17 | 3392 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_throw_on_failure_ex_test.cc
+2022/09/17 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test2_test.cc
+2022/09/17 | 14089 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.cc
+2022/09/17 | 2396 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.h
+2022/09/17 | 13060 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-unittest-api_test.cc
+2022/09/17 | 261756 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_unittest.cc
+2022/09/17 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfile1_test_.cc
+2022/09/17 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfile2_test_.cc
+2022/09/17 | 5415 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfiles_test.py
+2022/09/17 | 6376 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest_.cc
+2022/09/17 | 20639 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest.py
+2022/09/17 | 9327 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_test_utils.py
+2022/09/17 | 1675 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.cc
+2022/09/17 | 2130 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.h
+2022/09/17 | 1475 | graphics/asymptote/LspCpp/third_party/uri/deps/LICENSE
+2022/09/17 | 4613 | graphics/asymptote/LspCpp/third_party/uri/deps/README.md
+2022/09/17 | 781 | graphics/asymptote/LspCpp/third_party/uri/deps/WORKSPACE
+2022/09/17 | 74120 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile
+2022/09/17 | 74016 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile.in
+2022/09/17 | 16552 | graphics/asymptote/LspCpp/third_party/uri/include/network/optional.hpp
+2022/09/17 | 7731 | graphics/asymptote/LspCpp/third_party/uri/include/network/string_view.hpp
+2022/09/17 | 572 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/config.hpp
+2022/09/17 | 1898 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+2022/09/17 | 4438 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+2022/09/17 | 2151 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+2022/09/17 | 2073 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+2022/09/17 | 1031 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri.hpp
+2022/09/17 | 6917 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+2022/09/17 | 2459 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+2022/09/17 | 21998 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri.hpp
+2022/09/17 | 1710 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp
+2022/09/17 | 1338 | graphics/asymptote/LspCpp/third_party/uri/LICENSE_1_0.txt
+2022/09/17 | 7049 | graphics/asymptote/LspCpp/third_party/uri/Makefile
+2022/09/17 | 2328 | graphics/asymptote/LspCpp/third_party/uri/README.rst
+2022/09/17 | 648 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
+2022/09/17 | 20942 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
+2022/09/17 | 1104 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean.cmake
+2022/09/17 | 43 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean_target.cmake
+2022/09/17 | 67309 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
+2022/09/17 | 79178 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
+2022/09/17 | 118 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
+2022/09/17 | 2295 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
+2022/09/17 | 95 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
+2022/09/17 | 413 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
+2022/09/17 | 457 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
+2022/09/17 | 199 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/progress.make
+2022/09/17 | 2 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/progress.marks
+2022/09/17 | 1540 | graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
+2022/09/17 | 1008 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeLists.txt
+2022/09/17 | 2115 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm_find.hpp
+2022/09/17 | 2100 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm.hpp
+2022/09/17 | 2281 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm_split.hpp
+2022/09/17 | 3063 | graphics/asymptote/LspCpp/third_party/uri/src/detail/grammar.hpp
+2022/09/17 | 2313 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
+2022/09/17 | 639 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
+2022/09/17 | 2035 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
+2022/09/17 | 594 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+2022/09/17 | 2996 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
+2022/09/17 | 710 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
+2022/09/17 | 10414 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.cpp
+2022/09/17 | 563 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.hpp
+2022/09/17 | 1830 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
+2022/09/17 | 2526 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
+2022/09/17 | 714 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
+2022/09/17 | 16661 | graphics/asymptote/LspCpp/third_party/uri/src/Makefile
+2022/09/17 | 4227 | graphics/asymptote/LspCpp/third_party/uri/src/uri_builder.cpp
+2022/09/17 | 18382 | graphics/asymptote/LspCpp/third_party/uri/src/uri.cpp
+2022/09/17 | 1916 | graphics/asymptote/LspCpp/third_party/uri/src/uri_errors.cpp
+2022/09/17 | 1039 | graphics/asymptote/LspCpp/third_party/uri/test/CMakeLists.txt
+2022/09/17 | 572 | graphics/asymptote/LspCpp/third_party/uri/test/invalid_urls.txt
+2022/09/17 | 4362 | graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
+2022/09/17 | 483 | graphics/asymptote/LspCpp/third_party/uri/test/string_utility.hpp
+2022/09/17 | 2053 | graphics/asymptote/LspCpp/third_party/uri/test/test_uri.hpp
+2022/09/17 | 22526 | graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
+2022/09/17 | 3139 | graphics/asymptote/LspCpp/third_party/uri/test/uri_comparison_test.cpp
+2022/09/17 | 5711 | graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
+2022/09/17 | 8767 | graphics/asymptote/LspCpp/third_party/uri/test/uri_normalization_test.cpp
+2022/09/17 | 3870 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_path_test.cpp
+2022/09/17 | 2578 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp
+2022/09/17 | 18327 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_test.cpp
+2022/09/17 | 2682 | graphics/asymptote/LspCpp/third_party/uri/test/uri_reference_test.cpp
+2022/09/17 | 10168 | graphics/asymptote/LspCpp/third_party/uri/test/uri_resolve_test.cpp
+2022/09/17 | 1419 | graphics/asymptote/LspCpp/third_party/uri/test/uri_stream_test.cpp
+2022/09/17 | 33296 | graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
+2022/09/17 | 1116 | graphics/asymptote/LspCpp/third_party/uri/test/valid_urls.txt
+2022/09/17 | 1291 | graphics/asymptote/LspCpp/third_party/utfcpp/CMakeLists.txt
+2022/09/17 | 1338 | graphics/asymptote/LspCpp/third_party/utfcpp/LICENSE
+2022/09/17 | 55726 | graphics/asymptote/LspCpp/third_party/utfcpp/README.md
+2022/09/17 | 2113 | graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
+2022/09/17 | 12474 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/checked.h
+2022/09/17 | 10906 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
+2022/09/17 | 3305 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
+2022/09/17 | 3297 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
+2022/09/17 | 1521 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8.h
+2022/09/17 | 10964 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
+2022/09/17 | 1734 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/CMakeLists.txt
+2022/09/17 | 125 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/docker/Dockerfile
+2022/09/17 | 2142 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
+2022/09/17 | 5578 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_api.cpp
+2022/09/17 | 1032 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_iterator.cpp
+2022/09/17 | 3036 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp11.cpp
+2022/09/17 | 2611 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp17.cpp
+2022/09/17 | 20010 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_data/utf8_invalid.txt
+2022/09/17 | 4626 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_unchecked_api.cpp
+2022/09/17 | 1002 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_unchecked_iterator.cpp
+2022/09/17 | 21507 | graphics/asymptote/lspserv.cc
+2022/09/17 | 6528 | graphics/asymptote/lspserv.h
+2022/09/17 | 6673 | graphics/asymptote/main.cc
+2022/09/17 | 12907 | graphics/asymptote/Makefile.in
+2022/09/17 | 920 | graphics/asymptote/makeUnique.h
+2022/09/17 | 2960 | graphics/asymptote/material.h
+2022/09/17 | 6425 | graphics/asymptote/mathop.h
+2022/09/17 | 5115 | graphics/asymptote/memory.h
+2022/09/17 | 714 | graphics/asymptote/mod.h
+2022/09/17 | 908 | graphics/asymptote/modifier.h
+2022/09/17 | 8037 | graphics/asymptote/name.cc
+2022/09/17 | 5691 | graphics/asymptote/name.h
+2022/09/17 | 4285 | graphics/asymptote/newexp.cc
+2022/09/17 | 1274 | graphics/asymptote/newexp.h
+2022/09/17 | 916 | graphics/asymptote/opcodes.h
+2022/09/17 | 1050 | graphics/asymptote/opsymbols.pl
+2022/09/17 | 54109 | graphics/asymptote/optional.hpp
+2022/09/17 | 5308 | graphics/asymptote/pair.h
+2022/09/17 | 4873 | graphics/asymptote/parser.cc
+2022/09/17 | 1171 | graphics/asymptote/parser.h
+2022/09/17 | 5262 | graphics/asymptote/patches/bison.patch
+2022/09/17 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
+2022/09/17 | 1299 | graphics/asymptote/patches/dvipdf
+2022/09/17 | 113 | graphics/asymptote/patches/fixmem.reg
+2022/09/17 | 1524 | graphics/asymptote/patches/flex.patch
+2022/09/17 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
+2022/09/17 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
+2022/09/17 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
+2022/09/17 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
+2022/09/17 | 1082 | graphics/asymptote/patches/README
+2022/09/17 | 37991 | graphics/asymptote/path3.cc
+2022/09/17 | 10585 | graphics/asymptote/path3.h
+2022/09/17 | 33417 | graphics/asymptote/path.cc
+2022/09/17 | 11663 | graphics/asymptote/path.h
+2022/09/17 | 1594 | graphics/asymptote/pen.cc
+2022/09/17 | 27958 | graphics/asymptote/pen.h
+2022/09/17 | 42828 | graphics/asymptote/picture.cc
+2022/09/17 | 3472 | graphics/asymptote/picture.h
+2022/09/17 | 5250 | graphics/asymptote/pipestream.cc
+2022/09/17 | 2614 | graphics/asymptote/pipestream.h
+2022/09/17 | 138 | graphics/asymptote/Pipfile
+2022/09/17 | 2542 | graphics/asymptote/policy.h
+2022/09/17 | 650 | graphics/asymptote/prcfile.h
+2022/09/17 | 974 | graphics/asymptote/prc/Makefile
+2022/09/17 | 71201 | graphics/asymptote/prc/oPRCFile.cc
+2022/09/17 | 51671 | graphics/asymptote/prc/oPRCFile.h
+2022/09/17 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
+2022/09/17 | 2518 | graphics/asymptote/prc/PRCbitStream.h
+2022/09/17 | 177246 | graphics/asymptote/prc/PRCdouble.cc
+2022/09/17 | 3765 | graphics/asymptote/prc/PRCdouble.h
+2022/09/17 | 30208 | graphics/asymptote/prc/PRC.h
+2022/09/17 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
+2022/09/17 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2022/09/17 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
+2022/09/17 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
+2022/09/17 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
+2022/09/17 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
+2022/09/17 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
+2022/09/17 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
+2022/09/17 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
+2022/09/17 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
+2022/09/17 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
+2022/09/17 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
+2022/09/17 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
+2022/09/17 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
+2022/09/17 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2022/09/17 | 95 | graphics/asymptote/prc/test.asy
+2022/09/17 | 36243 | graphics/asymptote/prc/test.cc
+2022/09/17 | 66751 | graphics/asymptote/prc/writePRC.cc
+2022/09/17 | 48481 | graphics/asymptote/prc/writePRC.h
+2022/09/17 | 116010 | graphics/asymptote/predicates.cc
+2022/09/17 | 986 | graphics/asymptote/predicates.h
+2022/09/17 | 1236 | graphics/asymptote/primitives.h
+2022/09/17 | 23904 | graphics/asymptote/process.cc
+2022/09/17 | 4919 | graphics/asymptote/process.h
+2022/09/17 | 2378 | graphics/asymptote/profile.py
+2022/09/17 | 9923 | graphics/asymptote/profiler.h
+2022/09/17 | 3265 | graphics/asymptote/program.cc
+2022/09/17 | 2561 | graphics/asymptote/program.h
+2022/09/17 | 19511 | graphics/asymptote/psfile.cc
+2022/09/17 | 9021 | graphics/asymptote/psfile.h
+2022/09/17 | 2505 | graphics/asymptote/README
+2022/09/17 | 1698 | graphics/asymptote/record.cc
+2022/09/17 | 2732 | graphics/asymptote/record.h
+2022/09/17 | 1096 | graphics/asymptote/refaccess.cc
+2022/09/17 | 1936 | graphics/asymptote/refaccess.h
+2022/09/17 | 130356 | graphics/asymptote/ReleaseNotes
+2022/09/17 | 62 | graphics/asymptote/revision.cc
+2022/09/17 | 3441 | graphics/asymptote/rounding.h
+2022/09/17 | 76339 | graphics/asymptote/runarray.cc
+2022/09/17 | 1492 | graphics/asymptote/runarray.h
+2022/09/17 | 50934 | graphics/asymptote/runarray.in
+2022/09/17 | 2661 | graphics/asymptote/runbacktrace.cc
+2022/09/17 | 169 | graphics/asymptote/runbacktrace.h
+2022/09/17 | 831 | graphics/asymptote/runbacktrace.in
+2022/09/17 | 17798 | graphics/asymptote/runfile.cc
+2022/09/17 | 969 | graphics/asymptote/runfile.h
+2022/09/17 | 5987 | graphics/asymptote/runfile.in
+2022/09/17 | 8096 | graphics/asymptote/runhistory.cc
+2022/09/17 | 161 | graphics/asymptote/runhistory.h
+2022/09/17 | 5064 | graphics/asymptote/runhistory.in
+2022/09/17 | 15253 | graphics/asymptote/runlabel.cc
+2022/09/17 | 153 | graphics/asymptote/runlabel.h
+2022/09/17 | 11513 | graphics/asymptote/runlabel.in
+2022/09/17 | 21874 | graphics/asymptote/runmath.cc
+2022/09/17 | 269 | graphics/asymptote/runmath.h
+2022/09/17 | 8804 | graphics/asymptote/runmath.in
+2022/09/17 | 16483 | graphics/asymptote/runpair.cc
+2022/09/17 | 299 | graphics/asymptote/runpair.h
+2022/09/17 | 4156 | graphics/asymptote/runpair.in
+2022/09/17 | 25701 | graphics/asymptote/runpath3d.cc
+2022/09/17 | 186 | graphics/asymptote/runpath3d.h
+2022/09/17 | 8008 | graphics/asymptote/runpath3d.in
+2022/09/17 | 26844 | graphics/asymptote/runpath.cc
+2022/09/17 | 177 | graphics/asymptote/runpath.h
+2022/09/17 | 8439 | graphics/asymptote/runpath.in
+2022/09/17 | 58024 | graphics/asymptote/runpicture.cc
+2022/09/17 | 191 | graphics/asymptote/runpicture.h
+2022/09/17 | 20170 | graphics/asymptote/runpicture.in
+2022/09/17 | 18739 | graphics/asymptote/runstring.cc
+2022/09/17 | 188 | graphics/asymptote/runstring.h
+2022/09/17 | 9867 | graphics/asymptote/runstring.in
+2022/09/17 | 12604 | graphics/asymptote/runsystem.cc
+2022/09/17 | 157 | graphics/asymptote/runsystem.h
+2022/09/17 | 5111 | graphics/asymptote/runsystem.in
+2022/09/17 | 1341 | graphics/asymptote/runtimebase.in
+2022/09/17 | 61659 | graphics/asymptote/runtime.cc
+2022/09/17 | 1163 | graphics/asymptote/runtime.h
+2022/09/17 | 20796 | graphics/asymptote/runtime.in
+2022/09/17 | 7274 | graphics/asymptote/runtime.pl
+2022/09/17 | 13944 | graphics/asymptote/runtriple.cc
+2022/09/17 | 320 | graphics/asymptote/runtriple.h
+2022/09/17 | 2707 | graphics/asymptote/runtriple.in
+2022/09/17 | 2136 | graphics/asymptote/seconds.h
+2022/09/17 | 54963 | graphics/asymptote/settings.cc
+2022/09/17 | 2707 | graphics/asymptote/settings.h
+2022/09/17 | 3553 | graphics/asymptote/shaders.cc
+2022/09/17 | 830 | graphics/asymptote/shaders.h
+2022/09/17 | 6634 | graphics/asymptote/simpson.cc
+2022/09/17 | 14532 | graphics/asymptote/stack.cc
+2022/09/17 | 3295 | graphics/asymptote/stack.h
+2022/09/17 | 942 | graphics/asymptote/statistics.h
+2022/09/17 | 14795 | graphics/asymptote/stm.cc
+2022/09/17 | 5183 | graphics/asymptote/stm.h
+2022/09/17 | 9104 | graphics/asymptote/symbol.cc
+2022/09/17 | 2776 | graphics/asymptote/symbol.h
+2022/09/17 | 24784 | graphics/asymptote/symbolmaps.cc
+2022/09/17 | 28328 | graphics/asymptote/symbolmaps.h
+2022/09/17 | 2697 | graphics/asymptote/table.h
+2022/09/17 | 843 | graphics/asymptote/tests/arith/integer.asy
+2022/09/17 | 449 | graphics/asymptote/tests/arith/pair.asy
+2022/09/17 | 193 | graphics/asymptote/tests/arith/random.asy
+2022/09/17 | 383 | graphics/asymptote/tests/arith/real.asy
+2022/09/17 | 1710 | graphics/asymptote/tests/arith/roots.asy
+2022/09/17 | 639 | graphics/asymptote/tests/arith/transform.asy
+2022/09/17 | 244 | graphics/asymptote/tests/arith/triple.asy
+2022/09/17 | 936 | graphics/asymptote/tests/array/array.asy
+2022/09/17 | 680 | graphics/asymptote/tests/array/delete.asy
+2022/09/17 | 737 | graphics/asymptote/tests/array/determinant.asy
+2022/09/17 | 1927 | graphics/asymptote/tests/array/fields.asy
+2022/09/17 | 4841 | graphics/asymptote/tests/array/slice.asy
+2022/09/17 | 966 | graphics/asymptote/tests/array/solve.asy
+2022/09/17 | 746 | graphics/asymptote/tests/array/sort.asy
+2022/09/17 | 1096 | graphics/asymptote/tests/array/transpose.asy
+2022/09/17 | 276 | graphics/asymptote/tests/bench/6000circles.asy
+2022/09/17 | 2222 | graphics/asymptote/tests/frames/loop.asy
+2022/09/17 | 202 | graphics/asymptote/tests/frames/stat2.asy
+2022/09/17 | 158 | graphics/asymptote/tests/frames/stat.asy
+2022/09/17 | 62 | graphics/asymptote/tests/gc/array.asy
+2022/09/17 | 102 | graphics/asymptote/tests/gc/file.asy
+2022/09/17 | 54 | graphics/asymptote/tests/gc/funcall.asy
+2022/09/17 | 65 | graphics/asymptote/tests/gc/guide.asy
+2022/09/17 | 143 | graphics/asymptote/tests/gc/label.asy
+2022/09/17 | 124 | graphics/asymptote/tests/gc/path.asy
+2022/09/17 | 72 | graphics/asymptote/tests/gc/pen.asy
+2022/09/17 | 193 | graphics/asymptote/tests/gc/shipout.asy
+2022/09/17 | 77 | graphics/asymptote/tests/gc/string.asy
+2022/09/17 | 129 | graphics/asymptote/tests/gc/struct.asy
+2022/09/17 | 70 | graphics/asymptote/tests/gc/transform.asy
+2022/09/17 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
+2022/09/17 | 11907 | graphics/asymptote/tests/gsl/random.asy
+2022/09/17 | 1209 | graphics/asymptote/tests/imp/unravel.asy
+2022/09/17 | 308 | graphics/asymptote/tests/Makefile
+2022/09/17 | 18 | graphics/asymptote/tests/output/circle.asy
+2022/09/17 | 22 | graphics/asymptote/tests/output/line.asy
+2022/09/17 | 1284 | graphics/asymptote/tests/output/Makefile
+2022/09/17 | 1384 | graphics/asymptote/tests/pic/trans.asy
+2022/09/17 | 236 | graphics/asymptote/tests/string/erase.asy
+2022/09/17 | 182 | graphics/asymptote/tests/string/find.asy
+2022/09/17 | 109 | graphics/asymptote/tests/string/insert.asy
+2022/09/17 | 132 | graphics/asymptote/tests/string/length.asy
+2022/09/17 | 187 | graphics/asymptote/tests/string/rfind.asy
+2022/09/17 | 118 | graphics/asymptote/tests/string/substr.asy
+2022/09/17 | 238 | graphics/asymptote/tests/TestLib.asy
+2022/09/17 | 159 | graphics/asymptote/tests/types/cast.asy
+2022/09/17 | 6503 | graphics/asymptote/tests/types/constructor.asy
+2022/09/17 | 155 | graphics/asymptote/tests/types/ecast.asy
+2022/09/17 | 3375 | graphics/asymptote/tests/types/guide.asy
+2022/09/17 | 224 | graphics/asymptote/tests/types/init.asy
+2022/09/17 | 4242 | graphics/asymptote/tests/types/keyword.asy
+2022/09/17 | 4072 | graphics/asymptote/tests/types/order.asy
+2022/09/17 | 2731 | graphics/asymptote/tests/types/resolve.asy
+2022/09/17 | 308 | graphics/asymptote/tests/types/shadow.asy
+2022/09/17 | 1331 | graphics/asymptote/tests/types/spec.asy
+2022/09/17 | 1189 | graphics/asymptote/tests/types/var.asy
+2022/09/17 | 14283 | graphics/asymptote/testv3d.asy
+2022/09/17 | 17540 | graphics/asymptote/texfile.cc
+2022/09/17 | 13440 | graphics/asymptote/texfile.h
+2022/09/17 | 667 | graphics/asymptote/tinyexr.cc
+2022/09/17 | 1293 | graphics/asymptote/TODO
+2022/09/17 | 6288 | graphics/asymptote/transform.h
+2022/09/17 | 10224 | graphics/asymptote/tr.cc
+2022/09/17 | 3912 | graphics/asymptote/tr.h
+2022/09/17 | 9784 | graphics/asymptote/triple.h
+2022/09/17 | 14072 | graphics/asymptote/types.cc
+2022/09/17 | 15451 | graphics/asymptote/types.h
+2022/09/17 | 10131 | graphics/asymptote/util.cc
+2022/09/17 | 4602 | graphics/asymptote/util.h
+2022/09/17 | 9755 | graphics/asymptote/v3dfile.cc
+2022/09/17 | 4481 | graphics/asymptote/v3dfile.h
+2022/09/17 | 1075 | graphics/asymptote/v3dheadertypes.csv
+2022/09/17 | 1239 | graphics/asymptote/v3dheadertypes.h
+2022/09/17 | 1611 | graphics/asymptote/v3dheadertypes.py
+2022/09/17 | 422 | graphics/asymptote/v3dtypes.csv
+2022/09/17 | 548 | graphics/asymptote/v3dtypes.h
+2022/09/17 | 821 | graphics/asymptote/v3dtypes.py
+2022/09/17 | 2004 | graphics/asymptote/varinit.cc
+2022/09/17 | 2012 | graphics/asymptote/varinit.h
+2022/09/17 | 901 | graphics/asymptote/virtualfieldaccess.cc
+2022/09/17 | 2328 | graphics/asymptote/virtualfieldaccess.h
+2022/09/17 | 766 | graphics/asymptote/vm.h
+2022/09/17 | 222 | graphics/asymptote/wce
+2022/09/17 | 4531 | graphics/asymptote/webgl/fragment.glsl
+2022/09/17 | 101347 | graphics/asymptote/webgl/gl.js
+2022/09/17 | 820 | graphics/asymptote/webgl/license
+2022/09/17 | 1728 | graphics/asymptote/webgl/vertex.glsl
+2022/09/17 | 8668 | graphics/asymptote/xstream.h
+2022/09/17 | 26640414 | graphics/asymptote.zip
2014/04/16 | 55108 | graphics/asypictureb/asypictureB.dtx
2014/04/16 | 2401 | graphics/asypictureb/asypictureB.ins
2014/04/15 | 637107 | graphics/asypictureb/asypictureB.pdf
@@ -188722,7 +188669,7 @@
2012/05/28 | 1585477 | install/fonts/fdsymbol.tds.zip
2013/01/24 | 104073 | install/fonts/figbas.tds.zip
2020/10/15 | 684273 | install/fonts/firamath.tds.zip
-2020/06/06 | 26137779 | install/fonts/fira.tds.zip
+2022/09/17 | 26982931 | install/fonts/fira.tds.zip
2020/08/02 | 886357 | install/fonts/forum.tds.zip
2013/04/04 | 75615 | install/fonts/fouriernc.tds.zip
2011/11/09 | 2238415 | install/fonts/frcursive.tds.zip
@@ -188743,7 +188690,7 @@
2017/06/16 | 484821 | install/fonts/libertinegc.tds.zip
2022/09/12 | 20354664 | install/fonts/libertine.tds.zip
2021/02/14 | 13253331 | install/fonts/libertinus-type1.tds.zip
-2020/08/01 | 871048 | install/fonts/librebaskerville.tds.zip
+2022/09/17 | 869940 | install/fonts/librebaskerville.tds.zip
2022/01/29 | 776304 | install/fonts/librebodoni.tds.zip
2020/07/31 | 1576536 | install/fonts/librecaslon.tds.zip
2019/10/24 | 3947140 | install/fonts/librefranklin.tds.zip
@@ -188882,7 +188829,7 @@
2012/09/20 | 369585 | install/macros/generic/plainpkg.tds.zip
2018/08/26 | 1014893 | install/macros/generic/tex-locale.tds.zip
2020/06/30 | 1215011 | install/macros/generic/tracklang.tds.zip
-2021/09/15 | 585368 | install/macros/generic/unicode-data.tds.zip
+2022/09/17 | 591247 | install/macros/generic/unicode-data.tds.zip
2022/06/11 | 4242531 | install/macros/generic/xint.tds.zip
2022/07/13 | 10946453 | install/macros/jptex/latex/jlreq.tds.zip
2022/09/14 | 970564 | install/macros/jptex/latex/jsclasses.tds.zip
@@ -188935,7 +188882,6 @@
2021/10/28 | 1257862 | install/macros/latex/contrib/breqn.tds.zip
2021/08/18 | 801818 | install/macros/latex/contrib/bytefield.tds.zip
2009/10/01 | 166291 | install/macros/latex/contrib/cachepic.tds.zip
-2014/02/24 | 625238 | install/macros/latex/contrib/calculator.tds.zip
2022/03/17 | 1682427 | install/macros/latex/contrib/caption.tds.zip
2019/12/10 | 304516 | install/macros/latex/contrib/catchfile.tds.zip
2011/08/07 | 511024 | install/macros/latex/contrib/ccaption.tds.zip
@@ -189201,7 +189147,7 @@
2022/06/16 | 7338999 | install/macros/latex-dev/required/latex-tools-dev.tds.zip
2022/07/05 | 38317838 | install/macros/latex/latex-base.tds.zip
2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip
-2022/08/29 | 3006634 | install/macros/latex/required/babel-base.tds.zip
+2022/09/17 | 3014186 | install/macros/latex/required/babel-base.tds.zip
2022/06/08 | 2794804 | install/macros/latex/required/latex-amsmath.tds.zip
2022/06/14 | 242625 | install/macros/latex/required/latexbug.tds.zip
2022/06/16 | 1352652 | install/macros/latex/required/latex-cyrillic.tds.zip
@@ -196660,7 +196606,7 @@
2013/04/01 | 14776 | macros/context/contrib/context-visualcounter/tex/context/third/visualcounter/t-visualcounter.mkvi
2018/03/05 | 11 | macros/context/contrib/context-visualcounter/VERSION
2018/03/22 | 276789 | macros/context/contrib/context-visualcounter.zip
-2022/09/11 | 112459492 | macros/context/latest/cont-tmf.zip
+2022/09/16 | 115395415 | macros/context/latest/cont-tmf.zip
2016/04/21 | 32846 | macros/cstex/base/cmexb.tar.gz
2016/06/26 | 1728262 | macros/cstex/base/csfonts-t1.tar.gz
2007/03/01 | 187106 | macros/cstex/base/csfonts.tar.gz
@@ -198184,26 +198130,26 @@
1993/07/20 | 462 | macros/generic/umrand/umrand_up1.readme
1993/07/20 | 23098 | macros/generic/umrand/umrand_up1.zip
2005/09/25 | 226442 | macros/generic/umrand.zip
-2021/09/15 | 8950 | macros/generic/unicode-data/BidiBrackets.txt
-2021/09/15 | 24004 | macros/generic/unicode-data/BidiMirroring-5-1-0.txt
-2021/09/15 | 26690 | macros/generic/unicode-data/BidiMirroring.txt
-2021/09/15 | 84688 | macros/generic/unicode-data/CaseFolding.txt
-2021/09/15 | 184037 | macros/generic/unicode-data/EastAsianWidth.txt
-2021/09/15 | 109396 | macros/generic/unicode-data/emoji-data.txt
-2021/09/15 | 95663 | macros/generic/unicode-data/GraphemeBreakProperty.txt
-2021/09/15 | 245067 | macros/generic/unicode-data/LineBreak.txt
-2021/09/15 | 7054 | macros/generic/unicode-data/load-unicode-data.tex
-2021/09/15 | 3750 | macros/generic/unicode-data/load-unicode-math-classes.tex
-2021/09/15 | 7139 | macros/generic/unicode-data/load-unicode-xetex-classes.tex
-2021/09/15 | 13569 | macros/generic/unicode-data/MathClass-15.txt
-2021/09/15 | 130164 | macros/generic/unicode-data/PropList.txt
-2021/09/15 | 9264 | macros/generic/unicode-data/README.md
-2021/09/15 | 21969 | macros/generic/unicode-data/ScriptExtensions.txt
-2021/09/15 | 181635 | macros/generic/unicode-data/Scripts.txt
-2021/09/15 | 16830 | macros/generic/unicode-data/SpecialCasing.txt
-2021/09/15 | 1897793 | macros/generic/unicode-data/UnicodeData.txt
-2021/09/15 | 107025 | macros/generic/unicode-data/WordBreakProperty.txt
-2021/09/15 | 585385 | macros/generic/unicode-data.zip
+2022/09/17 | 8950 | macros/generic/unicode-data/BidiBrackets.txt
+2022/09/17 | 24004 | macros/generic/unicode-data/BidiMirroring-5-1-0.txt
+2022/09/17 | 26690 | macros/generic/unicode-data/BidiMirroring.txt
+2022/09/17 | 84690 | macros/generic/unicode-data/CaseFolding.txt
+2022/09/17 | 186337 | macros/generic/unicode-data/EastAsianWidth.txt
+2022/09/17 | 111505 | macros/generic/unicode-data/emoji-data.txt
+2022/09/17 | 96863 | macros/generic/unicode-data/GraphemeBreakProperty.txt
+2022/09/17 | 248086 | macros/generic/unicode-data/LineBreak.txt
+2022/09/17 | 7054 | macros/generic/unicode-data/load-unicode-data.tex
+2022/09/17 | 3750 | macros/generic/unicode-data/load-unicode-math-classes.tex
+2022/09/17 | 7139 | macros/generic/unicode-data/load-unicode-xetex-classes.tex
+2022/09/17 | 13569 | macros/generic/unicode-data/MathClass-15.txt
+2022/09/17 | 132360 | macros/generic/unicode-data/PropList.txt
+2022/09/17 | 9333 | macros/generic/unicode-data/README.md
+2022/09/17 | 21971 | macros/generic/unicode-data/ScriptExtensions.txt
+2022/09/17 | 184112 | macros/generic/unicode-data/Scripts.txt
+2022/09/17 | 16832 | macros/generic/unicode-data/SpecialCasing.txt
+2022/09/17 | 1913704 | macros/generic/unicode-data/UnicodeData.txt
+2022/09/17 | 109110 | macros/generic/unicode-data/WordBreakProperty.txt
+2022/09/17 | 591672 | macros/generic/unicode-data.zip
2011/05/17 | 474 | macros/generic/upca/README
2011/05/17 | 368 | macros/generic/upca/test-upca.tex
2011/05/17 | 5978 | macros/generic/upca/upca.tex
@@ -210544,11 +210490,11 @@
2015/01/05 | 111192 | macros/latex/contrib/calculation/calculation.pdf
2015/01/05 | 1346 | macros/latex/contrib/calculation/README
2015/01/06 | 109582 | macros/latex/contrib/calculation.zip
-2014/02/24 | 179050 | macros/latex/contrib/calculator/calculator.dtx
-2014/02/23 | 2745 | macros/latex/contrib/calculator/calculator.ins
-2014/02/24 | 565260 | macros/latex/contrib/calculator/calculator.pdf
-2014/02/24 | 4545 | macros/latex/contrib/calculator/README
-2014/02/24 | 592511 | macros/latex/contrib/calculator.zip
+2022/09/17 | 182476 | macros/latex/contrib/calculator/calculator.dtx
+2022/09/16 | 2751 | macros/latex/contrib/calculator/calculator.ins
+2022/09/17 | 572138 | macros/latex/contrib/calculator/calculator.pdf
+2022/09/17 | 4634 | macros/latex/contrib/calculator/README.md
+2022/09/17 | 599823 | macros/latex/contrib/calculator.zip
1998/01/17 | 5854 | macros/latex/contrib/calendar/allcal.ins
1998/01/17 | 20177 | macros/latex/contrib/calendar/autofilo.dtx
2001/12/18 | 3853 | macros/latex/contrib/calendar_barr/calendar.tex
@@ -223956,13 +223902,13 @@
1996/03/22 | 18862 | macros/latex/contrib/niceframe/umrandb.mf
2015/01/17 | 1370 | macros/latex/contrib/niceframe/umrand.mf
2015/01/17 | 287910 | macros/latex/contrib/niceframe.zip
-2022/08/24 | 752106 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2022/08/24 | 511972 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
-2022/08/16 | 197239 | macros/latex/contrib/nicematrix/nicematrix-french.tex
+2022/09/17 | 755773 | macros/latex/contrib/nicematrix/nicematrix.dtx
+2022/09/17 | 511473 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
+2022/09/17 | 198433 | macros/latex/contrib/nicematrix/nicematrix-french.tex
2022/01/22 | 1423 | macros/latex/contrib/nicematrix/nicematrix.ins
-2022/08/24 | 1320819 | macros/latex/contrib/nicematrix/nicematrix.pdf
+2022/09/17 | 1325255 | macros/latex/contrib/nicematrix/nicematrix.pdf
2021/11/10 | 1023 | macros/latex/contrib/nicematrix/README.md
-2022/08/24 | 1990182 | macros/latex/contrib/nicematrix.zip
+2022/09/17 | 1993053 | macros/latex/contrib/nicematrix.zip
2015/11/21 | 217 | macros/latex/contrib/nicetext/ANNOUNCE.txt
2012/03/18 | 254582 | macros/latex/contrib/nicetext/demo/arseneau.pdf
2011/09/14 | 10 | macros/latex/contrib/nicetext/demo/iso.txt
@@ -234716,12 +234662,12 @@
2020/10/10 | 651 | macros/latex/contrib/verifica/verifica-template.tex
2020/10/10 | 1252936 | macros/latex/contrib/verifica.zip
2022/02/10 | 952 | macros/latex/contrib/verifiche/README.md
-2022/06/21 | 65799 | macros/latex/contrib/verifiche/verifiche.dtx
-2022/06/21 | 191985 | macros/latex/contrib/verifiche/verifiche-example.pdf
-2022/06/21 | 6466 | macros/latex/contrib/verifiche/verifiche-example.tex
+2022/09/17 | 72068 | macros/latex/contrib/verifiche/verifiche.dtx
+2022/09/17 | 264306 | macros/latex/contrib/verifiche/verifiche-example.pdf
+2022/09/17 | 8130 | macros/latex/contrib/verifiche/verifiche-example.tex
2022/02/10 | 1442 | macros/latex/contrib/verifiche/verifiche.ins
-2022/06/21 | 586335 | macros/latex/contrib/verifiche/verifiche.pdf
-2022/06/21 | 775242 | macros/latex/contrib/verifiche.zip
+2022/09/17 | 638888 | macros/latex/contrib/verifiche/verifiche.pdf
+2022/09/17 | 896592 | macros/latex/contrib/verifiche.zip
2014/05/10 | 2728 | macros/latex/contrib/verse/README
2014/05/10 | 58344 | macros/latex/contrib/verse/verse.dtx
2014/05/10 | 2591 | macros/latex/contrib/verse/verse.ins
@@ -236497,14 +236443,14 @@
2022/06/08 | 454511 | macros/latex/required/amsmath/testmath.pdf
2022/06/08 | 82371 | macros/latex/required/amsmath/testmath.tex
2022/06/08 | 2762704 | macros/latex/required/amsmath.zip
-2022/08/29 | 746689 | macros/latex/required/babel/base/babel.dtx
-2022/08/29 | 7799 | macros/latex/required/babel/base/babel.ins
-2022/08/29 | 883632 | macros/latex/required/babel/base/babel.pdf
-2022/08/29 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
-2022/08/29 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
-2022/08/29 | 835622 | macros/latex/required/babel/base/locale.zip
-2022/08/29 | 2118 | macros/latex/required/babel/base/README.md
-2022/08/29 | 1916900 | macros/latex/required/babel/base.zip
+2022/09/17 | 748828 | macros/latex/required/babel/base/babel.dtx
+2022/09/17 | 7869 | macros/latex/required/babel/base/babel.ins
+2022/09/17 | 885746 | macros/latex/required/babel/base/babel.pdf
+2022/09/17 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
+2022/09/17 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
+2022/09/17 | 837091 | macros/latex/required/babel/base/locale.zip
+2022/09/17 | 2605 | macros/latex/required/babel/base/README.md
+2022/09/17 | 1921122 | macros/latex/required/babel/base.zip
2022/06/16 | 5612 | macros/latex/required/cyrillic/changes.txt
2022/06/16 | 57710 | macros/latex/required/cyrillic/cyinpenc.dtx
2022/06/16 | 215413 | macros/latex/required/cyrillic/cyinpenc.pdf
@@ -276903,7 +276849,7 @@
2021/05/03 | 629 | support/TeX4ht/doc/README
2020/08/24 | 358454 | support/TeX4ht/doc/TeX4ht-doc.tex
2021/05/11 | 262 | support/TeX4ht/README
-2022/09/14 | 200965 | support/TeX4ht/source/ChangeLog
+2022/09/16 | 201302 | support/TeX4ht/source/ChangeLog
2021/05/03 | 1375 | support/TeX4ht/source/checklog.lua
2021/05/03 | 1189 | support/TeX4ht/source/common-code.tex
2021/05/03 | 2727 | support/TeX4ht/source/common-info.tex
@@ -276915,7 +276861,7 @@
2021/05/03 | 1121 | support/TeX4ht/source/README
2021/05/03 | 1744 | support/TeX4ht/source/t1fontmake.lua
2021/05/03 | 297 | support/TeX4ht/source/t1fontsample.tex
-2022/09/14 | 1129023 | support/TeX4ht/source/tex4ht-4ht.tex
+2022/09/16 | 1129620 | support/TeX4ht/source/tex4ht-4ht.tex
2021/05/03 | 7127 | support/TeX4ht/source/tex4ht-auto-script.tex
2021/05/16 | 1539 | support/TeX4ht/source/tex4ht-bibtex2.tex
2022/06/05 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex
@@ -276967,7 +276913,7 @@
2021/05/03 | 11161 | support/TeX4ht/source/tex4ht-ooimpress.tex
2021/05/03 | 45918 | support/TeX4ht/source/tex4ht-oo-xtpipes.tex
2022/07/05 | 13405 | support/TeX4ht/source/tex4ht-options.tex
-2022/08/07 | 290282 | support/TeX4ht/source/tex4ht-sty.tex
+2022/09/16 | 290343 | support/TeX4ht/source/tex4ht-sty.tex
2021/05/03 | 7226 | support/TeX4ht/source/tex4ht-svg.tex
2021/05/03 | 106563 | support/TeX4ht/source/tex4ht-t4ht.tex
2021/05/03 | 44160 | support/TeX4ht/source/tex4ht-tei.tex
@@ -282007,9 +281953,9 @@
2021/01/25 | 1945172 | systems/texlive/tlnet/archive/biblatex-oxref.doc.r57513.tar.xz
2021/01/25 | 22460 | systems/texlive/tlnet/archive/biblatex-oxref.r57513.tar.xz
2021/01/25 | 87044 | systems/texlive/tlnet/archive/biblatex-oxref.source.r57513.tar.xz
-2021/11/07 | 543220 | systems/texlive/tlnet/archive/biblatex-philosophy.doc.r60976.tar.xz
-2021/11/07 | 12848 | systems/texlive/tlnet/archive/biblatex-philosophy.r60976.tar.xz
-2021/11/07 | 40176 | systems/texlive/tlnet/archive/biblatex-philosophy.source.r60976.tar.xz
+2022/09/17 | 542616 | systems/texlive/tlnet/archive/biblatex-philosophy.doc.r64414.tar.xz
+2022/09/17 | 12840 | systems/texlive/tlnet/archive/biblatex-philosophy.r64414.tar.xz
+2022/09/17 | 40200 | systems/texlive/tlnet/archive/biblatex-philosophy.source.r64414.tar.xz
2020/06/24 | 456536 | systems/texlive/tlnet/archive/biblatex-phys.doc.r55643.tar.xz
2020/06/24 | 3420 | systems/texlive/tlnet/archive/biblatex-phys.r55643.tar.xz
2022/01/06 | 387688 | systems/texlive/tlnet/archive/biblatex-publist.doc.r61500.tar.xz
@@ -283058,7 +283004,7 @@
2022/09/14 | 1544 | systems/texlive/tlnet/archive/collection-pictures.r64373.tar.xz
2022/08/14 | 968 | systems/texlive/tlnet/archive/collection-plaingeneric.r64113.tar.xz
2021/12/17 | 812 | systems/texlive/tlnet/archive/collection-pstricks.r61329.tar.xz
-2022/09/10 | 1640 | systems/texlive/tlnet/archive/collection-publishers.r64324.tar.xz
+2022/09/17 | 1648 | systems/texlive/tlnet/archive/collection-publishers.r64416.tar.xz
2020/03/04 | 340 | systems/texlive/tlnet/archive/collection-texworks.r54074.tar.xz
2020/03/04 | 388 | systems/texlive/tlnet/archive/collection-wintools.r54074.tar.xz
2022/02/28 | 648 | systems/texlive/tlnet/archive/collection-xetex.r62240.tar.xz
@@ -283318,8 +283264,8 @@
2019/02/28 | 7372 | systems/texlive/tlnet/archive/copyedit.source.r37928.tar.xz
2019/02/28 | 1691464 | systems/texlive/tlnet/archive/copyrightbox.doc.r24829.tar.xz
2019/02/28 | 1480 | systems/texlive/tlnet/archive/copyrightbox.r24829.tar.xz
-2020/04/13 | 158028 | systems/texlive/tlnet/archive/cormorantgaramond.doc.r54696.tar.xz
-2020/04/13 | 5583244 | systems/texlive/tlnet/archive/cormorantgaramond.r54696.tar.xz
+2022/09/17 | 158032 | systems/texlive/tlnet/archive/cormorantgaramond.doc.r64411.tar.xz
+2022/09/17 | 5571976 | systems/texlive/tlnet/archive/cormorantgaramond.r64411.tar.xz
2019/02/28 | 478128 | systems/texlive/tlnet/archive/correctmathalign.doc.r44131.tar.xz
2019/02/28 | 1508 | systems/texlive/tlnet/archive/correctmathalign.r44131.tar.xz
2019/02/28 | 155852 | systems/texlive/tlnet/archive/coseoul.doc.r23862.tar.xz
@@ -285575,8 +285521,8 @@
2019/02/28 | 4640 | systems/texlive/tlnet/archive/gamebook.source.r24714.tar.xz
2020/09/23 | 3276 | systems/texlive/tlnet/archive/gammas.doc.r56403.tar.xz
2020/09/23 | 9876 | systems/texlive/tlnet/archive/gammas.r56403.tar.xz
-2020/05/17 | 86000 | systems/texlive/tlnet/archive/garamond-libre.doc.r55166.tar.xz
-2020/05/17 | 7141728 | systems/texlive/tlnet/archive/garamond-libre.r55166.tar.xz
+2022/09/17 | 86012 | systems/texlive/tlnet/archive/garamond-libre.doc.r64412.tar.xz
+2022/09/17 | 7141676 | systems/texlive/tlnet/archive/garamond-libre.r64412.tar.xz
2022/01/04 | 292360 | systems/texlive/tlnet/archive/garamond-math.doc.r61481.tar.xz
2022/01/04 | 407520 | systems/texlive/tlnet/archive/garamond-math.r61481.tar.xz
2019/02/28 | 532 | systems/texlive/tlnet/archive/garrigues.doc.r15878.tar.xz
@@ -289074,9 +289020,9 @@
2019/02/28 | 342164 | systems/texlive/tlnet/archive/newlfm.doc.r15878.tar.xz
2019/02/28 | 20156 | systems/texlive/tlnet/archive/newlfm.r15878.tar.xz
2019/02/28 | 48828 | systems/texlive/tlnet/archive/newlfm.source.r15878.tar.xz
-2022/09/13 | 61708 | systems/texlive/tlnet/archive/newpax.doc.r64347.tar.xz
-2022/09/13 | 8552 | systems/texlive/tlnet/archive/newpax.r64347.tar.xz
-2022/09/13 | 8788 | systems/texlive/tlnet/archive/newpax.source.r64347.tar.xz
+2022/09/17 | 63844 | systems/texlive/tlnet/archive/newpax.doc.r64415.tar.xz
+2022/09/17 | 8836 | systems/texlive/tlnet/archive/newpax.r64415.tar.xz
+2022/09/17 | 9040 | systems/texlive/tlnet/archive/newpax.source.r64415.tar.xz
2022/01/31 | 256092 | systems/texlive/tlnet/archive/newpx.doc.r61806.tar.xz
2022/01/31 | 2860236 | systems/texlive/tlnet/archive/newpx.r61806.tar.xz
2019/02/28 | 137580 | systems/texlive/tlnet/archive/newsletr.doc.r15878.tar.xz
@@ -291478,8 +291424,8 @@
2019/02/28 | 292656 | systems/texlive/tlnet/archive/simplecv.doc.r35537.tar.xz
2019/02/28 | 2112 | systems/texlive/tlnet/archive/simplecv.r35537.tar.xz
2019/02/28 | 5844 | systems/texlive/tlnet/archive/simplecv.source.r35537.tar.xz
-2022/09/10 | 1930064 | systems/texlive/tlnet/archive/simpleicons.doc.r64321.tar.xz
-2022/09/10 | 2625520 | systems/texlive/tlnet/archive/simpleicons.r64321.tar.xz
+2022/09/17 | 1933616 | systems/texlive/tlnet/archive/simpleicons.doc.r64413.tar.xz
+2022/09/17 | 2630556 | systems/texlive/tlnet/archive/simpleicons.r64413.tar.xz
2019/02/28 | 224844 | systems/texlive/tlnet/archive/simpleinvoice.doc.r45673.tar.xz
2019/02/28 | 2420 | systems/texlive/tlnet/archive/simpleinvoice.r45673.tar.xz
2020/04/28 | 332620 | systems/texlive/tlnet/archive/simplekv.doc.r54915.tar.xz
@@ -292160,14 +292106,14 @@
2022/02/27 | 108804 | systems/texlive/tlnet/archive/tex4ht.amd64-freebsd.r62206.tar.xz
2022/02/27 | 87364 | systems/texlive/tlnet/archive/tex4ht.amd64-netbsd.r62220.tar.xz
2022/04/21 | 69948 | systems/texlive/tlnet/archive/tex4ht.armhf-linux.r63092.tar.xz
-2022/09/15 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64394.tar.xz
+2022/09/17 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64417.tar.xz
2022/03/01 | 58328 | systems/texlive/tlnet/archive/tex4ht.i386-cygwin.r62282.tar.xz
2022/02/27 | 93760 | systems/texlive/tlnet/archive/tex4ht.i386-freebsd.r62206.tar.xz
2022/02/27 | 91280 | systems/texlive/tlnet/archive/tex4ht.i386-linux.r62210.tar.xz
2022/02/27 | 76200 | systems/texlive/tlnet/archive/tex4ht.i386-netbsd.r62220.tar.xz
2022/02/27 | 83964 | systems/texlive/tlnet/archive/tex4ht.i386-solaris.r62206.tar.xz
-2022/09/15 | 952780 | systems/texlive/tlnet/archive/tex4ht.r64394.tar.xz
-2022/09/15 | 1268180 | systems/texlive/tlnet/archive/tex4ht.source.r64394.tar.xz
+2022/09/17 | 952984 | systems/texlive/tlnet/archive/tex4ht.r64417.tar.xz
+2022/09/17 | 1275464 | systems/texlive/tlnet/archive/tex4ht.source.r64417.tar.xz
2022/02/28 | 184748 | systems/texlive/tlnet/archive/tex4ht.universal-darwin.r62258.tar.xz
2022/02/27 | 57768 | systems/texlive/tlnet/archive/tex4ht.win32.r62199.tar.xz
2022/03/01 | 58016 | systems/texlive/tlnet/archive/tex4ht.x86_64-cygwin.r62279.tar.xz
@@ -292402,7 +292348,7 @@
2022/09/13 | 600 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r64356.tar.xz
-2022/09/16 | 421024 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64397.tar.xz
+2022/09/17 | 421008 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64410.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -292426,7 +292372,7 @@
2022/09/13 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r64356.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r64356.tar.xz
-2022/09/16 | 113636 | systems/texlive/tlnet/archive/texlive-scripts.r64397.tar.xz
+2022/09/17 | 113640 | systems/texlive/tlnet/archive/texlive-scripts.r64410.tar.xz
2022/09/13 | 580 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r64356.tar.xz
2022/04/19 | 36296 | systems/texlive/tlnet/archive/texlive-scripts.win32.r63068.tar.xz
2022/09/13 | 596 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r64356.tar.xz
@@ -293258,6 +293204,9 @@
2022/08/14 | 40864 | systems/texlive/tlnet/archive/ucs.source.r64114.tar.xz
2019/02/28 | 6280 | systems/texlive/tlnet/archive/ucthesis.doc.r15878.tar.xz
2019/02/28 | 19284 | systems/texlive/tlnet/archive/ucthesis.r15878.tar.xz
+2022/09/17 | 116944 | systems/texlive/tlnet/archive/udes-genie-these.doc.r64416.tar.xz
+2022/09/17 | 6748 | systems/texlive/tlnet/archive/udes-genie-these.r64416.tar.xz
+2022/09/17 | 13716 | systems/texlive/tlnet/archive/udes-genie-these.source.r64416.tar.xz
2021/02/24 | 477784 | systems/texlive/tlnet/archive/udesoftec.doc.r57866.tar.xz
2021/02/24 | 108164 | systems/texlive/tlnet/archive/udesoftec.r57866.tar.xz
2021/02/24 | 44528 | systems/texlive/tlnet/archive/udesoftec.source.r57866.tar.xz
@@ -294261,16 +294210,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/07/17 | 124404 | systems/texlive/tlnet/install-tl
-2022/09/16 | 5831759 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/09/16 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/09/16 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/09/17 | 5831750 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/09/17 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/09/17 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/09/16 | 20437141 | systems/texlive/tlnet/install-tl-windows.exe
-2022/09/16 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/09/16 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/09/16 | 25516582 | systems/texlive/tlnet/install-tl.zip
-2022/09/16 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/09/16 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/09/17 | 20437746 | systems/texlive/tlnet/install-tl-windows.exe
+2022/09/17 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/09/17 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/09/17 | 25516573 | systems/texlive/tlnet/install-tl.zip
+2022/09/17 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/09/17 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -294280,7 +294229,7 @@
2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/09/12 | 49769 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/09/15 | 7170 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/09/16 | 7160 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/07/21 | 222477 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -294323,12 +294272,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/09/16 | 17639151 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/09/16 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/09/17 | 17640877 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/09/17 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/09/16 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/09/16 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/09/16 | 2406052 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/09/17 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/09/17 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/09/17 | 2407272 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2022/09/14 | 58922 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/08/01 | 42206 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -299671,7 +299620,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/09/16 | 662791 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/09/17 | 662791 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -301366,9 +301315,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/07/26 | 39695 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/08/27 | 43640 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/09/16 | 293294 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/09/16 | 1492140 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/09/16 | 1372399 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/09/17 | 293348 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/09/17 | 1491937 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/09/17 | 1373136 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/07/26 | 13519 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/08/27 | 14450 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -301613,102 +301562,102 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/09/16 | 662652 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/09/16 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/09/16 | 1161752 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/09/16 | 31585 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/09/16 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/09/16 | 65130 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/09/16 | 95468 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/09/16 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/09/16 | 31562 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/09/16 | 394143 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/09/16 | 37050 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/09/16 | 57505 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/09/16 | 270467 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/09/16 | 196213 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/09/16 | 103248 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/09/16 | 24211 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/09/16 | 481895 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/09/16 | 52036 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/09/16 | 325980 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/09/16 | 45794 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/09/16 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/09/16 | 1458152 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/09/16 | 112980 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/09/16 | 48852 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/09/16 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/09/16 | 63242 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/09/16 | 155429 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/09/16 | 79065 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/09/16 | 81448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/09/16 | 295945 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/09/16 | 25117 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/09/16 | 112880 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/09/16 | 73264 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/09/16 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/09/16 | 43890 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/09/16 | 565082 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/09/16 | 247207 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/09/16 | 169676 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/09/16 | 109650 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/09/16 | 18382 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/09/16 | 30570 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/09/16 | 682216 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/09/16 | 599104 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/09/16 | 527570 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/09/16 | 103598 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/09/16 | 2023133 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/09/16 | 74100 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/09/16 | 32074 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/09/16 | 8825 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/09/16 | 209139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/09/16 | 286686 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/09/16 | 104921 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/09/16 | 140014 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/09/16 | 325485 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/09/16 | 181723 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/09/16 | 55322 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/09/16 | 35231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/09/16 | 43619 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/09/16 | 48039 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/09/16 | 52369 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/09/16 | 213847 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/09/16 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/09/16 | 824995 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/09/16 | 203421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/09/16 | 245152 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/09/16 | 88484 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/09/16 | 1323745 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/09/16 | 23950 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/09/16 | 37506 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/09/16 | 72980 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/09/16 | 58631 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/09/16 | 769653 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/09/16 | 1503054 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/09/16 | 52628 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/09/16 | 63803 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/09/16 | 27464 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/09/16 | 18511 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/09/16 | 70939 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/09/16 | 173177 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/09/16 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/09/16 | 107439 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/09/16 | 2821672 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/09/16 | 62360 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/09/16 | 41191 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/09/16 | 33863 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/09/16 | 73686 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/09/16 | 352464 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/09/16 | 57502 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/09/16 | 630432 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/09/16 | 43528 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/09/16 | 293288 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/09/16 | 1490154 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/09/16 | 1372298 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/09/16 | 14434 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/09/17 | 662652 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/09/17 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/09/17 | 1161751 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/09/17 | 31585 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/09/17 | 35265 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/09/17 | 65129 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/09/17 | 95467 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/09/17 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/09/17 | 31563 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/09/17 | 394143 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/09/17 | 37049 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/09/17 | 57506 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/09/17 | 270465 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/09/17 | 196212 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/09/17 | 103247 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/09/17 | 24210 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/09/17 | 481894 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/09/17 | 52038 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/09/17 | 325980 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/09/17 | 45796 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/09/17 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/09/17 | 1458153 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/09/17 | 112980 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/09/17 | 48851 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/09/17 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/09/17 | 63241 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/09/17 | 155431 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/09/17 | 79064 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/09/17 | 81448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/09/17 | 295946 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/09/17 | 25119 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/09/17 | 112878 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/09/17 | 73264 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/09/17 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/09/17 | 43889 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/09/17 | 565082 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/09/17 | 247209 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/09/17 | 169678 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/09/17 | 109650 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/09/17 | 18383 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/09/17 | 30570 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/09/17 | 682215 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/09/17 | 599103 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/09/17 | 527571 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/09/17 | 103597 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/09/17 | 2023132 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/09/17 | 74099 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/09/17 | 32074 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/09/17 | 8826 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/09/17 | 209139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/09/17 | 286684 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/09/17 | 104921 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/09/17 | 140012 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/09/17 | 325484 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/09/17 | 181725 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/09/17 | 55320 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/09/17 | 35230 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/09/17 | 43618 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/09/17 | 48038 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/09/17 | 52369 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/09/17 | 213847 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/09/17 | 41178 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/09/17 | 824996 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/09/17 | 203419 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/09/17 | 245151 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/09/17 | 88483 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/09/17 | 1323743 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/09/17 | 23950 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/09/17 | 37506 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/09/17 | 72977 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/09/17 | 58632 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/09/17 | 769650 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/09/17 | 1503052 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/09/17 | 52627 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/09/17 | 63802 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/09/17 | 27463 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/09/17 | 18510 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/09/17 | 70939 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/09/17 | 173176 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/09/17 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/09/17 | 107438 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/09/17 | 2821672 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/09/17 | 62359 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/09/17 | 41190 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/09/17 | 33862 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/09/17 | 73685 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/09/17 | 352464 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/09/17 | 57501 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/09/17 | 630436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/09/17 | 43527 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/09/17 | 293284 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/09/17 | 1491533 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/09/17 | 1372916 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/09/17 | 14433 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/09/16 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/09/17 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -302200,7 +302149,7 @@
2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/09/16 | 974 | systems/win32/miktex/tm/packages/pr.ini
+2022/09/17 | 974 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -304172,7 +304121,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/09/17 | 186 | timestamp
+2022/09/18 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 6bd47f2b2b..ce88f2d37c 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 1068514fe4..2f272bb28a 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,104 +1,2185 @@
-2022/09/16 | 974 | systems/win32/miktex/tm/packages/pr.ini
-2022/09/16 | 95468 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/09/17 | 99 | graphics/asymptote/base/asy_filetype.vim
+2022/09/17 | 99993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.png
+2022/09/17 | 9923 | graphics/asymptote/profiler.h
+2022/09/17 | 990 | graphics/asymptote/examples/RiemannSphere.asy
+2022/09/17 | 989121 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glew.h
+2022/09/17 | 988 | graphics/asymptote/GUI/res/icons/eye.svg
+2022/09/17 | 986 | graphics/asymptote/predicates.h
+2022/09/17 | 986 | graphics/asymptote/GUI/res/icons/brush.svg
+2022/09/17 | 9867 | graphics/asymptote/runstring.in
+2022/09/17 | 985 | graphics/asymptote/GUI/res/icons/chevron-with-circle-right.svg
+2022/09/17 | 9856 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-filepath.h
+2022/09/17 | 98539 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/readertest.cpp
+2022/09/17 | 983 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfig.cmake.in
+2022/09/17 | 982 | graphics/asymptote/LspCpp/third_party/rapidjson/example/CMakeLists.txt
+2022/09/17 | 9826 | graphics/asymptote/base/rationalSimplex.asy
+2022/09/17 | 9822 | graphics/asymptote/doc/FAQ/m-html.pl
+2022/09/17 | 980 | graphics/asymptote/examples/filesurface.asy
+2022/09/17 | 98015 | graphics/asymptote/GUI/Window1.py
+2022/09/17 | 978 | graphics/asymptote/examples/worksheet.asy
+2022/09/17 | 9784 | graphics/asymptote/triple.h
+2022/09/17 | 9772 | graphics/asymptote/fundec.cc
+2022/09/17 | 9765 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.zh-cn.md
+2022/09/17 | 9755 | graphics/asymptote/v3dfile.cc
+2022/09/17 | 974 | systems/win32/miktex/tm/packages/pr.ini
+2022/09/17 | 974 | graphics/asymptote/prc/Makefile
+2022/09/17 | 9740 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
+2022/09/17 | 973 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
+2022/09/17 | 973 | graphics/asymptote/examples/fequlogo.asy
+2022/09/17 | 972 | graphics/asymptote/examples/triads.asy
+2022/09/17 | 971 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
+2022/09/17 | 969 | graphics/asymptote/runfile.h
+2022/09/17 | 96863 | macros/generic/unicode-data/GraphemeBreakProperty.txt
+2022/09/17 | 968193 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/glew.c
+2022/09/17 | 966 | graphics/asymptote/tests/array/solve.asy
+2022/09/17 | 964 | graphics/asymptote/LspCpp/src/jsonrpc/Context.cpp
+2022/09/17 | 9641 | graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
+2022/09/17 | 95 | graphics/asymptote/prc/test.asy
+2022/09/17 | 95 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
+2022/09/17 | 9562 | graphics/asymptote/base/bezulate.asy
+2022/09/17 | 954 | graphics/asymptote/examples/poster.asy
+2022/09/17 | 95467 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/09/17 | 952984 | systems/texlive/tlnet/archive/tex4ht.r64417.tar.xz
+2022/09/17 | 952118 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear.h
+2022/09/17 | 951 | graphics/asymptote/GUI/res/icons/magnifying-glass.svg
+2022/09/17 | 9502 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest.py
+2022/09/17 | 94 | graphics/asymptote/LspCpp/third_party/rapidjson/include_dirs.js
+2022/09/17 | 946 | graphics/asymptote/examples/animations/cube.asy
+2022/09/17 | 94336 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/reader.h
+2022/09/17 | 942 | graphics/asymptote/statistics.h
+2022/09/17 | 942 | graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
+2022/09/17 | 941 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
+2022/09/17 | 9375 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
+2022/09/17 | 936 | graphics/asymptote/tests/array/array.asy
+2022/09/17 | 935 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.dot
+2022/09/17 | 9352 | fonts/fira/latex/FiraSans.sty
+2022/09/17 | 934 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/declaration_definition.h
+2022/09/17 | 9349 | graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
+2022/09/17 | 9334 | graphics/asymptote/base/plain_paths.asy
+2022/09/17 | 9333 | macros/generic/unicode-data/README.md
+2022/09/17 | 9328 | graphics/asymptote/doc/FAQ/bfnnconv.pl
+2022/09/17 | 9327 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_test_utils.py
+2022/09/17 | 931 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
+2022/09/17 | 9319 | graphics/asymptote/glrender.h
+2022/09/17 | 9318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_stress_test.cc
+2022/09/17 | 930 | graphics/asymptote/examples/polararea.asy
+2022/09/17 | 929 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/platforms.md
+2022/09/17 | 9298 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/type.json
+2022/09/17 | 9267 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-internal-utils.cc
+2022/09/17 | 9251 | graphics/asymptote/errors
+2022/09/17 | 923 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/required.json
+2022/09/17 | 92378 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.png
+2022/09/17 | 9231 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
+2022/09/17 | 922 | graphics/asymptote/doc/imagecontour.asy
+2022/09/17 | 920 | graphics/asymptote/makeUnique.h
+2022/09/17 | 916 | graphics/asymptote/opcodes.h
+2022/09/17 | 912 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.dot
+2022/09/17 | 912 | graphics/asymptote/doc/errorbars.asy
+2022/09/17 | 9114 | graphics/asymptote/doc/asy.1
+2022/09/17 | 9104 | graphics/asymptote/symbol.cc
+2022/09/17 | 908 | graphics/asymptote/modifier.h
+2022/09/17 | 908 | graphics/asymptote/coenv.h
+2022/09/17 | 908 | graphics/asymptote/base/map.asy
+2022/09/17 | 9088 | graphics/asymptote/application.h
+2022/09/17 | 9059 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/bin/jsonschema_suite
+2022/09/17 | 9040 | systems/texlive/tlnet/archive/newpax.source.r64415.tar.xz
+2022/09/17 | 9036 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
+2022/09/17 | 9032 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
+2022/09/17 | 9022 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_gtk.c
+2022/09/17 | 9021 | graphics/asymptote/psfile.h
+2022/09/17 | 901 | graphics/asymptote/virtualfieldaccess.cc
+2022/09/17 | 900 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
+2022/09/17 | 8 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail16.json
+2022/09/17 | 897 | graphics/asymptote/doc/flowchartdemo.asy
+2022/09/17 | 896 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxLength.json
+2022/09/17 | 896592 | macros/latex/contrib/verifiche.zip
+2022/09/17 | 895 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxLength.json
+2022/09/17 | 8950 | macros/generic/unicode-data/BidiBrackets.txt
+2022/09/17 | 891 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
+2022/09/17 | 88 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/README.md
+2022/09/17 | 8894 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/README.md
+2022/09/17 | 8883 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/pointer.md
+2022/09/17 | 886 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minLength.json
+2022/09/17 | 886 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minLength.json
+2022/09/17 | 886 | graphics/asymptote/angle.h
+2022/09/17 | 8861 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample6_unittest.cc
+2022/09/17 | 885746 | macros/latex/required/babel/base/babel.pdf
+2022/09/17 | 88483 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/09/17 | 883 | graphics/asymptote/cudareflect/helper.cuh
+2022/09/17 | 88387 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest.h
+2022/09/17 | 8836 | systems/texlive/tlnet/archive/newpax.r64415.tar.xz
+2022/09/17 | 8826 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/09/17 | 881 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
+2022/09/17 | 8815 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
+2022/09/17 | 880 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
+2022/09/17 | 880 | graphics/asymptote/doc/xasy.1x
+2022/09/17 | 8804 | graphics/asymptote/runmath.in
+2022/09/17 | 879 | graphics/asymptote/examples/markregular.asy
+2022/09/17 | 8795 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.zh-cn.md
+2022/09/17 | 8792 | graphics/asymptote/prc/PRCTools/iPRCFile.cc
+2022/09/17 | 8789 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp-string_test.cc
+2022/09/17 | 877 | graphics/asymptote/GUI/Widg_addPolyOpt.py
+2022/09/17 | 877 | graphics/asymptote/doc/markers2.asy
+2022/09/17 | 8767 | graphics/asymptote/LspCpp/third_party/uri/test/uri_normalization_test.cpp
+2022/09/17 | 872 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/menu.json
+2022/09/17 | 8711 | graphics/asymptote/base/plain_pens.asy
+2022/09/17 | 870 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
+2022/09/17 | 8701 | graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
+2022/09/17 | 86 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/readme.txt
+2022/09/17 | 86 | graphics/asymptote/doc/cylinderskeleton.asy
+2022/09/17 | 869 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
+2022/09/17 | 869940 | install/fonts/librebaskerville.tds.zip
+2022/09/17 | 868 | graphics/asymptote/examples/twistedtubes.asy
+2022/09/17 | 867 | graphics/asymptote/cudareflect/tinyexr/test/unit/config-msvc.py
+2022/09/17 | 866 | graphics/asymptote/examples/xxsq01x-1.asy
+2022/09/17 | 8668 | graphics/asymptote/xstream.h
+2022/09/17 | 86552 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/advanced.md
+2022/09/17 | 863 | graphics/asymptote/GUI/res/icons/edit.svg
+2022/09/17 | 86012 | systems/texlive/tlnet/archive/garamond-libre.doc.r64412.tar.xz
+2022/09/17 | 85 | graphics/asymptote/cudareflect/tinyexr/vcsetup2019.bat
+2022/09/17 | 85989 | graphics/asymptote/base/three.asy
+2022/09/17 | 858 | graphics/asymptote/GUI/res/icons/center.svg
+2022/09/17 | 858874 | fonts/librebaskerville.zip
+2022/09/17 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/pattern.json
+2022/09/17 | 857 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/pattern.json
+2022/09/17 | 856 | graphics/asymptote/examples/animations/sphere.asy
+2022/09/17 | 8561 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_.cc
+2022/09/17 | 854 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/definitions.json
+2022/09/17 | 85342 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-port.h
+2022/09/17 | 8532 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/pointer.zh-cn.md
+2022/09/17 | 8528 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock.cc
+2022/09/17 | 8519 | graphics/asymptote/cudareflect/ReflectanceMapper.cu
+2022/09/17 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/oneOf_address.json
+2022/09/17 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/anyOf_address.json
+2022/09/17 | 84 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/allOf_address.json
+2022/09/17 | 849 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/booleans.json
+2022/09/17 | 848 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
+2022/09/17 | 848 | graphics/asymptote/base/shaders/sum2.glsl
+2022/09/17 | 846 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
+2022/09/17 | 84690 | macros/generic/unicode-data/CaseFolding.txt
+2022/09/17 | 845 | graphics/asymptote/envcompleter.h
+2022/09/17 | 8456 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/trackball.cc
+2022/09/17 | 843 | graphics/asymptote/tests/arith/integer.asy
+2022/09/17 | 8439 | graphics/asymptote/runpath.in
+2022/09/17 | 8436736 | graphics/asymptote/binaries/i386-windows/texlive/asy.exe
+2022/09/17 | 842 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
+2022/09/17 | 8429 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
+2022/09/17 | 8429 | graphics/asymptote/examples/thermodynamics.asy
+2022/09/17 | 840 | graphics/asymptote/GUI/res/icons/android-folder-open.svg
+2022/09/17 | 8407 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_utils.py
+2022/09/17 | 839 | graphics/asymptote/examples/venn3.asy
+2022/09/17 | 8386 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test_.cc
+2022/09/17 | 8371 | graphics/asymptote/prc/PRCbitStream.cc
+2022/09/17 | 837091 | macros/latex/required/babel/base/locale.zip
+2022/09/17 | 8361 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
+2022/09/17 | 834 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/CMakeLists.txt
+2022/09/17 | 83449 | graphics/asymptote/lex.yy.cc
+2022/09/17 | 8342 | graphics/asymptote/base/simplex.asy
+2022/09/17 | 832 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-255456016cca60ddb5c5ed6898182e13739bf687b17d1411e97bb60ad95e7a84_min
+2022/09/17 | 831 | graphics/asymptote/runbacktrace.in
+2022/09/17 | 831 | graphics/asymptote/GUI/res/icons/android-radio-button-on.svg
+2022/09/17 | 831 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/fuzz.cc
+2022/09/17 | 8318976 | graphics/asymptote/binaries/x86_64-windows/texlive/asy.exe
+2022/09/17 | 830 | graphics/asymptote/shaders.h
+2022/09/17 | 8307 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-assertion-result.h
+2022/09/17 | 829 | graphics/asymptote/GUI/res/icons/close-round.svg
+2022/09/17 | 829 | graphics/asymptote/examples/shellsqrtx01.asy
+2022/09/17 | 828 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeModules/FindGTestSrc.cmake
+2022/09/17 | 825 | graphics/asymptote/examples/xxsq01y.asy
+2022/09/17 | 824996 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/09/17 | 8240 | graphics/asymptote/base/asy-kate.sh
+2022/09/17 | 822 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
+2022/09/17 | 821 | graphics/asymptote/v3dtypes.py
+2022/09/17 | 821 | graphics/asymptote/examples/SierpinskiGasket.asy
+2022/09/17 | 820 | graphics/asymptote/webgl/license
+2022/09/17 | 820 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/LICENSE
+2022/09/17 | 81 | graphics/asymptote/doc/bezier.asy
+2022/09/17 | 818 | graphics/asymptote/GLTextures.cc
+2022/09/17 | 815 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
+2022/09/17 | 814 | graphics/asymptote/camperror.h
+2022/09/17 | 81448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/09/17 | 81447 | graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+2022/09/17 | 8130 | macros/latex/contrib/verifiche/verifiche-example.tex
+2022/09/17 | 8129 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/CMakeLists.txt
+2022/09/17 | 8120 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-message.h
+2022/09/17 | 8112 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-test-part-test.cc
+2022/09/17 | 810 | graphics/asymptote/GUI/res/icons/android-expand.svg
+2022/09/17 | 810 | graphics/asymptote/examples/orthocenter.asy
+2022/09/17 | 8096 | graphics/asymptote/runhistory.cc
+2022/09/17 | 8092 | graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
+2022/09/17 | 8037 | graphics/asymptote/name.cc
+2022/09/17 | 802 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/nulls.json
+2022/09/17 | 802 | graphics/asymptote/examples/vertexshading.asy
+2022/09/17 | 802 | graphics/asymptote/examples/controlsystem.asy
+2022/09/17 | 8014 | graphics/asymptote/base/stats.asy
+2022/09/17 | 800 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
+2022/09/17 | 8008 | graphics/asymptote/runpath3d.in
+2022/09/17 | 7 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail31.json
+2022/09/17 | 798 | graphics/asymptote/examples/animations/torusanimation.asy
+2022/09/17 | 795 | graphics/asymptote/GUI/res/icons/android-refresh.svg
+2022/09/17 | 7957 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-options-test.cc
+2022/09/17 | 794 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/execute_command.h
+2022/09/17 | 793 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-eedff3a9e99eb1c0fd3a3b0989e7c44c0a69f04f10b23e5264f362a4773f4397_min
+2022/09/17 | 792 | graphics/asymptote/doc/secondaryaxis.asy
+2022/09/17 | 79178 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.make
+2022/09/17 | 790 | graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
+2022/09/17 | 790 | graphics/asymptote/GUI/res/icons/android-camera.svg
+2022/09/17 | 79064 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/09/17 | 79003 | graphics/asymptote/GUI/windows/window1.ui
+2022/09/17 | 78 | graphics/asymptote/examples/randompath3.asy
+2022/09/17 | 7869 | macros/latex/required/babel/base/babel.ins
+2022/09/17 | 784 | graphics/asymptote/LspCpp/third_party/uri/deps/CMakeLists.txt
+2022/09/17 | 781 | graphics/asymptote/LspCpp/third_party/uri/deps/WORKSPACE
+2022/09/17 | 77 | graphics/asymptote/tests/gc/string.asy
+2022/09/17 | 7790 | graphics/asymptote/coder.cc
+2022/09/17 | 7780 | graphics/asymptote/cudareflect/main.cc
+2022/09/17 | 77498 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_pred_impl_unittest.cc
+2022/09/17 | 7731 | graphics/asymptote/LspCpp/third_party/uri/include/network/string_view.hpp
+2022/09/17 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/09/17 | 771 | graphics/asymptote/GUI/res/icons/check.svg
+2022/09/17 | 770 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
+2022/09/17 | 770 | graphics/asymptote/asy.rc
+2022/09/17 | 76 | graphics/asymptote/examples/grid.asy
+2022/09/17 | 769650 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/09/17 | 7684 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/sanitize-helpers.cmake
+2022/09/17 | 76801 | graphics/asymptote/gl-matrix-2.4.0-pruned/dist/gl-matrix.js
+2022/09/17 | 7671 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Context.h
+2022/09/17 | 7670 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
+2022/09/17 | 766 | graphics/asymptote/vm.h
+2022/09/17 | 76445 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-spec-builders.h
+2022/09/17 | 7639 | graphics/asymptote/LICENSE.LESSER
+2022/09/17 | 7634 | graphics/asymptote/base/plain.asy
+2022/09/17 | 76339 | graphics/asymptote/runarray.cc
+2022/09/17 | 762 | graphics/asymptote/examples/clockarray.asy
+2022/09/17 | 759 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxProperties.json
+2022/09/17 | 755773 | macros/latex/contrib/nicematrix/nicematrix.dtx
+2022/09/17 | 754 | graphics/asymptote/doc/graphmarkers.asy
+2022/09/17 | 752 | graphics/asymptote/GUI/res/icons/android-radio-button-off.svg
+2022/09/17 | 751 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
+2022/09/17 | 750 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
+2022/09/17 | 750 | graphics/asymptote/GUI/res/icons/plus-round.svg
+2022/09/17 | 74 | graphics/asymptote/LspCpp/include/LibLsp/lsp/method_type.h
+2022/09/17 | 748828 | macros/latex/required/babel/base/babel.dtx
+2022/09/17 | 747 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
+2022/09/17 | 747 | graphics/asymptote/examples/pseudosphere.asy
+2022/09/17 | 74749 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-spec-builders_test.cc
+2022/09/17 | 746 | graphics/asymptote/tests/array/sort.asy
+2022/09/17 | 743 | graphics/asymptote/GUI/res/icons/circle.svg
+2022/09/17 | 743 | graphics/asymptote/examples/xxsq01.asy
+2022/09/17 | 741 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialogmultiple.c
+2022/09/17 | 74120 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile
+2022/09/17 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32lebom.json
+2022/09/17 | 740 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32bebom.json
+2022/09/17 | 74099 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/09/17 | 7407 | graphics/asymptote/base/graph_splinetype.asy
+2022/09/17 | 74016 | graphics/asymptote/LspCpp/third_party/uri/Doxyfile.in
+2022/09/17 | 739 | graphics/asymptote/examples/condor.asy
+2022/09/17 | 737 | graphics/asymptote/tests/array/determinant.asy
+2022/09/17 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32le.json
+2022/09/17 | 736 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf32be.json
+2022/09/17 | 73685 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/09/17 | 7364 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cheat_sheet.md
+2022/09/17 | 734 | graphics/asymptote/examples/quilt.asy
+2022/09/17 | 73435 | graphics/asymptote/GL/glxew.h
+2022/09/17 | 733 | graphics/asymptote/GUI/xasySvg.py
+2022/09/17 | 7331 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
+2022/09/17 | 73264 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/09/17 | 7322 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-break-on-failure-unittest.py
+2022/09/17 | 730 | graphics/asymptote/base/shaders/sum1.glsl
+2022/09/17 | 7304 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-string.h
+2022/09/17 | 7302 | graphics/asymptote/base/markers.asy
+2022/09/17 | 72 | graphics/asymptote/tests/gc/pen.asy
+2022/09/17 | 729 | graphics/asymptote/base/labelpath.asy
+2022/09/17 | 72977 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/09/17 | 72887 | graphics/asymptote/base/three_surface.asy
+2022/09/17 | 7287 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_stress_test.cc
+2022/09/17 | 727 | graphics/asymptote/examples/fermi.asy
+2022/09/17 | 7274 | graphics/asymptote/runtime.pl
+2022/09/17 | 7260 | graphics/asymptote/config.h.in
+2022/09/17 | 725 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minProperties.json
+2022/09/17 | 722 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
+2022/09/17 | 7222 | graphics/asymptote/GUI/pyUIClass/widg_addLabel.py
+2022/09/17 | 721 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
+2022/09/17 | 7218 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/schematest.cpp
+2022/09/17 | 72068 | macros/latex/contrib/verifiche/verifiche.dtx
+2022/09/17 | 71994 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glxew.h
+2022/09/17 | 7180 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_repeat_test.cc
+2022/09/17 | 7157 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
+2022/09/17 | 714 | graphics/asymptote/mod.h
+2022/09/17 | 714 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
+2022/09/17 | 714 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
+2022/09/17 | 714 | graphics/asymptote/examples/unitoctantx.asy
+2022/09/17 | 7141676 | systems/texlive/tlnet/archive/garamond-libre.r64412.tar.xz
+2022/09/17 | 713 | graphics/asymptote/examples/gamma3.asy
+2022/09/17 | 7139 | macros/generic/unicode-data/load-unicode-xetex-classes.tex
+2022/09/17 | 71368 | graphics/asymptote/base/asy-mode.el
+2022/09/17 | 7133 | graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
+2022/09/17 | 7125 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
+2022/09/17 | 71201 | graphics/asymptote/prc/oPRCFile.cc
+2022/09/17 | 711 | graphics/asymptote/examples/partialsurface.asy
+2022/09/17 | 710 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
+2022/09/17 | 710 | graphics/asymptote/examples/fjortoft.asy
+2022/09/17 | 70 | graphics/asymptote/tests/gc/transform.asy
+2022/09/17 | 709 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/Makefile
+2022/09/17 | 70939 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/09/17 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maxItems.json
+2022/09/17 | 706 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maxItems.json
+2022/09/17 | 705 | graphics/asymptote/GUI/res/icons/arrow-move.svg
+2022/09/17 | 7054 | macros/generic/unicode-data/load-unicode-data.tex
+2022/09/17 | 7049 | graphics/asymptote/LspCpp/third_party/uri/Makefile
+2022/09/17 | 703 | graphics/asymptote/examples/NURBScurve.asy
+2022/09/17 | 7016 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
+2022/09/17 | 70145 | graphics/asymptote/base/graph3.asy
+2022/09/17 | 700 | graphics/asymptote/GUI/locale/th/LC_MESSAGES/base.po
+2022/09/17 | 6964 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
+2022/09/17 | 6944 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-test-part.h
+2022/09/17 | 69441 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.h
+2022/09/17 | 693 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minItems.json
+2022/09/17 | 693 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minItems.json
+2022/09/17 | 6917 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+2022/09/17 | 6915 | graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
+2022/09/17 | 6911 | graphics/asymptote/errortest.asy
+2022/09/17 | 690 | graphics/asymptote/examples/layers.asy
+2022/09/17 | 6896 | graphics/asymptote/GUI/windows/widg_addLabel.ui
+2022/09/17 | 688 | graphics/asymptote/examples/centroidfg.asy
+2022/09/17 | 687 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/Makefile
+2022/09/17 | 687491 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/sample.json
+2022/09/17 | 6872 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/actions.md
+2022/09/17 | 6860 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.zh-cn.md
+2022/09/17 | 685 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simpledom/simpledom.cpp
+2022/09/17 | 6849 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
+2022/09/17 | 683 | graphics/asymptote/GUI/res/icons/android-close.svg
+2022/09/17 | 683 | graphics/asymptote/examples/fractaltree.asy
+2022/09/17 | 682215 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/09/17 | 6818 | graphics/asymptote/LspCpp/third_party/rapidjson/CHANGELOG.md
+2022/09/17 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/09/17 | 68126 | graphics/asymptote/prc/PRCTools/describePRC.cc
+2022/09/17 | 680 | graphics/asymptote/tests/array/delete.asy
+2022/09/17 | 679 | graphics/asymptote/examples/genusthree.asy
+2022/09/17 | 678 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/README.md
+2022/09/17 | 678 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-5b66774a7498c635334ad386be0c3b359951738ac47f14878a3346d1c6ea0fe5_min
+2022/09/17 | 6787 | graphics/asymptote/drawlabel.cc
+2022/09/17 | 677 | graphics/asymptote/doc/Bode.asy
+2022/09/17 | 677 | graphics/asymptote/base/shaders/vertex.glsl
+2022/09/17 | 6772 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/main.cc
+2022/09/17 | 6751 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/format.json
+2022/09/17 | 674 | graphics/asymptote/examples/sqrtx01.asy
+2022/09/17 | 6748 | systems/texlive/tlnet/archive/udes-genie-these.r64416.tar.xz
+2022/09/17 | 6732 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stream.h
+2022/09/17 | 67309 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
+2022/09/17 | 6726 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example3.c
+2022/09/17 | 6725 | graphics/asymptote/guide.h
+2022/09/17 | 6717 | graphics/asymptote/GUI/xasyOptions.py
+2022/09/17 | 6714 | graphics/asymptote/base/shaders/fragment.glsl
+2022/09/17 | 67146 | graphics/asymptote/GUI/xasy2asy.py
+2022/09/17 | 670 | graphics/asymptote/base/v3dtypes.asy
+2022/09/17 | 6708 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/encoding.md
+2022/09/17 | 66 | graphics/asymptote/examples/shade.asy
+2022/09/17 | 669 | graphics/asymptote/drawpath.h
+2022/09/17 | 667 | graphics/asymptote/tinyexr.cc
+2022/09/17 | 667 | graphics/asymptote/examples/spring.asy
+2022/09/17 | 66751 | graphics/asymptote/prc/writePRC.cc
+2022/09/17 | 6673 | graphics/asymptote/main.cc
+2022/09/17 | 6650 | graphics/asymptote/getopt.h
+2022/09/17 | 664 | graphics/asymptote/GUI/res/icons/android-delete.svg
+2022/09/17 | 66482 | graphics/asymptote/base/webgl/asygl.js
+2022/09/17 | 66414 | graphics/asymptote/glrender.cc
+2022/09/17 | 663 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
+2022/09/17 | 663 | graphics/asymptote/GUI/res/icons/save.svg
+2022/09/17 | 6634 | graphics/asymptote/simpson.cc
+2022/09/17 | 662791 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/09/17 | 662652 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/09/17 | 6623 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
+2022/09/17 | 6616 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
+2022/09/17 | 65 | graphics/asymptote/tests/gc/guide.asy
+2022/09/17 | 6593 | graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
+2022/09/17 | 6585 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample5_unittest.cc
+2022/09/17 | 657 | graphics/asymptote/examples/lowupint.asy
+2022/09/17 | 657 | graphics/asymptote/examples/100d.views
+2022/09/17 | 657 | graphics/asymptote/base/reload.js
+2022/09/17 | 6572 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/doxygenextra.css
+2022/09/17 | 6553 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/main.cc
+2022/09/17 | 6552 | graphics/asymptote/GUI/windows/labelTextEditor.ui
+2022/09/17 | 6551 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example2.c
+2022/09/17 | 654 | graphics/asymptote/fpu.h
+2022/09/17 | 654 | graphics/asymptote/examples/limit.asy
+2022/09/17 | 6543 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-list-tests-unittest.py
+2022/09/17 | 6528 | graphics/asymptote/lspserv.h
+2022/09/17 | 6525 | graphics/asymptote/drawfill.h
+2022/09/17 | 65129 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/09/17 | 650 | graphics/asymptote/prcfile.h
+2022/09/17 | 6503 | graphics/asymptote/tests/types/constructor.asy
+2022/09/17 | 64 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-62-tinyexr_memcpy_heap-buffer-overflow
+2022/09/17 | 648 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
+2022/09/17 | 648 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
+2022/09/17 | 646 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
+2022/09/17 | 645 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
+2022/09/17 | 6425 | graphics/asymptote/mathop.h
+2022/09/17 | 641 | graphics/asymptote/examples/pOrbital.asy
+2022/09/17 | 6418 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_environment_test.cc
+2022/09/17 | 6412 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test.cc
+2022/09/17 | 64114 | graphics/asymptote/base/graph.asy
+2022/09/17 | 639 | graphics/asymptote/tests/arith/transform.asy
+2022/09/17 | 639 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
+2022/09/17 | 638888 | macros/latex/contrib/verifiche/verifiche.pdf
+2022/09/17 | 63844 | systems/texlive/tlnet/archive/newpax.doc.r64415.tar.xz
+2022/09/17 | 63842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-printers-test.cc
+2022/09/17 | 63802 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/09/17 | 6376 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest_.cc
+2022/09/17 | 6370 | graphics/asymptote/asymptote.nsi
+2022/09/17 | 6369 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/traits.h
+2022/09/17 | 63680 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
+2022/09/17 | 63314 | graphics/asymptote/GL/wglew.h
+2022/09/17 | 632 | graphics/asymptote/examples/label3zoom.asy
+2022/09/17 | 63241 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/09/17 | 631 | graphics/asymptote/locate.h
+2022/09/17 | 631 | graphics/asymptote/GUI/res/icons/arrow-resize.svg
+2022/09/17 | 63193 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_gtk3.png
+2022/09/17 | 6318 | graphics/asymptote/doc/leastsquares.dat
+2022/09/17 | 63136 | graphics/asymptote/doc/FAQ/asy-faq.info
+2022/09/17 | 630 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-24322747c47e87a10e4407528b779a1a763a48135384909b3d1010bbba1d4c28_min
+2022/09/17 | 630436 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/09/17 | 62 | graphics/asymptote/tests/gc/array.asy
+2022/09/17 | 62 | graphics/asymptote/revision.cc
+2022/09/17 | 628 | graphics/asymptote/examples/wedge.asy
+2022/09/17 | 628 | graphics/asymptote/examples/polarcircle.asy
+2022/09/17 | 6288 | graphics/asymptote/transform.h
+2022/09/17 | 6287 | graphics/asymptote/base/plain_prethree.asy
+2022/09/17 | 6278 | graphics/asymptote/base/plain_filldraw.asy
+2022/09/17 | 62767 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
+2022/09/17 | 6275 | graphics/asymptote/generate_enums.py
+2022/09/17 | 626 | graphics/asymptote/GUI/res/icons/android-arrow-forward.svg
+2022/09/17 | 626 | graphics/asymptote/GUI/res/icons/android-arrow-back.svg
+2022/09/17 | 626 | graphics/asymptote/examples/venn.asy
+2022/09/17 | 6253 | graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
+2022/09/17 | 6252 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-type-util.h
+2022/09/17 | 6247 | graphics/asymptote/GUI/pyUIClass/labelTextEditor.py
+2022/09/17 | 62413 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-death-test.cc
+2022/09/17 | 62359 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/09/17 | 62206 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/wglew.h
+2022/09/17 | 620 | graphics/asymptote/GUI/res/icons/android-done.svg
+2022/09/17 | 61 | graphics/asymptote/examples/axialshade.asy
+2022/09/17 | 61 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/README.md
+2022/09/17 | 6194 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample8_unittest.cc
+2022/09/17 | 6190 | graphics/asymptote/camp.tab.h
+2022/09/17 | 617 | graphics/asymptote/doc/logo.asy
+2022/09/17 | 6175 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test.py
+2022/09/17 | 616 | graphics/asymptote/examples/Gouraudcontour.asy
+2022/09/17 | 61699 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-internal.h
+2022/09/17 | 61667 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-actions.h
+2022/09/17 | 61659 | graphics/asymptote/runtime.cc
+2022/09/17 | 615 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
+2022/09/17 | 615 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.h
+2022/09/17 | 6159 | graphics/asymptote/base/plain_strings.asy
+2022/09/17 | 612 | graphics/asymptote/cudareflect/tinyexr/experimental/js/README.md
+2022/09/17 | 612 | graphics/asymptote/cudareflect/tinyexr/examples/exr2rgbe/exr2rgbe.cc
+2022/09/17 | 611 | graphics/asymptote/GUI/xasy.py
+2022/09/17 | 6117 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_cocoa.m
+2022/09/17 | 610 | graphics/asymptote/examples/impact.asy
+2022/09/17 | 6104 | graphics/asymptote/LspCpp/third_party/uri/deps/BUILD.bazel
+2022/09/17 | 6104 | graphics/asymptote/doc/FAQ/m-lout.pl
+2022/09/17 | 60 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail1.json
+2022/09/17 | 609 | graphics/asymptote/keywords.cc
+2022/09/17 | 6097 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-cardinalities.h
+2022/09/17 | 6090 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/DoxygenLayout.xml
+2022/09/17 | 608 | graphics/asymptote/examples/spline.asy
+2022/09/17 | 608 | graphics/asymptote/base/size10.asy
+2022/09/17 | 606 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
+2022/09/17 | 604 | graphics/asymptote/doc/flow.asy
+2022/09/17 | 6037 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test.py
+2022/09/17 | 602 | graphics/asymptote/examples/treetest.asy
+2022/09/17 | 6021 | graphics/asymptote/prc/PRCTools/bitData.cc
+2022/09/17 | 601 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/widget.json
+2022/09/17 | 600 | graphics/asymptote/base/size11.asy
+2022/09/17 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail30.json
+2022/09/17 | 5 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/abcde.txt
+2022/09/17 | 59 | graphics/asymptote/examples/stroke3.asy
+2022/09/17 | 599823 | macros/latex/contrib/calculator.zip
+2022/09/17 | 5996 | graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
+2022/09/17 | 599103 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/09/17 | 598 | graphics/asymptote/examples/integraltest.asy
+2022/09/17 | 5987 | graphics/asymptote/runfile.in
+2022/09/17 | 5975 | graphics/asymptote/base/three_tube.asy
+2022/09/17 | 59583 | graphics/asymptote/GUI/pyUIClass/window1.py
+2022/09/17 | 594 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+2022/09/17 | 594 | graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
+2022/09/17 | 593 | graphics/asymptote/GUI/res/icons/bucket.asy
+2022/09/17 | 5933 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
+2022/09/17 | 5925 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample9_unittest.cc
+2022/09/17 | 591 | graphics/asymptote/examples/sinc.asy
+2022/09/17 | 591672 | macros/generic/unicode-data.zip
+2022/09/17 | 591247 | install/macros/generic/unicode-data.tds.zip
+2022/09/17 | 58 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail10.json
+2022/09/17 | 58 | graphics/asymptote/examples/progrid.asy
+2022/09/17 | 589 | graphics/asymptote/examples/trefoilknot.asy
+2022/09/17 | 5883 | graphics/asymptote/Delaunay.cc
+2022/09/17 | 586 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
+2022/09/17 | 586 | graphics/asymptote/GUI/xasyStrings.py
+2022/09/17 | 58632 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/09/17 | 5832 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
+2022/09/17 | 5831750 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/09/17 | 582 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/glossary.json
+2022/09/17 | 582 | graphics/asymptote/examples/cos3.asy
+2022/09/17 | 5820 | graphics/asymptote/cudareflect/IrradianceGenerator.vcxproj
+2022/09/17 | 581 | graphics/asymptote/examples/BezierSaddle.asy
+2022/09/17 | 5818 | graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
+2022/09/17 | 580 | graphics/asymptote/examples/xsin1x.asy
+2022/09/17 | 58024 | graphics/asymptote/runpicture.cc
+2022/09/17 | 57 | graphics/asymptote/GUI/requirements.txt
+2022/09/17 | 579 | graphics/asymptote/examples/sqrtx01y1.asy
+2022/09/17 | 579 | graphics/asymptote/examples/sin3.asy
+2022/09/17 | 579 | graphics/asymptote/examples/exp3.asy
+2022/09/17 | 578 | graphics/asymptote/base/annotate.asy
+2022/09/17 | 5789 | graphics/asymptote/base/trembling.asy
+2022/09/17 | 576 | graphics/asymptote/examples/threeviews.asy
+2022/09/17 | 576 | graphics/asymptote/examples/circles.asy
+2022/09/17 | 5767 | graphics/asymptote/drawpath3.h
+2022/09/17 | 57598 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
+2022/09/17 | 5752 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
+2022/09/17 | 57506 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/09/17 | 57501 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/09/17 | 573 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
+2022/09/17 | 5735 | graphics/asymptote/base/plain_scaling.asy
+2022/09/17 | 5733 | graphics/asymptote/item.h
+2022/09/17 | 57318 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/09/17 | 572 | graphics/asymptote/LspCpp/third_party/uri/test/invalid_urls.txt
+2022/09/17 | 572 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/config.hpp
+2022/09/17 | 572 | graphics/asymptote/examples/curvedlabel3.asy
+2022/09/17 | 572138 | macros/latex/contrib/calculator/calculator.pdf
+2022/09/17 | 5712 | graphics/asymptote/bezierpatch.h
+2022/09/17 | 5711 | graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
+2022/09/17 | 5705 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-json-outfiles-test.py
+2022/09/17 | 569 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/Makefile
+2022/09/17 | 5691 | graphics/asymptote/name.h
+2022/09/17 | 5689 | graphics/asymptote/interact.cc
+2022/09/17 | 5683 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTING.md
+2022/09/17 | 5658 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-throw-on-failure-test.py
+2022/09/17 | 565082 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/09/17 | 563 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.hpp
+2022/09/17 | 5627 | graphics/asymptote/doc/FAQ/m-info.pl
+2022/09/17 | 5621 | graphics/asymptote/errormsg.h
+2022/09/17 | 561 | graphics/asymptote/LspCpp/third_party/rapidjson/package.json
+2022/09/17 | 55991 | graphics/asymptote/base/smoothcontour3.asy
+2022/09/17 | 5595 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest_.cc
+2022/09/17 | 558 | graphics/asymptote/examples/floatingdisk.asy
+2022/09/17 | 557 | graphics/asymptote/examples/Pythagoras.asy
+2022/09/17 | 5578 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_api.cpp
+2022/09/17 | 55726 | graphics/asymptote/LspCpp/third_party/utfcpp/README.md
+2022/09/17 | 5571976 | systems/texlive/tlnet/archive/cormorantgaramond.r64411.tar.xz
+2022/09/17 | 5542 | graphics/asymptote/drawpath3.cc
+2022/09/17 | 5540 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
+2022/09/17 | 5537 | graphics/asymptote/examples/cpkcolors.asy
+2022/09/17 | 55320 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/09/17 | 5531 | graphics/asymptote/examples/filesurface.dat
+2022/09/17 | 5521 | graphics/asymptote/base/rational.asy
+2022/09/17 | 54 | graphics/asymptote/tests/gc/funcall.asy
+2022/09/17 | 54963 | graphics/asymptote/settings.cc
+2022/09/17 | 548 | graphics/asymptote/v3dtypes.h
+2022/09/17 | 548 | graphics/asymptote/examples/equilchord.asy
+2022/09/17 | 548 | graphics/asymptote/cudareflect/Makefile
+2022/09/17 | 547 | graphics/asymptote/examples/tetra.asy
+2022/09/17 | 5441 | graphics/asymptote/env.cc
+2022/09/17 | 542616 | systems/texlive/tlnet/archive/biblatex-philosophy.doc.r64414.tar.xz
+2022/09/17 | 5415 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfiles_test.py
+2022/09/17 | 5415 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
+2022/09/17 | 54109 | graphics/asymptote/optional.hpp
+2022/09/17 | 5375 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3-inl.h
+2022/09/17 | 5366 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
+2022/09/17 | 5360 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample3_unittest.cc
+2022/09/17 | 535 | graphics/asymptote/cudareflect/tinyexr/Makefile.llvm-mingw
+2022/09/17 | 5358 | graphics/asymptote/LspCpp/src/lsp/working_files.cpp
+2022/09/17 | 533 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
+2022/09/17 | 533 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_savedialog.c
+2022/09/17 | 53373 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-more-actions_test.cc
+2022/09/17 | 5323 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/exr2fptiff.cc
+2022/09/17 | 5319 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
+2022/09/17 | 530 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialog.c
+2022/09/17 | 5308 | graphics/asymptote/pair.h
+2022/09/17 | 52 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass2.json
+2022/09/17 | 52 | graphics/asymptote/doc/square.asy
+2022/09/17 | 5279 | graphics/asymptote/base/bsp.asy
+2022/09/17 | 527571 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/09/17 | 52750 | graphics/asymptote/cudareflect/tinyexr/test/unit/tester.cc
+2022/09/17 | 5272 | graphics/asymptote/GUI/labelEditor.py
+2022/09/17 | 5265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-message-test.cc
+2022/09/17 | 5262 | graphics/asymptote/patches/bison.patch
+2022/09/17 | 5262 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-cardinalities.cc
+2022/09/17 | 52627 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/09/17 | 525 | graphics/asymptote/examples/vectorfield3.asy
+2022/09/17 | 5259 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.png
+2022/09/17 | 5254 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest.py
+2022/09/17 | 5250 | graphics/asymptote/pipestream.cc
+2022/09/17 | 524 | graphics/asymptote/doc/brokenaxis.asy
+2022/09/17 | 5242 | graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
+2022/09/17 | 5238 | graphics/asymptote/base/animation.asy
+2022/09/17 | 52369 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/09/17 | 521 | graphics/asymptote/doc/Hobbycontrol.asy
+2022/09/17 | 5216 | graphics/asymptote/examples/mosaic.asy
+2022/09/17 | 520 | graphics/asymptote/examples/smoothelevation.asy
+2022/09/17 | 5204 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-bazel.md
+2022/09/17 | 52038 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/09/17 | 519 | graphics/asymptote/examples/extrudedcontour.asy
+2022/09/17 | 518 | graphics/asymptote/doc/CDlabel.asy
+2022/09/17 | 5183 | graphics/asymptote/stm.h
+2022/09/17 | 51671 | graphics/asymptote/prc/oPRCFile.h
+2022/09/17 | 5152 | graphics/asymptote/LspCpp/third_party/rapidjson/license.txt
+2022/09/17 | 513 | graphics/asymptote/examples/buildcycle.asy
+2022/09/17 | 51302 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-actions_test.cc
+2022/09/17 | 5129 | graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
+2022/09/17 | 5115 | graphics/asymptote/memory.h
+2022/09/17 | 5114 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h
+2022/09/17 | 511473 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
+2022/09/17 | 5111 | graphics/asymptote/runsystem.in
+2022/09/17 | 5111 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1_unittest.cc
+2022/09/17 | 510 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/README.md
+2022/09/17 | 50 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail18.json
+2022/09/17 | 50 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf16le.inc
+2022/09/17 | 50 | graphics/asymptote/base/babel.asy
+2022/09/17 | 509 | graphics/asymptote/examples/dimension.asy
+2022/09/17 | 509 | graphics/asymptote/cudareflect/tinyexr/Makefile
+2022/09/17 | 50934 | graphics/asymptote/runarray.in
+2022/09/17 | 506 | graphics/asymptote/examples/delu.asy
+2022/09/17 | 5064 | graphics/asymptote/runhistory.in
+2022/09/17 | 506313 | graphics/asymptote/libatomic_ops-7.6.12.tar.gz
+2022/09/17 | 5062 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/pkgconfig.md
+2022/09/17 | 5054 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/quickstart-cmake.md
+2022/09/17 | 504 | graphics/asymptote/absyn.cc
+2022/09/17 | 50437 | graphics/asymptote/gsl.cc
+2022/09/17 | 503 | graphics/asymptote/examples/animations/embeddedmovie.asy
+2022/09/17 | 503 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-63-tinyexr_signed-integer-overflow
+2022/09/17 | 500 | graphics/asymptote/examples/floor.asy
+2022/09/17 | 500 | graphics/asymptote/doc/Hobbydir.asy
+2022/09/17 | 5005 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.md
+2022/09/17 | 4 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail29.json
+2022/09/17 | 49 | graphics/asymptote/doc/quartercircle.asy
+2022/09/17 | 49 | graphics/asymptote/doc/dots.asy
+2022/09/17 | 49 | graphics/asymptote/doc/colons.asy
+2022/09/17 | 499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/libgtest.la.in
+2022/09/17 | 499 | graphics/asymptote/examples/galleon.asy
+2022/09/17 | 4992 | graphics/asymptote/base/tube.asy
+2022/09/17 | 498 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
+2022/09/17 | 498 | graphics/asymptote/examples/fano.asy
+2022/09/17 | 498 | graphics/asymptote/doc/penfunctionimage.asy
+2022/09/17 | 4985 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample10_unittest.cc
+2022/09/17 | 496 | graphics/asymptote/examples/bars3.asy
+2022/09/17 | 4963 | graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
+2022/09/17 | 495 | graphics/asymptote/examples/cones.asy
+2022/09/17 | 495 | graphics/asymptote/cudareflect/tinyexr/experimental/js/test.js
+2022/09/17 | 494 | graphics/asymptote/drawgrestore.h
+2022/09/17 | 494 | graphics/asymptote/cudareflect/tinyexr/experimental/js/compile_to_js.sh
+2022/09/17 | 4942 | graphics/asymptote/GUI/pyUIClass/widg_editBezier.py
+2022/09/17 | 492 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
+2022/09/17 | 491 | graphics/asymptote/LspCpp/third_party/rapidjson/test/CMakeLists.txt
+2022/09/17 | 4919 | graphics/asymptote/process.h
+2022/09/17 | 4904 | graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
+2022/09/17 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/09/17 | 489 | graphics/asymptote/patches/gc-7.0nomem.patch
+2022/09/17 | 489 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCompletionItem.h
+2022/09/17 | 4898 | graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
+2022/09/17 | 4896 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test.py
+2022/09/17 | 4895 | graphics/asymptote/fundec.h
+2022/09/17 | 488 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/implementation.h
+2022/09/17 | 48851 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/09/17 | 48847 | graphics/asymptote/doc/secondaryaxis.csv
+2022/09/17 | 487 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/shutdown.h
+2022/09/17 | 4873 | graphics/asymptote/parser.cc
+2022/09/17 | 4866 | graphics/asymptote/fileio.cc
+2022/09/17 | 4862 | graphics/asymptote/drawpath.cc
+2022/09/17 | 485 | graphics/asymptote/examples/cards.asy
+2022/09/17 | 48481 | graphics/asymptote/prc/writePRC.h
+2022/09/17 | 48441 | graphics/asymptote/config.guess
+2022/09/17 | 4841 | graphics/asymptote/tests/array/slice.asy
+2022/09/17 | 483 | graphics/asymptote/LspCpp/third_party/uri/test/string_utility.hpp
+2022/09/17 | 482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialized.h
+2022/09/17 | 481894 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/09/17 | 4811 | graphics/asymptote/base/x11colors.asy
+2022/09/17 | 480 | graphics/asymptote/doc/logimage.asy
+2022/09/17 | 4809 | graphics/asymptote/examples/interpolate1.asy
+2022/09/17 | 4807 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-port.h
+2022/09/17 | 4805 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/features.zh-cn.md
+2022/09/17 | 48038 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/09/17 | 479 | graphics/asymptote/examples/magnetic.asy
+2022/09/17 | 47993 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test-test.cc
+2022/09/17 | 4789 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
+2022/09/17 | 4787 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/README.md
+2022/09/17 | 476 | graphics/asymptote/GUI/configs/xasykeymap.cson
+2022/09/17 | 4766 | graphics/asymptote/GUI/xasyFile.py
+2022/09/17 | 4761 | graphics/asymptote/GUI/pyUIClass/widgetPointEditor.py
+2022/09/17 | 4760 | graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
+2022/09/17 | 47582 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-port.cc
+2022/09/17 | 475783 | graphics/asymptote/doc/png/asymptote.info
+2022/09/17 | 4738 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-360c3b0555cb979ca108f2d178cf8a80959cfeabaa4ec1d310d062fa653a8c6b_min
+2022/09/17 | 473703 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-1383755b301e5f505b2198dc0508918b537fdf48bbfc6deeffe268822e6f6cd6
+2022/09/17 | 473695 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-e7fa6404daa861369d2172fe68e08f9d38c0989f57da7bcfb510bab67e19ca9f
+2022/09/17 | 4735 | graphics/asymptote/array.cc
+2022/09/17 | 4733 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
+2022/09/17 | 4731 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/flaga.exr
+2022/09/17 | 4730 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
+2022/09/17 | 472 | graphics/asymptote/examples/colorplanes.asy
+2022/09/17 | 4727 | graphics/asymptote/doc/westnile.csv
+2022/09/17 | 4718 | graphics/asymptote/doc/FAQ/m-ascii.pl
+2022/09/17 | 4716 | graphics/asymptote/prc/PRCTools/makePRC.cc
+2022/09/17 | 469 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSONConfigVersion.cmake.in
+2022/09/17 | 46854 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-internal-inl.h
+2022/09/17 | 4668 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-list-tests-unittest_.cc
+2022/09/17 | 465 | graphics/asymptote/LspCpp/src/jsonrpc/threaded_queue.cpp
+2022/09/17 | 46531 | graphics/asymptote/base/plain_picture.asy
+2022/09/17 | 464 | graphics/asymptote/drawgsave.h
+2022/09/17 | 464 | graphics/asymptote/doc/GaussianSurface.asy
+2022/09/17 | 463 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/jsregex.json
+2022/09/17 | 4635 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/exrfilter.cc
+2022/09/17 | 4634 | macros/latex/contrib/calculator/README.md
+2022/09/17 | 4629 | graphics/asymptote/castop.h
+2022/09/17 | 4626 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_unchecked_api.cpp
+2022/09/17 | 4620 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample7_unittest.cc
+2022/09/17 | 4613 | graphics/asymptote/LspCpp/third_party/uri/deps/README.md
+2022/09/17 | 460 | graphics/asymptote/examples/lever.asy
+2022/09/17 | 460 | graphics/asymptote/examples/cosaddition.asy
+2022/09/17 | 4608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/format.json
+2022/09/17 | 4602 | graphics/asymptote/util.h
+2022/09/17 | 4602 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/README.md
+2022/09/17 | 459 | graphics/asymptote/examples/hierarchy.asy
+2022/09/17 | 4597 | graphics/asymptote/drawfill.cc
+2022/09/17 | 458 | graphics/asymptote/doc/multicontour.asy
+2022/09/17 | 4581 | graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
+2022/09/17 | 457 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
+2022/09/17 | 45796 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/09/17 | 4578 | graphics/asymptote/doc/FAQ/m-post.pl
+2022/09/17 | 4570 | graphics/asymptote/env.h
+2022/09/17 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/09/17 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/09/17 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/09/17 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/09/17 | 454 | graphics/asymptote/EXRFiles.h
+2022/09/17 | 45411 | graphics/asymptote/fftw++.h
+2022/09/17 | 453 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
+2022/09/17 | 4531 | graphics/asymptote/webgl/fragment.glsl
+2022/09/17 | 45222 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
+2022/09/17 | 4520 | graphics/asymptote/getopt1.c
+2022/09/17 | 4514 | graphics/asymptote/bbox.h
+2022/09/17 | 449 | graphics/asymptote/tests/arith/pair.asy
+2022/09/17 | 4487 | graphics/asymptote/base/plain_shipout.asy
+2022/09/17 | 4481 | graphics/asymptote/v3dfile.h
+2022/09/17 | 4474 | graphics/asymptote/GUI/windows/widg_editBezier.ui
+2022/09/17 | 4471 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-3f1f642c3356fd8e8d2a0787613ec09a56572b3a1e38c9629b6db9e8dead1117_min
+2022/09/17 | 44634 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.png
+2022/09/17 | 445 | graphics/asymptote/examples/sacone.asy
+2022/09/17 | 445 | graphics/asymptote/cudareflect/kernel.h
+2022/09/17 | 443 | graphics/asymptote/cudareflect/ReflectanceMapper.cuh
+2022/09/17 | 4438 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+2022/09/17 | 4438 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
+2022/09/17 | 442 | graphics/asymptote/doc/join3.asy
+2022/09/17 | 441 | graphics/asymptote/examples/triangles.asy
+2022/09/17 | 441 | graphics/asymptote/doc/histogram.asy
+2022/09/17 | 4416 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
+2022/09/17 | 43 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean_target.cmake
+2022/09/17 | 43 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail13.json
+2022/09/17 | 43 | graphics/asymptote/examples/spring2.asy
+2022/09/17 | 439 | graphics/asymptote/examples/gamma.asy
+2022/09/17 | 43889 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/09/17 | 4385 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/ref.json
+2022/09/17 | 4384 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.cpp
+2022/09/17 | 43830 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/testing.md
+2022/09/17 | 4381 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
+2022/09/17 | 437 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw
+2022/09/17 | 4375 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/draft-04/schema
+2022/09/17 | 4371 | graphics/asymptote/cudareflect/kernel.cu
+2022/09/17 | 436 | graphics/asymptote/examples/colorpatch.asy
+2022/09/17 | 43670 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.png
+2022/09/17 | 4366 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/ref.json
+2022/09/17 | 4362 | graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
+2022/09/17 | 43618 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/09/17 | 4357 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test.py
+2022/09/17 | 43527 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/09/17 | 4348 | graphics/asymptote/doc/colo-asy.tex
+2022/09/17 | 433 | graphics/asymptote/examples/twoSpheres.asy
+2022/09/17 | 4335 | graphics/asymptote/prc/PRCTools/describePRC.h
+2022/09/17 | 43335 | graphics/asymptote/examples/100d.pdb1
+2022/09/17 | 4313 | fonts/fira/latex/FiraMono.sty
+2022/09/17 | 430 | graphics/asymptote/examples/unitoctant.asy
+2022/09/17 | 42 | graphics/asymptote/base/animate.asy
+2022/09/17 | 428 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/symbol.h
+2022/09/17 | 4286 | graphics/asymptote/asy.ico
+2022/09/17 | 4285 | graphics/asymptote/newexp.cc
+2022/09/17 | 4283 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_premature_exit_test.cc
+2022/09/17 | 42828 | graphics/asymptote/picture.cc
+2022/09/17 | 427 | graphics/asymptote/examples/projectrevolution.asy
+2022/09/17 | 42714 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test-golden-lin.txt
+2022/09/17 | 426 | graphics/asymptote/examples/pathintersectsurface.asy
+2022/09/17 | 426 | graphics/asymptote/doc/grid3xyz.asy
+2022/09/17 | 4269 | graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
+2022/09/17 | 4254 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/readme.md
+2022/09/17 | 424 | graphics/asymptote/examples/spiral3.asy
+2022/09/17 | 4248 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
+2022/09/17 | 4247 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/prime_tables.h
+2022/09/17 | 4244 | graphics/asymptote/examples/fin.asy
+2022/09/17 | 4242 | graphics/asymptote/tests/types/keyword.asy
+2022/09/17 | 423 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake
+2022/09/17 | 423 | graphics/asymptote/doc/log2graph.asy
+2022/09/17 | 423 | graphics/asymptote/doc/helix.asy
+2022/09/17 | 4230 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/logo/rapidjson.svg
+2022/09/17 | 422 | graphics/asymptote/v3dtypes.csv
+2022/09/17 | 4227 | graphics/asymptote/LspCpp/third_party/uri/src/uri_builder.cpp
+2022/09/17 | 421008 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64410.tar.xz
+2022/09/17 | 420 | graphics/asymptote/examples/PythagoreanTree.asy
+2022/09/17 | 4209 | graphics/asymptote/flatguide.h
+2022/09/17 | 4207 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-port-arch.h
+2022/09/17 | 4202 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/guids.json
+2022/09/17 | 41 | graphics/asymptote/doc/bigdiagonal.asy
+2022/09/17 | 41 | graphics/asymptote/cudareflect/tinyexr/jni/Application.mk
+2022/09/17 | 419 | graphics/asymptote/examples/torus.asy
+2022/09/17 | 419 | graphics/asymptote/base/shaders/compress.glsl
+2022/09/17 | 418 | graphics/asymptote/examples/planeproject.asy
+2022/09/17 | 417 | graphics/asymptote/doc/knots.asy
+2022/09/17 | 4173 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test.py
+2022/09/17 | 4172 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example6.c
+2022/09/17 | 416 | graphics/asymptote/doc/bezier2.asy
+2022/09/17 | 4166 | graphics/asymptote/GUI/windows/widgetPointEditor.ui
+2022/09/17 | 4160 | graphics/asymptote/LspCpp/third_party/uri/deps/ci/linux-presubmit.sh
+2022/09/17 | 415 | graphics/asymptote/doc/linetype.asy
+2022/09/17 | 4158 | graphics/asymptote/examples/advection.asy
+2022/09/17 | 4156 | graphics/asymptote/runpair.in
+2022/09/17 | 41517 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.png
+2022/09/17 | 414 | graphics/asymptote/examples/animations/glmovie.asy
+2022/09/17 | 413 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
+2022/09/17 | 4131 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
+2022/09/17 | 4126 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-test-part.cc
+2022/09/17 | 411 | graphics/asymptote/examples/animations/externalmovie.asy
+2022/09/17 | 41190 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/09/17 | 4118 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lru_cache.h
+2022/09/17 | 41178 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/09/17 | 4116 | graphics/asymptote/cudareflect/tinyexr/test/exrwrite/exrwritetest.cpp
+2022/09/17 | 410 | graphics/asymptote/examples/Sierpinski.asy
+2022/09/17 | 40 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail32.json
+2022/09/17 | 40998 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.cc
+2022/09/17 | 40899 | graphics/asymptote/doc/FAQ/asy-faq.bfnn
+2022/09/17 | 4088 | graphics/asymptote/base/plain_boxes.asy
+2022/09/17 | 40876 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-port-test.cc
+2022/09/17 | 407 | graphics/asymptote/examples/parametricsurface.asy
+2022/09/17 | 407 | graphics/asymptote/examples/BezierPatch.asy
+2022/09/17 | 407 | graphics/asymptote/cudareflect/tinyexr/Makefile.gcc-mingw-msys
+2022/09/17 | 4072 | graphics/asymptote/tests/types/order.asy
+2022/09/17 | 4067 | graphics/asymptote/doc/diatom.csv
+2022/09/17 | 40665 | graphics/asymptote/examples/tvgen.asy
+2022/09/17 | 4051 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
+2022/09/17 | 4021 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
+2022/09/17 | 40200 | systems/texlive/tlnet/archive/biblatex-philosophy.source.r64414.tar.xz
+2022/09/17 | 401 | graphics/asymptote/doc/image.asy
+2022/09/17 | 401 | graphics/asymptote/cudareflect/tinyexr/test/unit/README.md
+2022/09/17 | 400 | graphics/asymptote/examples/sacylinder.asy
+2022/09/17 | 400 | graphics/asymptote/cudareflect/tinyexr/test/unit/Makefile
+2022/09/17 | 4007 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
+2022/09/17 | 39 | graphics/asymptote/base/nopapersize.ps
+2022/09/17 | 398 | graphics/asymptote/examples/epix.asy
+2022/09/17 | 396 | graphics/asymptote/doc/triangulate.asy
+2022/09/17 | 396 | graphics/asymptote/doc/legend.asy
+2022/09/17 | 3968 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
+2022/09/17 | 3967 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
+2022/09/17 | 395 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/2by2.exr
+2022/09/17 | 395983 | graphics/asymptote/doc/asymptote.texi
+2022/09/17 | 3956 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/itoatest.cpp
+2022/09/17 | 39458 | graphics/asymptote/cudareflect/tinyexr/examples/common/cxxopts.hpp
+2022/09/17 | 394143 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/09/17 | 393 | graphics/asymptote/GUI/setup.py
+2022/09/17 | 3936 | graphics/asymptote/base/interpolate.asy
+2022/09/17 | 3917 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2_unittest.cc
+2022/09/17 | 3915 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
+2022/09/17 | 3912 | graphics/asymptote/tr.h
+2022/09/17 | 390 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
+2022/09/17 | 390 | graphics/asymptote/doc/tile.asy
+2022/09/17 | 38 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail26.json
+2022/09/17 | 38 | graphics/asymptote/examples/spring0.asy
+2022/09/17 | 388 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/common.h
+2022/09/17 | 3870 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_path_test.cpp
+2022/09/17 | 3857 | graphics/asymptote/examples/pipes.asy
+2022/09/17 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/zeroTerminatedFloats.json
+2022/09/17 | 384 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/zeroTerminatedFloats.json
+2022/09/17 | 384 | graphics/asymptote/examples/RiemannSurfaceRoot.asy
+2022/09/17 | 384 | graphics/asymptote/Delaunay.h
+2022/09/17 | 3842 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_assert_by_exception_test.cc
+2022/09/17 | 383 | graphics/asymptote/tests/arith/real.asy
+2022/09/17 | 383 | graphics/asymptote/examples/Gouraud.asy
+2022/09/17 | 382 | graphics/asymptote/doc/loggrid.asy
+2022/09/17 | 37 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail3.json
+2022/09/17 | 37991 | graphics/asymptote/path3.cc
+2022/09/17 | 3790199 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/deepview_screencast.gif
+2022/09/17 | 378 | graphics/asymptote/examples/sinxlex.asy
+2022/09/17 | 378 | graphics/asymptote/doc/icon.asy
+2022/09/17 | 37889 | graphics/asymptote/exp.cc
+2022/09/17 | 3780 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-typed-test.cc
+2022/09/17 | 376 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
+2022/09/17 | 376 | graphics/asymptote/examples/sphericalharmonic.asy
+2022/09/17 | 376 | graphics/asymptote/doc/generalaxis3.asy
+2022/09/17 | 376913 | graphics/asymptote/cudareflect/tinyexr/test/unit/catch.hpp
+2022/09/17 | 37685 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image_write.h
+2022/09/17 | 3767 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_test_macro_stack_footprint_test.cc
+2022/09/17 | 3765 | graphics/asymptote/prc/PRCdouble.h
+2022/09/17 | 375 | graphics/asymptote/examples/AiryDisk.asy
+2022/09/17 | 3750 | macros/generic/unicode-data/load-unicode-math-classes.tex
+2022/09/17 | 37506 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/09/17 | 374 | graphics/asymptote/doc/monthaxis.asy
+2022/09/17 | 373 | graphics/asymptote/examples/projectelevation.asy
+2022/09/17 | 373 | graphics/asymptote/doc/lineargraph.asy
+2022/09/17 | 3739 | graphics/asymptote/examples/xstitch.asy
+2022/09/17 | 3737 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindSanitizers.cmake
+2022/09/17 | 3733 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/cursorstreamwrappertest.cpp
+2022/09/17 | 37281 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.png
+2022/09/17 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-matchers.cc
+2022/09/17 | 3723 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock.h
+2022/09/17 | 3719 | graphics/asymptote/base/three_light.asy
+2022/09/17 | 37135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/tiny_dng_writer.h
+2022/09/17 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16lebom.json
+2022/09/17 | 370 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16bebom.json
+2022/09/17 | 3706 | graphics/asymptote/base/plain_constants.asy
+2022/09/17 | 3704 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-env-var-test_.cc
+2022/09/17 | 37049 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/09/17 | 369 | graphics/asymptote/tests/gs/ghostscript.asy
+2022/09/17 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16le.json
+2022/09/17 | 368 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf16be.json
+2022/09/17 | 3676 | graphics/asymptote/constructor.cc
+2022/09/17 | 366 | graphics/asymptote/doc/lineargraph0.asy
+2022/09/17 | 366 | graphics/asymptote/cudareflect/tinyexr.cc
+2022/09/17 | 36540 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-printers.h
+2022/09/17 | 36526 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.cpp
+2022/09/17 | 3640 | graphics/asymptote/bbox3.h
+2022/09/17 | 363 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/npm.md
+2022/09/17 | 3637 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
+2022/09/17 | 36371 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.png
+2022/09/17 | 3634 | graphics/asymptote/GLTextures.h
+2022/09/17 | 362 | graphics/asymptote/examples/pipeintersection.asy
+2022/09/17 | 36243 | graphics/asymptote/prc/test.cc
+2022/09/17 | 361 | graphics/asymptote/GUI/res/icons/anchor.svg
+2022/09/17 | 361 | graphics/asymptote/examples/phase.asy
+2022/09/17 | 3616 | graphics/asymptote/GUI/UndoRedoStack.py
+2022/09/17 | 36152 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test_.cc
+2022/09/17 | 360 | graphics/asymptote/examples/washer.asy
+2022/09/17 | 3601 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-death-test_ex_test.cc
+2022/09/17 | 3601 | graphics/asymptote/cudareflect/tinyexr/test/exrcat/exrcat.cpp
+2022/09/17 | 35 | graphics/asymptote/base/fontsize.asy
+2022/09/17 | 3592 | graphics/asymptote/GUI/CustMatTransform.py
+2022/09/17 | 357 | graphics/asymptote/doc/irregularcontour.asy
+2022/09/17 | 3567 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
+2022/09/17 | 3563 | graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
+2022/09/17 | 355 | graphics/asymptote/LspCpp/third_party/rapidjson/library.json
+2022/09/17 | 355 | graphics/asymptote/doc/scaledgraph.asy
+2022/09/17 | 3553 | graphics/asymptote/shaders.cc
+2022/09/17 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest_main.pc.in
+2022/09/17 | 354 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock_main.pc.in
+2022/09/17 | 354 | graphics/asymptote/doc/reloadpdf.tex
+2022/09/17 | 354 | graphics/asymptote/doc/planes.asy
+2022/09/17 | 354 | graphics/asymptote/base/pstoedit.asy
+2022/09/17 | 35461 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
+2022/09/17 | 3533 | graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
+2022/09/17 | 352 | graphics/asymptote/examples/cylinder.asy
+2022/09/17 | 3526 | macros/latex/required/babel/base/bbidxglo.dtx
+2022/09/17 | 35265 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/09/17 | 352464 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/09/17 | 35230 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/09/17 | 35217 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-param-util.h
+2022/09/17 | 351 | graphics/asymptote/examples/vectorfieldsphere.asy
+2022/09/17 | 3517 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-pp_test.cc
+2022/09/17 | 35147 | graphics/asymptote/LICENSE
+2022/09/17 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail17.json
+2022/09/17 | 34 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail15.json
+2022/09/17 | 34 | graphics/asymptote/examples/teapotIBL.asy
+2022/09/17 | 34 | graphics/asymptote/autogen.sh
+2022/09/17 | 349 | graphics/asymptote/examples/logdown.asy
+2022/09/17 | 348 | graphics/asymptote/examples/RiemannSurface.asy
+2022/09/17 | 3480 | graphics/asymptote/build-scripts/build-asymptote.dos
+2022/09/17 | 347 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/cmake/gmock.pc.in
+2022/09/17 | 3477 | graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
+2022/09/17 | 3472 | graphics/asymptote/picture.h
+2022/09/17 | 3467 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/webapp.json
+2022/09/17 | 3466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest_.cc
+2022/09/17 | 345 | graphics/asymptote/examples/rainbow.asy
+2022/09/17 | 3453 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
+2022/09/17 | 3441 | graphics/asymptote/rounding.h
+2022/09/17 | 343 | graphics/asymptote/doc/externalprc.tex
+2022/09/17 | 3437 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
+2022/09/17 | 34316 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.mm
+2022/09/17 | 342 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/community_created_documentation.md
+2022/09/17 | 342 | graphics/asymptote/lexical.h
+2022/09/17 | 341 | graphics/asymptote/examples/slidedemo_.bbl
+2022/09/17 | 341 | graphics/asymptote/examples/sacylinder3D.asy
+2022/09/17 | 341 | graphics/asymptote/doc/subpictures.asy
+2022/09/17 | 3419 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-matchers.h
+2022/09/17 | 3419 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
+2022/09/17 | 3407 | graphics/asymptote/LspCpp/third_party/rapidjson/rapidjson.autopkg
+2022/09/17 | 33 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail22.json
+2022/09/17 | 339 | graphics/asymptote/cudareflect/tinyexr/test/CMakeLists.txt
+2022/09/17 | 3392 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_throw_on_failure_ex_test.cc
+2022/09/17 | 33862 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/09/17 | 33764 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/paragraphs.json
+2022/09/17 | 3375 | graphics/asymptote/tests/types/guide.asy
+2022/09/17 | 3374 | graphics/asymptote/base/roundedpath.asy
+2022/09/17 | 33741 | graphics/asymptote/LspCpp/src/lsp/Markup.cpp
+2022/09/17 | 33667 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-function-mocker_test.cc
+2022/09/17 | 3365 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/patternProperties.json
+2022/09/17 | 3365 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/patternProperties.json
+2022/09/17 | 335 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/tiled_half_1x1_alpha.exr
+2022/09/17 | 3358 | graphics/asymptote/examples/slidedemo.asy
+2022/09/17 | 33482 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-spec-builders.cc
+2022/09/17 | 3346 | graphics/asymptote/base/shaders/blend.glsl
+2022/09/17 | 33417 | graphics/asymptote/path.cc
+2022/09/17 | 333 | graphics/asymptote/doc/asy.1.end
+2022/09/17 | 3335 | graphics/asymptote/examples/pdb.asy
+2022/09/17 | 33296 | graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
+2022/09/17 | 33240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-matchers.h
+2022/09/17 | 3305 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
+2022/09/17 | 32 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail21.json
+2022/09/17 | 3297 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
+2022/09/17 | 3297 | graphics/asymptote/access.cc
+2022/09/17 | 3295 | graphics/asymptote/stack.h
+2022/09/17 | 3294 | graphics/asymptote/LspCpp/third_party/rapidjson/travis-doxygen.sh
+2022/09/17 | 32887 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.png
+2022/09/17 | 3284 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/trackball.h
+2022/09/17 | 3282 | graphics/asymptote/LspCpp/third_party/uri/CMakeLists.txt
+2022/09/17 | 3280 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_ex_test.cc
+2022/09/17 | 327 | graphics/asymptote/examples/sin1x.asy
+2022/09/17 | 327 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/piz-bug-issue-100.exr
+2022/09/17 | 3278 | graphics/asymptote/base/obj.asy
+2022/09/17 | 326 | graphics/asymptote/examples/polardatagraph.asy
+2022/09/17 | 326 | graphics/asymptote/examples/animations/pdfmovie.asy
+2022/09/17 | 3267 | graphics/asymptote/GUI/Widg_addLabel.py
+2022/09/17 | 3266 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/BUILD.bazel
+2022/09/17 | 3265 | graphics/asymptote/program.cc
+2022/09/17 | 325 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/listOverridableMethods.h
+2022/09/17 | 325 | graphics/asymptote/examples/elevation.asy
+2022/09/17 | 325980 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/09/17 | 325484 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/09/17 | 324 | graphics/asymptote/doc/HermiteSpline.asy
+2022/09/17 | 3240 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-break-on-failure-unittest_.cc
+2022/09/17 | 323 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/README.md
+2022/09/17 | 3230 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_leak_test_.cc
+2022/09/17 | 322 | graphics/asymptote/examples/unitcircle.asy
+2022/09/17 | 322 | graphics/asymptote/examples/cheese.asy
+2022/09/17 | 3219 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test_.cc
+2022/09/17 | 3218 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_test_utils.py
+2022/09/17 | 321820 | graphics/asymptote/base/geometry.asy
+2022/09/17 | 320 | graphics/asymptote/runtriple.h
+2022/09/17 | 320 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/Move.h
+2022/09/17 | 32074 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/09/17 | 3204 | graphics/asymptote/asymptote.spec
+2022/09/17 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail14.json
+2022/09/17 | 31 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail12.json
+2022/09/17 | 31 | graphics/asymptote/cudareflect/tinyexr/test/unit/win32-filelist-utf8.inc
+2022/09/17 | 319 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8bom.json
+2022/09/17 | 319839 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/miniz.c
+2022/09/17 | 3197 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_list_output_unittest_.cc
+2022/09/17 | 318 | graphics/asymptote/patches/gcc3.3.2curses.patch
+2022/09/17 | 317 | graphics/asymptote/cudareflect/tinyexr/vcbuild.bat
+2022/09/17 | 316 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/encodings/utf8.json
+2022/09/17 | 31609 | graphics/asymptote/config.sub
+2022/09/17 | 315 | graphics/asymptote/examples/hyperboloid.asy
+2022/09/17 | 31585 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/09/17 | 3157 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/address.json
+2022/09/17 | 31563 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/09/17 | 3153 | graphics/asymptote/genv.cc
+2022/09/17 | 3151 | fonts/fira/README
+2022/09/17 | 314 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-generated-actions.h
+2022/09/17 | 314 | graphics/asymptote/doc/logticks.asy
+2022/09/17 | 314 | graphics/asymptote/base/graph_settings.asy
+2022/09/17 | 3141 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
+2022/09/17 | 3139 | graphics/asymptote/LspCpp/third_party/uri/test/uri_comparison_test.cpp
+2022/09/17 | 3139 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/dependencies.json
+2022/09/17 | 3135 | graphics/asymptote/cudareflect/tinyexr/examples/exr2ldr/exr2ldr.cc
+2022/09/17 | 31342 | graphics/asymptote/builtin.cc
+2022/09/17 | 312 | graphics/asymptote/examples/textpath.asy
+2022/09/17 | 3125 | graphics/asymptote/doc/latexusage.tex
+2022/09/17 | 311 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/gtest.pc.in
+2022/09/17 | 3119 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
+2022/09/17 | 3109 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example1.c
+2022/09/17 | 309 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/projectConfigurationUpdate.h
+2022/09/17 | 30920 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-more-actions.h
+2022/09/17 | 308 | graphics/asymptote/tests/types/shadow.asy
+2022/09/17 | 308 | graphics/asymptote/tests/Makefile
+2022/09/17 | 308 | graphics/asymptote/examples/oneoverx.asy
+2022/09/17 | 3075 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/optional/bignum.json
+2022/09/17 | 3075 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/optional/bignum.json
+2022/09/17 | 30730 | graphics/asymptote/LspCpp/src/lsp/lsp.cpp
+2022/09/17 | 306 | graphics/asymptote/doc/binarytreetest.asy
+2022/09/17 | 3069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-throw-on-failure-test_.cc
+2022/09/17 | 3063 | graphics/asymptote/LspCpp/third_party/uri/src/detail/grammar.hpp
+2022/09/17 | 30638 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
+2022/09/17 | 3060 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/CMakeLists.txt
+2022/09/17 | 30570 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/09/17 | 303 | graphics/asymptote/examples/tensor.asy
+2022/09/17 | 3036 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp11.cpp
+2022/09/17 | 3036 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
+2022/09/17 | 30307 | graphics/asymptote/exp.h
+2022/09/17 | 3025 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-assertion-result.cc
+2022/09/17 | 3025 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/allOf.json
+2022/09/17 | 3024 | graphics/asymptote/drawimage.h
+2022/09/17 | 3023 | graphics/asymptote/doc/Makefile.in
+2022/09/17 | 30208 | graphics/asymptote/prc/PRC.h
+2022/09/17 | 301 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/organizeImports.h
+2022/09/17 | 301 | graphics/asymptote/base/shaders/count.glsl
+2022/09/17 | 30147 | graphics/asymptote/getopt.c
+2022/09/17 | 3014186 | install/macros/latex/required/babel-base.tds.zip
+2022/09/17 | 3011 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock_main.cc
+2022/09/17 | 300 | graphics/asymptote/examples/strokepath.asy
+2022/09/17 | 30003 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/alotofkeys.json
+2022/09/17 | 2 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/progress.marks
+2022/09/17 | 2 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/progress.marks
+2022/09/17 | 29 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail25.json
+2022/09/17 | 29 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail11.json
+2022/09/17 | 299 | graphics/asymptote/runpair.h
+2022/09/17 | 2996 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
+2022/09/17 | 29900 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/faq.md
+2022/09/17 | 298 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-5ace655ef080932dcc7e4abc9eab1d4f82c845453464993dfa3eb6c5822a1621
+2022/09/17 | 2989 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/dependencies.json
+2022/09/17 | 2982 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2.h
+2022/09/17 | 297 | graphics/asymptote/build-scripts/README-binaries
+2022/09/17 | 2979 | graphics/asymptote/doc/diatom.asy
+2022/09/17 | 2974 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
+2022/09/17 | 2969 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
+2022/09/17 | 2964 | graphics/asymptote/access.h
+2022/09/17 | 2960 | graphics/asymptote/material.h
+2022/09/17 | 2960 | graphics/asymptote/GUI/pyUIClass/widg_addPolyOpt.py
+2022/09/17 | 295946 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/09/17 | 294 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/classFileContents.h
+2022/09/17 | 294 | graphics/asymptote/guideflags.h
+2022/09/17 | 2948 | graphics/asymptote/GUI/pyUIClass/setCustomAnchor.py
+2022/09/17 | 2941 | graphics/asymptote/GUI/windows/widg_addPolyOpt.ui
+2022/09/17 | 293 | graphics/asymptote/doc/makepen.asy
+2022/09/17 | 2939 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/CommonWindowInterface.h
+2022/09/17 | 293655 | graphics/asymptote/configure
+2022/09/17 | 293348 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/09/17 | 293284 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/09/17 | 29242 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
+2022/09/17 | 29203 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_for_dummies.md
+2022/09/17 | 291 | graphics/asymptote/examples/trumpet.asy
+2022/09/17 | 29193 | graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
+2022/09/17 | 2915 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_sass/main.scss
+2022/09/17 | 2901 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
+2022/09/17 | 28 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/requirements.txt
+2022/09/17 | 289 | graphics/asymptote/examples/jump.asy
+2022/09/17 | 289 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/README.md
+2022/09/17 | 289 | graphics/asymptote/base/res/notes.txt
+2022/09/17 | 288 | graphics/asymptote/examples/sacone3D.asy
+2022/09/17 | 288 | graphics/asymptote/doc/mexicanhat.asy
+2022/09/17 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/properties.json
+2022/09/17 | 2881 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/properties.json
+2022/09/17 | 2880 | graphics/asymptote/drawgroup.h
+2022/09/17 | 287695 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-matchers_test.cc
+2022/09/17 | 2868 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
+2022/09/17 | 286684 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/09/17 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/09/17 | 284 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/Config.cmake.in
+2022/09/17 | 284 | graphics/asymptote/GUI/res/icons/text.svg
+2022/09/17 | 283 | graphics/asymptote/cudareflect/tinyexr/test/c-binding/test.c
+2022/09/17 | 28328 | graphics/asymptote/symbolmaps.h
+2022/09/17 | 2830 | graphics/asymptote/examples/alignedaxis.asy
+2022/09/17 | 2821672 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/09/17 | 28158 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/uritest.cpp
+2022/09/17 | 2814 | graphics/asymptote/LspCpp/third_party/rapidjson/example/messagereader/messagereader.cpp
+2022/09/17 | 2813 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test2-test.cc
+2022/09/17 | 28114 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-internal-utils_test.cc
+2022/09/17 | 2804 | graphics/asymptote/LspCpp/src/jsonrpc/message.cpp
+2022/09/17 | 2800 | graphics/asymptote/doc/asycolors.sty
+2022/09/17 | 279 | graphics/asymptote/doc/hatch.asy
+2022/09/17 | 27958 | graphics/asymptote/pen.h
+2022/09/17 | 2787 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
+2022/09/17 | 277 | graphics/asymptote/LspCpp/src/jsonrpc/GCThreadContext.cpp
+2022/09/17 | 277 | graphics/asymptote/doc/generalaxis.asy
+2022/09/17 | 2776 | graphics/asymptote/symbol.h
+2022/09/17 | 2772 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.c
+2022/09/17 | 2771 | graphics/asymptote/doc/pixel.pdf
+2022/09/17 | 276 | graphics/asymptote/tests/bench/6000circles.asy
+2022/09/17 | 2766 | graphics/asymptote/lnkX64IconFix.nsh
+2022/09/17 | 27463 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/09/17 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalProperties.json
+2022/09/17 | 2745 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalProperties.json
+2022/09/17 | 2741 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/findOpenGLGlewGlut.lua
+2022/09/17 | 2732 | graphics/asymptote/record.h
+2022/09/17 | 2731 | graphics/asymptote/tests/types/resolve.asy
+2022/09/17 | 2721 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
+2022/09/17 | 271 | graphics/asymptote/patches/gc6.8_AIX.patch
+2022/09/17 | 2709 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
+2022/09/17 | 2707 | graphics/asymptote/settings.h
+2022/09/17 | 2707 | graphics/asymptote/runtriple.in
+2022/09/17 | 270497 | graphics/asymptote/cudareflect/tinyexr/tinyexr.h
+2022/09/17 | 270465 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/09/17 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail7.json
+2022/09/17 | 26 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail6.json
+2022/09/17 | 26 | graphics/asymptote/doc/filegraph.dat
+2022/09/17 | 26 | graphics/asymptote/_config.yml
+2022/09/17 | 269 | graphics/asymptote/runmath.h
+2022/09/17 | 26982931 | install/fonts/fira.tds.zip
+2022/09/17 | 2697 | graphics/asymptote/table.h
+2022/09/17 | 268 | graphics/asymptote/base/asy-init.el
+2022/09/17 | 26844 | graphics/asymptote/runpath.cc
+2022/09/17 | 2682 | graphics/asymptote/LspCpp/third_party/uri/test/uri_reference_test.cpp
+2022/09/17 | 26817 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
+2022/09/17 | 26811105 | fonts/fira.zip
+2022/09/17 | 2680 | graphics/asymptote/examples/soccerball.asy
+2022/09/17 | 267 | graphics/asymptote/examples/hyperboloidsilhouette.asy
+2022/09/17 | 2675 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example4.c
+2022/09/17 | 2674 | graphics/asymptote/doc/markers1.asy
+2022/09/17 | 26693 | graphics/asymptote/dec.cc
+2022/09/17 | 26690 | macros/generic/unicode-data/BidiMirroring.txt
+2022/09/17 | 26640414 | graphics/asymptote.zip
+2022/09/17 | 2662 | graphics/asymptote/LspCpp/third_party/rapidjson/appveyor.yml
+2022/09/17 | 2661 | graphics/asymptote/runbacktrace.cc
+2022/09/17 | 2653 | graphics/asymptote/doc/TeXShopAndAsymptote.tex
+2022/09/17 | 2650 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
+2022/09/17 | 264 | graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
+2022/09/17 | 264 | graphics/asymptote/examples/labelbox.asy
+2022/09/17 | 264 | graphics/asymptote/examples/coag.asy
+2022/09/17 | 2649 | graphics/asymptote/base/patterns.asy
+2022/09/17 | 264306 | macros/latex/contrib/verifiche/verifiche-example.pdf
+2022/09/17 | 2642 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
+2022/09/17 | 2631 | graphics/asymptote/GUI/windows/setCustomAnchor.ui
+2022/09/17 | 2630556 | systems/texlive/tlnet/archive/simpleicons.r64413.tar.xz
+2022/09/17 | 262 | graphics/asymptote/doc/loggraph.asy
+2022/09/17 | 2626 | graphics/asymptote/examples/worldmap.asy
+2022/09/17 | 2623 | graphics/asymptote/jsfile.h
+2022/09/17 | 261 | graphics/asymptote/doc/join.asy
+2022/09/17 | 261756 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_unittest.cc
+2022/09/17 | 2614 | graphics/asymptote/pipestream.h
+2022/09/17 | 2613 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/uniqueItems.json
+2022/09/17 | 2613 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/uniqueItems.json
+2022/09/17 | 2611 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_cpp17.cpp
+2022/09/17 | 26102 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
+2022/09/17 | 260 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
+2022/09/17 | 2608 | graphics/asymptote/LspCpp/third_party/uri/deps/ci/macos-presubmit.sh
+2022/09/17 | 2605 | macros/latex/required/babel/base/README.md
+2022/09/17 | 2605 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/premake4.lua
+2022/09/17 | 2603 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/rapidjson.natvis
+2022/09/17 | 260289 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image.h
+2022/09/17 | 25 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/integer.json
+2022/09/17 | 25 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/folder/folderInteger.json
+2022/09/17 | 25 | graphics/asymptote/cudareflect/tinyexr/experimental/js/Makefile
+2022/09/17 | 2598 | graphics/asymptote/cudareflect/simpson.cuh
+2022/09/17 | 2591 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/extends.json
+2022/09/17 | 2578 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_scheme_test.cpp
+2022/09/17 | 2576 | graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
+2022/09/17 | 25701 | graphics/asymptote/runpath3d.cc
+2022/09/17 | 256 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/footer.html
+2022/09/17 | 256 | graphics/asymptote/doc/shadedtiling.asy
+2022/09/17 | 25651 | graphics/asymptote/bezierpatch.cc
+2022/09/17 | 2561 | graphics/asymptote/program.h
+2022/09/17 | 25589 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
+2022/09/17 | 2555 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindTSan.cmake
+2022/09/17 | 2554 | graphics/asymptote/cudareflect/tinyexr/examples/ldr2exr/ldr2exr.cc
+2022/09/17 | 25516573 | systems/texlive/tlnet/install-tl.zip
+2022/09/17 | 25503 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-function-mocker.h
+2022/09/17 | 254 | graphics/asymptote/examples/parametricelevation.asy
+2022/09/17 | 254 | graphics/asymptote/examples/contextfonts.asy
+2022/09/17 | 2543 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32Window.h
+2022/09/17 | 2542 | graphics/asymptote/policy.h
+2022/09/17 | 25357 | graphics/asymptote/base/lmfit.asy
+2022/09/17 | 2534 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
+2022/09/17 | 2527 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
+2022/09/17 | 2526 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
+2022/09/17 | 252536 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest.cc
+2022/09/17 | 251 | graphics/asymptote/examples/triceratops.asy
+2022/09/17 | 251 | graphics/asymptote/base/metapost.asy
+2022/09/17 | 2518 | graphics/asymptote/prc/PRCbitStream.h
+2022/09/17 | 25154 | graphics/asymptote/doc/extra/intro.asy
+2022/09/17 | 2514 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h
+2022/09/17 | 2514 | graphics/asymptote/cudareflect/EXRFiles.cc
+2022/09/17 | 25119 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/09/17 | 250 | graphics/asymptote/examples/transparentCubes.asy
+2022/09/17 | 2505 | graphics/asymptote/README
+2022/09/17 | 2505 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-color-test_.cc
+2022/09/17 | 2505 | graphics/asymptote/binaries/x86_64-windows/README
+2022/09/17 | 2505 | graphics/asymptote/binaries/i386-windows/README
+2022/09/17 | 2504 | graphics/asymptote/examples/mosquito.asy
+2022/09/17 | 24 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail5.json
+2022/09/17 | 24 | graphics/asymptote/doc/diagonal.asy
+2022/09/17 | 2499 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_prod.h
+2022/09/17 | 2496 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_testbridge_test.py
+2022/09/17 | 2495 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test.py
+2022/09/17 | 2492 | graphics/asymptote/base/three_margins.asy
+2022/09/17 | 24924 | graphics/asymptote/examples/uhrturm.obj
+2022/09/17 | 248 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/exr-io.h
+2022/09/17 | 2481 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
+2022/09/17 | 248086 | macros/generic/unicode-data/LineBreak.txt
+2022/09/17 | 2479 | graphics/asymptote/cudareflect/tinyexr/CMakeLists.txt
+2022/09/17 | 24784 | graphics/asymptote/symbolmaps.cc
+2022/09/17 | 2477 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/SConstruct
+2022/09/17 | 247209 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/09/17 | 2471 | graphics/asymptote/build-scripts/build-asymptote
+2022/09/17 | 24712 | graphics/asymptote/drawsurface.cc
+2022/09/17 | 2470 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.cc
+2022/09/17 | 246 | graphics/asymptote/doc/axis3.asy
+2022/09/17 | 245 | graphics/asymptote/examples/alignbox.asy
+2022/09/17 | 2459 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+2022/09/17 | 24589 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
+2022/09/17 | 2451 | graphics/asymptote/base/labelpath3.asy
+2022/09/17 | 245151 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/09/17 | 244 | graphics/asymptote/tests/arith/triple.asy
+2022/09/17 | 24483 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-json-output-unittest.py
+2022/09/17 | 24474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-listener-test.cc
+2022/09/17 | 2445 | graphics/asymptote/GUI/PrimitiveShape.py
+2022/09/17 | 243 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
+2022/09/17 | 243 | graphics/asymptote/doc/cube.asy
+2022/09/17 | 242 | graphics/asymptote/LspCpp/third_party/rapidjson/test/valgrind.supp
+2022/09/17 | 242 | graphics/asymptote/examples/equilateral.asy
+2022/09/17 | 242 | graphics/asymptote/cudareflect/tinyexr/appveyor.yml
+2022/09/17 | 242 | graphics/asymptote/BUGS
+2022/09/17 | 2424 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/WebSocketServer.h
+2022/09/17 | 24210 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/09/17 | 241 | graphics/asymptote/cudareflect/common.h
+2022/09/17 | 2418 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
+2022/09/17 | 2411 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_check_output_test.py
+2022/09/17 | 2411 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_json_test_utils.py
+2022/09/17 | 240 | graphics/asymptote/doc/parametricgraph.asy
+2022/09/17 | 24091 | graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
+2022/09/17 | 2407 | graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
+2022/09/17 | 2407272 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/09/17 | 2403 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_no_test_unittest.cc
+2022/09/17 | 2400 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test.py
+2022/09/17 | 24004 | macros/generic/unicode-data/BidiMirroring-5-1-0.txt
+2022/09/17 | 23 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail20.json
+2022/09/17 | 23 | graphics/asymptote/GUI/__init__.py
+2022/09/17 | 2398 | graphics/asymptote/examples/SierpinskiSponge.asy
+2022/09/17 | 2396 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.h
+2022/09/17 | 2396 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
+2022/09/17 | 23950 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/09/17 | 23904 | graphics/asymptote/process.cc
+2022/09/17 | 238 | graphics/asymptote/tests/TestLib.asy
+2022/09/17 | 238 | graphics/asymptote/GUI/xasyValidator.py
+2022/09/17 | 238 | graphics/asymptote/doc/filegraph.asy
+2022/09/17 | 2378 | graphics/asymptote/profile.py
+2022/09/17 | 2374 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
+2022/09/17 | 23717 | graphics/asymptote/base/three_arrows.asy
+2022/09/17 | 236 | graphics/asymptote/tests/string/erase.asy
+2022/09/17 | 236 | graphics/asymptote/examples/annotation.asy
+2022/09/17 | 2362 | graphics/asymptote/examples/spectrum.asy
+2022/09/17 | 235 | graphics/asymptote/examples/cos2theta.asy
+2022/09/17 | 235 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/shader.frag
+2022/09/17 | 23567 | graphics/asymptote/drawsurface.h
+2022/09/17 | 2355 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test.py
+2022/09/17 | 234 | graphics/asymptote/doc/beziercurve.asy
+2022/09/17 | 2341 | graphics/asymptote/prc/PRCTools/iPRCFile.h
+2022/09/17 | 233 | graphics/asymptote/examples/cardioid.asy
+2022/09/17 | 2335 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_all_test.cc
+2022/09/17 | 2328 | graphics/asymptote/virtualfieldaccess.h
+2022/09/17 | 2328 | graphics/asymptote/LspCpp/third_party/uri/README.rst
+2022/09/17 | 2319 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_layouts/default.html
+2022/09/17 | 2313 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
+2022/09/17 | 2310 | graphics/asymptote/base/plain_margins.asy
+2022/09/17 | 2303 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
+2022/09/17 | 22 | graphics/asymptote/tests/output/line.asy
+2022/09/17 | 22 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/progress.make
+2022/09/17 | 22 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail9.json
+2022/09/17 | 22 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail19.json
+2022/09/17 | 22 | graphics/asymptote/GUI/configs/__init__.py
+2022/09/17 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/RapidJSON.pc.in
+2022/09/17 | 229 | graphics/asymptote/LspCpp/third_party/rapidjson/docker/debian/Dockerfile
+2022/09/17 | 2295 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
+2022/09/17 | 22946 | graphics/asymptote/base/syzygy.asy
+2022/09/17 | 2292 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindMSan.cmake
+2022/09/17 | 228 | graphics/asymptote/examples/circumcircle.asy
+2022/09/17 | 2289 | graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
+2022/09/17 | 22873 | graphics/asymptote/examples/piicon.png
+2022/09/17 | 2286 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-global-environment-unittest_.cc
+2022/09/17 | 2282 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-test.h
+2022/09/17 | 2282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/additionalItems.json
+2022/09/17 | 2281 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm_split.hpp
+2022/09/17 | 2279 | graphics/asymptote/errormsg.cc
+2022/09/17 | 2277 | graphics/asymptote/base/texcolors.asy
+2022/09/17 | 2276 | graphics/asymptote/prc/PRCTools/inflation.cc
+2022/09/17 | 2272 | graphics/asymptote/cudareflect/tinyexr/examples/rgbe2exr/rgbe2exr.cc
+2022/09/17 | 2266 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/not.json
+2022/09/17 | 2266 | graphics/asymptote/align.h
+2022/09/17 | 22663 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-param-test.h
+2022/09/17 | 2265 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-setuptestsuite-test.py
+2022/09/17 | 22642 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filepath-test.cc
+2022/09/17 | 2260 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample2.cc
+2022/09/17 | 2260 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/cursorstreamwrapper.h
+2022/09/17 | 2257 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/additionalItems.json
+2022/09/17 | 2255 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
+2022/09/17 | 22526 | graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
+2022/09/17 | 22506 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
+2022/09/17 | 224 | graphics/asymptote/tests/types/init.asy
+2022/09/17 | 2245 | graphics/asymptote/LspCpp/third_party/rapidjson/example/prettyauto/prettyauto.cpp
+2022/09/17 | 22426 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.md
+2022/09/17 | 223 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveCodeLens.h
+2022/09/17 | 223 | graphics/asymptote/cudareflect/tinyexr/jni/Android.mk
+2022/09/17 | 2239 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_all_test.cc
+2022/09/17 | 2239 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/insituparsing.dot
+2022/09/17 | 2239 | graphics/asymptote/build-scripts/HOWTO-MSWindows
+2022/09/17 | 22345 | graphics/asymptote/knot.cc
+2022/09/17 | 2230 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_environment_check_output_test.py
+2022/09/17 | 222 | graphics/asymptote/wce
+2022/09/17 | 222 | graphics/asymptote/examples/yingyang.asy
+2022/09/17 | 2223 | graphics/asymptote/LspCpp/third_party/uri/deps/CONTRIBUTORS
+2022/09/17 | 2222 | graphics/asymptote/tests/frames/loop.asy
+2022/09/17 | 22121 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.md
+2022/09/17 | 2205 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
+2022/09/17 | 2201 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-all.cc
+2022/09/17 | 219 | graphics/asymptote/doc/penimage.asy
+2022/09/17 | 219 | graphics/asymptote/doc/graphwithderiv.asy
+2022/09/17 | 21998 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri.hpp
+2022/09/17 | 21996 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
+2022/09/17 | 21971 | macros/generic/unicode-data/ScriptExtensions.txt
+2022/09/17 | 21956 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/internals.zh-cn.md
+2022/09/17 | 2194 | graphics/asymptote/locate.cc
+2022/09/17 | 2191 | graphics/asymptote/examples/splitpatch.asy
+2022/09/17 | 218 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
+2022/09/17 | 218 | graphics/asymptote/doc/datagraph.asy
+2022/09/17 | 2189 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
+2022/09/17 | 21890 | macros/latex/required/babel/base/bbcompat.dtx
+2022/09/17 | 2187 | graphics/asymptote/common.h
+2022/09/17 | 2187 | graphics/asymptote/base/plain_debugger.asy
+2022/09/17 | 21874 | graphics/asymptote/runmath.cc
+2022/09/17 | 2182 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
+2022/09/17 | 217 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/GCThreadContext.h
+2022/09/17 | 2175 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_sole_header_test.cc
+2022/09/17 | 2175 | graphics/asymptote/LspCpp/third_party/rapidjson/contrib/natvis/LICENSE
+2022/09/17 | 2164 | graphics/asymptote/frame.h
+2022/09/17 | 2161 | graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
+2022/09/17 | 21546 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/tutorial.zh-cn.md
+2022/09/17 | 21535 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/assertions.md
+2022/09/17 | 2151 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+2022/09/17 | 21507 | graphics/asymptote/lspserv.cc
+2022/09/17 | 2147 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_prod_test.cc
+2022/09/17 | 2146 | graphics/asymptote/abs3doutfile.h
+2022/09/17 | 21466 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-filter-unittest.py
+2022/09/17 | 2144 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindASan.cmake
+2022/09/17 | 21448 | graphics/asymptote/base/feynman.asy
+2022/09/17 | 2142 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
+2022/09/17 | 2138 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name2-test_.cc
+2022/09/17 | 213847 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/09/17 | 2136 | graphics/asymptote/seconds.h
+2022/09/17 | 21360 | graphics/asymptote/fileio.h
+2022/09/17 | 2134 | graphics/asymptote/drawlabel.h
+2022/09/17 | 2132 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.h
+2022/09/17 | 2130 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.h
+2022/09/17 | 21276 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.md
+2022/09/17 | 21271 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
+2022/09/17 | 2115 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm_find.hpp
+2022/09/17 | 2113 | graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
+2022/09/17 | 2110 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4.cc
+2022/09/17 | 210 | graphics/asymptote/examples/spiral.asy
+2022/09/17 | 210 | graphics/asymptote/build-scripts/asy-indent.el
+2022/09/17 | 2109 | graphics/asymptote/base/drawtree.asy
+2022/09/17 | 2107 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-all.cc
+2022/09/17 | 2101 | graphics/asymptote/examples/truncatedIcosahedron.asy
+2022/09/17 | 2100 | graphics/asymptote/LspCpp/third_party/uri/src/detail/algorithm.hpp
+2022/09/17 | 20 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail23.json
+2022/09/17 | 20989 | graphics/asymptote/base/plain_bounds.asy
+2022/09/17 | 20974 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/mocking.md
+2022/09/17 | 2094 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-printers.h
+2022/09/17 | 20942 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
+2022/09/17 | 209259 | graphics/asymptote/asy.list
+2022/09/17 | 209139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/09/17 | 208908 | graphics/asymptote/doc/asy-latex.pdf
+2022/09/17 | 2088 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_help_test_.cc
+2022/09/17 | 20829 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/issue-77-heap-buffer-overflow
+2022/09/17 | 207 | graphics/asymptote/examples/triangle.asy
+2022/09/17 | 20796 | graphics/asymptote/runtime.in
+2022/09/17 | 207686 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-matchers.h
+2022/09/17 | 2073 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+2022/09/17 | 206 | graphics/asymptote/examples/log.asy
+2022/09/17 | 2069 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_in_environment_setup_test.cc
+2022/09/17 | 20639 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_output_unittest.py
+2022/09/17 | 205495 | graphics/asymptote/base/colormap.asy
+2022/09/17 | 2053 | graphics/asymptote/LspCpp/third_party/uri/test/test_uri.hpp
+2022/09/17 | 2045 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/clzll.h
+2022/09/17 | 20437746 | systems/texlive/tlnet/install-tl-windows.exe
+2022/09/17 | 2040 | graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
+2022/09/17 | 2040 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.h
+2022/09/17 | 203 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/exit.h
+2022/09/17 | 2035 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
+2022/09/17 | 2034 | graphics/asymptote/doc/elliptic.asy
+2022/09/17 | 203419 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/09/17 | 202 | graphics/asymptote/tests/frames/stat2.asy
+2022/09/17 | 202 | graphics/asymptote/glew.c
+2022/09/17 | 202 | graphics/asymptote/doc/exp.asy
+2022/09/17 | 202 | graphics/asymptote/build-scripts/run-in-indent.el
+2022/09/17 | 202947 | graphics/asymptote/cudareflect/tinyexr/asakusa.png
+2022/09/17 | 20277 | graphics/asymptote/base/contour.asy
+2022/09/17 | 2023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-param-test-invalid-name1-test_.cc
+2022/09/17 | 2023 | graphics/asymptote/examples/slope.asy
+2022/09/17 | 2023132 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/09/17 | 20170 | graphics/asymptote/runpicture.in
+2022/09/17 | 2016 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
+2022/09/17 | 2013 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
+2022/09/17 | 2012 | graphics/asymptote/varinit.h
+2022/09/17 | 20123 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/reference/matchers.md
+2022/09/17 | 2011 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/asan-wrapper
+2022/09/17 | 2005 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_skip_test.cc
+2022/09/17 | 20051 | graphics/asymptote/doc/asyRefCard.tex
+2022/09/17 | 2004 | graphics/asymptote/varinit.cc
+2022/09/17 | 20029 | graphics/asymptote/camp.y
+2022/09/17 | 20010 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_data/utf8_invalid.txt
+2022/09/17 | 199 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/progress.make
+2022/09/17 | 199 | graphics/asymptote/examples/upint.asy
+2022/09/17 | 199 | graphics/asymptote/examples/BezierTriangle.asy
+2022/09/17 | 19967 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/sax.zh-cn.md
+2022/09/17 | 1995 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample4_unittest.cc
+2022/09/17 | 1993053 | macros/latex/contrib/nicematrix.zip
+2022/09/17 | 198 | graphics/asymptote/examples/tanh.asy
+2022/09/17 | 198487 | graphics/asymptote/doc/CAD.pdf
+2022/09/17 | 198433 | macros/latex/contrib/nicematrix/nicematrix-french.tex
+2022/09/17 | 1982 | graphics/asymptote/inst.h
+2022/09/17 | 1977 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-port_test.cc
+2022/09/17 | 1975 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/enum.json
+2022/09/17 | 1975 | graphics/asymptote/array.h
+2022/09/17 | 19752 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/uri.h
+2022/09/17 | 19729 | graphics/asymptote/base/plain_arrows.asy
+2022/09/17 | 1971 | graphics/asymptote/base/slopefield.asy
+2022/09/17 | 196 | graphics/asymptote/examples/lowint.asy
+2022/09/17 | 196 | graphics/asymptote/examples/label3ribbon.asy
+2022/09/17 | 196 | graphics/asymptote/examples/animations/embeddedu3d.asy
+2022/09/17 | 1968 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest_main.cc
+2022/09/17 | 1968 | graphics/asymptote/examples/mergeExample.asy
+2022/09/17 | 1964 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/enum.json
+2022/09/17 | 196212 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/09/17 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/refRemote.json
+2022/09/17 | 1961 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/refRemote.json
+2022/09/17 | 19604 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.h
+2022/09/17 | 19597 | graphics/asymptote/doc/external-proposal.html
+2022/09/17 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfile2_test_.cc
+2022/09/17 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_xml_outfile1_test_.cc
+2022/09/17 | 1955 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test2_test.cc
+2022/09/17 | 1955 | graphics/asymptote/cudareflect/tinyexr/experimental/js/binding.cc
+2022/09/17 | 1953 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-port.h
+2022/09/17 | 19511 | graphics/asymptote/psfile.cc
+2022/09/17 | 1950 | graphics/asymptote/cudareflect/utils.cuh
+2022/09/17 | 1950 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/testmapgen.cc
+2022/09/17 | 1949 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-setuptestsuite-test_.cc
+2022/09/17 | 19462 | graphics/asymptote/patches/gl-matrix-2.4.0-pruned.patch
+2022/09/17 | 193 | graphics/asymptote/tests/gc/shipout.asy
+2022/09/17 | 193 | graphics/asymptote/tests/arith/random.asy
+2022/09/17 | 1936 | graphics/asymptote/refaccess.h
+2022/09/17 | 1936 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/disallow.json
+2022/09/17 | 1933616 | systems/texlive/tlnet/archive/simpleicons.doc.r64413.tar.xz
+2022/09/17 | 19321 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
+2022/09/17 | 192 | graphics/asymptote/base/shaders/zero.glsl
+2022/09/17 | 1927 | graphics/asymptote/tests/array/fields.asy
+2022/09/17 | 1927 | graphics/asymptote/prc/PRCTools/bitSearchDouble.cc
+2022/09/17 | 1923 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_testbridge_test_.cc
+2022/09/17 | 1921122 | macros/latex/required/babel/base.zip
+2022/09/17 | 191 | graphics/asymptote/runpicture.h
+2022/09/17 | 1919 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/samples/sample1.h
+2022/09/17 | 1919 | graphics/asymptote/examples/animations/earthmoon.asy
+2022/09/17 | 1918 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/custom/gmock-matchers.h
+2022/09/17 | 1916 | graphics/asymptote/LspCpp/third_party/uri/src/uri_errors.cpp
+2022/09/17 | 1915 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/iterative-parser-states-diagram.dot
+2022/09/17 | 1913704 | macros/generic/unicode-data/UnicodeData.txt
+2022/09/17 | 19136 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/primer.md
+2022/09/17 | 1910 | graphics/asymptote/examples/linearregression.asy
+2022/09/17 | 1905 | fonts/librebaskerville/latex/librebaskerville.sty
+2022/09/17 | 190044 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/DroidSans.ttf
+2022/09/17 | 18 | graphics/asymptote/tests/output/circle.asy
+2022/09/17 | 18 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_config.yml
+2022/09/17 | 189 | graphics/asymptote/cudareflect/tinyexr/examples/exr2ldr/Makefile
+2022/09/17 | 1899 | graphics/asymptote/GUI/res/icons/social-python.svg
+2022/09/17 | 18991 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32Window.cpp
+2022/09/17 | 1898 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+2022/09/17 | 1896 | graphics/asymptote/cudareflect/tinyexr/config-msvc.py
+2022/09/17 | 188 | graphics/asymptote/runstring.h
+2022/09/17 | 188 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/cmake_clean.cmake
+2022/09/17 | 188 | graphics/asymptote/examples/transparency.asy
+2022/09/17 | 188 | graphics/asymptote/cudareflect/tinyexr/examples/resize/Makefile
+2022/09/17 | 18867 | graphics/asymptote/LspCpp/src/lsp/utils.cpp
+2022/09/17 | 1884 | graphics/asymptote/GUI/res/icons/filledbucket.svg
+2022/09/17 | 187 | graphics/asymptote/tests/string/rfind.asy
+2022/09/17 | 187 | graphics/asymptote/examples/label3solid.asy
+2022/09/17 | 1878 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-uninitialized-test_.cc
+2022/09/17 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link_test.cc
+2022/09/17 | 1876 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_link2_test.cc
+2022/09/17 | 1876 | graphics/asymptote/cc-mode2.el
+2022/09/17 | 1875 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
+2022/09/17 | 1873 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest-port.h
+2022/09/17 | 18739 | graphics/asymptote/runstring.cc
+2022/09/17 | 186 | graphics/asymptote/runpath3d.h
+2022/09/17 | 186 | graphics/asymptote/doc/unitcircle3.asy
+2022/09/17 | 186 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/shader.vert
+2022/09/17 | 1866 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
+2022/09/17 | 1863 | graphics/asymptote/prc/PRCTools/bitSearchUI.cc
+2022/09/17 | 186337 | macros/generic/unicode-data/EastAsianWidth.txt
+2022/09/17 | 1860 | graphics/asymptote/prc/PRCTools/bitData.h
+2022/09/17 | 185 | graphics/asymptote/cudareflect/tinyexr/test/fuzzer/README.md
+2022/09/17 | 1858 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/gtest.h
+2022/09/17 | 18578 | graphics/asymptote/application.cc
+2022/09/17 | 1852 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
+2022/09/17 | 1851 | graphics/asymptote/drawclipbegin.h
+2022/09/17 | 18510 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/09/17 | 184 | graphics/asymptote/examples/roll.asy
+2022/09/17 | 18474 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-printers.cc
+2022/09/17 | 18448 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-internal-utils.h
+2022/09/17 | 1843 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
+2022/09/17 | 1841 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest_main_unittest.cc
+2022/09/17 | 184112 | macros/generic/unicode-data/Scripts.txt
+2022/09/17 | 183 | graphics/asymptote/build-scripts/cc-indent.el
+2022/09/17 | 18383 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/09/17 | 18382 | graphics/asymptote/LspCpp/third_party/uri/src/uri.cpp
+2022/09/17 | 1835 | graphics/asymptote/examples/cyclohexane.asy
+2022/09/17 | 1832 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
+2022/09/17 | 18327 | graphics/asymptote/LspCpp/third_party/uri/test/uri_parse_test.cpp
+2022/09/17 | 1831 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
+2022/09/17 | 1830 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
+2022/09/17 | 182 | graphics/asymptote/tests/string/find.asy
+2022/09/17 | 182 | graphics/asymptote/examples/label3.asy
+2022/09/17 | 1828 | graphics/asymptote/beziercurve.cc
+2022/09/17 | 182476 | macros/latex/contrib/calculator/calculator.dtx
+2022/09/17 | 1819 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
+2022/09/17 | 181725 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/09/17 | 1813 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/OpenGLInclude.h
+2022/09/17 | 18095 | graphics/asymptote/doc/asy-latex.dtx
+2022/09/17 | 1808 | graphics/asymptote/GUI/res/icons.qrc
+2022/09/17 | 1805 | graphics/asymptote/patches/cygwin_freeglut-3.0.0.patch
+2022/09/17 | 17 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail2.json
+2022/09/17 | 17993 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/schema.md
+2022/09/17 | 17987 | graphics/asymptote/entry.cc
+2022/09/17 | 17958 | graphics/asymptote/asy-keywords.el
+2022/09/17 | 17951 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/src/gmock-matchers.cc
+2022/09/17 | 17907 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
+2022/09/17 | 178 | graphics/asymptote/fftw++asy.cc
+2022/09/17 | 177 | graphics/asymptote/runpath.h
+2022/09/17 | 177 | graphics/asymptote/examples/curvedlabel.asy
+2022/09/17 | 17798 | graphics/asymptote/runfile.cc
+2022/09/17 | 1778 | graphics/asymptote/examples/conicurv.asy
+2022/09/17 | 1775 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/utilityclass.dot
+2022/09/17 | 17734 | graphics/asymptote/dec.h
+2022/09/17 | 177246 | graphics/asymptote/prc/PRCdouble.cc
+2022/09/17 | 176 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/makefile
+2022/09/17 | 1765 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/ScopeExit.h
+2022/09/17 | 17640877 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/09/17 | 17614 | graphics/asymptote/cudareflect/tinyexr/README.md
+2022/09/17 | 1760 | graphics/asymptote/examples/animations/heatequation.asy
+2022/09/17 | 175 | graphics/asymptote/examples/strokeshade.asy
+2022/09/17 | 17540 | graphics/asymptote/texfile.cc
+2022/09/17 | 1753 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/custom/README.md
+2022/09/17 | 1753 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.h
+2022/09/17 | 1752 | graphics/asymptote/base/shaders/sum3.glsl
+2022/09/17 | 1751 | graphics/asymptote/GUI/GuidesManager.py
+2022/09/17 | 174 | graphics/asymptote/cudareflect/tinyexr/examples/testmapgen/Makefile
+2022/09/17 | 1746 | graphics/asymptote/doc/westnile.asy
+2022/09/17 | 17405 | graphics/asymptote/configure.ac
+2022/09/17 | 173 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/readme.txt
+2022/09/17 | 173 | graphics/asymptote/cudareflect/tinyexr/test/c-binding/Makefile
+2022/09/17 | 173 | graphics/asymptote/cudareflect/tinyexr/examples/exrfilter/Makefile
+2022/09/17 | 1734 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/CMakeLists.txt
+2022/09/17 | 17346 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_win.cpp
+2022/09/17 | 1733 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/include/nfd.h
+2022/09/17 | 1732 | graphics/asymptote/GUI/res/icons/grid.svg
+2022/09/17 | 173176 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/09/17 | 1728 | graphics/asymptote/webgl/vertex.glsl
+2022/09/17 | 17258 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
+2022/09/17 | 1710 | graphics/asymptote/tests/arith/roots.asy
+2022/09/17 | 1710 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri/uri_io.hpp
+2022/09/17 | 1703 | graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake
+2022/09/17 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail8.json
+2022/09/17 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail4.json
+2022/09/17 | 16 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail24.json
+2022/09/17 | 169 | graphics/asymptote/runbacktrace.h
+2022/09/17 | 1698 | graphics/asymptote/record.cc
+2022/09/17 | 1698 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/floats.json
+2022/09/17 | 1696 | graphics/asymptote/cudareflect/tinyexr/cmake/sanitizers/FindUBSan.cmake
+2022/09/17 | 169678 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/09/17 | 1694 | graphics/asymptote/fftw++.cc
+2022/09/17 | 168 | graphics/asymptote/examples/lines.asy
+2022/09/17 | 1688 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/SConstruct
+2022/09/17 | 16832 | macros/generic/unicode-data/SpecialCasing.txt
+2022/09/17 | 167 | graphics/asymptote/cudareflect/tinyexr/examples/nornalmap/Makefile
+2022/09/17 | 1675 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/production.cc
+2022/09/17 | 16705 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/ChangeLog.md
+2022/09/17 | 16661 | graphics/asymptote/LspCpp/third_party/uri/src/Makefile
+2022/09/17 | 1659 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
+2022/09/17 | 1659636 | graphics/asymptote/ChangeLog
+2022/09/17 | 1658 | graphics/asymptote/prc/PRCTools/Makefile
+2022/09/17 | 1658 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
+2022/09/17 | 1658 | graphics/asymptote/GUI/Widg_editBezier.py
+2022/09/17 | 16569 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/architecture.png
+2022/09/17 | 16552 | graphics/asymptote/LspCpp/third_party/uri/include/network/optional.hpp
+2022/09/17 | 1652 | fonts/librebaskerville/README
+2022/09/17 | 16492 | graphics/asymptote/base/plain_Label.asy
+2022/09/17 | 1648 | systems/texlive/tlnet/archive/collection-publishers.r64416.tar.xz
+2022/09/17 | 1648 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/OpenGL2Include.h
+2022/09/17 | 16483 | graphics/asymptote/runpair.cc
+2022/09/17 | 1640 | graphics/asymptote/callable.h
+2022/09/17 | 163 | graphics/asymptote/examples/1overx.asy
+2022/09/17 | 1630 | graphics/asymptote/builtin.h
+2022/09/17 | 162 | graphics/asymptote/examples/stereoscopic.asy
+2022/09/17 | 162 | graphics/asymptote/examples/sphereskeleton.asy
+2022/09/17 | 16298 | graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
+2022/09/17 | 1626 | graphics/asymptote/genv.h
+2022/09/17 | 1620 | graphics/asymptote/doc/colors.asy
+2022/09/17 | 161 | graphics/asymptote/runhistory.h
+2022/09/17 | 161 | graphics/asymptote/cudareflect/tinyexr/examples/exr2rgbe/Makefile
+2022/09/17 | 16188 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_win8.png
+2022/09/17 | 1612 | graphics/asymptote/asy-list.pl
+2022/09/17 | 1611 | graphics/asymptote/v3dheadertypes.py
+2022/09/17 | 1610 | graphics/asymptote/LspCpp/third_party/rapidjson/example/sortkeys/sortkeys.cpp
+2022/09/17 | 160 | graphics/asymptote/cudareflect/tinyexr/jni/Makefile
+2022/09/17 | 1608 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/anyOf.json
+2022/09/17 | 16089 | graphics/asymptote/base/slide.asy
+2022/09/17 | 16081 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move1.png
+2022/09/17 | 1607 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/oneOf.json
+2022/09/17 | 160672 | graphics/asymptote/examples/animations/dice.u3d
+2022/09/17 | 15 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail28.json
+2022/09/17 | 15 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-efe9007bfdcbbe8a1569bf01fa9acadb8261ead49cb83f6e91fcdc4dae2e99a3_min
+2022/09/17 | 15 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-df76d1f27adb8927a1446a603028272140905c168a336128465a1162ec7af270.mini
+2022/09/17 | 159 | graphics/asymptote/tests/types/cast.asy
+2022/09/17 | 159 | graphics/asymptote/cudareflect/tinyexr/examples/rgbe2exr/Makefile
+2022/09/17 | 1598 | graphics/asymptote/examples/NURBSsurface.asy
+2022/09/17 | 15959 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-typed-test.h
+2022/09/17 | 1594 | graphics/asymptote/pen.cc
+2022/09/17 | 158 | graphics/asymptote/tests/frames/stat.asy
+2022/09/17 | 15895 | graphics/asymptote/GUI/InplaceAddObj.py
+2022/09/17 | 1588 | graphics/asymptote/build-scripts/asy-format.el
+2022/09/17 | 158032 | systems/texlive/tlnet/archive/cormorantgaramond.doc.r64411.tar.xz
+2022/09/17 | 157 | graphics/asymptote/runsystem.h
+2022/09/17 | 157 | graphics/asymptote/doc/saddle.asy
+2022/09/17 | 157 | graphics/asymptote/cudareflect/tinyexr/examples/ldr2exr/Makefile
+2022/09/17 | 1579 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
+2022/09/17 | 1578 | graphics/asymptote/build-scripts/cc-format.el
+2022/09/17 | 1566 | graphics/asymptote/examples/near_earth.asy
+2022/09/17 | 1564 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
+2022/09/17 | 15645 | graphics/asymptote/install-sh
+2022/09/17 | 15617 | graphics/asymptote/cudareflect/tinyexr/test_tinyexr.cc
+2022/09/17 | 15601 | graphics/asymptote/base/ode.asy
+2022/09/17 | 155 | graphics/asymptote/tests/types/ecast.asy
+2022/09/17 | 155431 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/09/17 | 15529 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-nice-strict_test.cc
+2022/09/17 | 155069 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/issue-160-piz-decode.exr
+2022/09/17 | 154 | graphics/asymptote/examples/billboard.asy
+2022/09/17 | 1548 | graphics/asymptote/examples/BezierSurface.asy
+2022/09/17 | 1548 | graphics/asymptote/cudareflect/tinyexr/test/issues/160/main.py
+2022/09/17 | 15464 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.md
+2022/09/17 | 1545 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
+2022/09/17 | 15451 | graphics/asymptote/types.h
+2022/09/17 | 1544 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/divisibleBy.json
+2022/09/17 | 1542 | graphics/asymptote/GUI/xasyUtils.py
+2022/09/17 | 1540 | graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
+2022/09/17 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/09/17 | 153 | graphics/asymptote/runlabel.h
+2022/09/17 | 15393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/dom.zh-cn.md
+2022/09/17 | 1538 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/README.md
+2022/09/17 | 15382 | graphics/asymptote/base/palette.asy
+2022/09/17 | 1537 | graphics/asymptote/examples/refs.bib
+2022/09/17 | 15364 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.md
+2022/09/17 | 1532 | graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
+2022/09/17 | 15318 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/BUILD.bazel
+2022/09/17 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/09/17 | 15277 | graphics/asymptote/base/flowchart.asy
+2022/09/17 | 1525 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/multipleOf.json
+2022/09/17 | 15253 | graphics/asymptote/runlabel.cc
+2022/09/17 | 1524 | graphics/asymptote/patches/flex.patch
+2022/09/17 | 1523 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
+2022/09/17 | 1521 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8.h
+2022/09/17 | 15142 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/mixed.json
+2022/09/17 | 150 | graphics/asymptote/examples/spheresilhouette.asy
+2022/09/17 | 150 | graphics/asymptote/doc/latexmkrc_asydir
+2022/09/17 | 15043 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest_pred_impl.h
+2022/09/17 | 15030 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/faq.zh-cn.md
+2022/09/17 | 1503052 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/09/17 | 1502 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move2.dot
+2022/09/17 | 15018 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/main.cc
+2022/09/17 | 15004 | graphics/asymptote/base/v3d.asy
+2022/09/17 | 14 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail27.json
+2022/09/17 | 1498 | graphics/asymptote/examples/animations/wavepacket.asy
+2022/09/17 | 14980 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_faq.md
+2022/09/17 | 1492 | graphics/asymptote/runarray.h
+2022/09/17 | 1491937 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/09/17 | 14915 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-failfast-unittest.py
+2022/09/17 | 1491533 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/09/17 | 148 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass3.json
+2022/09/17 | 1482 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
+2022/09/17 | 1480 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
+2022/09/17 | 1479 | graphics/asymptote/prc/PRCTools/inflationMain.cc
+2022/09/17 | 14795 | graphics/asymptote/stm.cc
+2022/09/17 | 1475 | graphics/asymptote/LspCpp/third_party/uri/deps/LICENSE
+2022/09/17 | 14749 | graphics/asymptote/base/contour3.asy
+2022/09/17 | 146 | graphics/asymptote/doc/slopefield1.asy
+2022/09/17 | 146 | graphics/asymptote/cudareflect/tinyexr/examples/deepview/Makefile
+2022/09/17 | 1469 | graphics/asymptote/doc/png/Makefile.in
+2022/09/17 | 1467 | graphics/asymptote/GUI/res/icons/android-hand.svg
+2022/09/17 | 14651 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-death-test.h
+2022/09/17 | 1461 | graphics/asymptote/examples/logo3.asy
+2022/09/17 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/09/17 | 145 | graphics/asymptote/examples/star.asy
+2022/09/17 | 1458153 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/09/17 | 14575 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/cmake/internal_utils.cmake
+2022/09/17 | 1456 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/tutorial.dot
+2022/09/17 | 1454 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/move3.dot
+2022/09/17 | 14532 | graphics/asymptote/stack.cc
+2022/09/17 | 14531 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.md
+2022/09/17 | 1452 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
+2022/09/17 | 145014 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/gmock_cook_book.md
+2022/09/17 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/09/17 | 144 | graphics/asymptote/doc/latexmkrc
+2022/09/17 | 1449 | graphics/asymptote/GUI/SetCustomAnchor.py
+2022/09/17 | 14433 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/09/17 | 1441 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/pass1.json
+2022/09/17 | 143 | graphics/asymptote/tests/gc/label.asy
+2022/09/17 | 1438 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
+2022/09/17 | 14378 | graphics/asymptote/examples/teapot.asy
+2022/09/17 | 1436 | graphics/asymptote/GUI/res/icons/bucket.svg
+2022/09/17 | 1435 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/simpledom.dot
+2022/09/17 | 1435 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
+2022/09/17 | 14325 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/stream.zh-cn.md
+2022/09/17 | 14283 | graphics/asymptote/testv3d.asy
+2022/09/17 | 1427 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/diagram/normalparsing.dot
+2022/09/17 | 1423 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
+2022/09/17 | 141 | graphics/asymptote/examples/sphere.asy
+2022/09/17 | 141 | graphics/asymptote/examples/ring.asy
+2022/09/17 | 1419 | graphics/asymptote/LspCpp/third_party/uri/test/uri_stream_test.cpp
+2022/09/17 | 14139 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
+2022/09/17 | 140 | graphics/asymptote/doc/vectorfield.asy
+2022/09/17 | 14089 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-typed-test_test.cc
+2022/09/17 | 14081 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/src/gtest-filepath.cc
+2022/09/17 | 14072 | graphics/asymptote/types.cc
+2022/09/17 | 1406 | graphics/asymptote/cudareflect/EXRFiles.h
+2022/09/17 | 140012 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/09/17 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/docs/README.md
+2022/09/17 | 139 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/docs/README.md
+2022/09/17 | 1398 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/swap.h
+2022/09/17 | 13980 | graphics/asymptote/arrayop.h
+2022/09/17 | 1396 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
+2022/09/17 | 13944 | graphics/asymptote/runtriple.cc
+2022/09/17 | 1391 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
+2022/09/17 | 1391 | graphics/asymptote/doc/CAD1.asy
+2022/09/17 | 1390 | graphics/asymptote/LspCpp/src/lsp/initialize.cpp
+2022/09/17 | 138 | graphics/asymptote/Pipfile
+2022/09/17 | 1388 | graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
+2022/09/17 | 13867 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/nuklear_btgui_gl2.h
+2022/09/17 | 1384 | graphics/asymptote/tests/pic/trans.asy
+2022/09/17 | 13816 | graphics/asymptote/GUI/xasyBezierInterface.py
+2022/09/17 | 13804 | graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
+2022/09/17 | 13764 | graphics/asymptote/GUI/ContextWindow.py
+2022/09/17 | 1375 | graphics/asymptote/base/tree.asy
+2022/09/17 | 1373136 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/09/17 | 1372916 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/09/17 | 13716 | systems/texlive/tlnet/archive/udes-genie-these.source.r64416.tar.xz
+2022/09/17 | 136 | graphics/asymptote/examples/latticeshading.asy
+2022/09/17 | 13663 | graphics/asymptote/doc/install-sh
+2022/09/17 | 13663 | graphics/asymptote/doc/FAQ/install-sh
+2022/09/17 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64417.tar.xz
+2022/09/17 | 13615 | graphics/asymptote/entry.h
+2022/09/17 | 13612 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock_output_test_golden.txt
+2022/09/17 | 13605 | graphics/asymptote/base/grid3.asy
+2022/09/17 | 13569 | macros/generic/unicode-data/MathClass-15.txt
+2022/09/17 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/09/17 | 1352 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_watched_files.h
+2022/09/17 | 1352 | graphics/asymptote/examples/Klein.asy
+2022/09/17 | 134 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tox.ini
+2022/09/17 | 13491 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/internal/gmock-pp.h
+2022/09/17 | 1347 | graphics/asymptote/cudareflect/tinyexr/test/unit/config-posix.py
+2022/09/17 | 13477 | graphics/asymptote/base/asy.vim
+2022/09/17 | 1345 | graphics/asymptote/interact.h
+2022/09/17 | 13440 | graphics/asymptote/texfile.h
+2022/09/17 | 1341 | graphics/asymptote/runtimebase.in
+2022/09/17 | 133 | graphics/asymptote/cudareflect/tinyexr/test/unit/vcbuild.bat
+2022/09/17 | 1338 | graphics/asymptote/LspCpp/third_party/utfcpp/LICENSE
+2022/09/17 | 1338 | graphics/asymptote/LspCpp/third_party/uri/LICENSE_1_0.txt
+2022/09/17 | 1337 | graphics/asymptote/base/v3dheadertypes.asy
+2022/09/17 | 13366 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/internal/gtest-death-test-internal.h
+2022/09/17 | 13357 | graphics/asymptote/camp.l
+2022/09/17 | 1331 | graphics/asymptote/tests/types/spec.asy
+2022/09/17 | 132 | graphics/asymptote/tests/string/length.asy
+2022/09/17 | 132 | graphics/asymptote/cudareflect/tinyexr/test/unit/regression/poc-d5c9c893e559277a3320c196523095b94db93985620ac338d037487e0e613047_min
+2022/09/17 | 132742 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
+2022/09/17 | 1325255 | macros/latex/contrib/nicematrix/nicematrix.pdf
+2022/09/17 | 1323743 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/09/17 | 132360 | macros/generic/unicode-data/PropList.txt
+2022/09/17 | 13217 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/type.json
+2022/09/17 | 1318 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
+2022/09/17 | 1318 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/OpenGLWindow/Win32InternalWindowData.h
+2022/09/17 | 1316 | graphics/asymptote/base/shaders/sum2fast.glsl
+2022/09/17 | 1315 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/unittestschema/idandref.json
+2022/09/17 | 1312 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
+2022/09/17 | 1310 | graphics/asymptote/prc/PRCTools/extractSections.cc
+2022/09/17 | 1309 | graphics/asymptote/examples/roundpath.asy
+2022/09/17 | 13060 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/gtest-unittest-api_test.cc
+2022/09/17 | 130356 | graphics/asymptote/ReleaseNotes
+2022/09/17 | 1302 | graphics/asymptote/GUI/res/icons/android-color-palette.svg
+2022/09/17 | 130266 | graphics/asymptote/camp.tab.cc
+2022/09/17 | 12 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonchecker/fail33.json
+2022/09/17 | 129 | graphics/asymptote/tests/gc/struct.asy
+2022/09/17 | 129 | graphics/asymptote/base/shaders/screen.glsl
+2022/09/17 | 1299 | graphics/asymptote/patches/dvipdf
+2022/09/17 | 1299 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
+2022/09/17 | 1298 | graphics/asymptote/examples/electromagnetic.asy
+2022/09/17 | 1293 | graphics/asymptote/TODO
+2022/09/17 | 1291 | graphics/asymptote/LspCpp/third_party/utfcpp/CMakeLists.txt
+2022/09/17 | 1291 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
+2022/09/17 | 12907 | graphics/asymptote/Makefile.in
+2022/09/17 | 1288702 | graphics/asymptote/doc/asymptote.pdf
+2022/09/17 | 1287 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/README.md
+2022/09/17 | 1284 | graphics/asymptote/tests/output/Makefile
+2022/09/17 | 12840 | systems/texlive/tlnet/archive/biblatex-philosophy.r64414.tar.xz
+2022/09/17 | 1282 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/required.json
+2022/09/17 | 12823 | graphics/asymptote/impdatum.cc
+2022/09/17 | 1280 | graphics/asymptote/beziercurve.h
+2022/09/17 | 127 | graphics/asymptote/index.html
+2022/09/17 | 1276 | graphics/asymptote/base/asymptote.py
+2022/09/17 | 1275464 | systems/texlive/tlnet/archive/tex4ht.source.r64417.tar.xz
+2022/09/17 | 1274 | graphics/asymptote/newexp.h
+2022/09/17 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/default.json
+2022/09/17 | 1273 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/default.json
+2022/09/17 | 1268 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.md
+2022/09/17 | 1266 | graphics/asymptote/drawverbatim.h
+2022/09/17 | 12648 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-output-test.py
+2022/09/17 | 12630 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/cube2longlat.cc
+2022/09/17 | 1261761 | graphics/asymptote/examples/worldmap.dat
+2022/09/17 | 12604 | graphics/asymptote/runsystem.cc
+2022/09/17 | 125 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/docker/Dockerfile
+2022/09/17 | 1253 | graphics/asymptote/keywords.pl
+2022/09/17 | 12539 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-shuffle-test.py
+2022/09/17 | 12534 | graphics/asymptote/ax_pthread.m4
+2022/09/17 | 1251 | graphics/asymptote/examples/odetest.asy
+2022/09/17 | 1250 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
+2022/09/17 | 124 | graphics/asymptote/tests/gc/path.asy
+2022/09/17 | 124 | graphics/asymptote/GUI/res/icons/centerorigin.asy
+2022/09/17 | 1249 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
+2022/09/17 | 124978 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
+2022/09/17 | 1247 | graphics/asymptote/examples/animations/slidemovies.asy
+2022/09/17 | 12474 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/checked.h
+2022/09/17 | 1245 | graphics/asymptote/prc/PRCTools/describeMain.cc
+2022/09/17 | 1245 | graphics/asymptote/findsym.pl
+2022/09/17 | 1240 | graphics/asymptote/examples/arrows3.asy
+2022/09/17 | 123 | graphics/asymptote/examples/Coons.asy
+2022/09/17 | 123 | graphics/asymptote/doc/superpath.asy
+2022/09/17 | 1239 | graphics/asymptote/v3dheadertypes.h
+2022/09/17 | 1239 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
+2022/09/17 | 1236 | graphics/asymptote/primitives.h
+2022/09/17 | 1236 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/performance.zh-cn.md
+2022/09/17 | 1235 | graphics/asymptote/examples/animations/inlinemovie.tex
+2022/09/17 | 1235777 | graphics/asymptote/GL/glew.c
+2022/09/17 | 1232 | graphics/asymptote/build-scripts/build-asygl
+2022/09/17 | 12321 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/test/gmock-cardinalities_test.cc
+2022/09/17 | 1226 | graphics/asymptote/GUI/res/icons/triangle-stroked-15.svg
+2022/09/17 | 12259 | graphics/asymptote/knot.h
+2022/09/17 | 121 | graphics/asymptote/doc/labelsquare.asy
+2022/09/17 | 121 | graphics/asymptote/cudareflect/tinyexr/tinyexr.cc
+2022/09/17 | 1219 | graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
+2022/09/17 | 1216 | graphics/asymptote/LspCpp/third_party/uri/CHANGELOG.md
+2022/09/17 | 1216 | graphics/asymptote/examples/dragon.asy
+2022/09/17 | 1215 | graphics/asymptote/GUI/configs/xasyconfig.cson
+2022/09/17 | 1213 | graphics/asymptote/base/plain_arcs.asy
+2022/09/17 | 121145 | graphics/asymptote/doc/asyRefCard.pdf
+2022/09/17 | 121098 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
+2022/09/17 | 1209 | graphics/asymptote/tests/imp/unravel.asy
+2022/09/17 | 1203 | graphics/asymptote/LspCpp/README.md
+2022/09/17 | 12012 | graphics/asymptote/base/solids.asy
+2022/09/17 | 12011 | graphics/asymptote/LspCpp/CMakeLists.txt
+2022/09/17 | 1200 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/_data/navigation.yml
+2022/09/17 | 11996 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
+2022/09/17 | 1198 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/exr-io.cc
+2022/09/17 | 1197 | graphics/asymptote/drawclipend.h
+2022/09/17 | 11937 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/CMakeLists.txt
+2022/09/17 | 1192 | graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
+2022/09/17 | 1190 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
+2022/09/17 | 1190 | graphics/asymptote/camperror.cc
+2022/09/17 | 11907 | graphics/asymptote/tests/gsl/random.asy
+2022/09/17 | 118 | graphics/asymptote/tests/string/substr.asy
+2022/09/17 | 118 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
+2022/09/17 | 1189 | graphics/asymptote/tests/types/var.asy
+2022/09/17 | 1189 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
+2022/09/17 | 1188 | graphics/asymptote/EXRFiles.cc
+2022/09/17 | 1187 | graphics/asymptote/GUI/res/icons/closedcurve.svg
+2022/09/17 | 1186601 | graphics/asymptote/GL/glew.h
+2022/09/17 | 1185 | graphics/asymptote/examples/functionshading.asy
+2022/09/17 | 1184 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
+2022/09/17 | 1183 | graphics/asymptote/GUI/xasyArgs.py
+2022/09/17 | 1183225 | graphics/asymptote/gc-8.2.0.tar.gz
+2022/09/17 | 1182 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
+2022/09/17 | 1181 | graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
+2022/09/17 | 1180 | graphics/asymptote/GUI/res/icons/code.svg
+2022/09/17 | 11801 | graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
+2022/09/17 | 117 | graphics/asymptote/cudareflect/tinyexr/examples/exr2fptiff/README.md
+2022/09/17 | 1178 | graphics/asymptote/base/embed.asy
+2022/09/17 | 1175 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
+2022/09/17 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/09/17 | 1171 | graphics/asymptote/parser.h
+2022/09/17 | 116944 | systems/texlive/tlnet/archive/udes-genie-these.doc.r64416.tar.xz
+2022/09/17 | 11663 | graphics/asymptote/path.h
+2022/09/17 | 11656 | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
+2022/09/17 | 11656 | graphics/asymptote/base/binarytree.asy
+2022/09/17 | 1164 | graphics/asymptote/examples/genustwo.asy
+2022/09/17 | 11642 | graphics/asymptote/coder.h
+2022/09/17 | 1163 | graphics/asymptote/runtime.h
+2022/09/17 | 1162 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/LICENSE
+2022/09/17 | 1161751 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/09/17 | 116010 | graphics/asymptote/predicates.cc
+2022/09/17 | 115 | graphics/asymptote/doc/onecontour.asy
+2022/09/17 | 1158 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
+2022/09/17 | 1156 | graphics/asymptote/cudareflect/tinyexr/premake4.lua
+2022/09/17 | 11559 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/diyfp.h
+2022/09/17 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/09/17 | 11541 | graphics/asymptote/aspy.py
+2022/09/17 | 1151 | graphics/asymptote/callable.cc
+2022/09/17 | 11513 | graphics/asymptote/runlabel.in
+2022/09/17 | 1149 | graphics/asymptote/guide.cc
+2022/09/17 | 1147 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
+2022/09/17 | 11468 | graphics/asymptote/drawelement.h
+2022/09/17 | 1142 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
+2022/09/17 | 1142 | graphics/asymptote/envcompleter.cc
+2022/09/17 | 1140 | graphics/asymptote/absyn.h
+2022/09/17 | 113 | graphics/asymptote/patches/fixmem.reg
+2022/09/17 | 113 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/compiler_depend.make
+2022/09/17 | 1139 | graphics/asymptote/GUI/res/icons/opencurve.svg
+2022/09/17 | 1138 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
+2022/09/17 | 1137 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/misc/header.html
+2022/09/17 | 11373 | graphics/asymptote/base/plain_markers.asy
+2022/09/17 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/items.json
+2022/09/17 | 1136 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/items.json
+2022/09/17 | 113640 | systems/texlive/tlnet/archive/texlive-scripts.r64410.tar.xz
+2022/09/17 | 113565 | graphics/asymptote/cudareflect/tinyexr/examples/common/stb_image_resize.h
+2022/09/17 | 1131 | graphics/asymptote/gl-matrix-2.4.0-pruned/LICENSE.js
+2022/09/17 | 1131 | graphics/asymptote/cudareflect/tinyexr/experimental/js/index.html
+2022/09/17 | 112980 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/09/17 | 112878 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/09/17 | 1127425 | graphics/asymptote/cudareflect/tinyexr/asakusa.exr
+2022/09/17 | 1126 | graphics/asymptote/coenv.cc
+2022/09/17 | 11269 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
+2022/09/17 | 11221 | graphics/asymptote/jsfile.cc
+2022/09/17 | 1120 | graphics/asymptote/examples/animations/wheel.asy
+2022/09/17 | 1120 | graphics/asymptote/base/external.asy
+2022/09/17 | 111 | graphics/asymptote/GUI/res/icons/center.asy
+2022/09/17 | 111 | graphics/asymptote/examples/shadestroke.asy
+2022/09/17 | 1118 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/samples.md
+2022/09/17 | 1116 | graphics/asymptote/LspCpp/third_party/uri/test/valid_urls.txt
+2022/09/17 | 111505 | macros/generic/unicode-data/emoji-data.txt
+2022/09/17 | 1114 | graphics/asymptote/examples/laserlattice.asy
+2022/09/17 | 11146 | graphics/asymptote/LspCpp/third_party/rapidjson/readme.md
+2022/09/17 | 11122 | graphics/asymptote/base/math.asy
+2022/09/17 | 1111 | graphics/asymptote/examples/imagehistogram.asy
+2022/09/17 | 110 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/remotes/subSchemas.json
+2022/09/17 | 1108 | graphics/asymptote/GUI/res/icons/android-locate.svg
+2022/09/17 | 1104 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/cmake_clean.cmake
+2022/09/17 | 1103 | graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
+2022/09/17 | 1101 | graphics/asymptote/cudareflect/tinyexr/examples/resize/resize.cc
+2022/09/17 | 109 | graphics/asymptote/tests/string/insert.asy
+2022/09/17 | 109 | graphics/asymptote/GUI/res/icons/closedpolygon.asy
+2022/09/17 | 109 | graphics/asymptote/GUI/res/icons/closedcurve.asy
+2022/09/17 | 1098 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/types/integers.json
+2022/09/17 | 1096 | graphics/asymptote/tests/array/transpose.asy
+2022/09/17 | 1096 | graphics/asymptote/refaccess.cc
+2022/09/17 | 1096 | graphics/asymptote/drawlayer.h
+2022/09/17 | 109650 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/09/17 | 10964 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
+2022/09/17 | 109110 | macros/generic/unicode-data/WordBreakProperty.txt
+2022/09/17 | 1090 | graphics/asymptote/GUI/res/icons/redo.svg
+2022/09/17 | 10906 | graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
+2022/09/17 | 108 | graphics/asymptote/GUI/res/icons/subdirectory-left.svg
+2022/09/17 | 108 | graphics/asymptote/cudareflect/tinyexr/jni/README.md
+2022/09/17 | 1088 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
+2022/09/17 | 1088 | graphics/asymptote/examples/NURBSsphere.asy
+2022/09/17 | 10840 | graphics/asymptote/base/CAD.asy
+2022/09/17 | 1082 | graphics/asymptote/patches/README
+2022/09/17 | 107 | graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/compiler_depend.ts
+2022/09/17 | 1079 | graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
+2022/09/17 | 1075 | graphics/asymptote/v3dheadertypes.csv
+2022/09/17 | 1075 | graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
+2022/09/17 | 107438 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/09/17 | 1072 | graphics/asymptote/cudareflect/tinyexr/examples/cube2longlat/README.md
+2022/09/17 | 1070 | graphics/asymptote/cudareflect/IrradianceGenerator.sln
+2022/09/17 | 1066 | graphics/asymptote/LspCpp/LICENSE
+2022/09/17 | 1065 | graphics/asymptote/examples/shellmethod.asy
+2022/09/17 | 10641 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/minimum.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft4/maximum.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/minimum.json
+2022/09/17 | 1063 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/tests/draft3/maximum.json
+2022/09/17 | 10632 | graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
+2022/09/17 | 10632 | graphics/asymptote/EnvVarUpdate.nsh
+2022/09/17 | 1058 | graphics/asymptote/GUI/res/icons/closedpolygon.svg
+2022/09/17 | 10585 | graphics/asymptote/path3.h
+2022/09/17 | 1057 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/jsonschema/LICENSE
+2022/09/17 | 10571 | graphics/asymptote/cudareflect/tinyexr/deps/miniz/examples/example5.c
+2022/09/17 | 10563 | graphics/asymptote/cudareflect/tinyexr/test/unit/kuroga.py
+2022/09/17 | 10561 | graphics/asymptote/cudareflect/tinyexr/kuroga.py
+2022/09/17 | 1055 | graphics/asymptote/examples/partitionExample.asy
+2022/09/17 | 1053 | graphics/asymptote/doc/fillcontour.asy
+2022/09/17 | 1052 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/CMakeLists.txt
+2022/09/17 | 1051 | graphics/asymptote/prc/PRCTools/inflation.h
+2022/09/17 | 1051 | graphics/asymptote/doc/eetomumu.asy
+2022/09/17 | 1050 | graphics/asymptote/opsymbols.pl
+2022/09/17 | 10504 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
+2022/09/17 | 104 | graphics/asymptote/examples/tiling.asy
+2022/09/17 | 104921 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/09/17 | 1047 | graphics/asymptote/GUI/res/icons/undo.svg
+2022/09/17 | 10476 | graphics/asymptote/LspCpp/third_party/uri/deps/googlemock/include/gmock/gmock-nice-strict.h
+2022/09/17 | 1044671 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/screenshots/exrview.png
+2022/09/17 | 10445 | graphics/asymptote/INSTALL
+2022/09/17 | 1043 | graphics/asymptote/GUI/res/icons/openpolygon.svg
+2022/09/17 | 10414 | graphics/asymptote/LspCpp/third_party/uri/src/detail/uri_parse.cpp
+2022/09/17 | 1040 | graphics/asymptote/examples/lmfit1.asy
+2022/09/17 | 103 | graphics/asymptote/LspCpp/third_party/rapidjson/bin/data/readme.txt
+2022/09/17 | 1039 | graphics/asymptote/LspCpp/third_party/uri/test/CMakeLists.txt
+2022/09/17 | 1037 | graphics/asymptote/examples/animations/inlinemovie3.tex
+2022/09/17 | 103597 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/09/17 | 1034 | graphics/asymptote/LspCpp/third_party/uri/deps/docs/index.md
+2022/09/17 | 103478 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.zh-cn.in
+2022/09/17 | 1033 | graphics/asymptote/examples/basealign.asy
+2022/09/17 | 103393 | graphics/asymptote/LspCpp/third_party/rapidjson/doc/Doxyfile.in
+2022/09/17 | 1032 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_checked_iterator.cpp
+2022/09/17 | 103247 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/09/17 | 1031 | graphics/asymptote/LspCpp/third_party/uri/include/network/uri.hpp
+2022/09/17 | 10312 | graphics/asymptote/LspCpp/third_party/rapidjson/CMakeLists.txt
+2022/09/17 | 10310 | graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
+2022/09/17 | 1030 | graphics/asymptote/examples/workcone.asy
+2022/09/17 | 102 | graphics/asymptote/tests/gc/file.asy
+2022/09/17 | 102 | graphics/asymptote/GUI/res/icons/openpolygon.asy
+2022/09/17 | 102 | graphics/asymptote/GUI/res/icons/opencurve.asy
+2022/09/17 | 10271 | graphics/asymptote/GUI/windows/custMatTransform.ui
+2022/09/17 | 1026 | graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
+2022/09/17 | 1022 | graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
+2022/09/17 | 1022 | graphics/asymptote/GUI/res/icons/centerorigin.svg
+2022/09/17 | 10224 | graphics/asymptote/tr.cc
+2022/09/17 | 1020 | graphics/asymptote/flatguide.cc
+2022/09/17 | 1019 | graphics/asymptote/LspCpp/third_party/rapidjson/example/pretty/pretty.cpp
+2022/09/17 | 10196 | graphics/asymptote/doc/CAD.tex
+2022/09/17 | 10168 | graphics/asymptote/LspCpp/third_party/uri/test/uri_resolve_test.cpp
+2022/09/17 | 1015 | graphics/asymptote/GUI/xasyTransform.py
+2022/09/17 | 1014 | graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
+2022/09/17 | 101347 | graphics/asymptote/webgl/gl.js
+2022/09/17 | 10131 | graphics/asymptote/util.cc
+2022/09/17 | 10110 | graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/itoa.h
+2022/09/17 | 1010 | graphics/asymptote/examples/washermethod.asy
+2022/09/17 | 100 | graphics/asymptote/GUI/DebugFlags.py
+2022/09/17 | 1008 | graphics/asymptote/LspCpp/third_party/uri/src/CMakeLists.txt
+2022/09/17 | 1008 | graphics/asymptote/doc/leastsquares.asy
+2022/09/17 | 10073 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/include/gtest/gtest-spi.h
+2022/09/17 | 1005 | graphics/asymptote/doc/asy.1.begin
+2022/09/17 | 10038 | graphics/asymptote/GUI/pyUIClass/custMatTransform.py
+2022/09/17 | 1002 | graphics/asymptote/LspCpp/third_party/utfcpp/tests/test_unchecked_iterator.cpp
+2022/09/17 | 10023 | graphics/asymptote/LspCpp/third_party/uri/deps/googletest/test/googletest-catch-exceptions-test.py
+2022/09/17 | 1000 | graphics/asymptote/GUI/res/icons/chevron-with-circle-left.svg
+2022/09/17 | 1000 | graphics/asymptote/doc/FAQ/Makefile
+2022/09/17 | 100007 | graphics/asymptote/cudareflect/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_cocoa.png
2022/09/16 | 9422 | macros/latex/contrib/biblatex-contrib/biblatex-philosophy/examples.zip
2022/09/16 | 9133494 | install/fonts/cormorantgaramond.tds.zip
2022/09/16 | 9047742 | fonts/cormorantgaramond.zip
2022/09/16 | 8933482 | fonts/garamond-libre.zip
-2022/09/16 | 88484 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/09/16 | 8825 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
2022/09/16 | 8808 | systems/texlive/tlnet/archive/qrbill.r64406.tar.xz
2022/09/16 | 84604 | systems/texlive/tlnet/archive/qrbill.doc.r64406.tar.xz
2022/09/16 | 843736 | systems/texlive/tlnet/archive/bithesis.doc.r64398.tar.xz
-2022/09/16 | 824995 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/09/16 | 81448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/09/16 | 79065 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/09/16 | 77211 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/09/16 | 769653 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
2022/09/16 | 744456 | systems/texlive/tlnet/archive/l3build.doc.r64402.tar.xz
-2022/09/16 | 74100 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/09/16 | 73686 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/09/16 | 73264 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/09/16 | 72980 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/09/16 | 70939 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/09/16 | 682216 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/09/16 | 68146 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/09/16 | 7160 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/09/16 | 6748 | systems/texlive/tlnet/archive/collection-latexextra.r64404.tar.xz
2022/09/16 | 665 | fonts/simpleicons/README.md
-2022/09/16 | 662791 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/09/16 | 662652 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/09/16 | 65130 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/09/16 | 63803 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/09/16 | 63242 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/09/16 | 630432 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/09/16 | 62360 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/09/16 | 619998 | install/macros/latex/contrib/biblatex-contrib/biblatex-philosophy.tds.zip
-2022/09/16 | 599104 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
2022/09/16 | 588218 | macros/latex/contrib/biblatex-contrib/biblatex-philosophy.zip
-2022/09/16 | 58631 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/09/16 | 5831759 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/09/16 | 57505 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/09/16 | 57502 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/09/16 | 57317 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/09/16 | 565082 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/09/16 | 55322 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2022/09/16 | 544191 | macros/latex/contrib/biblatex-contrib/biblatex-philosophy/biblatex-philosophy.pdf
2022/09/16 | 5299 | fonts/cormorantgaramond/latex/CormorantGaramond.sty
-2022/09/16 | 527570 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/09/16 | 52628 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/09/16 | 52369 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/09/16 | 52036 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/09/16 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/09/16 | 48852 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/09/16 | 481895 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/09/16 | 48039 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
2022/09/16 | 4798134 | fonts/simpleicons.zip
2022/09/16 | 465812 | systems/texlive/tlnet/archive/charissil.doc.r64399.tar.xz
-2022/09/16 | 45794 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/09/16 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/09/16 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/09/16 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/09/16 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2022/09/16 | 43890 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/09/16 | 43619 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/09/16 | 43528 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/09/16 | 421024 | systems/texlive/tlnet/archive/texlive-scripts.doc.r64397.tar.xz
-2022/09/16 | 41191 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/09/16 | 41180 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/09/16 | 394143 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
2022/09/16 | 3928 | systems/texlive/tlnet/archive/ppt-slides.r64405.tar.xz
2022/09/16 | 3883 | fonts/garamond-libre/latex/garamondlibre.sty
-2022/09/16 | 37506 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/09/16 | 37050 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2022/09/16 | 3634 | fonts/garamond-libre/README
2022/09/16 | 35852 | systems/texlive/tlnet/archive/l3build.r64402.tar.xz
-2022/09/16 | 35264 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/09/16 | 352464 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/09/16 | 35231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
2022/09/16 | 340 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsOneZero.tfm
-2022/09/16 | 33863 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
2022/09/16 | 33132 | systems/texlive/tlnet/archive/bithesis.source.r64398.tar.xz
-2022/09/16 | 325980 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/09/16 | 325485 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/09/16 | 32074 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
2022/09/16 | 3191028 | systems/texlive/tlnet/archive/charissil.r64399.tar.xz
-2022/09/16 | 31585 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/09/16 | 31562 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2022/09/16 | 3143336 | systems/texlive/tlnet/archive/animate.doc.r64401.tar.xz
2022/09/16 | 30924 | systems/texlive/tlnet/archive/l3build.source.r64402.tar.xz
-2022/09/16 | 30570 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
2022/09/16 | 30204 | systems/texlive/tlnet/archive/animate.source.r64401.tar.xz
-2022/09/16 | 295945 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/09/16 | 293294 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/09/16 | 293288 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/09/16 | 290343 | support/TeX4ht/source/tex4ht-sty.tex
2022/09/16 | 28804 | systems/texlive/tlnet/archive/photobook.r64404.tar.xz
-2022/09/16 | 286686 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/09/16 | 28510 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
2022/09/16 | 2842 | fonts/simpleicons/enc/simpleiconsOne.enc
-2022/09/16 | 2821672 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
2022/09/16 | 2803 | fonts/cormorantgaramond/README
+2022/09/16 | 2751 | macros/latex/contrib/calculator/calculator.ins
2022/09/16 | 274 | fonts/simpleicons/tex/usimpleiconsOneZero.fd
-2022/09/16 | 27464 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/09/16 | 270467 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
2022/09/16 | 2701 | fonts/simpleicons/enc/simpleiconsEight.enc
2022/09/16 | 2684 | fonts/simpleicons/enc/simpleiconsFour.enc
2022/09/16 | 2661 | fonts/simpleicons/enc/simpleiconsTwo.enc
@@ -110,7 +2191,6 @@
2022/09/16 | 259 | fonts/simpleicons/tex/usimpleiconsNine.fd
2022/09/16 | 259 | fonts/simpleicons/tex/usimpleiconsFour.fd
2022/09/16 | 259 | fonts/simpleicons/tex/usimpleiconsFive.fd
-2022/09/16 | 25516582 | systems/texlive/tlnet/install-tl.zip
2022/09/16 | 254 | fonts/simpleicons/tex/usimpleiconsTwo.fd
2022/09/16 | 254 | fonts/simpleicons/tex/usimpleiconsSix.fd
2022/09/16 | 254 | fonts/simpleicons/tex/usimpleiconsOne.fd
@@ -118,56 +2198,24 @@
2022/09/16 | 2528 | fonts/simpleicons/enc/simpleiconsSix.enc
2022/09/16 | 2513 | macros/latex/contrib/biblatex-contrib/biblatex-philosophy/README
2022/09/16 | 2513 | fonts/simpleicons/enc/simpleiconsNine.enc
-2022/09/16 | 25117 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/09/16 | 247207 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/09/16 | 245152 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/09/16 | 24211 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/09/16 | 2406052 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2022/09/16 | 23950 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
2022/09/16 | 23864 | systems/texlive/tlnet/archive/animate.r64401.tar.xz
2022/09/16 | 2292 | fonts/simpleicons/enc/simpleiconsOneZero.enc
2022/09/16 | 226536 | systems/texlive/tlnet/archive/ppt-slides.doc.r64405.tar.xz
2022/09/16 | 225122 | macros/latex/contrib/biblatex-contrib/biblatex-philosophy/biblatex-philosophy.dtx
-2022/09/16 | 213847 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
2022/09/16 | 209860 | fonts/simpleicons/tex/simpleiconsglyphs-pdftex.tex
-2022/09/16 | 209139 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
2022/09/16 | 206116 | fonts/simpleicons/tex/simpleiconsglyphs-xeluatex.tex
-2022/09/16 | 20437141 | systems/texlive/tlnet/install-tl-windows.exe
-2022/09/16 | 203421 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/09/16 | 2023133 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/09/16 | 201302 | support/TeX4ht/source/ChangeLog
2022/09/16 | 198712 | systems/texlive/tlnet/archive/opencolor.doc.r64403.tar.xz
2022/09/16 | 198492 | systems/texlive/tlnet/archive/clearsans.doc.r64400.tar.xz
2022/09/16 | 19808 | systems/texlive/tlnet/archive/bithesis.r64398.tar.xz
-2022/09/16 | 196213 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/09/16 | 1924312 | fonts/simpleicons/doc/simpleicons.pdf
-2022/09/16 | 18511 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
2022/09/16 | 1844 | fonts/simpleicons/doc/simpleicons.tex
-2022/09/16 | 18382 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
2022/09/16 | 1820340 | fonts/simpleicons/opentype/SimpleIcons.otf
-2022/09/16 | 181723 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/09/16 | 17639151 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/09/16 | 173177 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/09/16 | 169676 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2022/09/16 | 1695972 | fonts/simpleicons/type1/SimpleIcons.pfb
2022/09/16 | 1559 | fonts/simpleicons/tex/simpleicons.sty
-2022/09/16 | 155429 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
2022/09/16 | 1548 | systems/texlive/tlnet/archive/opencolor.r64403.tar.xz
-2022/09/16 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/09/16 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/09/16 | 1503054 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/09/16 | 15000 | systems/texlive/tlnet/archive/qrbill.source.r64406.tar.xz
-2022/09/16 | 1492140 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/09/16 | 1490154 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/09/16 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/09/16 | 1458152 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/09/16 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/09/16 | 14434 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2022/09/16 | 140014 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/09/16 | 138532 | systems/texlive/tlnet/archive/photobook.doc.r64404.tar.xz
-2022/09/16 | 1372399 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2022/09/16 | 1372298 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/09/16 | 135465 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/09/16 | 1323745 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
2022/09/16 | 1322408 | systems/texlive/tlnet/archive/clearsans.r64400.tar.xz
2022/09/16 | 124688 | fonts/simpleicons/doc/bindings.tex
2022/09/16 | 1236 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsSeven.tfm
@@ -179,20 +2227,10 @@
2022/09/16 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsFive.tfm
2022/09/16 | 1232 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsEight.tfm
2022/09/16 | 1228 | fonts/simpleicons/tfm/SimpleIcons--simpleiconsOne.tfm
-2022/09/16 | 1172 | systems/win32/miktex/tm/packages/next/pr.ini
-2022/09/16 | 1161752 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/09/16 | 115580 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/09/16 | 113636 | systems/texlive/tlnet/archive/texlive-scripts.r64397.tar.xz
-2022/09/16 | 112980 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/09/16 | 112880 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/09/16 | 115395415 | macros/context/latest/cont-tmf.zip
+2022/09/16 | 1129620 | support/TeX4ht/source/tex4ht-4ht.tex
2022/09/16 | 1119 | fonts/simpleicons/map/simpleicons.map
-2022/09/16 | 109650 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/09/16 | 107439 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/09/16 | 104921 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/09/16 | 103598 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/09/16 | 103248 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
2022/09/15 | 95932 | systems/texlive/tlnet/archive/luatruthtable.doc.r64392.tar.xz
-2022/09/15 | 952780 | systems/texlive/tlnet/archive/tex4ht.r64394.tar.xz
2022/09/15 | 94352 | macros/latex/contrib/ppt-slides/socrates.jpg
2022/09/15 | 920 | systems/texlive/tlnet/archive/collection-luatex.r64393.tar.xz
2022/09/15 | 915 | macros/latex/contrib/newpax/doc-use-pax.tex
@@ -213,7 +2251,6 @@
2022/09/15 | 7756 | macros/latex/contrib/l3build/l3build-arguments.lua
2022/09/15 | 742080 | macros/latex/contrib/l3build/l3build.pdf
2022/09/15 | 7194 | macros/latex/contrib/l3build/l3build-manifest.lua
-2022/09/15 | 7170 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/09/15 | 71189 | macros/latex/contrib/newpax/doc-use-newpax.pdf
2022/09/15 | 6988 | systems/texlive/tlnet/archive/fixdif.source.r64390.tar.xz
2022/09/15 | 6735 | macros/latex/contrib/l3build/l3build-typesetting.lua
@@ -233,6 +2270,7 @@
2022/09/15 | 4972 | macros/latex/contrib/l3build/l3build-ctan.lua
2022/09/15 | 4738015 | install/fonts/charissil.tds.zip
2022/09/15 | 456 | macros/latex/contrib/qrbill/qrbill-latexluaqrcode.lua
+2022/09/15 | 4508 | fonts/librebaskerville/doc/OFL.txt
2022/09/15 | 45012 | macros/latex/contrib/newpax/doc-use-pax.pdf
2022/09/15 | 4413 | fonts/cormorantgaramond/doc/OFL.txt
2022/09/15 | 4352646 | fonts/charissil.zip
@@ -321,7 +2359,6 @@
2022/09/15 | 1420 | macros/latex/contrib/ppt-slides/ppt-schemes/ppt-dark-mono.tex
2022/09/15 | 1412 | fonts/charissil/latex/CharisSIL.sty
2022/09/15 | 138695 | macros/latex/contrib/animate/animate.sty
-2022/09/15 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r64394.tar.xz
2022/09/15 | 1349 | macros/latex/contrib/udes-genie-these/document.tex
2022/09/15 | 134431 | macros/latex/contrib/photobook/photobook.pdf
2022/09/15 | 134261 | macros/latex/contrib/udes-genie-these.zip
@@ -329,7 +2366,6 @@
2022/09/15 | 13188 | macros/latex/contrib/animate/ChangeLog
2022/09/15 | 13025 | macros/latex/contrib/newpax/newpax.tex
2022/09/15 | 1275 | fonts/charissil/README
-2022/09/15 | 1268180 | systems/texlive/tlnet/archive/tex4ht.source.r64394.tar.xz
2022/09/15 | 12633 | macros/latex/contrib/l3build/l3build-file-functions.lua
2022/09/15 | 1153 | macros/latex/contrib/qrbill/qrbill_swiss-cross.pdf
2022/09/15 | 113355 | macros/latex/contrib/udes-genie-these/udes-genie-these.pdf
@@ -564,7 +2600,6 @@
2022/09/14 | 20751 | macros/latex/contrib/beamer/doc/examples/a-conference-talk/beamerexample-conference-talk.tex
2022/09/14 | 2045 | macros/latex/contrib/beamer/doc/licenses/manifest-documentation.txt
2022/09/14 | 2024 | macros/latex/contrib/beamer/base/themes/outer/beamerouterthemetree.sty
-2022/09/14 | 200965 | support/TeX4ht/source/ChangeLog
2022/09/14 | 198551 | macros/jptex/latex/jsclasses/jsclasses.dtx
2022/09/14 | 19301 | macros/latex/contrib/beamer/doc/examples/a-lecture/beamerexample-lecture-body.tex
2022/09/14 | 19106 | macros/latex/contrib/beamer/doc/licenses/lppl-1-3c.txt
@@ -642,7 +2677,6 @@
2022/09/14 | 114752 | systems/texlive/tlnet/archive/langnames.doc.r64376.tar.xz
2022/09/14 | 1140 | macros/latex/contrib/beamer/base/beamerbasethemes.sty
2022/09/14 | 11344 | macros/jptex/latex/jsclasses/jslogo.dtx
-2022/09/14 | 1129023 | support/TeX4ht/source/tex4ht-4ht.tex
2022/09/14 | 1121031 | macros/latex/contrib/stex/doc/stex-manual.pdf
2022/09/14 | 1111 | macros/latex/contrib/beamer/README.md
2022/09/14 | 11033 | fonts/alegreya/latex/AlegreyaSans.sty
@@ -663,10 +2697,8 @@
2022/09/13 | 919830 | systems/win32/miktex/tm/packages/ebgaramond__doc.tar.lzma
2022/09/13 | 915084 | systems/texlive/tlnet/archive/ebgaramond.doc.r64343.tar.xz
2022/09/13 | 8789 | systems/win32/miktex/tm/packages/newpax.tar.lzma
-2022/09/13 | 8788 | systems/texlive/tlnet/archive/newpax.source.r64347.tar.xz
2022/09/13 | 87876 | systems/texlive/tlnet/archive/pstricks.r64360.tar.xz
2022/09/13 | 8635 | systems/win32/miktex/tm/packages/media4svg.tar.lzma
-2022/09/13 | 8552 | systems/texlive/tlnet/archive/newpax.r64347.tar.xz
2022/09/13 | 8212196 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
2022/09/13 | 82018 | systems/win32/miktex/tm/packages/pstricks.tar.lzma
2022/09/13 | 8039 | macros/latex/contrib/hereapplies/hereapplies-doc.tex
@@ -689,7 +2721,6 @@
2022/09/13 | 6434 | systems/win32/miktex/tm/packages/menukeys.tar.lzma
2022/09/13 | 6341 | systems/win32/miktex/tm/packages/pmhanguljamo.tar.lzma
2022/09/13 | 6241 | systems/win32/miktex/tm/packages/beamerthemeamurmaple.tar.lzma
-2022/09/13 | 61708 | systems/texlive/tlnet/archive/newpax.doc.r64347.tar.xz
2022/09/13 | 609607 | systems/win32/miktex/tm/packages/menukeys__doc.tar.lzma
2022/09/13 | 608 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-linuxmusl.r64356.tar.xz
2022/09/13 | 6084 | systems/texlive/tlnet/archive/pmhanguljamo.r64361.tar.xz
@@ -931,199 +2962,5 @@
2022/09/11 | 132041 | graphics/pstricks/contrib/luapstricks/luapstricks.lua
2022/09/11 | 125297 | graphics/pstricks/base/generic/pstricks.tex
2022/09/11 | 1217484 | systems/texlive/tlnet/archive/profcollege.r64334.tar.xz
-2022/09/11 | 112459492 | macros/context/latest/cont-tmf.zip
2022/09/11 | 10908 | systems/texlive/tlnet/archive/gentombow.r64333.tar.xz
2022/09/11 | 10307252 | systems/texlive/tlnet/archive/profcollege.doc.r64334.tar.xz
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tmin9.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tmin8.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tmin7.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tmin6.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tmin5.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tmin10.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tgoth9.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tgoth8.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tgoth7.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tgoth6.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tgoth5.tfm
-2022/09/10 | 856 | fonts/ptex-fonts/tfm/tgoth10.tfm
-2022/09/10 | 792 | graphics/pstricks/contrib/pst-bar/README
-2022/09/10 | 7762 | macros/latex/contrib/gentombow/pxesopic.sty
-2022/09/10 | 7673 | macros/latex/contrib/gentombow/bounddvi.tex
-2022/09/10 | 737 | macros/latex/contrib/gentombow/pxgentombow.tex
-2022/09/10 | 6736 | fonts/ebgaramond/latex/ebgaramond.sty
-2022/09/10 | 655136 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.pdf
-2022/09/10 | 5817 | graphics/pstricks/contrib/pst-bar/doc/pst-bar-doc.bib
-2022/09/10 | 5815 | macros/unicodetex/latex/textcsc/textcsc-documentation.tex
-2022/09/10 | 558 | macros/unicodetex/latex/textcsc/README
-2022/09/10 | 537735 | macros/latex/contrib/gentombow.zip
-2022/09/10 | 5331 | macros/latex/contrib/gentombow/bounddvi-en.tex
-2022/09/10 | 495 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/LICENSE
-2022/09/10 | 49397 | macros/latex/contrib/gentombow/bounddvi-en.pdf
-2022/09/10 | 48544 | macros/unicodetex/latex/textcsc/textcsc-documentation.pdf
-2022/09/10 | 4703 | fonts/roboto/latex/roboto-mono.sty
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jis-v.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jis.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jisn-v.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jisn.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jisg-v.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jisg.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jisgn-v.tfm
-2022/09/10 | 468 | fonts/ptex-fonts/tfm/jisgn.tfm
-2022/09/10 | 457 | macros/latex/contrib/gentombow/pxgentombow.sty
-2022/09/10 | 4506 | fonts/roboto/README
-2022/09/10 | 4181 | macros/latex/contrib/stex/doc/stex-ide.tex
-2022/09/10 | 41513837 | install/fonts/roboto.tds.zip
-2022/09/10 | 3986 | macros/latex/contrib/gentombow/bounddvi.sty
-2022/09/10 | 369 | graphics/pstricks/contrib/pst-bar/latex/pst-bar.sty
-2022/09/10 | 3412 | macros/latex/contrib/gentombow/pxtextpos.sty
-2022/09/10 | 329247 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-sidebar.pdf
-2022/09/10 | 3284 | fonts/ebgaramond/README
-2022/09/10 | 315595 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-test.pdf
-2022/09/10 | 314951 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-leftframetitle.pdf
-2022/09/10 | 30245 | graphics/pstricks/contrib/pst-bar/doc/pst-bar-doc.tex
-2022/09/10 | 2827 | macros/unicodetex/latex/textcsc/textcsc.pdf
-2022/09/10 | 2670 | fonts/ptex-fonts/source/jis.pl
-2022/09/10 | 26436 | macros/latex/contrib/gentombow/gentombow.sty
-2022/09/10 | 2625520 | systems/texlive/tlnet/archive/simpleicons.r64321.tar.xz
-2022/09/10 | 2588 | fonts/ptex-fonts/source/jis-v.pl
-2022/09/10 | 2588 | fonts/ptex-fonts/source/jisn-v.pl
-2022/09/10 | 2570 | fonts/ptex-fonts/source/jisn.pl
-2022/09/10 | 2550 | macros/latex/contrib/stex/doc/packages/stex-idesetup.tex
-2022/09/10 | 23314 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/tex/beamerthemeAmurmaple.sty
-2022/09/10 | 23109 | macros/latex/contrib/gentombow/pxgentombow.pdf
-2022/09/10 | 22403 | macros/latex/contrib/stex/doc/stex-manual.tex
-2022/09/10 | 2196 | graphics/pstricks/contrib/pst-bar/Changes
-2022/09/10 | 21707 | macros/latex/contrib/gentombow/gentombow-ja.tex
-2022/09/10 | 2144 | macros/latex/contrib/gentombow/pxpdfpages.sty
-2022/09/10 | 1981682 | install/fonts/ptex-fonts.tds.zip
-2022/09/10 | 1967790 | fonts/ptex-fonts.zip
-2022/09/10 | 1966 | macros/latex/contrib/gentombow/README.md
-2022/09/10 | 1930064 | systems/texlive/tlnet/archive/simpleicons.doc.r64321.tar.xz
-2022/09/10 | 19290 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/beamer-amurmaple-doc.tex
-2022/09/10 | 1796 | macros/latex/contrib/stex/doc/packages/stex-setup.tex
-2022/09/10 | 178279 | macros/latex/contrib/gentombow/gentombow-ja.pdf
-2022/09/10 | 1742414 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple.zip
-2022/09/10 | 1719 | macros/unicodetex/latex/textcsc/textcsc.sty
-2022/09/10 | 170260 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/doc/logo.png
-2022/09/10 | 1640 | systems/texlive/tlnet/archive/collection-publishers.r64324.tar.xz
-2022/09/10 | 163295 | macros/latex/contrib/gentombow/gentombow.pdf
-2022/09/10 | 16024850 | install/fonts/ebgaramond.tds.zip
-2022/09/10 | 1553 | fonts/ptex-fonts/LICENSE
-2022/09/10 | 1500 | macros/latex/contrib/gentombow/LICENSE
-2022/09/10 | 14933 | fonts/roboto/latex/roboto.sty
-2022/09/10 | 147527 | graphics/pstricks/contrib/pst-bar.zip
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tmin9.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tmin8.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tmin7.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tmin6.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tmin5.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tmin10.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tgoth9.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tgoth8.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tgoth7.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tgoth6.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tgoth5.vf
-2022/09/10 | 141852 | fonts/ptex-fonts/vf/tgoth10.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/nmin9.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/nmin8.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/nmin7.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/nmin6.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/nmin5.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/nmin10.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/ngoth9.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/ngoth8.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/ngoth7.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/ngoth6.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/ngoth5.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/ngoth10.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/min9.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/min8.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/min7.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/min6.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/min5.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/min10.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/goth9.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/goth8.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/goth7.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/goth6.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/goth5.vf
-2022/09/10 | 141636 | fonts/ptex-fonts/vf/goth10.vf
-2022/09/10 | 141464 | fonts/ptex-fonts/vf/jis-v.vf
-2022/09/10 | 141464 | fonts/ptex-fonts/vf/jis.vf
-2022/09/10 | 141464 | fonts/ptex-fonts/vf/jisg-v.vf
-2022/09/10 | 141464 | fonts/ptex-fonts/vf/jisg.vf
-2022/09/10 | 141452 | fonts/ptex-fonts/vf/jisn-v.vf
-2022/09/10 | 141452 | fonts/ptex-fonts/vf/jisn.vf
-2022/09/10 | 141452 | fonts/ptex-fonts/vf/jisgn-v.vf
-2022/09/10 | 141452 | fonts/ptex-fonts/vf/jisgn.vf
-2022/09/10 | 134451 | graphics/pstricks/contrib/pst-bar/doc/pst-bar-doc.pdf
-2022/09/10 | 13213 | fonts/roboto/latex/roboto-serif.sty
-2022/09/10 | 12655 | fonts/ptex-fonts/source/min10.pl
-2022/09/10 | 12655 | fonts/ptex-fonts/source/goth10.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/min9.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/min8.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/min7.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/min6.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/min5.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/goth9.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/goth8.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/goth7.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/goth6.pl
-2022/09/10 | 12654 | fonts/ptex-fonts/source/goth5.pl
-2022/09/10 | 12580 | graphics/pstricks/contrib/pst-bar/tex/pst-bar.tex
-2022/09/10 | 1236 | macros/latex/contrib/beamer-contrib/themes/beamerthemeamurmaple/README.md
-2022/09/10 | 12353 | fonts/ptex-fonts/source/tgoth10.pl
-2022/09/10 | 12352 | fonts/ptex-fonts/source/tmin10.pl
-2022/09/10 | 12352 | fonts/ptex-fonts/source/tgoth9.pl
-2022/09/10 | 12352 | fonts/ptex-fonts/source/tgoth8.pl
-2022/09/10 | 12352 | fonts/ptex-fonts/source/tgoth7.pl
-2022/09/10 | 12352 | fonts/ptex-fonts/source/tgoth6.pl
-2022/09/10 | 12352 | fonts/ptex-fonts/source/tgoth5.pl
-2022/09/10 | 12351 | fonts/ptex-fonts/source/tmin9.pl
-2022/09/10 | 12351 | fonts/ptex-fonts/source/tmin8.pl
-2022/09/10 | 12351 | fonts/ptex-fonts/source/tmin7.pl
-2022/09/10 | 12351 | fonts/ptex-fonts/source/tmin6.pl
-2022/09/10 | 12351 | fonts/ptex-fonts/source/tmin5.pl
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/min9.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/min8.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/min7.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/min6.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/min5.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/min10.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/goth9.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/goth8.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/goth7.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/goth6.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/goth5.tfm
-2022/09/10 | 1196 | fonts/ptex-fonts/tfm/goth10.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/nmin9.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/nmin8.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/nmin7.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/nmin6.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/nmin5.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/nmin10.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/ngoth9.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/ngoth8.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/ngoth7.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/ngoth6.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/ngoth5.tfm
-2022/09/10 | 1104 | fonts/ptex-fonts/tfm/ngoth10.tfm
-2022/09/10 | 108 | fonts/ptex-fonts/tfm/rmlv.tfm
-2022/09/10 | 108 | fonts/ptex-fonts/tfm/rml.tfm
-2022/09/10 | 108 | fonts/ptex-fonts/tfm/gbmv.tfm
-2022/09/10 | 108 | fonts/ptex-fonts/tfm/gbm.tfm
-2022/09/10 | 1049 | fonts/ptex-fonts/README.md
-2022/09/10 | 10452 | macros/latex/contrib/gentombow/gentombow.tex
-2022/09/10 | 102475 | macros/latex/contrib/gentombow/bounddvi.pdf
-2022/09/10 | 10049 | fonts/ptex-fonts/source/nmin10.pl
-2022/09/10 | 10049 | fonts/ptex-fonts/source/ngoth10.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/nmin9.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/nmin8.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/nmin7.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/nmin6.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/nmin5.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/ngoth9.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/ngoth8.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/ngoth7.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/ngoth6.pl
-2022/09/10 | 10048 | fonts/ptex-fonts/source/ngoth5.pl
diff --git a/fonts/fira/README b/fonts/fira/README
index 45a6d45320..6a74c705ef 100644
--- a/fonts/fira/README
+++ b/fonts/fira/README
@@ -1,4 +1,4 @@
-This is the README for the fira package, version 4.3-2020-06-05.
+This is the README for the fira package, version 4.3-2022-09-17.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX
support for the Fira Sans family of fonts (version 4.3)
diff --git a/fonts/fira/doc/fira-samples.pdf b/fonts/fira/doc/fira-samples.pdf
index 9642465d21..1265a9cab1 100644
--- a/fonts/fira/doc/fira-samples.pdf
+++ b/fonts/fira/doc/fira-samples.pdf
Binary files differ
diff --git a/fonts/fira/doc/fira-samples.tex b/fonts/fira/doc/fira-samples.tex
index 30d9ee1deb..36322ceded 100644
--- a/fonts/fira/doc/fira-samples.tex
+++ b/fonts/fira/doc/fira-samples.tex
@@ -1,6 +1,6 @@
\documentclass{article}
\usepackage[LGR,T1]{fontenc}
-\usepackage[sfdefault]{FiraSans}
+\usepackage[sfdefault, semibold]{FiraSans}
\usepackage[nomap]{FiraMono}
\usepackage{lipsum}
\begin{document}
@@ -117,7 +117,6 @@ Officially broken off. Often offline, find me flowerless.
\section*{Fira Mono}
\ttfamily
-
'a' \quad "a" \quad `a' \quad ``a''
\subsection*{Regular}
diff --git a/fonts/fira/latex/FiraMono.sty b/fonts/fira/latex/FiraMono.sty
index 05d71fe781..e7a966c917 100644
--- a/fonts/fira/latex/FiraMono.sty
+++ b/fonts/fira/latex/FiraMono.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{FiraMono}
- [2019/10/10 (Bob Tennent and autoinst) Style file for Fira Mono fonts.]
+ [2022/09/17 (Bob Tennent and autoinst) Style file for Fira Mono fonts.]
% nomap option suggested by Harlan Lieberman-Berg (hlieberm@akamai.com) 2016-02-11
@@ -70,7 +70,6 @@
\fi
\iffiramono@otf
- \ifxetex\XeTeXtracingfonts=1\fi
\iffiramono@ligatures
\defaultfontfeatures{
Ligatures = TeX ,
diff --git a/fonts/fira/latex/FiraSans.sty b/fonts/fira/latex/FiraSans.sty
index cdc2bf2070..8309eb291a 100644
--- a/fonts/fira/latex/FiraSans.sty
+++ b/fonts/fira/latex/FiraSans.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{FiraSans}
- [2019/10/10 (Bob Tennent and autoinst) Style file for Fira Sans fonts.]
+ [2022/09/17 (Bob Tennent and autoinst) Style file for Fira Sans fonts.]
\RequirePackage{ifxetex,ifluatex,xkeyval,textcomp}
@@ -122,7 +122,6 @@
\iffira@otf
\def\fira@regular{Regular}
- \ifxetex\XeTeXtracingfonts=1\fi
\defaultfontfeatures{
Ligatures = TeX ,
Scale = \FiraSans@scale ,
diff --git a/fonts/librebaskerville/README b/fonts/librebaskerville/README
index c4bd857f0c..94b56fc627 100644
--- a/fonts/librebaskerville/README
+++ b/fonts/librebaskerville/README
@@ -1,5 +1,5 @@
This is the README for the librebaskerville package, version
-2020-07-31.
+2022-09-17.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support for
the Libre Baskerville family of fonts, designed by Pablo Impallari.
diff --git a/fonts/librebaskerville/latex/LibreBskvl.sty b/fonts/librebaskerville/latex/LibreBskvl.sty
deleted file mode 100644
index 7576135f43..0000000000
--- a/fonts/librebaskerville/latex/LibreBskvl.sty
+++ /dev/null
@@ -1,59 +0,0 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{LibreBskvl}
- [2020/07/27 (autoinst) Style file for LibreBskvl fonts.]
-
-\RequirePackage{xkeyval}
-\newcommand*{\LibreBskvl@scale}{1}
-\DeclareOptionX{scale}{\renewcommand*{\LibreBskvl@scale}{#1}}
-\DeclareOptionX{scaled}{\renewcommand*{\LibreBskvl@scale}{#1}}
-
-\DeclareOptionX{lining}{\edef\LibreBskvl@figurestyle{LF}}
-\DeclareOptionX{proportional}{\edef\LibreBskvl@figurealign{}}
-\DeclareOptionX{mainfont}{
- \renewcommand{\familydefault}{\rmdefault}
-}
-\DeclareOptionX{bold}{\edef\bfseries@rm{bold}}
-\DeclareOptionX{regular}{\edef\mdseries@rm{regular}}
-\ExecuteOptionsX{lining,proportional,bold,regular}
-\ProcessOptionsX\relax
-
-\RequirePackage{fontenc,textcomp}
-\RequirePackage{ifthen}
-\RequirePackage{mweights}
-
-\IfFileExists{fontaxes.sty}{
- \RequirePackage{fontaxes}
- \fa@naming@exception{figures}{{superior}{proportional}}{Sup}
- \fa@naming@exception{figures}{{superior}{tabular}}{Sup}
- \def\supfigures{\@nomath\supfigures
- \fontfigurestyle{superior}\selectfont}
- \let\sufigures\supfigures
- \DeclareTextFontCommand{\textsup}{\supfigures}
- \let\textsu\textsup
- \let\textsuperior\textsup
-
-}{}
-
-% Here we implement the scale=MatchLowercase option.
-% If this is given, we must compute the correct value of
-% the "\LibreBskvl@scale" parameter before loading the .fd files;
-% but to determine that value we of course need the font's x-height.
-% To avoid triggering the loading of .fd files,
-% we use plain TeX's \font primitive to load the testfont.
-% We then compute the ratio of the current x-height to our font's x-height;
-% this is the "\LibreBskvl@scale" we will pass to the .fd files.
-\ifthenelse{\equal{\LibreBskvl@scale}{MatchLowercase}}
- { \newlength{\LibreBskvl@currentx}
- \settoheight{\LibreBskvl@currentx}{x}
- \newlength{\LibreBskvl@xheight}
- \settoheight{\LibreBskvl@xheight}
- {{\font\testfont=LibreBskvl-Regular-lf-ot1 at \f@size pt\testfont x}}
- \renewcommand*{\LibreBskvl@scale}
- {\strip@pt\dimexpr\number\numexpr\number\dimexpr\LibreBskvl@currentx\relax*65536/\number\dimexpr\LibreBskvl@xheight\relax\relax sp\relax}}
- {}
-
-\renewcommand*
- {\rmdefault}
- {LibreBskvl-\LibreBskvl@figurealign\LibreBskvl@figurestyle}
-
-\endinput
diff --git a/fonts/librebaskerville/latex/librebaskerville.sty b/fonts/librebaskerville/latex/librebaskerville.sty
index 47f8b7efd1..5817293e89 100644
--- a/fonts/librebaskerville/latex/librebaskerville.sty
+++ b/fonts/librebaskerville/latex/librebaskerville.sty
@@ -1,5 +1,5 @@
\ProvidesPackage{librebaskerville}[%
- 2020/07/31 (Bob Tennent) Supports LibreBaskerville fonts for all LaTeX engines. ]
+ 2022/09/17 (Bob Tennent) Supports LibreBaskerville fonts for all LaTeX engines. ]
\RequirePackage{ifxetex,ifluatex,textcomp}
@@ -28,7 +28,6 @@
\fi
\iflibrebaskerville@ttf
- \ifxetex\XeTeXtracingfonts=1\fi
\defaultfontfeatures{
Ligatures = TeX ,
Extension = .ttf ,
diff --git a/graphics/asymptote/ChangeLog b/graphics/asymptote/ChangeLog
index ba7cb8a609..475cb4e882 100644
--- a/graphics/asymptote/ChangeLog
+++ b/graphics/asymptote/ChangeLog
@@ -1,3 +1,312 @@
+commit 2ac4c5f85acd6b0a04865be937279dc29fadb76e
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 11:27:55 2022 -0600
+
+ Fix default export extension.
+
+commit 40fd9804c037e1424e8e05498ce66f618bce5c58
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 01:17:37 2022 -0600
+
+ XASY: Implement color interface.
+
+commit f313efb692d567d300cd9e4931ea276cf0d1f74f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 01:01:10 2022 -0600
+
+ XASY: Remove obsolete code.
+
+commit 288ccc888480326cc6d3d4276498edf331a2bd7b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sat Sep 17 00:49:25 2022 -0600
+
+ XASY: Implement solid pen; disable unimplemented color interface.
+
+commit 5b436a4eb99c50dce13e856c12cda7b7729cf02f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 23:05:54 2022 -0600
+
+ XASY: Convert from asy to Qt pattern.
+
+commit 2f9dc5be12dca41d2e0413d2c94f0359c60f6919
+Merge: f3e3ed1a 2bf7c010
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 21:19:37 2022 -0600
+
+ Merge branch 'Qt'.
+
+commit 2bf7c010ef6a46dee4d79b6b2b84ccddd51b0d3c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 21:14:17 2022 -0600
+
+ XASY: Fix arrowify bug.
+
+commit 6b8e2c390808f67f76e611861caa634188732558
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 15:28:47 2022 -0600
+
+ Simplify vectorfield example.
+
+commit 14476dda18ae3a6a00d441762505f4d4683eac9b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:32:21 2022 -0600
+
+ Allow specifying only endpoint of vector in vectorfield.
+
+commit 65e039f72730a196ce89eb1d4194e9eaf8a97b43
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:24:31 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit b488009dcb56876362e073780e894307b21864cb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:38:11 2022 -0600
+
+ Remove diagnostic.
+
+commit 32d191daf3832e462b51e6a66df1a4f7ecda10cc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:06:03 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit ef690c9363b3d973f07f20e58a9d6764c8b67c6b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 11 21:56:54 2022 -0600
+
+ Fix integer quotient bug introduced in 1e1e6cbbcfe65b58ead8e04d5e2b302ed011acd8.
+
+commit 997f87e375387fcb4fbbda66db62bc2332f42b2c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 4 22:31:36 2022 -0600
+
+ Remove arrows from slopefield; fix scaling in vectorfield routines.
+
+commit f3e3ed1a216fa3e31878ac4d6169875099508c80
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Sep 16 15:28:47 2022 -0600
+
+ Simplify vectorfield example.
+
+commit 845985e11a46f3406fc80ddf4e22cf5bc0adea3b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:32:21 2022 -0600
+
+ Allow specifying only endpoint of vector in vectorfield.
+
+commit d0be9ddfcb8f004a520bb80f89739fa3378d06e4
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 23:24:31 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit fd5c3f906f0b5565bddefae6a10f88ecb525796a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:38:11 2022 -0600
+
+ Remove diagnostic.
+
+commit 54e4567585ad4d694cbca6d4fe640e154f67af22
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Sep 15 21:06:03 2022 -0600
+
+ Fix vectorfield scaling.
+
+commit 1d0e4cc886b840f87a726b40e6f9626b14568acc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 11 21:56:54 2022 -0600
+
+ Fix integer quotient bug introduced in 1e1e6cbbcfe65b58ead8e04d5e2b302ed011acd8.
+
+commit 01c0fad312146968a0fee96ba9282eccff6dc470
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Sep 4 22:31:36 2022 -0600
+
+ Remove arrows from slopefield; fix scaling in vectorfield routines.
+
+commit d2a1f5d2984d4e558285426290a8c36d1dd9e18f
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Aug 28 23:46:13 2022 -0600
+
+ XASY: Fix saving bugs.
+
+commit e766b2f8cc069ac8bb28eb74b4ff47b1eaf7a50c
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 27 03:12:24 2022 -0600
+
+ XASY: Remove debug print statements.
+
+commit 6d326fef6aa47d027ae159e9f9aeb60b67a1a657
+Merge: bbdba2da d48103a9
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 27 03:07:16 2022 -0600
+
+ Merge branch 'Qt' of https://github.com/vectorgraphics/asymptote into Qt
+
+commit bbdba2da493f0c95caf971d267e67f6f29d2573e
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 27 03:07:12 2022 -0600
+
+ XASY: Fix arrow dash render issue.
+
+commit d48103a9ad3de95caa1ff18ed6f2666128801166
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 26 00:29:01 2022 -0600
+
+ XASY: Apply KEY to begingroup().
+
+commit 2191ec77923ddbdb742abfe9fdcf0f9c1ffa4505
+Merge: 539b8367 98a183dc
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 26 00:13:20 2022 -0600
+
+ Merge branch 'master' into Qt.
+
+commit 98a183dcfbef510cae7f3ac45438f948fb82758b
+Author: John Bowman <bowman@ualberta.ca>
+Date: Fri Aug 26 00:08:44 2022 -0600
+
+ XASY: Fix begingroup transformation.
+
+commit 539b83671f0b4c1c8d1a17565aa025dd130efc2e
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Aug 25 01:29:14 2022 -0600
+
+ XASY: Fix noncommutativity with arrows and fills.
+
+commit 03b46aa391c31f809eae74524ef73b777c1dcc68
+Author: John Bowman <bowman@ualberta.ca>
+Date: Mon Aug 22 16:43:42 2022 -0600
+
+ Initialize globalObjectCounter to 1.
+
+commit c7e925123f538a59d55e6e2a998d87a254ac194a
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Aug 21 00:33:36 2022 -0600
+
+ XASY: Fix arrow rendering glitch.
+
+commit 86bc2acae142bdee83515c31ad8d4f393501b22d
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Aug 14 23:05:22 2022 -0600
+
+ XASY: Fix layout warning messages.
+
+commit 2d243189a39087701ce6450623f0c67860ff8c37
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Aug 13 18:39:52 2022 -0600
+
+ XASY: Fix translation arrow issue.
+
+commit 21e2e4ea0fe288247999f38eca30d90e6d524f9c
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:43:58 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "b6fb8491"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "b6fb8491"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit c9e57ede64853386a5db6ed7e8f2f1b080345c0f
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:41:45 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "526e85a5"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "526e85a5"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit a2405537b3da29db4c77403273f18113daeb73b8
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:32:43 2022 +0200
+
+ Update asygl.
+
+commit cf0e0be0be7c0b2be3cf36234d631515c1c5acd9
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 22:30:14 2022 +0200
+
+ Fix triangle groups.
+
+commit aa0954499ae7cdce7fc131441dff04c09d15076a
+Author: John Bowman <bowman@ualberta.ca>
+Date: Thu Aug 11 14:50:46 2022 +0200
+
+ Add missing file.
+
+commit 06d9f8f16828f6f803360aef602251ee680293a7
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 17:08:48 2022 +0200
+
+ Remove version number from CTAN top level directory.
+
+commit 103f78f49c890ea7d6998355a89b291991b89ddf
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 12:42:27 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "0e34158d"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "0e34158d"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit 4920559af405da4d32bfd86403a32cc0e88677bb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 12:37:08 2022 +0200
+
+ git subrepo pull --force LspCpp
+
+ subrepo:
+ subdir: "LspCpp"
+ merged: "d9cd4f6d"
+ upstream:
+ origin: "git@github.com:vectorgraphics/LspCpp"
+ branch: "master"
+ commit: "d9cd4f6d"
+ git-subrepo:
+ version: "0.4.3"
+ origin: "https://github.com/ingydotnet/git-subrepo"
+ commit: "2f68596"
+
+commit 8bd894e51d17f39a7c6275d7e23701a3b278c4bb
+Author: John Bowman <bowman@ualberta.ca>
+Date: Wed Aug 10 11:43:36 2022 +0200
+
+ Simplify code.
+
+commit f7557e41a68a0580a19c90d775f0d8f2d92de026
+Author: John Bowman <bowman@ualberta.ca>
+Date: Sun Aug 7 17:00:31 2022 +0200
+
+ Increment version to 2.83.
+
commit 94c770a177aae2dc11e19f70cc9f22ff649d7cea
Author: John Bowman <bowman@ualberta.ca>
Date: Sat Aug 6 22:17:24 2022 +0200
@@ -16,6 +325,12 @@ Date: Sat Aug 6 06:52:30 2022 +1000
Avoid global variables in AsyGL library.
+commit a57d71e7f9857ceba05b9d2fc926953d385971b5
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Aug 4 02:00:02 2022 -0600
+
+ XASY: Add rough intelligent dash patterns.
+
commit 0ab3eae561e21fcf5a906becf75483291db032d3
Author: John Bowman <bowman@ualberta.ca>
Date: Wed Aug 3 22:14:33 2022 +0200
@@ -28,6 +343,12 @@ Date: Mon Aug 1 23:36:30 2022 +0200
Enforce a unique normal and pen for each vertex in a PRC triangle group.
+commit f8d9c943899f592b20f9da01b51b223540536a63
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 30 21:50:25 2022 -0600
+
+ XASY: Fix arrow swapping bug.
+
commit 8e28af4e33a62630f82652552988c02267821578
Author: John Bowman <bowman@ualberta.ca>
Date: Fri Jul 29 21:10:05 2022 +0200
@@ -62,6 +383,30 @@ Date: Fri Jul 29 12:13:03 2022 +0200
Fix segmentation fault.
+commit e4dcdfbdef66e861d31bfe9ebbe722d66eafb3df
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 11:47:28 2022 -0600
+
+ XASY: Update option menu names to match asymptote.
+
+commit b5a059a24c57f866c165d388a37a159a9fd723c7
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 11:46:50 2022 -0600
+
+ XASY: Add asyPen cap options.
+
+commit d6e0c8ae5f4811f1f30ff59db450723fe291f241
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 11:44:04 2022 -0600
+
+ XASY: Allow arrow pen types.
+
+commit b52467ba7f780cdb31a1776e0338388614a21dd3
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 28 01:50:07 2022 -0600
+
+ XASY: Preserve shape fill status when arrowifying.
+
commit 3433888b9a26fa85995617bfdc1e51137b198692
Author: John Bowman <bowman@ualberta.ca>
Date: Thu Jul 28 05:55:22 2022 +1000
@@ -74,6 +419,18 @@ Date: Thu Jul 28 05:45:36 2022 +1000
Revert commented diagnostic.
+commit ff99318b814d8b02a503897a41269c7bb3ebbb61
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 26 20:54:00 2022 -0600
+
+ XASY: Fix line mode menu glitch.
+
+commit b2af1e079781e7bc53d7804b1622c0486e484b18
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 26 20:46:05 2022 -0600
+
+ XASY: Give opacity hint.
+
commit ec217a2261828eed41835da88c9bfa97af5ec2bc
Author: John Bowman <bowman@ualberta.ca>
Date: Tue Jul 26 20:47:12 2022 +0200
@@ -119,6 +476,36 @@ Date: Mon Jul 25 14:21:16 2022 -0600
Fix BUG #329: Fraction bars in labels are always black with PDF texengines.
+commit 9fe061906f7b5d0e334299c917effeb283989237
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jul 25 01:21:11 2022 -0600
+
+ XASY: Add rough version of opacity.
+
+commit acb00a464f88dfef0e36046925cd3df24a643e12
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 23 22:17:29 2022 -0600
+
+ XASY: Add rough version of pen caps.
+
+commit 3878760d3335d907ef6de6b251835eff51274395
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 23 21:53:27 2022 -0600
+
+ XASY: Add alpha line styles.
+
+commit 9573bc9448c759acd5fa820567d16f90d971acde
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jul 18 10:50:48 2022 -0600
+
+ XASY: Fix filled arrow grouping issue.
+
+commit d5dfdeba88d17eaccfea41798c4fd3a221d03f6a
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jul 16 22:08:18 2022 -0600
+
+ XASY: Add tabs to context menu.
+
commit 4fe6f9fb1633ebcfff637bf2140f042b7d802245
Author: Shriramana Sharma <samjnaa@gmail.com>
Date: Thu Jul 14 22:34:15 2022 +0530
@@ -149,12 +536,30 @@ Date: Thu Jul 14 19:47:02 2022 +0530
rename geometry.orthocentercenter to geometry.orthocenter
+commit fb60e629731adba9460cbb9297cf9def84baf897
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 14 01:17:14 2022 -0600
+
+ XASY: Fix arrow fill selection.
+
+commit de64e70501d4219220d8ecfeebd99effcb07f732
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jul 14 01:05:34 2022 -0600
+
+ XASY: Add hidden code for color options.
+
commit 587a21490bf6d3892ddeab36dc8d8acdd3cec32c
Author: John Bowman <bowman@ualberta.ca>
Date: Wed Jul 13 16:56:14 2022 -0600
Simplify code.
+commit 55d3dab28f6e3698b020cd6125690e65045c6091
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jul 13 04:07:01 2022 -0600
+
+ XASY: Allow basic arrow curve filling.
+
commit 3961ec5be64d394e86e89d4ca30b176d4b5ecf62
Author: John Bowman <bowman@ualberta.ca>
Date: Sun Jul 10 10:52:38 2022 -0600
@@ -167,12 +572,36 @@ Date: Sat Jul 9 20:12:27 2022 -0600
Address issue #320.
+commit e88b4b19b53141cc8a070c2eea1b343b5ae88b0e
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jul 6 23:19:20 2022 -0600
+
+ XASY: Fix object rendering error.
+
+commit 5794434a3392e8c9da44340c4c5a5ab56d55621c
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jul 6 23:13:19 2022 -0600
+
+ XASY: Set size of context menu.
+
commit 33bf1141c1bb787bd5518dcfa9f73a4f48d37dfa
Author: John Bowman <bowman@ualberta.ca>
Date: Wed Jul 6 23:05:40 2022 -0600
Output mean color only for PRC.
+commit 522aa30a31feeebfab9d9886200fa25c888cf41f
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 5 15:16:15 2022 -0600
+
+ XASY: Remove deprecated fill changing method.
+
+commit ee191384db269c183b116f717fab11cb6ba4684b
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue Jul 5 15:07:51 2022 -0600
+
+ XASY: Add default indicators for arrow options.
+
commit 7cbd28939b01da0f96980864698d7d704c9c1a9c
Author: John Bowman <bowman@ualberta.ca>
Date: Tue Jul 5 00:45:07 2022 -0600
@@ -203,6 +632,12 @@ Date: Mon Jul 4 17:05:47 2022 -0600
WEBGL: Compute triangle group bounds.
+commit 72de9111632b3370f362740ab42cb6ce0238888b
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jul 4 11:04:02 2022 -0600
+
+ XASY: Show hints for default arrow size and angle.
+
commit 00cd7219a9794f21ecd3209411889b25523322e0
Author: John Bowman <bowman@ualberta.ca>
Date: Mon Jul 4 00:04:25 2022 -0600
@@ -241,6 +676,30 @@ Date: Wed Jun 29 13:03:58 2022 -0600
Fix typo.
+commit e89c84c47bed90bca961e6bd26f8a8e7e3c8c3a0
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 26 23:53:52 2022 -0600
+
+ XASY: Fix arrow reflection bug.
+
+commit 149229fd5ac11209c9fa1f73d5b0d3ed4c2af7f4
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jun 25 00:03:29 2022 -0600
+
+ XASY: Fix context menu object selection quirks.
+
+commit 81c731e85cdd1803921322e7608306ff9109c0d8
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jun 23 21:47:06 2022 -0600
+
+ XASY: Finalize saving fix.
+
+commit d531d9e1a96ef2c589b76e38c1a3817cac0d5d95
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jun 22 00:49:55 2022 -0600
+
+ XASY: Progress on saving bug.
+
commit d393a76b3960455b4285806771e705faa54c20d8
Merge: 0669e4fb d8cacc97
Author: Supakorn 'Jamie' Rassameemasmuang <jamievlin@outlook.com>
@@ -269,12 +728,66 @@ Date: Tue Jun 21 21:32:47 2022 +0000
Signed-off-by: dependabot[bot] <support@github.com>
+commit d9c5fb35f0f2967f4a9af2a1df65aaa64996f861
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon Jun 20 02:40:52 2022 -0600
+
+ XASY: Improve how list options are created.
+
+commit e395fb2dd6250a78fd6ce8fd134e2cbf6dda9936
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jun 16 23:17:39 2022 -0600
+
+ XASY: Fix text entry bug.
+
+commit 134ebc7ff7947248ed281383a7026586d54b6567
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Thu Jun 16 21:20:34 2022 -0600
+
+ XASY: Refactor reflection code.
+
+commit 63932b2597a406fddbb98763c353fee01aba2524
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 12 23:53:38 2022 -0600
+
+ XASY: Refactoring and quality enhancement.
+
commit 8677a0f1a2571f1b38fc1589cf12f6341f69b659
Author: John Bowman <bowman@ualberta.ca>
Date: Sun Jun 12 10:32:22 2022 -0600
TRANSPARENCY: Save 4 bytes in shuffle array.
+commit 83e09ca618a9063f0d8c272dd855be9e081c19b1
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jun 11 20:16:52 2022 -0600
+
+ XASY: Make options dynamic.
+
+commit 292500e5c8d7762b8a49e62665c07221c3bee395
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat Jun 11 20:05:04 2022 -0600
+
+ XASY: Add confirm button for the context menu.
+
+commit 8097098c7938bcc1acc92e7aa5ca675160f47e23
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Fri Jun 10 21:37:38 2022 -0600
+
+ XASY: Add fill type options.
+
+commit 6d42edf99fcc672a4f7ab3d098c82eaa76c2e90c
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Fri Jun 10 21:23:30 2022 -0600
+
+ XASY: Add arrow angle changing options.
+
+commit d9d7a49824f5976135d4b82f554a6a6181ee7087
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Fri Jun 10 21:12:42 2022 -0600
+
+ XASY: Add arrow sizes.
+
commit a45aaa1e948343e6a6d86391f26f4f132e17e6bd
Merge: 5f676ec6 0669e4fb
Author: John Bowman <bowman@ualberta.ca>
@@ -300,6 +813,18 @@ Date: Thu Jun 9 17:26:50 2022 -0600
Fix formatting.
+commit 5d6189436d95bbbf6f443d67cc9744af3338ff89
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jun 8 17:54:34 2022 -0600
+
+ XASY: Fix selection crashing bug.
+
+commit ebf5014696e14f74b17b8a6c2ce740c15e15c657
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed Jun 8 17:51:54 2022 -0600
+
+ XASY: Clean up code used for testing.
+
commit 2879110f7a1ebb3c03cfbb01d68bfc4edbce466a
Author: John Bowman <bowman@ualberta.ca>
Date: Mon Jun 6 21:45:14 2022 -0600
@@ -312,6 +837,18 @@ Date: Sun Jun 5 13:06:39 2022 -0600
Update to latest prefixsum shader.
+commit f061f1483550229f592eab9b3e0425a2d6e608c3
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 5 00:55:47 2022 -0600
+
+ XASY: Fix arrow style selection bug.
+
+commit a2f9702924d4ec7592ba5241a9bc1a40aeb25733
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun Jun 5 00:44:26 2022 -0600
+
+ XASY: Add more arrow types.
+
commit 75baa00f90034b6de5ccb2dc57b10d723effb4e3
Author: John Bowman <bowman@ualberta.ca>
Date: Sat Jun 4 21:02:02 2022 -0600
@@ -342,6 +879,24 @@ Date: Wed Jun 1 16:10:04 2022 -0600
Use optimized binomial tree reduce in sum1 shader.
+commit 9271bd55970b7ba76e265d4dd9a89a932b8981aa
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 31 17:57:06 2022 -0600
+
+ XASY: Code improvements and arrow copying setup.
+
+commit 98939bfe5406905d51b64ae90ccb56822f6f97c3
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 31 17:51:19 2022 -0600
+
+ XASY: Allow dearrowification.
+
+commit d9eab3fb70031cdaa4de8ff14147eb6e895ec317
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 31 17:12:09 2022 -0600
+
+ XASY: Snap focus to canvas when objects change.
+
commit 9b853eead5d61728663ed5c457b4764800a70f17
Author: John Bowman <bowman@ualberta.ca>
Date: Tue May 31 13:33:33 2022 -0600
@@ -378,6 +933,12 @@ Date: Mon May 30 19:00:48 2022 -0600
Finish partial sums.
+commit fa12530d3f7a7d2e84c330ffa35181df38580831
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon May 30 11:59:22 2022 -0600
+
+ XASY: Rough version of adding arrowheads.
+
commit 8519ee922db934d05f0945b93ef17e4b24fe6ea2
Author: John Bowman <bowman@ualberta.ca>
Date: Mon May 30 10:58:37 2022 -0600
@@ -438,6 +999,12 @@ Date: Sun May 29 15:49:18 2022 -0600
Use atomicCounterExchange to reset compression counter.
+commit 711b1a1666ae0b622a0a79c6275d4076523bb4ba
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 29 15:18:50 2022 -0600
+
+ XASY: Add basic logic for replacing objects.
+
commit e407a7c34129589fcbb0a86d42925592e7d3f8b0
Author: John Bowman <bowman@ualberta.ca>
Date: Sun May 29 14:42:47 2022 -0600
@@ -476,6 +1043,12 @@ Date: Sat May 28 23:00:33 2022 -0600
Test 3-stage algorithm.
+commit 1c3176bb63ff4ab159bdea150174382c6f6b2b70
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat May 28 22:27:39 2022 -0600
+
+ XASY: Setup work for adding arrowheads.
+
commit e84bf41ae59bb60cdff9357fc0c7f7faf8933174
Author: John Bowman <bowman@ualberta.ca>
Date: Sat May 28 11:19:37 2022 -0600
@@ -514,6 +1087,18 @@ Date: Wed May 25 09:27:17 2022 -0600
This reverts commit 574eb027cf53064cfb27e8ab09333a7775b2e094.
+commit f377f169236460849e5507e75f50ea8e3955aeba
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 24 00:05:26 2022 -0600
+
+ XASY: Change options based on item type.
+
+commit 33cc6fcb9e5ca77a4565db00465345c2b28318d0
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Mon May 23 23:33:53 2022 -0600
+
+ XASY: Make reflection relative to object.
+
commit 574eb027cf53064cfb27e8ab09333a7775b2e094
Author: John Bowman <bowman@ualberta.ca>
Date: Mon May 23 22:59:08 2022 -0600
@@ -544,18 +1129,72 @@ Date: Mon May 23 15:30:10 2022 -0600
Use a single compute shader.
+commit aeabf93463cb35e55e7d86bd2a460f1616d44939
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 22 23:31:07 2022 -0600
+
+ XASY: Fix minor reflection bug.
+
+commit ea491e1af487809aeca6832227cc2d5aac7ab9d5
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 22 23:21:56 2022 -0600
+
+ XASY: Add options reflection to context menu.
+
+commit 3c38347c7c0c3a55b0677a7089bf3a662d1515fd
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sun May 22 00:51:39 2022 -0600
+
+ XASY: Prevent context menu crashing.
+
commit 13aa6344ac37b2303deb1e4e6d6a24d9b260762f
Author: John Bowman <bowman@ualberta.ca>
Date: Thu May 19 20:57:45 2022 -0600
Improve documentation of rotate(real, triple).
+commit 68ff3758a11c9ab62c517b219cd6321b6c8a17ff
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed May 18 23:26:19 2022 -0600
+
+ XASY: Change filling method.
+
+commit e867b1fe04293de229d6c133d7cf21a5a9906b13
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 17 01:52:30 2022 -0600
+
+ XASY: Display icon.
+
+commit a6d8511834b0dab1dd3580ec0920fbde5cc76042
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 17 01:51:30 2022 -0600
+
+ XASY: Display icon.
+
+commit 0f5cb6b88b5c1e3a68ef42f0b441ed4812aa1392
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Tue May 17 01:32:27 2022 -0600
+
+ XASY: Remove redundant menu.
+
commit c1ec3a89279d567cf4a910557546137aac2c0ee3
Author: John Bowman <bowman@ualberta.ca>
Date: Sat May 14 12:27:51 2022 -0600
Increment version to 2.82.
+commit 4347e589ed5e4fc4f03d4fdafced28f6345f21a7
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat May 14 00:09:48 2022 -0600
+
+ XASY: Minor quality improvements to the options window.
+
+commit 429a50bc7199fcbc5b081369dcb75f92ba766a87
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Sat May 14 00:01:55 2022 -0600
+
+ XASY: Alpha version of context menu.
+
commit 920c0886c23e20db270d04337e59c4d9e069dc63
Author: John Bowman <bowman@ualberta.ca>
Date: Fri May 13 23:17:54 2022 -0600
@@ -568,6 +1207,18 @@ Date: Fri May 13 22:31:19 2022 -0600
Fix bug #313: opaque rendering on platforms lacking GL_ARB_fragment_shader_interlock.
+commit 1c3deeb0cd6bab28ebde0abc9d04c0302fa84713
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed May 11 22:59:01 2022 -0600
+
+ XASY: Finalize alpha version of fill/unfill.
+
+commit 1bb18d1c97b1c05aaff755fbfcc8e4b0a9852776
+Author: chaumont-arch <chaumont@ualberta.ca>
+Date: Wed May 11 22:48:53 2022 -0600
+
+ XASY: Setup work for context menus.
+
commit fc7dac6887136289035eaa4f7f60fcbee1dc3967
Author: John Bowman <bowman@ualberta.ca>
Date: Wed May 11 18:29:56 2022 -0600
diff --git a/graphics/asymptote/GUI/ContextWindow.py b/graphics/asymptote/GUI/ContextWindow.py
new file mode 100644
index 0000000000..114ec5acde
--- /dev/null
+++ b/graphics/asymptote/GUI/ContextWindow.py
@@ -0,0 +1,320 @@
+import PyQt5.QtWidgets as Qw
+import PyQt5.QtGui as Qg
+import PyQt5.QtCore as Qc
+import xasyVersion
+
+import xasyUtils as xu
+import xasy2asy as x2a
+import xasyFile as xf
+import xasyOptions as xo
+import UndoRedoStack as Urs
+import xasyArgs as xa
+import xasyBezierInterface as xbi
+from xasyTransform import xasyTransform as xT
+import xasyStrings as xs
+
+import PrimitiveShape
+import InplaceAddObj
+
+import CustMatTransform
+import SetCustomAnchor
+import GuidesManager
+import time
+
+class AnotherWindow(Qw.QWidget):
+ def __init__(self, shape, parent):
+ super().__init__()
+ self.shape = shape
+ self.parent = parent
+ self.newShape = self.shape
+ self.layout = Qw.QVBoxLayout(self)
+
+ # Initialize tab screen
+ self.tabs = Qw.QTabWidget()
+ self.fillTab = Qw.QWidget()
+ self.lineTab = Qw.QWidget()
+ self.arrowTab = Qw.QWidget()
+ self.othersTab = Qw.QWidget()
+ self.tabs.resize(300,200)
+ self.fillTab.layout = Qw.QVBoxLayout(self.fillTab)
+ self.lineTab.layout = Qw.QVBoxLayout(self.lineTab)
+ self.arrowTab.layout = Qw.QVBoxLayout(self.arrowTab)
+ self.othersTab.layout = Qw.QVBoxLayout(self.othersTab)
+ self.tabs.addTab(self.fillTab,"Fill Options")
+ self.tabs.addTab(self.lineTab,"Line Options")
+ self.tabs.addTab(self.arrowTab,"Arrow Options")
+ self.tabs.addTab(self.othersTab,"Misc. Options")
+
+ self.layout.addWidget(self.tabs)
+ self.setLayout(self.layout)
+ self.setWindowTitle("Shape Options Window")
+
+ self.label = Qw.QLabel("Fill:")
+ self.fillTab.layout.addWidget(self.label)
+ self.fillButton = Qw.QComboBox()
+ self.fillButton.addItem("Unfilled")
+ self.fillButton.addItem("Filled")
+ self.fillButton.currentIndexChanged.connect(self.fillChange)
+ self.fillTab.layout.addWidget(self.fillButton)
+
+ if isinstance(self.shape, x2a.asyArrow):
+ self.colorButton = Qw.QPushButton("Set Line Colour")
+ self.colorButton.clicked.connect(self.pickColor)
+ self.fillTab.layout.addWidget(self.colorButton)
+
+ self.colorButton = Qw.QPushButton("Set Fill Colour")
+ self.colorButton.clicked.connect(self.pickFillColor)
+ self.fillTab.layout.addWidget(self.colorButton)
+
+ elif isinstance(self.shape, x2a.xasyShape):
+ self.colorButton = Qw.QPushButton("Set Colour")
+ self.colorButton.clicked.connect(self.pickColor)
+ self.fillTab.layout.addWidget(self.colorButton)
+
+ self.label = Qw.QLabel("Reflection:")
+ self.othersTab.layout.addWidget(self.label)
+ self.reflectionButton = Qw.QComboBox()
+ self.reflectionButton.addItem("None")
+ self.reflectionButton.addItem("Horizontal")
+ self.reflectionButton.addItem("Vertical")
+ self.reflectionButton.currentIndexChanged.connect(self.reflectionChange)
+ self.othersTab.layout.addWidget(self.reflectionButton)
+
+ self.label = Qw.QLabel("Opacity:")
+ self.othersTab.layout.addWidget(self.label)
+ self.opacityBox = Qw.QLineEdit()
+ self.othersTab.layout.addWidget(self.opacityBox)
+ self.opacityBox.setPlaceholderText(str(self.shape.pen.opacity))
+
+ self.label = Qw.QLabel("Arrowhead:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowheadButton = Qw.QComboBox()
+ self.arrowList = ["None","Arrow","ArcArrow"]
+ for arrowMode in self.arrowList:
+ self.arrowheadButton.addItem(arrowMode)
+ self.arrowheadButton.currentIndexChanged.connect(self.arrowheadChange)
+ self.arrowTab.layout.addWidget(self.arrowheadButton)
+
+ self.label = Qw.QLabel("Line Style:")
+ self.lineTab.layout.addWidget(self.label)
+ self.linestyleButton = Qw.QComboBox()
+ self.lineList = ["solid","dashed","dotted","dashdotted"]
+
+ for lineMode in self.lineList:
+ self.linestyleButton.addItem(lineMode)
+ self.linestyleButton.currentIndexChanged.connect(self.linestyleChange)
+ self.lineTab.layout.addWidget(self.linestyleButton)
+ self.linestyleButton.setCurrentIndex(self.lineList.index(self.shape.pen.style))
+
+ self.label = Qw.QLabel("Line Cap Style:")
+ self.lineTab.layout.addWidget(self.label)
+ self.lineCapStyleButton = Qw.QComboBox()
+ self.lineCapListStrings = ["extendcap","flatcap","roundcap"] #Is there a way to pull these directly
+ self.lineCapList = [Qc.Qt.PenCapStyle.SquareCap,Qc.Qt.PenCapStyle.FlatCap,Qc.Qt.PenCapStyle.RoundCap]
+
+ for lineMode in self.lineCapListStrings:
+ self.lineCapStyleButton.addItem(lineMode)
+ self.lineCapStyleButton.currentIndexChanged.connect(self.lineCapStyleChange)
+ self.lineTab.layout.addWidget(self.lineCapStyleButton)
+ self.lineCapStyleButton.setCurrentIndex(self.lineCapList.index(self.shape.pen.capStyle))
+
+ #TODO: Make this a function.
+ if not isinstance(self.shape, x2a.xasyShape):
+ self.fillButton.setCurrentIndex(int(self.shape.arrowSettings["fill"]))
+ if isinstance(self.shape, x2a.asyArrow):
+ self.arrowheadButton.setCurrentIndex(int(self.shape.arrowSettings["active"]))
+ else:
+ self.arrowheadButton.setDisabled(True)
+ else:
+ self.fillButton.setCurrentIndex(int(self.shape.path.fill))
+
+ if isinstance(self.shape, x2a.asyArrow) and self.shape.arrowSettings["active"]: #Make these all a list or something.
+ self.label = Qw.QLabel("Arrow Style:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowstyleButton = Qw.QComboBox()
+ for arrowStyle in self.shape.arrowStyleList:
+ self.arrowstyleButton.addItem(arrowStyle if arrowStyle else "(default)")
+ self.arrowstyleButton.currentIndexChanged.connect(self.arrowstyleChange)
+ self.arrowTab.layout.addWidget(self.arrowstyleButton)
+
+ self.label = Qw.QLabel("Arrow Size:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowSizeBox = Qw.QLineEdit()
+ self.arrowTab.layout.addWidget(self.arrowSizeBox)
+ self.arrowSizeBox.setPlaceholderText(self.getInfo("DefaultHead.size(currentpen)"))
+
+ self.label = Qw.QLabel("Arrow Angle:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowAngleBox = Qw.QLineEdit()
+ self.arrowTab.layout.addWidget(self.arrowAngleBox)
+ self.arrowAngleBox.setPlaceholderText(self.getInfo("arrowangle"))
+
+ self.label = Qw.QLabel("Arrow Fill:")
+ self.arrowTab.layout.addWidget(self.label)
+ self.arrowFillButton = Qw.QComboBox()
+ for arrowFillStyle in self.shape.arrowFillList:
+ self.arrowFillButton.addItem(arrowFillStyle if arrowFillStyle else "(default)")
+ self.arrowFillButton.currentIndexChanged.connect(self.arrowFillChange)
+ self.arrowTab.layout.addWidget(self.arrowFillButton)
+
+ self.arrowstyleButton.setCurrentIndex(int(self.shape.arrowSettings["style"]))
+ self.arrowFillButton.setCurrentIndex(int(self.shape.arrowSettings["fill"]))
+
+ self.fillTab.setLayout(self.fillTab.layout)
+ self.lineTab.setLayout(self.lineTab.layout)
+ self.arrowTab.setLayout(self.arrowTab.layout)
+ self.othersTab.setLayout(self.othersTab.layout)
+
+ self.confirmButton = Qw.QPushButton("Render")
+ self.confirmButton.clicked.connect(self.renderChanges)
+ self.layout.addWidget(self.confirmButton)
+
+ def arrowheadChange(self, i):
+ #None, {Arrow, ArcArrow} x {(),(SimpleHead),(HookHead),(TeXHead)}
+ if isinstance(self.shape, x2a.xasyShape):
+ if i != 0:
+ if self.newShape == x2a.asyArrow:
+ self.newShape = self.newShape.arrowify(arrowhead=i)
+ else:
+ self.newShape = self.shape.arrowify(arrowhead=i)
+ else:
+ self.newShape.arrowSettings["active"] = i #Simplify the logic
+
+ def arrowstyleChange(self, i):
+ self.newShape.arrowSettings["style"] = i
+
+ def linestyleChange(self, i): #I think add an attribute to asyPen
+ self.shape.pen.setStyle(self.lineList[i])
+
+ def lineCapStyleChange(self, i): #I think add an attribute to asyPen
+ self.shape.pen.setCapStyle(self.lineCapList[i])
+
+ def fillChange(self, i):
+ if isinstance(self.shape, x2a.asyArrow):
+ self.shape.arrowSettings["fill"] = bool(i)
+ elif (self.shape.path.fill != bool(i)) and not isinstance(self.newShape, x2a.asyArrow):
+ if self.newShape:
+ self.newShape = self.newShape.swapFill()
+ if isinstance(self.newShape, x2a.asyArrow):
+ self.newShape.arrowSettings["fill"] = bool(i)
+
+ def reflectionChange(self, i): #TODO: Modernize this.
+ reflectionList = [[1,1],[1,-1],[-1,1]]
+ self.parent.newTransform = xT.makeScaleTransform(*reflectionList[i], self.parent.currentAnchor).toQTransform()
+ self.parent.currentlySelectedObj['selectedIndex'] = self.parent.mostRecentObject
+ self.parent.releaseTransform()
+ self.parent.newTransform = Qg.QTransform()
+
+ def sizeChange(self):
+ try:
+ newSize = self.arrowSizeBox.text()
+ self.newShape.arrowSettings["size"] = float(newSize)
+ except:
+ return #TODO: Show error message.
+
+ def angleChange(self): #Refactor this with the above.
+ try:
+ newAngle = self.arrowAngleBox.text()
+ self.newShape.arrowSettings["angle"] = float(newAngle)
+ except:
+ return #TODO: Show error message.
+
+ def arrowFillChange(self, i): #Can I lambda this?
+ self.newShape.arrowSettings["fill"] = i
+
+ def opacityChange(self):
+ newOpacity = self.opacityBox.text()
+ try:
+ newOpacity = int(newOpacity)
+ if newOpacity >= 0 and newOpacity <= 255:
+ self.shape.pen.setOpacity(newOpacity)
+ self.newShape.pen.setOpacity(newOpacity)
+ except:
+ pass
+
+ def renderChanges(self): #Pull from text boxes here.
+ self.opacityChange()
+ if isinstance(self.shape, x2a.asyArrow) and self.shape.arrowSettings["active"]:
+ self.sizeChange()
+ self.angleChange()
+ elif (not isinstance(self.shape, x2a.asyArrow)):
+ self.renderLineStyle()
+ if self.newShape:
+ self.parent.replaceObject(self.parent.contextWindowObject,self.newShape)
+ self.parent.terminateContextWindow()
+
+ def getInfo(self,value):
+ """ Find out the size of an arbitrary Asymptote pen """
+ self.asyEngine = self.parent.asyEngine
+ assert isinstance(self.asyEngine, x2a.AsymptoteEngine)
+ assert self.asyEngine.active
+
+ fout = self.asyEngine.ostream
+ fin = self.asyEngine.istream
+
+ fout.write("write(_outpipe,{},endl);\n".format(value))
+ fout.write(self.asyEngine.xasy)
+ fout.flush()
+
+ return fin.readline()
+
+ def getPattern(self,pattern,path):
+ """ Find out the adjusted pattern of an Asymptote pen """
+ self.asyEngine = self.parent.asyEngine
+ assert isinstance(self.asyEngine, x2a.AsymptoteEngine)
+ assert self.asyEngine.active
+
+ fout = self.asyEngine.ostream
+ fin = self.asyEngine.istream
+
+ #fout.write("pen p=adjust({pattern},arclength({path}),cyclic({path}));\n")
+ #print(f"write(_outpipe,adjust({pattern},arclength({path}),cyclic({path})),endl);\n")
+ fout.write(f"write(_outpipe,adjust({pattern},arclength({path}),cyclic({path})),endl);\n")
+ fout.write(self.asyEngine.xasy)
+ fout.flush()
+
+ return fin.readline()
+
+ def renderLineStyle(self):
+ #Should only get called with asy shapes
+ if not self.newShape:
+ self.newShape=self.shape
+ if not isinstance(self.newShape,x2a.asyArrow):
+ rawPattern = self.getPattern(self.lineList[self.linestyleButton.currentIndex()],self.newShape.path.getCode())
+ else:
+ #self.newShape.updateCode() #idk if this is necessary.
+ rawPattern = self.getPattern(self.lineList[self.linestyleButton.currentIndex()],self.newShape.code)
+
+ pattern = []
+ if len(rawPattern) == 5:
+ pattern=[1,0]
+ else:
+ for value in rawPattern[2:-3].split(' '):
+ pattern.append(float(value)+1)
+
+ try:
+ self.newShape.pen.setDashPattern(pattern) #pen is going to be a asyPen, add as an attribute
+ except:
+ print("Pen format error")
+
+ def pickColor(self):
+ self.colorDialog = Qw.QColorDialog(x2a.asyPen.convertToQColor(self.shape.pen.color), self)
+ self.colorDialog.show()
+ result = self.colorDialog.exec()
+ if result == Qw.QDialog.Accepted:
+ self.shape.pen.setColorFromQColor(self.colorDialog.selectedColor())
+ self.parent.updateFrameDispColor()
+
+ def pickFillColor(self): #This is a copy of the above, how do you set the var as it is set?
+ self.colorDialog = Qw.QColorDialog(x2a.asyPen.convertToQColor(self.shape.fillPen.color), self)
+ self.colorDialog.show()
+ result = self.colorDialog.exec()
+ if result == Qw.QDialog.Accepted:
+ self.shape.fillPen.setColorFromQColor(self.colorDialog.selectedColor())
+ self.parent.updateFrameDispColor()
+
+ @Qc.pyqtSlot()
+ def on_click(self):
+ print("\n")
+ for currentQTableWidgetItem in self.tableWidget.selectedItems():
+ print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())
diff --git a/graphics/asymptote/GUI/Window1.py b/graphics/asymptote/GUI/Window1.py
index 3da918ff6c..a21137a023 100644
--- a/graphics/asymptote/GUI/Window1.py
+++ b/graphics/asymptote/GUI/Window1.py
@@ -32,6 +32,7 @@ import xasyStrings as xs
import PrimitiveShape
import InplaceAddObj
+import ContextWindow
import CustMatTransform
import SetCustomAnchor
@@ -127,6 +128,7 @@ class MainWindow1(Qw.QMainWindow):
devicePixelRatio=self.devicePixelRatio()
self.ui.setupUi(self)
self.ui.menubar.setNativeMenuBar(False)
+ self.setWindowIcon(Qg.QIcon("../asy.ico"))
self.settings = xo.BasicConfigs.defaultOpt
self.keyMaps = xo.BasicConfigs.keymaps
@@ -229,7 +231,7 @@ class MainWindow1(Qw.QMainWindow):
self.previewCurve = None
self.mouseDown = False
- self.globalObjectCounter = 0
+ self.globalObjectCounter = 1
self.fileItems = []
self.drawObjects = []
@@ -569,9 +571,6 @@ class MainWindow1(Qw.QMainWindow):
self.ui.txtTerminalPrompt.clear()
def btnFillOnClick(self, checked):
- if self.currentModeStack == [SelectionMode.selectEdit]:
- if isinstance(self.addMode,xbi.InteractiveBezierEditor):
- self.addMode.swapObjFill() #Check for crashes
self.currAddOptions['fill'] = checked
self.ui.btnOpenCurve.setEnabled(not checked)
self.ui.btnOpenPoly.setEnabled(not checked)
@@ -893,16 +892,34 @@ class MainWindow1(Qw.QMainWindow):
if result:
self.execCustomCommand(commandText)
- def addXasyShapeFromPath(self, path, pen = None, transform = x2a.identity(), key = None):
+ def addXasyShapeFromPath(self, path, pen = None, transform = x2a.identity(), key = None, fill = False):
+ dashPattern = pen['dashPattern'] #?
if not pen:
pen = self.currentPen
else:
pen = x2a.asyPen(self.asyEngine, color = pen['color'], width = pen['width'], pen_options = pen['options'])
+ if dashPattern:
+ pen.setDashPattern(dashPattern)
newItem = x2a.xasyShape(path, self.asyEngine, pen = pen, transform = transform)
+ if fill:
+ newItem.swapFill()
newItem.setKey(key)
self.fileItems.append(newItem)
+ def addXasyArrowFromPath(self, pen, transform, key, arrowSettings, code, dashPattern = None):
+ if not pen:
+ pen = self.currentPen
+ else:
+ pen = x2a.asyPen(self.asyEngine, color = pen['color'], width = pen['width'], pen_options = pen['options'])
+ if dashPattern:
+ pen.setDashPattern(dashPattern)
+
+ newItem = x2a.asyArrow(self.asyEngine, pen, transform, key, canvas=self.xasyDrawObj, code=code)
+ newItem.setKey(key)
+ newItem.arrowSettings = arrowSettings
+ self.fileItems.append(newItem)
+
def addXasyTextFromData(self, text, location, pen, transform, key, align, fontSize):
if not pen:
pen = self.currentPen
@@ -998,6 +1015,8 @@ class MainWindow1(Qw.QMainWindow):
ext = 'asy'
else:
ext = ext[1][1:]
+ if ext == '':
+ ext='asy'
if ext == 'asy':
pathToFile = os.path.splitext(file)[0]+'.'+ext
asyFile = io.open(os.path.realpath(pathToFile), 'w')
@@ -1079,7 +1098,12 @@ class MainWindow1(Qw.QMainWindow):
linkSet = item['links']
path = x2a.asyPath(self.asyEngine)
path.initFromNodeList(nodeSet, linkSet)
- self.addXasyShapeFromPath(path, pen = item['pen'], transform = x2a.asyTransform(item['transform']), key = item['transfKey'])
+ self.addXasyShapeFromPath(path, pen = item['pen'], transform = x2a.asyTransform(item['transform']), key = item['transfKey'], fill = item['fill'])
+
+ elif item['type'] == 'asyArrow':
+ self.addXasyArrowFromPath(item['pen'], x2a.asyTransform(item['transform']), item['transfKey'], item['settings'], item['code'])
+ #self.addXasyArrowFromPath(item['oldpath'], item['pen'], x2a.asyTransform(item['transform']), item['transfKey'], item['settings'])
+
else:
print("ERROR")
@@ -2425,3 +2449,60 @@ class MainWindow1(Qw.QMainWindow):
self.quickUpdate()
else:
self.ui.statusbar.showMessage('No object to paste')
+
+ def contextMenuEvent(self, event):
+ #Note that we can't get anything from self.selectOnHover() here.
+ try:
+ self.contextWindowIndex = self.selectObject()[0] #for arrowifying
+ maj = self.contextWindowIndex[0]
+ except:
+ return
+
+ if self.fileItems[maj] is not None:
+ self.contextWindowObject = self.fileItems[maj] #For arrowifying
+ self.contextWindow = ContextWindow.AnotherWindow(self.fileItems[maj],self)
+ self.contextWindow.setMinimumWidth(420)
+ #self.setCentralWidget(self.contextWindow) #I don't know what this does tbh.
+ self.contextWindow.show()
+
+ def focusInEvent(self,event):
+ if self.mainCanvas.isActive():
+ self.quickUpdate()
+
+ def replaceObject(self,objectIndex,newObject):
+ maj, minor = self.contextWindowIndex
+ selectedObj = self.drawObjects[maj][minor]
+
+ parent = selectedObj.parent()
+
+ if isinstance(parent, x2a.xasyScript):
+ objKey=(selectedObj.key, selectedObj.keyIndex)
+ self.hiddenKeys.add(objKey)
+ self.undoRedoStack.add(self.createAction(
+ SoftDeletionChanges(selectedObj.parent(), objKey)
+ ))
+ self.softDeleteObj((maj, minor))
+ else:
+ index = self.fileItems.index(selectedObj.parent())
+
+ self.undoRedoStack.add(self.createAction(
+ HardDeletionChanges(selectedObj.parent(), index)
+ ))
+
+ self.fileItems.remove(selectedObj.parent())
+
+ self.fileItems.append(newObject)
+ self.drawObjects.append(newObject.generateDrawObjects(True)) #THIS DOES WORK, IT'S JUST REGENERATING THE SHAPE.
+
+ self.checkUndoRedoButtons()
+ self.fileChanged = True
+
+ self.clearSelection()
+ #self.asyfyCanvas()
+ #self.quickUpdate()
+
+ def terminateContextWindow(self):
+ if self.contextWindow is not None:
+ self.contextWindow.close()
+ self.asyfyCanvas()
+ self.quickUpdate()
diff --git a/graphics/asymptote/GUI/xasy2asy.py b/graphics/asymptote/GUI/xasy2asy.py
index 1829ce436b..661426249d 100644
--- a/graphics/asymptote/GUI/xasy2asy.py
+++ b/graphics/asymptote/GUI/xasy2asy.py
@@ -416,6 +416,10 @@ class asyPen(asyObj):
self.color = (0, 0, 0)
self.options = pen_options
self.width = width
+ self.style = "solid"
+ self.capStyle = QtCore.Qt.PenCapStyle.SquareCap
+ self.opacity = 255 #Should these be in a dictionary?
+ self.dashPattern = [1,0]
self._asyengine = asyengine
self._deferAsyfy = False
if pen_options:
@@ -431,6 +435,14 @@ class asyPen(asyObj):
def asyEngine(self, value):
self._asyengine = value
+ def qtCapStyleToAsyCapStyle(self, style):
+ lineCapList = [QtCore.Qt.PenCapStyle.SquareCap,QtCore.Qt.PenCapStyle.FlatCap,QtCore.Qt.PenCapStyle.RoundCap]
+ asyCapList = ["extendcap","flatcap","roundcap"]
+ if style in lineCapList:
+ return asyCapList[lineCapList.index(style)]
+ else:
+ return False
+
def updateCode(self, asy2psmap = identity()):
""" Generate the pen's code """
if self._deferAsyfy:
@@ -438,12 +450,30 @@ class asyPen(asyObj):
self.asyCode = 'rgb({:g},{:g},{:g})+{:s}'.format(self.color[0], self.color[1], self.color[2], str(self.width))
if len(self.options) > 0:
self.asyCode = self.asyCode + '+' + self.options
+ if self.style != "solid":
+ self.asyCode = self.style + '+' + self.asyCode
def setWidth(self, newWidth):
""" Set the pen's width """
self.width = newWidth
self.updateCode()
+ def setDashPattern(self, pattern):
+ self.dashPattern = pattern
+ self.updateCode() #Get working
+
+ def setStyle(self, style):
+ self.style = style
+ self.updateCode()
+
+ def setCapStyle(self, style):
+ self.capStyle = style
+ self.updateCode()
+
+ def setOpacity(self, opacity):
+ self.opacity = opacity
+ self.updateCode()
+
def setColor(self, color):
""" Set the pen's color """
if isinstance(color, tuple) and len(color) == 3:
@@ -493,8 +523,13 @@ class asyPen(asyObj):
if self._deferAsyfy:
self.computeColor()
newPen = QtGui.QPen()
- newPen.setColor(asyPen.convertToQColor(self.color))
+ color = asyPen.convertToQColor(self.color)
+ color.setAlpha(self.opacity)
+ newPen.setColor(color)
+ newPen.setCapStyle(self.capStyle)
newPen.setWidthF(self.width)
+ if self.dashPattern:
+ newPen.setDashPattern(self.dashPattern)
return newPen
@@ -969,7 +1004,7 @@ class xasyItem(QtCore.QObject):
if transfExists:
transfExists = localCount <= len(self.transfKeymap[key]) - 1
if transfExists:
- validKey = not self.transfKeymap[key][localCount].deleted
+ validKey = not self.transfKeymap[key][localCount].deleted #Does this ever exist?
else:
validKey = False
@@ -1290,6 +1325,11 @@ class xasyShape(xasyDrawnItem):
def copy(self):
return type(self)(self.path,self._asyengine,self.pen)
+ def arrowify(self,arrowhead=0):
+ newObj = asyArrow(self.path.asyengine, pen=self.pen, transfKey = self.transfKey, transfKeymap = self.transfKeymap, canvas = self.onCanvas, arrowActive = arrowhead, code = self.path.getCode(yflip())) #transform
+ newObj.arrowSettings["fill"] = self.path.fill
+ return newObj
+
class xasyFilledShape(xasyShape):
""" A filled shape drawn on the GUI """
@@ -1555,11 +1595,23 @@ class xasyScript(xasyItem):
if i + 1 in keylist.keys():
# this case, we have a key.
with io.StringIO() as raw_line:
- for j in range(len(curr_str)):
+ n=len(curr_str)
+ for j in range(n):
raw_line.write(curr_str[j])
if j + 1 in keylist[i + 1]:
# at this point, replace keys with xkey
- raw_line.write('KEY="{0:s}",'.format(linenum2key[(i + 1, j + 1)]))
+ sep=','
+ k=j+1
+ # assume begingroup is on a single line for now
+ while k < n:
+ c=curr_str[k]
+ if c == ')':
+ sep=''
+ break
+ if not c.isspace():
+ break
+ ++k
+ raw_line.write('KEY="{0:s}"'.format(linenum2key[(i + 1, j + 1)])+sep)
self.userKeys.add(linenum2key[(i + 1, j + 1)])
curr_str = raw_line.getvalue()
# else, skip and just write the line.
@@ -1819,3 +1871,125 @@ class DrawObject(QtCore.QObject):
def getID(self):
return self.originalObj
+
+
+class asyArrow(xasyItem):
+
+ def __init__(self, asyengine, pen=None, transform=identity(), transfKey=None, transfKeymap = None, canvas=None, arrowActive=False, code=None):
+ #super().__init__(path=path, engine=asyengine, pen=pen, transform=transform)
+ """Initialize the label with the given test, location, and pen"""
+ #asyObj.__init__(self)
+ super().__init__(canvas=canvas, asyengine=asyengine) #CANVAS? Seems to work.
+ if pen is None:
+ pen = asyPen()
+ if pen.asyEngine is None:
+ pen.asyEngine = asyengine
+ self.pen = pen
+ self.fillPen = asyPen()
+ self.fillPen.asyEngine = asyengine
+ self.code = code
+ #self.path = path
+ #self.path.asyengine = asyengine
+ self.transfKey = transfKey
+ if transfKeymap == None: #Better way?
+ self.transfKeymap = {self.transfKey: [transform]}
+ else:
+ self.transfKeymap = transfKeymap
+ self.location = (0,0)
+ self.asyfied = False
+ self.onCanvas = canvas
+
+ self.arrowSettings = {"active": arrowActive, "style": 0, "fill": 0} #Rename active?
+ self.arrowList = ["","Arrow","ArcArrow"] #The first setting corresponds to no arrow.
+ self.arrowStyleList = ["","SimpleHead","HookHead","TeXHead"]
+ self.arrowFillList = ["","FillDraw","Fill","NoFill","UnFill","Draw"]
+
+ def getArrowSettings(self):
+ settings = "("
+
+ if self.arrowSettings["style"] != 0:
+ settings += "arrowhead="
+ settings += self.arrowStyleList[self.arrowSettings["style"]]
+
+ if "size" in self.arrowSettings:
+ if settings != "(": #This is really messy.
+ settings += ","
+ settings += "size=" + str(self.arrowSettings["size"]) #Should I add options to this? Like for cm?
+
+ if "angle" in self.arrowSettings: #This is so similar, you should be able to turn this into a function or something.
+ if settings != "(":
+ settings += ","
+ settings += "angle=" + str(self.arrowSettings["angle"])
+
+ if self.arrowSettings["fill"] != 0:
+ if settings != "(":
+ settings += ","
+ settings += "filltype="
+ settings += self.arrowFillList[self.arrowSettings["fill"]]
+
+ settings += ")"
+ #print(settings)
+ return settings
+
+ def setKey(self, newKey = None):
+ transform = self.transfKeymap[self.transfKey][0]
+
+ self.transfKey = newKey
+ self.transfKeymap = {self.transfKey: [transform]}
+
+ def updateCode(self, asy2psmap = identity()):
+ newLoc = asy2psmap.inverted() * self.location
+ self.asyCode = ''
+ if self.arrowSettings["active"]:
+ if self.arrowSettings["fill"]:
+ self.asyCode += 'begingroup(KEY="{0}");'.format(self.transfKey)+'\n\n'
+ self.asyCode += 'fill({0},{1});'.format(self.code, self.fillPen.getCode())+'\n\n'
+ self.asyCode += 'draw({0},{1},arrow={2}{3});'.format(self.code, self.pen.getCode(), self.arrowList[self.arrowSettings["active"]],self.getArrowSettings())+'\n\n'
+ else:
+ self.asyCode += 'draw(KEY="{0}",{1},{2},arrow={3}{4});'.format(self.transfKey, self.code, self.pen.getCode(), self.arrowList[self.arrowSettings["active"]],self.getArrowSettings())+'\n\n'
+ if self.arrowSettings["fill"]:
+ self.asyCode += 'endgroup();\n\n'
+ else:
+ self.asyCode = 'draw(KEY="{0}",{1},{2});'.format(self.transfKey, self.code, self.pen.getCode())+'\n\n'
+
+ def setPen(self, pen):
+ """ Set the label's pen """
+ self.pen = pen
+ self.updateCode()
+
+ def moveTo(self, newl):
+ """ Translate the label's location """
+ self.location = newl
+
+ def getObjectCode(self, asy2psmap=identity()):
+ self.updateCode()
+ return self.asyCode
+
+ def getTransformCode(self, asy2psmap=identity()):
+ transf = self.transfKeymap[self.transfKey][0]
+ if transf == identity():
+ return ''
+ else:
+ return xasyItem.setKeyFormatStr.format(self.transfKey, transf.getCode(asy2psmap))+'\n'
+
+ def generateDrawObjects(self, forceUpdate=False):
+ self.asyfy(forceUpdate)
+ transf = self.transfKeymap[self.transfKey][0]
+ for drawObject in self.drawObjects:
+ drawObject.pTransform = transf
+ return self.drawObjects
+
+ def __str__(self):
+ """ Create a string describing this shape """
+ return "xasyShape code:{:s}".format("\n\t".join(self.getCode().splitlines()))
+
+ def swapFill(self):
+ self.arrowSettings["fill"] = not self.arrowSettings["fill"]
+
+ def getBoundingBox(self):
+ self.asyfy()
+ return self.imageList[0].bbox
+
+ def copy(self):
+ #Include all parameters?
+ return type(self)(self._asyengine,pen=self.pen,canvas=self.onCanvas,arrowActive=self.arrowSettings["active"])
diff --git a/graphics/asymptote/GUI/xasyBezierInterface.py b/graphics/asymptote/GUI/xasyBezierInterface.py
index d8792d421e..abe8d9b0ea 100644
--- a/graphics/asymptote/GUI/xasyBezierInterface.py
+++ b/graphics/asymptote/GUI/xasyBezierInterface.py
@@ -51,13 +51,7 @@ class InteractiveBezierEditor(InplaceAddObj.InplaceObjProcess):
self.prospectiveCtrlPts = []
#The magnification isn't being set. Here I'm manually setting it to be the square root of the determinant.
- self.info['magnification'] = math.sqrt(self.transf.xx * self.transf.yy - self.transf.xy * self.transf.yx)
- self.parent = parent
- if isinstance(obj,xasy2asy.xasyFilledShape) or isinstance(obj,xasy2asy.xasyShape):
- parent.ui.btnFill.setChecked(obj.path.fill)
-
- def swapObjFill(self):
- self.obj.swapFill() #This may end up being more in the future
+ self.info['magnification'] = math.sqrt(abs(self.transf.xx * self.transf.yy - self.transf.xy * self.transf.yx))
def setSelectionBoundaries(self):
self.nodeSelRects = self.handleNodeSelectionBounds()
diff --git a/graphics/asymptote/GUI/xasyFile.py b/graphics/asymptote/GUI/xasyFile.py
index 54c70cf5c2..e980a3c183 100644
--- a/graphics/asymptote/GUI/xasyFile.py
+++ b/graphics/asymptote/GUI/xasyFile.py
@@ -103,15 +103,27 @@ def xasyToDict(file, xasyItems, asy2psmap):
})
elif isinstance(item, xasy2asy.xasyShape):
- penData = {'color': item.pen.color, 'width': item.pen.width, 'options': item.pen.options}
+ penData = {'color': item.pen.color, 'width': item.pen.width, 'dashPattern': item.pen.dashPattern, 'options': item.pen.options}
fileItems.append({'type': 'xasyShape',
'nodes': item.path.nodeSet,
'links': item.path.linkSet,
+ 'fill': item.path.fill,
'transform': item.transfKeymap[item.transfKey][0].t,
'transfKey': item.transfKey,
'pen': penData
})
+ elif isinstance(item, xasy2asy.asyArrow): #Will this ever even be reached?
+ penData = {'color': item.pen.color, 'width': item.pen.width, 'dashPattern': item.pen.dashPattern, 'options': item.pen.options}
+ fileItems.append({'type': 'asyArrow',
+ 'pen': penData,
+ 'arrowSettings': item.arrowSettings,
+ 'transform': item.transfKeymap[item.transfKey][0].t,
+ 'transfKey': item.transfKey,
+ 'settings': item.arrowSettings,
+ 'code': item.code
+ })
+
else:
# DEBUGGING PURPOSES ONLY
print(type(item))
diff --git a/graphics/asymptote/LspCpp/CMakeLists.txt b/graphics/asymptote/LspCpp/CMakeLists.txt
index ed420b2955..fe35bfcb8c 100644
--- a/graphics/asymptote/LspCpp/CMakeLists.txt
+++ b/graphics/asymptote/LspCpp/CMakeLists.txt
@@ -197,7 +197,7 @@ if(USE_SYSTEM_RAPIDJSON)
endif()
endif()
if(NOT RapidJSON_FOUND)
- if(EXISTS "${CMAKE_SOURCE_DIR}/third_party/rapidjson/include")
+ if(EXISTS "${PROJECT_SOURCE_DIR}/third_party/rapidjson/include")
message(STATUS "Using local RapidJSON")
set(RapidJSON_INCLUDE_DIRS third_party/rapidjson/include)
else()
@@ -227,7 +227,6 @@ target_include_directories(lspcpp
target_link_libraries(lspcpp PUBLIC network-uri ${Boost_LIBRARIES})
set(LSPCPP_THIRD_PARTY_DIR_LIST
- ${LSPCPP_THIRD_PARTY_DIR}/threadpool
${LSPCPP_THIRD_PARTY_DIR}/utfcpp/source
)
diff --git a/graphics/asymptote/LspCpp/README.md b/graphics/asymptote/LspCpp/README.md
index 465efe50ba..afdd8814cf 100644
--- a/graphics/asymptote/LspCpp/README.md
+++ b/graphics/asymptote/LspCpp/README.md
@@ -1,7 +1,7 @@
# LspCpp
## Dependencies
-`LspCpp` depends on boost, rapidjson, utfcpp, uri, and threadpool.
+`LspCpp` depends on boost, rapidjson, utfcpp, uri.
## Build
diff --git a/graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp b/graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
index 2ce67d1862..1c75974912 100644
--- a/graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
+++ b/graphics/asymptote/LspCpp/examples/StdIOClientExample.cpp
@@ -29,190 +29,190 @@ class DummyLog :public lsp::Log
{
public:
- void log(Level level, std::wstring&& msg)
- {
-
- std::wcerr << msg << std::endl;
- };
- void log(Level level, const std::wstring& msg)
- {
- std::wcerr << msg << std::endl;
- };
- void log(Level level, std::string&& msg)
- {
- std::cerr << msg << std::endl;
- };
- void log(Level level, const std::string& msg)
- {
- std::cerr << msg << std::endl;
- };
+ void log(Level level, std::wstring&& msg)
+ {
+
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, const std::wstring& msg)
+ {
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, std::string&& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
+ void log(Level level, const std::string& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
};
struct boost_process_ipstream : lsp::base_istream< boost::process::ipstream >
{
- explicit boost_process_ipstream(boost::process::ipstream& _t)
- : base_istream<boost::process::ipstream>(_t)
- {
- }
-
- std::string what() override
- {
- return {};
- }
- void clear() override
- {
-
- }
+ explicit boost_process_ipstream(boost::process::ipstream& _t)
+ : base_istream<boost::process::ipstream>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ void clear() override
+ {
+
+ }
};
struct boost_process_opstream : lsp::base_ostream< boost::process::opstream >
{
- explicit boost_process_opstream(boost::process::opstream& _t)
- : lsp::base_ostream<boost::process::opstream>(_t)
- {
- }
-
- std::string what() override
- {
- return {};
- }
- void clear() override
- {
-
- }
+ explicit boost_process_opstream(boost::process::opstream& _t)
+ : lsp::base_ostream<boost::process::opstream>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ void clear() override
+ {
+
+ }
};
class Client
{
public:
- Client(std::string& execPath,const std::vector<std::string>& args)
- :point(protocol_json_handler, endpoint, _log)
- {
- std::error_code ec;
- namespace bp = boost::process;
- c = std::make_shared<bp::child>(asio_io.getIOService(), execPath,
- bp::args = args,
- ec,
-
- bp::std_out > read_from_service,
- bp::std_in < write_to_service,
- bp::on_exit([&](int exit_code, const std::error_code& ec_in){
-
- }));
- if (ec)
- {
- // fail
- _log.log(lsp::Log::Level::SEVERE, "Start server failed.");
- }
- else {
- //success
- point.startProcessingMessages(read_from_service_proxy, write_to_service_proxy);
- }
- }
- ~Client()
- {
- point.Stop();
+ Client(std::string& execPath,const std::vector<std::string>& args)
+ :point(protocol_json_handler, endpoint, _log)
+ {
+ std::error_code ec;
+ namespace bp = boost::process;
+ c = std::make_shared<bp::child>(asio_io.getIOService(), execPath,
+ bp::args = args,
+ ec,
+
+ bp::std_out > read_from_service,
+ bp::std_in < write_to_service,
+ bp::on_exit([&](int exit_code, const std::error_code& ec_in){
+
+ }));
+ if (ec)
+ {
+ // fail
+ _log.log(lsp::Log::Level::SEVERE, "Start server failed.");
+ }
+ else {
+ //success
+ point.startProcessingMessages(read_from_service_proxy, write_to_service_proxy);
+ }
+ }
+ ~Client()
+ {
+ point.stop();
std::this_thread::sleep_for(std::chrono::milliseconds (1000));
- }
+ }
- lsp::ProcessIoService asio_io;
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
- DummyLog _log;
+ lsp::ProcessIoService asio_io;
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
+ DummyLog _log;
- std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
+ std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
- boost::process::opstream write_to_service;
- boost::process::ipstream read_from_service;
+ boost::process::opstream write_to_service;
+ boost::process::ipstream read_from_service;
- std::shared_ptr<lsp::ostream> write_to_service_proxy = std::make_shared<boost_process_opstream>(write_to_service);
- std::shared_ptr<lsp::istream> read_from_service_proxy = std::make_shared< boost_process_ipstream >(read_from_service);
+ std::shared_ptr<lsp::ostream> write_to_service_proxy = std::make_shared<boost_process_opstream>(write_to_service);
+ std::shared_ptr<lsp::istream> read_from_service_proxy = std::make_shared< boost_process_ipstream >(read_from_service);
- std::shared_ptr<boost::process::child> c;
- RemoteEndPoint point;
+ std::shared_ptr<boost::process::child> c;
+ RemoteEndPoint point;
};
int main(int argc, char* argv[])
{
- using namespace boost::program_options;
- options_description desc("Allowed options");
- desc.add_options()
- ("help,h", "produce help message")
- ("execPath", value<string>(), "LSP server's path");
-
-
-
- variables_map vm;
- try {
- store(parse_command_line(argc, argv, desc), vm);
- }
- catch (std::exception& e) {
- std::cout << "Undefined input.Reason:" << e.what() << std::endl;
- return 0;
- }
- notify(vm);
-
-
- if (vm.count("help"))
- {
- cout << desc << endl;
- return 1;
- }
- string execPath;
- if (vm.count("execPath"))
- {
- execPath = vm["execPath"].as<string>();
- }
- else
- {
- execPath = "STDIO_SERVER_EXAMPLE.exe";
- }
-
- Client client(execPath, {});
- {
- td_initialize::request req;
- auto rsp = client.point.waitResponse(req);
- if (rsp)
- {
- std::cerr << rsp->ToJson() << std::endl;
- }
- else
- {
- std::cerr << "get initialze response time out" << std::endl;
- }
- }
- {
- td_definition::request req;
- auto future_rsp = client.point.send(req);
- auto state = future_rsp.wait_for(std::chrono::seconds(4));
- if (std::future_status::timeout == state)
- {
- std::cerr << "get textDocument/definition response time out" << std::endl;
- return 0;
- }
- auto rsp = future_rsp.get();
- if (rsp.is_error)
- {
- std::cerr << "get textDocument/definition response error" << std::endl;
-
- }
- else
- {
- std::cerr << rsp.response.ToJson() << std::endl;
- }
- }
- {
- td_initialize::request req;
- auto rsp = client.point.waitResponse(req);
- if (rsp)
- {
- std::cerr << rsp->ToJson() << std::endl;
- }
- else
- {
- std::cerr << "get initialze response time out" << std::endl;
- }
- }
- Notify_Exit::notify notify;
- client.point.send(notify);
- return 0;
+ using namespace boost::program_options;
+ options_description desc("Allowed options");
+ desc.add_options()
+ ("help,h", "produce help message")
+ ("execPath", value<string>(), "LSP server's path");
+
+
+
+ variables_map vm;
+ try {
+ store(parse_command_line(argc, argv, desc), vm);
+ }
+ catch (std::exception& e) {
+ std::cout << "Undefined input.Reason:" << e.what() << std::endl;
+ return 0;
+ }
+ notify(vm);
+
+
+ if (vm.count("help"))
+ {
+ cout << desc << endl;
+ return 1;
+ }
+ string execPath;
+ if (vm.count("execPath"))
+ {
+ execPath = vm["execPath"].as<string>();
+ }
+ else
+ {
+ execPath = "STDIO_SERVER_EXAMPLE.exe";
+ }
+
+ Client client(execPath, {});
+ {
+ td_initialize::request req;
+ auto rsp = client.point.waitResponse(req);
+ if (rsp)
+ {
+ std::cerr << rsp->ToJson() << std::endl;
+ }
+ else
+ {
+ std::cerr << "get initialze response time out" << std::endl;
+ }
+ }
+ {
+ td_definition::request req;
+ auto future_rsp = client.point.send(req);
+ auto state = future_rsp.wait_for(std::chrono::seconds(4));
+ if (lsp::future_status::timeout == state)
+ {
+ std::cerr << "get textDocument/definition response time out" << std::endl;
+ return 0;
+ }
+ auto rsp = future_rsp.get();
+ if (rsp.is_error)
+ {
+ std::cerr << "get textDocument/definition response error" << std::endl;
+
+ }
+ else
+ {
+ std::cerr << rsp.response.ToJson() << std::endl;
+ }
+ }
+ {
+ td_initialize::request req;
+ auto rsp = client.point.waitResponse(req);
+ if (rsp)
+ {
+ std::cerr << rsp->ToJson() << std::endl;
+ }
+ else
+ {
+ std::cerr << "get initialze response time out" << std::endl;
+ }
+ }
+ Notify_Exit::notify notify;
+ client.point.send(notify);
+ return 0;
}
diff --git a/graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp b/graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
index 1fccf2a859..028283ab8d 100644
--- a/graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
+++ b/graphics/asymptote/LspCpp/examples/StdIOServerExample.cpp
@@ -26,100 +26,100 @@ class DummyLog :public lsp::Log
{
public:
- void log(Level level, std::wstring&& msg)
- {
-
- std::wcerr << msg << std::endl;
- };
- void log(Level level, const std::wstring& msg)
- {
- std::wcerr << msg << std::endl;
- };
- void log(Level level, std::string&& msg)
- {
- std::cerr << msg << std::endl;
- };
- void log(Level level, const std::string& msg)
- {
- std::cerr << msg << std::endl;
- };
+ void log(Level level, std::wstring&& msg)
+ {
+
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, const std::wstring& msg)
+ {
+ std::wcerr << msg << std::endl;
+ };
+ void log(Level level, std::string&& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
+ void log(Level level, const std::string& msg)
+ {
+ std::cerr << msg << std::endl;
+ };
};
class StdIOServer
{
public:
-
- StdIOServer() : remote_end_point_(protocol_json_handler, endpoint, _log)
- {
- remote_end_point_.registerHandler([&](const td_initialize::request& req)
- {
- td_initialize::response rsp;
- rsp.id = req.id;
- CodeLensOptions code_lens_options;
- code_lens_options.resolveProvider = true;
- rsp.result.capabilities.codeLensProvider = code_lens_options;
- return rsp;
- });
-
- remote_end_point_.registerHandler([&](Notify_Exit::notify& notify)
- {
- remote_end_point_.Stop();
- esc_event.notify(std::make_unique<bool>(true));
- });
- remote_end_point_.registerHandler([&](const td_definition::request& req,
- const CancelMonitor& monitor)
- {
- td_definition::response rsp;
- rsp.result.first = std::vector<lsLocation>();
- if (monitor && monitor())
- {
- _log.info("textDocument/definition request had been cancel.");
- }
- return rsp;
- });
-
- remote_end_point_.startProcessingMessages(input, output);
- }
- ~StdIOServer()
- {
-
- }
-
- struct ostream : lsp::base_ostream<std::ostream>
- {
- explicit ostream(std::ostream& _t)
- : base_ostream<std::ostream>(_t)
- {
-
- }
-
- std::string what() override
- {
- return {};
- }
- };
- struct istream :lsp::base_istream<std::istream>
- {
- explicit istream(std::istream& _t)
- : base_istream<std::istream>(_t)
- {
- }
-
- std::string what() override
- {
- return {};
- }
- };
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
- DummyLog _log;
-
- std::shared_ptr<ostream> output = std::make_shared<ostream>(std::cout);
- std::shared_ptr<istream> input = std::make_shared<istream>(std::cin);
-
- std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
- RemoteEndPoint remote_end_point_;
- Condition<bool> esc_event;
+
+ StdIOServer() : remote_end_point_(protocol_json_handler, endpoint, _log)
+ {
+ remote_end_point_.registerHandler([&](const td_initialize::request& req)
+ {
+ td_initialize::response rsp;
+ rsp.id = req.id;
+ CodeLensOptions code_lens_options;
+ code_lens_options.resolveProvider = true;
+ rsp.result.capabilities.codeLensProvider = code_lens_options;
+ return rsp;
+ });
+
+ remote_end_point_.registerHandler([&](Notify_Exit::notify& notify)
+ {
+ remote_end_point_.stop();
+ esc_event.notify(std::make_unique<bool>(true));
+ });
+ remote_end_point_.registerHandler([&](const td_definition::request& req,
+ const CancelMonitor& monitor)
+ {
+ td_definition::response rsp;
+ rsp.result.first = std::vector<lsLocation>();
+ if (monitor && monitor())
+ {
+ _log.info("textDocument/definition request had been cancel.");
+ }
+ return rsp;
+ });
+
+ remote_end_point_.startProcessingMessages(input, output);
+ }
+ ~StdIOServer()
+ {
+
+ }
+
+ struct ostream : lsp::base_ostream<std::ostream>
+ {
+ explicit ostream(std::ostream& _t)
+ : base_ostream<std::ostream>(_t)
+ {
+
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ };
+ struct istream :lsp::base_istream<std::istream>
+ {
+ explicit istream(std::istream& _t)
+ : base_istream<std::istream>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ return {};
+ }
+ };
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
+ DummyLog _log;
+
+ std::shared_ptr<ostream> output = std::make_shared<ostream>(std::cout);
+ std::shared_ptr<istream> input = std::make_shared<istream>(std::cin);
+
+ std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
+ RemoteEndPoint remote_end_point_;
+ Condition<bool> esc_event;
};
@@ -127,33 +127,33 @@ public:
int main(int argc, char* argv[])
{
- using namespace boost::program_options;
- options_description desc("Allowed options");
- desc.add_options()
- ("help,h", "produce help message");
+ using namespace boost::program_options;
+ options_description desc("Allowed options");
+ desc.add_options()
+ ("help,h", "produce help message");
- variables_map vm;
- try {
- store(parse_command_line(argc, argv, desc), vm);
- }
- catch (std::exception& e) {
- std::cout << "Undefined input.Reason:" << e.what() << std::endl;
- return 0;
- }
- notify(vm);
+ variables_map vm;
+ try {
+ store(parse_command_line(argc, argv, desc), vm);
+ }
+ catch (std::exception& e) {
+ std::cout << "Undefined input.Reason:" << e.what() << std::endl;
+ return 0;
+ }
+ notify(vm);
- if (vm.count("help"))
- {
- cout << desc << endl;
- return 1;
- }
- StdIOServer server;
- server.esc_event.wait();
+ if (vm.count("help"))
+ {
+ cout << desc << endl;
+ return 1;
+ }
+ StdIOServer server;
+ server.esc_event.wait();
- return 0;
+ return 0;
}
diff --git a/graphics/asymptote/LspCpp/examples/TcpServerExample.cpp b/graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
index 80f77b5eb9..42ed73407e 100644
--- a/graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
+++ b/graphics/asymptote/LspCpp/examples/TcpServerExample.cpp
@@ -25,22 +25,22 @@ class DummyLog :public lsp::Log
{
public:
- void log(Level level, std::wstring&& msg)
- {
- std::wcout << msg << std::endl;
- };
- void log(Level level, const std::wstring& msg)
- {
- std::wcout << msg << std::endl;
- };
- void log(Level level, std::string&& msg)
- {
- std::cout << msg << std::endl;
- };
- void log(Level level, const std::string& msg)
- {
- std::cout << msg << std::endl;
- };
+ void log(Level level, std::wstring&& msg)
+ {
+ std::wcout << msg << std::endl;
+ };
+ void log(Level level, const std::wstring& msg)
+ {
+ std::wcout << msg << std::endl;
+ };
+ void log(Level level, std::string&& msg)
+ {
+ std::cout << msg << std::endl;
+ };
+ void log(Level level, const std::string& msg)
+ {
+ std::cout << msg << std::endl;
+ };
};
std::string _address = "127.0.0.1";
@@ -51,149 +51,157 @@ class Server
public:
- Server():server(_address,_port,protocol_json_handler, endpoint, _log)
- {
- server.point.registerHandler(
- [&](const td_initialize::request& req)
- ->lsp::ResponseOrError< td_initialize::response >{
-
- td_initialize::response rsp;
- CodeLensOptions code_lens_options;
- code_lens_options.resolveProvider = true;
- rsp.result.capabilities.codeLensProvider = code_lens_options;
-
- return rsp;
- });
- server.point.registerHandler([&](const td_definition::request& req
- ,const CancelMonitor& monitor)
- {
- td_definition::response rsp;
- rsp.result.first= std::vector<lsLocation>();
- std::this_thread::sleep_for(std::chrono::seconds(8));
- if(monitor && monitor())
- {
- _log.info("textDocument/definition request had been cancel.");
- }
- return rsp;
- });
-
- server.point.registerHandler([=](Notify_Exit::notify& notify)
- {
- std::cout << notify.ToJson() << std::endl;
- });
- std::thread([&]()
- {
- server.run();
- }).detach();
- }
- ~Server()
- {
- server.stop();
- }
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
- DummyLog _log;
-
- std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
- lsp::TcpServer server;
+ Server():server(_address,_port,protocol_json_handler, endpoint, _log)
+ {
+ server.point.registerHandler(
+ [&](const td_initialize::request& req)
+ ->lsp::ResponseOrError< td_initialize::response >{
+
+ td_initialize::response rsp;
+ CodeLensOptions code_lens_options;
+ code_lens_options.resolveProvider = true;
+ rsp.result.capabilities.codeLensProvider = code_lens_options;
+
+ return rsp;
+ });
+ server.point.registerHandler([&](const td_definition::request& req
+ ,const CancelMonitor& monitor) -> lsp::ResponseOrError<td_definition::response>
+ {
+
+ std::this_thread::sleep_for(std::chrono::seconds(8));
+
+ if( monitor && monitor() )
+ {
+ _log.info("textDocument/definition request had been cancel.");
+ Rsp_Error rsp;
+ rsp.error.code = lsErrorCodes::RequestCancelled;
+ rsp.error.message = "textDocument/definition request had been cancel.";
+ return rsp;
+ }
+ else
+ {
+ td_definition::response rsp;
+ rsp.result.first= std::vector<lsLocation>();
+ return rsp;
+ }
+
+ });
+
+ server.point.registerHandler([=](Notify_Exit::notify& notify)
+ {
+ std::cout << notify.ToJson() << std::endl;
+ });
+ std::thread([&]()
+ {
+ server.run();
+ }).detach();
+ }
+ ~Server()
+ {
+ server.stop();
+ }
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
+ DummyLog _log;
+
+ std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
+ lsp::TcpServer server;
};
class Client
{
public:
- struct iostream :public lsp::base_iostream<tcp::iostream>
- {
- explicit iostream(boost::asio::basic_socket_iostream<tcp>& _t)
- : base_iostream<boost::asio::basic_socket_iostream<tcp>>(_t)
- {
- }
-
- std::string what() override
- {
- auto msg = _impl.error().message();
- return msg;
- }
-
- };
- Client() :remote_end_point_(protocol_json_handler, endpoint, _log)
- {
- tcp::endpoint end_point( address::from_string(_address), 9333);
-
- socket_ = std::make_shared<tcp::iostream>();
- socket_->connect(end_point);
- if (!socket_)
- {
- string temp = "Unable to connect: " + socket_->error().message();
- std::cout << temp << std::endl;
- }
-
- vector<string> args;
- socket_proxy = std::make_shared<iostream>(*socket_.get());
-
- remote_end_point_.startProcessingMessages(socket_proxy, socket_proxy);
- }
- ~Client()
- {
- remote_end_point_.Stop();
- std::this_thread::sleep_for(std::chrono::milliseconds (1000));
- socket_->close();
- }
-
- std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
- DummyLog _log;
-
- std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
-
- std::shared_ptr < iostream> socket_proxy;
- std::shared_ptr<tcp::iostream> socket_;
- RemoteEndPoint remote_end_point_;
+ struct iostream :public lsp::base_iostream<tcp::iostream>
+ {
+ explicit iostream(boost::asio::basic_socket_iostream<tcp>& _t)
+ : base_iostream<boost::asio::basic_socket_iostream<tcp>>(_t)
+ {
+ }
+
+ std::string what() override
+ {
+ auto msg = _impl.error().message();
+ return msg;
+ }
+
+ };
+ Client() :remote_end_point_(protocol_json_handler, endpoint, _log)
+ {
+ tcp::endpoint end_point( address::from_string(_address), 9333);
+
+ socket_ = std::make_shared<tcp::iostream>();
+ socket_->connect(end_point);
+ if (!socket_)
+ {
+ string temp = "Unable to connect: " + socket_->error().message();
+ std::cout << temp << std::endl;
+ }
+
+ vector<string> args;
+ socket_proxy = std::make_shared<iostream>(*socket_.get());
+
+ remote_end_point_.startProcessingMessages(socket_proxy, socket_proxy);
+ }
+ ~Client()
+ {
+ remote_end_point_.stop();
+ std::this_thread::sleep_for(std::chrono::milliseconds (1000));
+ socket_->close();
+ }
+
+ std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
+ DummyLog _log;
+
+ std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
+
+ std::shared_ptr < iostream> socket_proxy;
+ std::shared_ptr<tcp::iostream> socket_;
+ RemoteEndPoint remote_end_point_;
};
-int main()
+int main()
{
- Server server;
- Client client;
-
- {
- td_initialize::request req;
- auto rsp = client.remote_end_point_.waitResponse(req);
- if (rsp)
- {
- std::cout << rsp->response.ToJson() << std::endl;
- }
- else
- {
- std::cout << "get initialze response time out" << std::endl;
- }
- }
- {
- td_definition::request req;
- auto future_rsp = client.remote_end_point_.send(req);
- Notify_Cancellation::notify cancel_notify;
- cancel_notify.params.id = req.id;
- client.remote_end_point_.send(cancel_notify);
-
- auto state = future_rsp.wait_for(std::chrono::seconds(16));
- if (std::future_status::timeout == state)
- {
- std::cout << "get textDocument/definition response time out" << std::endl;
- return 0;
- }
- auto rsp = future_rsp.get();
- if (rsp.is_error)
- {
- std::cout << "get textDocument/definition response error" << std::endl;
-
- }
- else
- {
- std::cout << rsp.response.ToJson() << std::endl;
- }
- }
- Notify_Exit::notify notify;
- client.remote_end_point_.send(notify);
- return 0;
+ Server server;
+ Client client;
+
+ {
+ td_initialize::request req;
+ auto rsp = client.remote_end_point_.waitResponse(req);
+ if (rsp)
+ {
+ std::cout << rsp->response.ToJson() << std::endl;
+ }
+ else
+ {
+ std::cout << "get initialze response time out" << std::endl;
+ }
+ }
+ {
+ td_definition::request req;
+ auto future_rsp = client.remote_end_point_.send(req);
+ client.remote_end_point_.cancelRequest(req.id);
+
+ auto state = future_rsp.wait_for(std::chrono::seconds(16));
+ if (lsp::future_status::timeout == state)
+ {
+ std::cout << "get textDocument/definition response time out" << std::endl;
+ return 0;
+ }
+ auto rsp = future_rsp.get();
+ if (rsp.is_error)
+ {
+ std::cout << "get textDocument/definition response error :" << rsp.ToJson() << std::endl;
+
+ }
+ else
+ {
+ std::cout << rsp.response.ToJson() << std::endl;
+ }
+ }
+ Notify_Exit::notify notify;
+ client.remote_end_point_.send(notify);
+ return 0;
}
diff --git a/graphics/asymptote/LspCpp/examples/WebsocketExample.cpp b/graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
index 40d920ac00..b0474bc288 100644
--- a/graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
+++ b/graphics/asymptote/LspCpp/examples/WebsocketExample.cpp
@@ -89,9 +89,9 @@ class Client : public std::enable_shared_from_this<Client>
std::string user_agent_;
std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared< lsp::ProtocolJsonHandler>();
DummyLog _log;
-
+
std::shared_ptr<GenericEndpoint> endpoint = std::make_shared<GenericEndpoint>(_log);
-
+
std::shared_ptr<lsp::websocket_stream_wrapper> proxy_;
public:
RemoteEndPoint point;
@@ -104,7 +104,7 @@ public:
, ws_(net::make_strand(ioc)),point(protocol_json_handler, endpoint, _log)
{
proxy_ = std::make_shared<lsp::websocket_stream_wrapper>(ws_);
-
+
}
// Start the asynchronous operation
@@ -127,12 +127,12 @@ public:
{
ioc.run();
}).detach();
- while (!point.IsWorking())
+ while (!point.isWorking())
{
std::this_thread::sleep_for(std::chrono::milliseconds (50));
}
}
-
+
void
on_resolve(
beast::error_code ec,
@@ -189,7 +189,7 @@ public:
return;
// Send the message
-
+
point.startProcessingMessages(proxy_, proxy_);
// Read a message into our buffer
@@ -215,7 +215,7 @@ public:
std::vector<char> elements(data, data + bytes_transferred);
buffer_.clear();
proxy_->on_request.EnqueueAll(std::move(elements), false);
-
+
ws_.async_read(
buffer_,
beast::bind_front_handler(
@@ -249,7 +249,7 @@ public:
code_lens_options.resolveProvider = true;
rsp.result.capabilities.codeLensProvider = code_lens_options;
return rsp;
- });
+ });
std::thread([&]()
{
server.run();
@@ -261,7 +261,7 @@ public:
}
std::shared_ptr < lsp::ProtocolJsonHandler > protocol_json_handler = std::make_shared < lsp::ProtocolJsonHandler >();
DummyLog _log;
-
+
std::shared_ptr < GenericEndpoint > endpoint = std::make_shared<GenericEndpoint>(_log);
lsp::WebSocketServer server;
@@ -271,11 +271,11 @@ int main()
{
std::string user_agent = std::string(BOOST_BEAST_VERSION_STRING) +" websocket-server-async";
Server server(user_agent);
-
+
auto client = std::make_shared<Client>();
user_agent = std::string(BOOST_BEAST_VERSION_STRING) + " websocket-client-async";
client->run(_address.c_str(), _port.c_str(), user_agent.c_str());
-
+
td_initialize::request req;
auto rsp = client->point.waitResponse(req);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
index b89f32f166..496be29844 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Cancellation.h
@@ -7,12 +7,12 @@ namespace Cancellation
{
struct Params {
- /**
- * The request id to cancel.
- */
- lsRequestId id;
-
- MAKE_SWAP_METHOD(Cancellation::Params, id);
+ /**
+ * The request id to cancel.
+ */
+ lsRequestId id;
+
+ MAKE_SWAP_METHOD(Cancellation::Params, id);
};
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
index a5f550041d..6a8cf7a2a6 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Condition.h
@@ -5,44 +5,44 @@ class Condition
{
public:
- std::mutex m_mutex;
- std::condition_variable m_condition;
- ~Condition() {
- m_condition.notify_all();
- }
- void notify(std::unique_ptr<T> data) noexcept
- {
- {
- std::lock_guard<std::mutex> eventLock(m_mutex);
- any.swap(data);
- }
- // wake up one waiter
- m_condition.notify_one();
- };
+ std::mutex m_mutex;
+ std::condition_variable m_condition;
+ ~Condition() {
+ m_condition.notify_all();
+ }
+ void notify(std::unique_ptr<T> data) noexcept
+ {
+ {
+ std::lock_guard<std::mutex> eventLock(m_mutex);
+ any.swap(data);
+ }
+ // wake up one waiter
+ m_condition.notify_one();
+ };
-
- std::unique_ptr<T> wait(unsigned timeout=0)
- {
- std::unique_lock<std::mutex> ul(m_mutex);
- if (!timeout) {
- m_condition.wait(ul,[&]() {
- if (!any)
- return false;
- return true;
- });
- }
- else{
- if(!any){
- std::cv_status status = m_condition.wait_for(ul, std::chrono::milliseconds(timeout));
- if (status == std::cv_status::timeout)
- {
- return {};
- }
- }
- }
- return std::unique_ptr<T>(any.release());
-
- }
+
+ std::unique_ptr<T> wait(unsigned timeout=0)
+ {
+ std::unique_lock<std::mutex> ul(m_mutex);
+ if (!timeout) {
+ m_condition.wait(ul,[&]() {
+ if (!any)
+ return false;
+ return true;
+ });
+ }
+ else{
+ if(!any){
+ std::cv_status status = m_condition.wait_for(ul, std::chrono::milliseconds(timeout));
+ if (status == std::cv_status::timeout)
+ {
+ return {};
+ }
+ }
+ }
+ return std::unique_ptr<T>(any.release());
+
+ }
private:
- std::unique_ptr<T> any;
+ std::unique_ptr<T> any;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
index 01d8e8ca91..d752711a3a 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/Endpoint.h
@@ -15,38 +15,38 @@ using GenericNotificationHandler = std::function< bool(std::unique_ptr<LspMessag
class Endpoint
{
public:
- virtual ~Endpoint() = default;
- virtual bool onRequest(std::unique_ptr<LspMessage>) = 0;
- virtual bool notify(std::unique_ptr<LspMessage>) = 0;
-
- virtual bool onResponse(const std::string&, std::unique_ptr<LspMessage>) = 0;
- virtual void registerRequestHandler(const std::string&, GenericResponseHandler ) = 0;
- virtual void registerNotifyHandler(const std::string&, GenericNotificationHandler ) = 0;
+ virtual ~Endpoint() = default;
+ virtual bool onRequest(std::unique_ptr<LspMessage>) = 0;
+ virtual bool notify(std::unique_ptr<LspMessage>) = 0;
+
+ virtual bool onResponse(const std::string&, std::unique_ptr<LspMessage>) = 0;
+ virtual void registerRequestHandler(const std::string&, GenericResponseHandler ) = 0;
+ virtual void registerNotifyHandler(const std::string&, GenericNotificationHandler ) = 0;
};
class GenericEndpoint :public Endpoint
{
public:
- GenericEndpoint(lsp::Log& l):log(l){}
- bool notify(std::unique_ptr<LspMessage>) override;
- bool onResponse(const std::string&, std::unique_ptr<LspMessage>) override;
-
- bool onRequest(std::unique_ptr<LspMessage>) override;
- std::map< std::string, GenericRequestHandler > method2request;
- std::map< std::string, GenericResponseHandler > method2response;
- std::map< std::string, GenericNotificationHandler > method2notification;
-
- void registerRequestHandler(const std::string& method, GenericResponseHandler cb) override
- {
- method2request[method] = cb;
- }
-
- void registerNotifyHandler(const std::string& method, GenericNotificationHandler cb) override
- {
- method2notification[method] = cb;
- }
- lsp::Log& log;
+ GenericEndpoint(lsp::Log& l):log(l){}
+ bool notify(std::unique_ptr<LspMessage>) override;
+ bool onResponse(const std::string&, std::unique_ptr<LspMessage>) override;
+
+ bool onRequest(std::unique_ptr<LspMessage>) override;
+ std::map< std::string, GenericRequestHandler > method2request;
+ std::map< std::string, GenericResponseHandler > method2response;
+ std::map< std::string, GenericNotificationHandler > method2notification;
+
+ void registerRequestHandler(const std::string& method, GenericResponseHandler cb) override
+ {
+ method2request[method] = cb;
+ }
+
+ void registerNotifyHandler(const std::string& method, GenericNotificationHandler cb) override
+ {
+ method2notification[method] = cb;
+ }
+ lsp::Log& log;
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
index bda6e65d46..6c29ee8f0e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageIssue.h
@@ -4,179 +4,179 @@
#include <vector>
namespace lsp
{
- class Log
- {
- public:
- virtual ~Log() = default;
-
- enum class Level
- {
- /**
- * OFF is a special level that can be used to turn off logging.
-
- */
- OFF = 1,
-
- /**
- * SEVERE is a message level indicating a serious failure.
- * <p>
- * In general SEVERE messages should describe events that are
- * of considerable importance and which will prevent normal
- * program execution. They should be reasonably intelligible
- * to end users and to system administrators.
-
- */
- SEVERE = 2,
-
- /**
- * WARNING is a message level indicating a potential problem.
- * <p>
- * In general WARNING messages should describe events that will
- * be of interest to end users or system managers, or which
- * indicate potential problems.
-
- *
- */
- WARNING = 3,
- /**
- * INFO is a message level for informational messages.
- * <p>
- * Typically INFO messages will be written to the console
- * or its equivalent. So the INFO level should only be
- * used for reasonably significant messages that will
- * make sense to end users and system administrators.
-
- */
- INFO = 3,
- /**
- * CONFIG is a message level for static configuration messages.
- * <p>
- * CONFIG messages are intended to provide a variety of static
- * configuration information, to assist in debugging problems
- * that may be associated with particular configurations.
- * For example, CONFIG message might include the CPU type,
- * the graphics depth, the GUI look-and-feel, etc.
- * This level is initialized to <CODE>4</CODE>.
- */
-
- CONFIG = 4,
-
-
-
- /**
- * FINE is a message level providing tracing information.
- * <p>
- * All of FINE, FINER, and FINEST are intended for relatively
- * detailed tracing. The exact meaning of the three levels will
- * vary between subsystems, but in general, FINEST should be used
- * for the most voluminous detailed output, FINER for somewhat
- * less detailed output, and FINE for the lowest volume (and
- * most important) messages.
- * <p>
- * In general the FINE level should be used for information
- * that will be broadly interesting to developers who do not have
- * a specialized interest in the specific subsystem.
- * <p>
- * FINE messages might include things like minor (recoverable)
- * failures. Issues indicating potential performance problems
- * are also worth logging as FINE.
- * This level is initialized to <CODE>5</CODE>.
- */
- FINE = 5,
-
- /**
- * FINER indicates a fairly detailed tracing message.
- * By default logging calls for entering, returning, or throwing
- * an exception are traced at this level.
- * This level is initialized to <CODE>400</CODE>.
- */
- FINER = 6,
-
- /**
- * FINEST indicates a highly detailed tracing message.
- * This level is initialized to <CODE>300</CODE>.
- */
- FINEST = 7,
-
- /**
- * ALL indicates that all messages should be logged.
- * This level is initialized to <CODE>Integer.MIN_VALUE</CODE>.
- */
- ALL,
- };
- virtual void log(Level level, std::wstring&& msg) = 0;
- virtual void log(Level level, const std::wstring& msg) = 0;
- virtual void log(Level level, std::string&& msg) = 0;
- virtual void log(Level level, const std::string& msg) = 0;
-
- void info(const std::string& msg)
- {
- log(Level::INFO, msg);
- }
- void info(const std::wstring& msg)
- {
- log(Level::INFO, msg);
- }
- void error(const std::string& msg)
- {
- log(Level::SEVERE, msg);
- }
- void error(const std::wstring& msg)
- {
- log(Level::SEVERE, msg);
- }
- void warning(const std::string& msg)
- {
- log(Level::WARNING, msg);
- }
- void warning(const std::wstring& msg)
- {
- log(Level::WARNING, msg);
- }
- };
+ class Log
+ {
+ public:
+ virtual ~Log() = default;
+
+ enum class Level
+ {
+ /**
+ * OFF is a special level that can be used to turn off logging.
+
+ */
+ OFF = 1,
+
+ /**
+ * SEVERE is a message level indicating a serious failure.
+ * <p>
+ * In general SEVERE messages should describe events that are
+ * of considerable importance and which will prevent normal
+ * program execution. They should be reasonably intelligible
+ * to end users and to system administrators.
+
+ */
+ SEVERE = 2,
+
+ /**
+ * WARNING is a message level indicating a potential problem.
+ * <p>
+ * In general WARNING messages should describe events that will
+ * be of interest to end users or system managers, or which
+ * indicate potential problems.
+
+ *
+ */
+ WARNING = 3,
+ /**
+ * INFO is a message level for informational messages.
+ * <p>
+ * Typically INFO messages will be written to the console
+ * or its equivalent. So the INFO level should only be
+ * used for reasonably significant messages that will
+ * make sense to end users and system administrators.
+
+ */
+ INFO = 3,
+ /**
+ * CONFIG is a message level for static configuration messages.
+ * <p>
+ * CONFIG messages are intended to provide a variety of static
+ * configuration information, to assist in debugging problems
+ * that may be associated with particular configurations.
+ * For example, CONFIG message might include the CPU type,
+ * the graphics depth, the GUI look-and-feel, etc.
+ * This level is initialized to <CODE>4</CODE>.
+ */
+
+ CONFIG = 4,
+
+
+
+ /**
+ * FINE is a message level providing tracing information.
+ * <p>
+ * All of FINE, FINER, and FINEST are intended for relatively
+ * detailed tracing. The exact meaning of the three levels will
+ * vary between subsystems, but in general, FINEST should be used
+ * for the most voluminous detailed output, FINER for somewhat
+ * less detailed output, and FINE for the lowest volume (and
+ * most important) messages.
+ * <p>
+ * In general the FINE level should be used for information
+ * that will be broadly interesting to developers who do not have
+ * a specialized interest in the specific subsystem.
+ * <p>
+ * FINE messages might include things like minor (recoverable)
+ * failures. Issues indicating potential performance problems
+ * are also worth logging as FINE.
+ * This level is initialized to <CODE>5</CODE>.
+ */
+ FINE = 5,
+
+ /**
+ * FINER indicates a fairly detailed tracing message.
+ * By default logging calls for entering, returning, or throwing
+ * an exception are traced at this level.
+ * This level is initialized to <CODE>400</CODE>.
+ */
+ FINER = 6,
+
+ /**
+ * FINEST indicates a highly detailed tracing message.
+ * This level is initialized to <CODE>300</CODE>.
+ */
+ FINEST = 7,
+
+ /**
+ * ALL indicates that all messages should be logged.
+ * This level is initialized to <CODE>Integer.MIN_VALUE</CODE>.
+ */
+ ALL,
+ };
+ virtual void log(Level level, std::wstring&& msg) = 0;
+ virtual void log(Level level, const std::wstring& msg) = 0;
+ virtual void log(Level level, std::string&& msg) = 0;
+ virtual void log(Level level, const std::string& msg) = 0;
+
+ void info(const std::string& msg)
+ {
+ log(Level::INFO, msg);
+ }
+ void info(const std::wstring& msg)
+ {
+ log(Level::INFO, msg);
+ }
+ void error(const std::string& msg)
+ {
+ log(Level::SEVERE, msg);
+ }
+ void error(const std::wstring& msg)
+ {
+ log(Level::SEVERE, msg);
+ }
+ void warning(const std::string& msg)
+ {
+ log(Level::WARNING, msg);
+ }
+ void warning(const std::wstring& msg)
+ {
+ log(Level::WARNING, msg);
+ }
+ };
}
class MessageIssue {
public:
- std::string text;
+ std::string text;
- lsp::Log::Level code;
+ lsp::Log::Level code;
- MessageIssue(const std::string& text, lsp::Log::Level code) :text(text), code(code)
- {
+ MessageIssue(const std::string& text, lsp::Log::Level code) :text(text), code(code)
+ {
- }
- MessageIssue(std::string&& text, lsp::Log::Level code) :text(text), code(code)
- {
+ }
+ MessageIssue(std::string&& text, lsp::Log::Level code) :text(text), code(code)
+ {
- }
+ }
- std::string getText() {
- return text;
- }
+ std::string getText() {
+ return text;
+ }
- lsp::Log::Level getIssueCode() {
- return code;
- }
+ lsp::Log::Level getIssueCode() {
+ return code;
+ }
- std::string toString() {
- return getText();
- }
+ std::string toString() {
+ return getText();
+ }
};
class MessageIssueHandler
{
public:
- /**
- * Handle issues found while parsing or validating a message. The list of issues must not be empty.
- */
- virtual ~MessageIssueHandler() = default;
-
- virtual void handle(std::vector<MessageIssue>&&) = 0;
- virtual void handle( MessageIssue&&) = 0;
+ /**
+ * Handle issues found while parsing or validating a message. The list of issues must not be empty.
+ */
+ virtual ~MessageIssueHandler() = default;
+
+ virtual void handle(std::vector<MessageIssue>&&) = 0;
+ virtual void handle( MessageIssue&&) = 0;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
index 7e238b0cf6..f019fbf121 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageJsonHandler.h
@@ -13,49 +13,49 @@ using GenericNotificationJsonHandler = std::function< std::unique_ptr<LspMessag
class MessageJsonHandler
{
public:
- std::map< std::string, GenericRequestJsonHandler > method2request;
- std::map< std::string, GenericResponseJsonHandler > method2response;
- std::map< std::string, GenericNotificationJsonHandler > method2notification;
-
-
- const GenericRequestJsonHandler* GetRequestJsonHandler(const char* methodInfo) const
- {
- const auto findIt = method2request.find(methodInfo);
- return findIt == method2request.end() ? nullptr : &findIt->second;
- }
-
- void SetRequestJsonHandler(const std::string& methodInfo, GenericRequestJsonHandler handler)
- {
- method2request[methodInfo] = handler;
- }
-
- const GenericResponseJsonHandler* GetResponseJsonHandler(const char* methodInfo) const
- {
- const auto findIt = method2response.find(methodInfo);
- return findIt == method2response.end() ? nullptr : &findIt->second;
- }
-
- void SetResponseJsonHandler(const std::string& methodInfo,GenericResponseJsonHandler handler)
- {
- method2response[methodInfo] = handler;
- }
-
- const GenericNotificationJsonHandler* GetNotificationJsonHandler(const char* methodInfo) const
- {
- const auto findIt = method2notification.find(methodInfo);
- return findIt == method2notification.end() ? nullptr : &findIt->second;
- }
-
- void SetNotificationJsonHandler(const std::string& methodInfo, GenericNotificationJsonHandler handler)
- {
- method2notification[methodInfo] = handler;
- }
-
-
-
- std::unique_ptr<LspMessage> parseResponseMessage(const std::string&, Reader&);
- std::unique_ptr<LspMessage> parseRequstMessage(const std::string&, Reader&);
- bool resovleResponseMessage(Reader&, std::pair<std::string, std::unique_ptr<LspMessage>>& result);
- std::unique_ptr<LspMessage> parseNotificationMessage(const std::string&, Reader&);
+ std::map< std::string, GenericRequestJsonHandler > method2request;
+ std::map< std::string, GenericResponseJsonHandler > method2response;
+ std::map< std::string, GenericNotificationJsonHandler > method2notification;
+
+
+ const GenericRequestJsonHandler* GetRequestJsonHandler(const char* methodInfo) const
+ {
+ const auto findIt = method2request.find(methodInfo);
+ return findIt == method2request.end() ? nullptr : &findIt->second;
+ }
+
+ void SetRequestJsonHandler(const std::string& methodInfo, GenericRequestJsonHandler handler)
+ {
+ method2request[methodInfo] = handler;
+ }
+
+ const GenericResponseJsonHandler* GetResponseJsonHandler(const char* methodInfo) const
+ {
+ const auto findIt = method2response.find(methodInfo);
+ return findIt == method2response.end() ? nullptr : &findIt->second;
+ }
+
+ void SetResponseJsonHandler(const std::string& methodInfo,GenericResponseJsonHandler handler)
+ {
+ method2response[methodInfo] = handler;
+ }
+
+ const GenericNotificationJsonHandler* GetNotificationJsonHandler(const char* methodInfo) const
+ {
+ const auto findIt = method2notification.find(methodInfo);
+ return findIt == method2notification.end() ? nullptr : &findIt->second;
+ }
+
+ void SetNotificationJsonHandler(const std::string& methodInfo, GenericNotificationJsonHandler handler)
+ {
+ method2notification[methodInfo] = handler;
+ }
+
+
+
+ std::unique_ptr<LspMessage> parseResponseMessage(const std::string&, Reader&);
+ std::unique_ptr<LspMessage> parseRequstMessage(const std::string&, Reader&);
+ bool resovleResponseMessage(Reader&, std::pair<std::string, std::unique_ptr<LspMessage>>& result);
+ std::unique_ptr<LspMessage> parseNotificationMessage(const std::string&, Reader&);
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
index ab7a29a17f..2affe3b3ff 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/MessageProducer.h
@@ -5,9 +5,9 @@
class MessageProducer
{
public:
-
-
- typedef std::function< void(std::string&&) > MessageConsumer;
- virtual ~MessageProducer() = default;
- virtual void listen(MessageConsumer) = 0;
+
+
+ typedef std::function< void(std::string&&) > MessageConsumer;
+ virtual ~MessageProducer() = default;
+ virtual void listen(MessageConsumer) = 0;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
index e4841b5703..cdee9e572e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/NotificationInMessage.h
@@ -9,54 +9,54 @@
// NotificationInMessage does not have |id|.
struct NotificationInMessage : public LspMessage {
- Kind GetKid() override
- {
- return NOTIFICATION_MESSAGE;
- }
- MethodType GetMethodType() const override
- {
- return method.c_str();
- }
- void SetMethodType(MethodType _t) override
- {
- method = _t;
- }
- std::string method;
+ Kind GetKid() override
+ {
+ return NOTIFICATION_MESSAGE;
+ }
+ MethodType GetMethodType() const override
+ {
+ return method.c_str();
+ }
+ void SetMethodType(MethodType _t) override
+ {
+ method = _t;
+ }
+ std::string method;
};
template <class T, class TDerived >
struct lsNotificationInMessage : NotificationInMessage {
- void ReflectWriter(Writer& writer) override {
- Reflect(writer, static_cast<TDerived&>(*this));
- }
- lsNotificationInMessage(MethodType _method)
- {
- method = _method;
- }
-
- static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
-
- TDerived* temp = new TDerived();
-
- std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
- // Reflect may throw and *message will be partially deserialized.
- Reflect(visitor, static_cast<TDerived&>(*temp));
- return message;
-
- }
- void swap(lsNotificationInMessage& arg) noexcept
- {
- method.swap(method);
- std::swap(params, arg.params);
- }
- T params;
+ void ReflectWriter(Writer& writer) override {
+ Reflect(writer, static_cast<TDerived&>(*this));
+ }
+ lsNotificationInMessage(MethodType _method)
+ {
+ method = _method;
+ }
+
+ static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
+
+ TDerived* temp = new TDerived();
+
+ std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
+ // Reflect may throw and *message will be partially deserialized.
+ Reflect(visitor, static_cast<TDerived&>(*temp));
+ return message;
+
+ }
+ void swap(lsNotificationInMessage& arg) noexcept
+ {
+ method.swap(method);
+ std::swap(params, arg.params);
+ }
+ T params;
};
#define DEFINE_NOTIFICATION_TYPE(MSG,paramType,methodInfo)\
namespace MSG {\
- struct notify : public lsNotificationInMessage< paramType , notify >{\
- static constexpr MethodType kMethodInfo = methodInfo;\
- notify():lsNotificationInMessage(kMethodInfo){} \
- };\
+ struct notify : public lsNotificationInMessage< paramType , notify >{\
+ static constexpr MethodType kMethodInfo = methodInfo;\
+ notify():lsNotificationInMessage(kMethodInfo){} \
+ };\
};\
MAKE_REFLECT_STRUCT(MSG::notify, jsonrpc,method, params)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
index 3ae6b567a5..4045098f1b 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RemoteEndPoint.h
@@ -12,6 +12,7 @@
#include "MessageIssue.h"
#include "LibLsp/JsonRpc/MessageJsonHandler.h"
#include "Endpoint.h"
+#include "future.h"
class MessageJsonHandler;
@@ -19,74 +20,74 @@ class Endpoint;
struct LspMessage;
class RemoteEndPoint;
namespace lsp {
- class ostream;
- class istream;
-
- ////////////////////////////////////////////////////////////////////////////////
- // ResponseOrError<T>
- ////////////////////////////////////////////////////////////////////////////////
-
- // ResponseOrError holds either the response to a request or an error
- // message.
- template <typename T>
- struct ResponseOrError {
- using Request = T;
- ResponseOrError();
- ResponseOrError(const T& response);
- ResponseOrError(T&& response);
- ResponseOrError(const Rsp_Error& error);
- ResponseOrError(Rsp_Error&& error);
- ResponseOrError(const ResponseOrError& other);
- ResponseOrError(ResponseOrError&& other) noexcept;
-
- ResponseOrError& operator=(const ResponseOrError& other);
- ResponseOrError& operator=(ResponseOrError&& other) noexcept;
- bool IsError() const { return is_error; }
- std::string ToJson()
- {
- if (is_error) return error.ToJson();
- return response.ToJson();
- }
- T response;
- Rsp_Error error; // empty represents success.
- bool is_error;
- };
-
- template <typename T>
- ResponseOrError<T>::ResponseOrError(): is_error(false)
- {
- }
-
- template <typename T>
- ResponseOrError<T>::ResponseOrError(const T& resp) : response(resp), is_error(false) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(T&& resp) : response(std::move(resp)), is_error(false) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(const Rsp_Error& err) : error(err), is_error(true) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(Rsp_Error&& err) : error(std::move(err)), is_error(true) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(const ResponseOrError& other)
- : response(other.response), error(other.error), is_error(other.is_error) {}
- template <typename T>
- ResponseOrError<T>::ResponseOrError(ResponseOrError&& other) noexcept
- : response(std::move(other.response)), error(std::move(other.error)), is_error(other.is_error) {}
- template <typename T>
- ResponseOrError<T>& ResponseOrError<T>::operator=(
- const ResponseOrError& other) {
- response = other.response;
- error = other.error;
- is_error = other.is_error;
- return *this;
- }
- template <typename T>
- ResponseOrError<T>& ResponseOrError<T>::operator=(ResponseOrError&& other) noexcept
- {
- response = std::move(other.response);
- error = std::move(other.error);
- is_error = other.is_error;
- return *this;
- }
+ class ostream;
+ class istream;
+
+ ////////////////////////////////////////////////////////////////////////////////
+ // ResponseOrError<T>
+ ////////////////////////////////////////////////////////////////////////////////
+
+ // ResponseOrError holds either the response to a request or an error
+ // message.
+ template <typename T>
+ struct ResponseOrError {
+ using Request = T;
+ ResponseOrError();
+ ResponseOrError(const T& response);
+ ResponseOrError(T&& response);
+ ResponseOrError(const Rsp_Error& error);
+ ResponseOrError(Rsp_Error&& error);
+ ResponseOrError(const ResponseOrError& other);
+ ResponseOrError(ResponseOrError&& other) noexcept;
+
+ ResponseOrError& operator=(const ResponseOrError& other);
+ ResponseOrError& operator=(ResponseOrError&& other) noexcept;
+ bool IsError() const { return is_error; }
+ std::string ToJson()
+ {
+ if (is_error) return error.ToJson();
+ return response.ToJson();
+ }
+ T response;
+ Rsp_Error error; // empty represents success.
+ bool is_error;
+ };
+
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(): is_error(false)
+ {
+ }
+
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(const T& resp) : response(resp), is_error(false) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(T&& resp) : response(std::move(resp)), is_error(false) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(const Rsp_Error& err) : error(err), is_error(true) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(Rsp_Error&& err) : error(std::move(err)), is_error(true) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(const ResponseOrError& other)
+ : response(other.response), error(other.error), is_error(other.is_error) {}
+ template <typename T>
+ ResponseOrError<T>::ResponseOrError(ResponseOrError&& other) noexcept
+ : response(std::move(other.response)), error(std::move(other.error)), is_error(other.is_error) {}
+ template <typename T>
+ ResponseOrError<T>& ResponseOrError<T>::operator=(
+ const ResponseOrError& other) {
+ response = other.response;
+ error = other.error;
+ is_error = other.is_error;
+ return *this;
+ }
+ template <typename T>
+ ResponseOrError<T>& ResponseOrError<T>::operator=(ResponseOrError&& other) noexcept
+ {
+ response = std::move(other.response);
+ error = std::move(other.error);
+ is_error = other.is_error;
+ return *this;
+ }
}
@@ -94,247 +95,253 @@ namespace lsp {
class RemoteEndPoint :MessageIssueHandler
{
- template <typename F, int N>
- using ParamType = lsp::traits::ParameterType<F, N>;
+ template <typename F, int N>
+ using ParamType = lsp::traits::ParameterType<F, N>;
- template <typename T>
- using IsRequest = lsp::traits::EnableIfIsType<RequestInMessage, T>;
+ template <typename T>
+ using IsRequest = lsp::traits::EnableIfIsType<RequestInMessage, T>;
- template <typename T>
- using IsResponse = lsp::traits::EnableIfIsType<ResponseInMessage, T>;
+ template <typename T>
+ using IsResponse = lsp::traits::EnableIfIsType<ResponseInMessage, T>;
- template <typename T>
- using IsNotify = lsp::traits::EnableIfIsType<NotificationInMessage, T>;
+ template <typename T>
+ using IsNotify = lsp::traits::EnableIfIsType<NotificationInMessage, T>;
- template <typename F, typename ReturnType>
- using IsRequestHandler = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
- F,
- std::function<ReturnType(const RequestInMessage&)>>::
- value>;
+ template <typename F, typename ReturnType>
+ using IsRequestHandler = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
+ F,
+ std::function<ReturnType(const RequestInMessage&)>>::
+ value>;
- template <typename F, typename ReturnType>
- using IsRequestHandlerWithMonitor = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
- F,
- std::function<ReturnType(const RequestInMessage&,const CancelMonitor&)>>::
- value>;
+ template <typename F, typename ReturnType>
+ using IsRequestHandlerWithMonitor = lsp::traits::EnableIf<lsp::traits::CompatibleWith<
+ F,
+ std::function<ReturnType(const RequestInMessage&,const CancelMonitor&)>>::
+ value>;
public:
-
- RemoteEndPoint(const std::shared_ptr <MessageJsonHandler>& json_handler,
- const std::shared_ptr < Endpoint >& localEndPoint,
- lsp::Log& _log, uint8_t max_workers = 2);
-
- ~RemoteEndPoint() override;
- template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
- IsRequestHandler< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler)
- {
- ProcessRequestJsonHandler(handler);
- local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
- auto req = reinterpret_cast<const RequestType*>(msg.get());
- lsp::ResponseOrError<ResponseType> res(handler(*req));
- if (res.is_error) {
- res.error.id = req->id;
- send(res.error);
- }
- else
- {
- res.response.id = req->id;
- send(res.response);
- }
- return true;
- });
- }
- template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
- IsRequestHandlerWithMonitor< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler) {
- ProcessRequestJsonHandler(handler);
- local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
- auto req = static_cast<const RequestType*>(msg.get());
- lsp::ResponseOrError<ResponseType> res(handler(*req , getCancelMonitor(req->id)));
- if (res.is_error) {
- res.error.id = req->id;
- send(res.error);
- }
- else
- {
- res.response.id = req->id;
- send(res.response);
- }
- return true;
- });
- }
- using RequestErrorCallback = std::function<void(const Rsp_Error&)>;
-
- template <typename T, typename F, typename ResponseType = ParamType<F, 0> >
- void send(T& request, F&& handler, RequestErrorCallback onError)
- {
- ProcessRequestJsonHandler(handler);
- auto cb = [=](std::unique_ptr<LspMessage> msg) {
- if (!msg)
- return true;
- const auto result = msg.get();
-
- if (static_cast<ResponseInMessage*>(result)->IsErrorType()) {
- const auto rsp_error = static_cast<const Rsp_Error*>(result);
- onError(*rsp_error);
- }
- else {
- handler(*static_cast<ResponseType*>(result));
- }
-
- return true;
- };
- internalSendRequest(request, cb);
- }
-
-
- template <typename F, typename NotifyType = ParamType<F, 0> >
- IsNotify<NotifyType> registerHandler(F&& handler) {
- {
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!jsonHandler->GetNotificationJsonHandler(NotifyType::kMethodInfo))
- {
- jsonHandler->SetNotificationJsonHandler(NotifyType::kMethodInfo,
- [](Reader& visitor)
- {
- return NotifyType::ReflectReader(visitor);
- });
- }
- }
- local_endpoint->registerNotifyHandler(NotifyType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
- handler(*static_cast<NotifyType*>(msg.get()));
- return true;
- });
- }
-
- template <typename T, typename = IsRequest<T>>
- std::future< lsp::ResponseOrError<typename T::Response> > send(T& request) {
-
- ProcessResponseJsonHandler(request);
- using Response = typename T::Response;
- auto promise = std::make_shared< std::promise<lsp::ResponseOrError<Response>>>();
- auto cb = [=](std::unique_ptr<LspMessage> msg) {
- if (!msg)
- return true;
- auto result = msg.get();
-
- if (reinterpret_cast<ResponseInMessage*>(result)->IsErrorType())
- {
- Rsp_Error* rsp_error = static_cast<Rsp_Error*>(result);
- Rsp_Error temp;
- std::swap(temp, *rsp_error);
- promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
- }
- else
- {
- Response temp;
- std::swap(temp, *static_cast<Response*>(result));
- promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
- }
- return true;
- };
- internalSendRequest(request, cb);
- return promise->get_future();
- }
-
- template <typename T, typename = IsRequest<T>>
- std::unique_ptr<lsp::ResponseOrError<typename T::Response>> waitResponse(T& request, const unsigned time_out = 0)
- {
- auto future_rsp = send(request);
- if (time_out == 0)
- {
- future_rsp.wait();
- }
- else
- {
- auto state = future_rsp.wait_for(std::chrono::milliseconds(time_out));
- if (std::future_status::timeout == state)
- {
- return {};
- }
- }
-
- using Response = typename T::Response;
- return std::make_unique<lsp::ResponseOrError<Response>>(std::move(future_rsp.get()));
- }
-
- void send(NotificationInMessage& msg)
- {
- sendMsg(msg);
- }
-
- void send(ResponseInMessage& msg)
- {
- sendMsg(msg);
- }
-
- void sendNotification(NotificationInMessage& msg)
- {
- send(msg);
- }
- void sendResponse(ResponseInMessage& msg)
- {
- send(msg);
- }
- void startProcessingMessages(std::shared_ptr<lsp::istream> r,
- std::shared_ptr<lsp::ostream> w);
-
- bool IsWorking() const
- {
- if (message_producer_thread_)
- return true;
- return false;
- }
- void Stop();
-
- std::unique_ptr<LspMessage> internalWaitResponse(RequestInMessage&, unsigned time_out = 0);
-
- void internalSendRequest(RequestInMessage&, GenericResponseHandler);
-
- void handle(std::vector<MessageIssue>&&) override;
- void handle(MessageIssue&&) override;
+
+ RemoteEndPoint(const std::shared_ptr <MessageJsonHandler>& json_handler,
+ const std::shared_ptr < Endpoint >& localEndPoint,
+ lsp::Log& _log, uint8_t max_workers = 2);
+
+ ~RemoteEndPoint() override;
+ template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
+ IsRequestHandler< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler)
+ {
+ processRequestJsonHandler(handler);
+ local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
+ auto req = reinterpret_cast<const RequestType*>(msg.get());
+ lsp::ResponseOrError<ResponseType> res(handler(*req));
+ if (res.is_error) {
+ res.error.id = req->id;
+ send(res.error);
+ }
+ else
+ {
+ res.response.id = req->id;
+ send(res.response);
+ }
+ return true;
+ });
+ }
+ template <typename F, typename RequestType = ParamType<F, 0>, typename ResponseType = typename RequestType::Response>
+ IsRequestHandlerWithMonitor< F, lsp::ResponseOrError<ResponseType> > registerHandler(F&& handler) {
+ processRequestJsonHandler(handler);
+ local_endpoint->registerRequestHandler(RequestType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
+ auto req = static_cast<const RequestType*>(msg.get());
+ lsp::ResponseOrError<ResponseType> res(handler(*req , getCancelMonitor(req->id)));
+ if (res.is_error) {
+ res.error.id = req->id;
+ send(res.error);
+ }
+ else
+ {
+ res.response.id = req->id;
+ send(res.response);
+ }
+ return true;
+ });
+ }
+ using RequestErrorCallback = std::function<void(const Rsp_Error&)>;
+
+ template <typename T, typename F, typename ResponseType = ParamType<F, 0> >
+ void send(T& request, F&& handler, RequestErrorCallback onError)
+ {
+ processRequestJsonHandler(handler);
+ auto cb = [=](std::unique_ptr<LspMessage> msg) {
+ if (!msg)
+ return true;
+ const auto result = msg.get();
+
+ if (static_cast<ResponseInMessage*>(result)->IsErrorType()) {
+ const auto rsp_error = static_cast<const Rsp_Error*>(result);
+ onError(*rsp_error);
+ }
+ else {
+ handler(*static_cast<ResponseType*>(result));
+ }
+
+ return true;
+ };
+ internalSendRequest(request, cb);
+ }
+
+
+ template <typename F, typename NotifyType = ParamType<F, 0> >
+ IsNotify<NotifyType> registerHandler(F&& handler) {
+ {
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!jsonHandler->GetNotificationJsonHandler(NotifyType::kMethodInfo))
+ {
+ jsonHandler->SetNotificationJsonHandler(NotifyType::kMethodInfo,
+ [](Reader& visitor)
+ {
+ return NotifyType::ReflectReader(visitor);
+ });
+ }
+ }
+ local_endpoint->registerNotifyHandler(NotifyType::kMethodInfo, [=](std::unique_ptr<LspMessage> msg) {
+ handler(*static_cast<NotifyType*>(msg.get()));
+ return true;
+ });
+ }
+
+ template <typename T, typename = IsRequest<T>>
+ lsp::future< lsp::ResponseOrError<typename T::Response> > send(T& request) {
+
+ processResponseJsonHandler(request);
+ using Response = typename T::Response;
+ auto promise = std::make_shared< lsp::promise<lsp::ResponseOrError<Response>>>();
+ auto cb = [=](std::unique_ptr<LspMessage> msg) {
+ if (!msg)
+ return true;
+ auto result = msg.get();
+
+ if (reinterpret_cast<ResponseInMessage*>(result)->IsErrorType())
+ {
+ Rsp_Error* rsp_error = static_cast<Rsp_Error*>(result);
+ Rsp_Error temp;
+ std::swap(temp, *rsp_error);
+ promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
+ }
+ else
+ {
+ Response temp;
+ std::swap(temp, *static_cast<Response*>(result));
+ promise->set_value(std::move(lsp::ResponseOrError<Response>(std::move(temp))));
+ }
+ return true;
+ };
+ internalSendRequest(request, cb);
+ return promise->get_future();
+ }
+
+ template <typename T, typename = IsRequest<T>>
+ std::unique_ptr<lsp::ResponseOrError<typename T::Response>> waitResponse(T& request, const unsigned time_out = 0)
+ {
+ auto future_rsp = send(request);
+ if (time_out == 0)
+ {
+ future_rsp.wait();
+ }
+ else
+ {
+ auto state = future_rsp.wait_for(std::chrono::milliseconds(time_out));
+ if (lsp::future_status::timeout == state)
+ {
+ return {};
+ }
+ }
+
+ using Response = typename T::Response;
+ return std::make_unique<lsp::ResponseOrError<Response>>(std::move(future_rsp.get()));
+ }
+
+ void send(NotificationInMessage& msg)
+ {
+ sendMsg(msg);
+ }
+
+ void send(ResponseInMessage& msg)
+ {
+ sendMsg(msg);
+ }
+
+ void sendNotification(NotificationInMessage& msg)
+ {
+ send(msg);
+ }
+ void sendResponse(ResponseInMessage& msg)
+ {
+ send(msg);
+ }
+ template <typename T>
+ T createRequest() {
+ auto req = T();
+ req.id.set(getNextRequestId());
+ return req;
+ }
+
+ int getNextRequestId();
+
+ bool cancelRequest(const lsRequestId&);
+
+ void startProcessingMessages(std::shared_ptr<lsp::istream> r,
+ std::shared_ptr<lsp::ostream> w);
+
+ bool isWorking() const;
+ void stop();
+
+ std::unique_ptr<LspMessage> internalWaitResponse(RequestInMessage&, unsigned time_out = 0);
+
+ bool internalSendRequest(RequestInMessage &info, GenericResponseHandler handler);
+
+ void handle(std::vector<MessageIssue>&&) override;
+ void handle(MessageIssue&&) override;
private:
- CancelMonitor getCancelMonitor(const lsRequestId&);
- void sendMsg(LspMessage& msg);
- void mainLoop(std::unique_ptr<LspMessage>);
- bool dispatch(const std::string&);
- template <typename F, typename RequestType = ParamType<F, 0>>
- IsRequest<RequestType> ProcessRequestJsonHandler(const F& handler) {
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!jsonHandler->GetRequestJsonHandler(RequestType::kMethodInfo))
- {
- jsonHandler->SetRequestJsonHandler(RequestType::kMethodInfo,
- [](Reader& visitor)
- {
- return RequestType::ReflectReader(visitor);
- });
- }
- }
- template <typename T, typename = IsRequest<T>>
- void ProcessResponseJsonHandler(T& request)
- {
- using Response = typename T::Response;
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!jsonHandler->GetResponseJsonHandler(T::kMethodInfo))
- {
- jsonHandler->SetResponseJsonHandler(T::kMethodInfo, [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return Response::ReflectReader(visitor);
- });
- }
- }
-
- struct Data;
-
- Data* d_ptr;
-
- std::shared_ptr < MessageJsonHandler> jsonHandler;
- std::mutex m_sendMutex;
-
- std::shared_ptr < Endpoint > local_endpoint;
+ CancelMonitor getCancelMonitor(const lsRequestId&);
+ void sendMsg(LspMessage& msg);
+ void mainLoop(std::unique_ptr<LspMessage>);
+ bool dispatch(const std::string&);
+ template <typename F, typename RequestType = ParamType<F, 0>>
+ IsRequest<RequestType> processRequestJsonHandler(const F& handler) {
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!jsonHandler->GetRequestJsonHandler(RequestType::kMethodInfo))
+ {
+ jsonHandler->SetRequestJsonHandler(RequestType::kMethodInfo,
+ [](Reader& visitor)
+ {
+ return RequestType::ReflectReader(visitor);
+ });
+ }
+ }
+ template <typename T, typename = IsRequest<T>>
+ void processResponseJsonHandler(T& request)
+ {
+ using Response = typename T::Response;
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!jsonHandler->GetResponseJsonHandler(T::kMethodInfo))
+ {
+ jsonHandler->SetResponseJsonHandler(T::kMethodInfo, [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return Response::ReflectReader(visitor);
+ });
+ }
+ }
+
+ struct Data;
+
+ Data* d_ptr;
+
+ std::shared_ptr < MessageJsonHandler> jsonHandler;
+ std::mutex m_sendMutex;
+
+ std::shared_ptr < Endpoint > local_endpoint;
public:
- std::shared_ptr < std::thread > message_producer_thread_;
+ std::shared_ptr < std::thread > message_producer_thread_;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
index 163d038a2e..0775b36dba 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/RequestInMessage.h
@@ -10,14 +10,14 @@
#include "lsResponseMessage.h"
struct RequestInMessage : public LspMessage {
- // number or string, actually no null
- lsRequestId id;
- std::string method;
- Kind GetKid() override
- {
- return REQUEST_MESSAGE;
- }
-
+ // number or string, actually no null
+ lsRequestId id;
+ std::string method;
+ Kind GetKid() override
+ {
+ return REQUEST_MESSAGE;
+ }
+
};
@@ -25,45 +25,45 @@ struct RequestInMessage : public LspMessage {
template <class T, class TDerived >
struct lsRequest : public RequestInMessage
{
- lsRequest(MethodType _method)
- {
- method = _method;
- }
- MethodType GetMethodType() const override { return method.c_str(); }
- void SetMethodType(MethodType _method) override
- {
- method = _method;
- } \
- void ReflectWriter(Writer& writer) override {
- Reflect(writer, static_cast<TDerived&>(*this));
- }
-
- static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
+ lsRequest(MethodType _method)
+ {
+ method = _method;
+ }
+ MethodType GetMethodType() const override { return method.c_str(); }
+ void SetMethodType(MethodType _method) override
+ {
+ method = _method;
+ } \
+ void ReflectWriter(Writer& writer) override {
+ Reflect(writer, static_cast<TDerived&>(*this));
+ }
+
+ static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
- TDerived* temp = new TDerived();
- std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
- // Reflect may throw and *message will be partially deserialized.
- Reflect(visitor, static_cast<TDerived&>(*temp));
- return message;
- }
- void swap(lsRequest& arg) noexcept
- {
- id.swap(arg.id);
- method.swap(method);
- std::swap(params, arg.params);
- }
- T params;
+ TDerived* temp = new TDerived();
+ std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
+ // Reflect may throw and *message will be partially deserialized.
+ Reflect(visitor, static_cast<TDerived&>(*temp));
+ return message;
+ }
+ void swap(lsRequest& arg) noexcept
+ {
+ id.swap(arg.id);
+ method.swap(method);
+ std::swap(params, arg.params);
+ }
+ T params;
};
#define DEFINE_REQUEST_RESPONSE_TYPE(MSG,request_param,response_result,methodInfo)\
namespace MSG {\
- struct response :public ResponseMessage< response_result, response> {}; \
- struct request : public lsRequest< request_param , request >{\
- static constexpr MethodType kMethodInfo = methodInfo;\
- request():lsRequest(kMethodInfo){} \
- using Response = response;\
- };\
+ struct response :public ResponseMessage< response_result, response> {}; \
+ struct request : public lsRequest< request_param , request >{\
+ static constexpr MethodType kMethodInfo = methodInfo;\
+ request():lsRequest(kMethodInfo){} \
+ using Response = response;\
+ };\
};\
MAKE_REFLECT_STRUCT(MSG::request, jsonrpc, id, method, params);\
MAKE_REFLECT_STRUCT(MSG::response, jsonrpc, id, result);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
index 439a9f1b0e..e039891f5f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/StreamMessageProducer.h
@@ -7,42 +7,42 @@
#include "MessageIssue.h"
namespace lsp {
- class istream;
+ class istream;
}
class StreamMessageProducer : public MessageProducer
{
public:
- struct Headers
- {
- int contentLength = -1;
- std::string charset;
- void clear()
- {
- contentLength = -1;
- charset.clear();
- }
- };
- bool handleMessage(Headers& headers, MessageConsumer callBack);
- StreamMessageProducer(
- MessageIssueHandler& message_issue_handler, std::shared_ptr < lsp::istream> _input)
- : issueHandler(message_issue_handler),
- input(_input)
- {
- }
- StreamMessageProducer(
- MessageIssueHandler& message_issue_handler)
- : issueHandler(message_issue_handler)
- {
- }
-
- bool keepRunning = false;
- void listen(MessageConsumer) override;
- void bind(std::shared_ptr < lsp::istream>);
- void parseHeader(std::string& line, Headers& headers);
+ struct Headers
+ {
+ int contentLength = -1;
+ std::string charset;
+ void clear()
+ {
+ contentLength = -1;
+ charset.clear();
+ }
+ };
+ bool handleMessage(Headers& headers, MessageConsumer callBack);
+ StreamMessageProducer(
+ MessageIssueHandler& message_issue_handler, std::shared_ptr < lsp::istream> _input)
+ : issueHandler(message_issue_handler),
+ input(_input)
+ {
+ }
+ StreamMessageProducer(
+ MessageIssueHandler& message_issue_handler)
+ : issueHandler(message_issue_handler)
+ {
+ }
+
+ bool keepRunning = false;
+ void listen(MessageConsumer) override;
+ void bind(std::shared_ptr < lsp::istream>);
+ void parseHeader(std::string& line, Headers& headers);
private:
- MessageIssueHandler& issueHandler;
- std::shared_ptr < lsp::istream> input;
-
+ MessageIssueHandler& issueHandler;
+ std::shared_ptr < lsp::istream> input;
+
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
index e533acf056..a377be8c3e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/TcpServer.h
@@ -36,5 +36,5 @@ namespace lsp
void do_stop();
Data* d_ptr = nullptr;
};
-} // namespace
+} // namespace
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h
new file mode 100644
index 0000000000..8e241d96e9
--- /dev/null
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/future.h
@@ -0,0 +1,178 @@
+// Copyright 2019 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#pragma once
+
+#include <condition_variable>
+#include <memory>
+#include <mutex>
+
+namespace lsp {
+
+// internal functionality
+namespace detail {
+template <typename T>
+struct promise_state {
+ T val;
+ std::mutex mutex;
+ std::condition_variable cv;
+ bool hasVal = false;
+};
+} // namespace detail
+
+// forward declaration
+template <typename T>
+class promise;
+
+// future_status is the enumeration returned by future::wait_for and
+// future::wait_until.
+enum class future_status {
+ ready,
+ timeout,
+};
+
+// future is a minimal reimplementation of std::future, that does not suffer
+// from TSAN false positives. See:
+// https://gcc.gnu.org/bugzilla//show_bug.cgi?id=69204
+template <typename T>
+class future {
+ public:
+ using State = detail::promise_state<T>;
+
+ // constructors
+ inline future() = default;
+ inline future(future&&) = default;
+
+ // valid() returns true if the future has an internal state.
+ bool valid() const;
+
+ // get() blocks until the future has a valid result, and returns it.
+ // The future must have a valid internal state to call this method.
+ inline T get();
+
+ // wait() blocks until the future has a valid result.
+ // The future must have a valid internal state to call this method.
+ void wait() const;
+
+ // wait_for() blocks until the future has a valid result, or the timeout is
+ // reached.
+ // The future must have a valid internal state to call this method.
+ template <class Rep, class Period>
+ future_status wait_for(
+ const std::chrono::duration<Rep, Period>& timeout) const;
+
+ // wait_until() blocks until the future has a valid result, or the timeout is
+ // reached.
+ // The future must have a valid internal state to call this method.
+ template <class Clock, class Duration>
+ future_status wait_until(
+ const std::chrono::time_point<Clock, Duration>& timeout) const;
+
+ private:
+ friend promise<T>;
+ future(const future&) = delete;
+ inline future(const std::shared_ptr<State>& state);
+
+ std::shared_ptr<State> state = std::make_shared<State>();
+};
+
+template <typename T>
+future<T>::future(const std::shared_ptr<State>& s) : state(s) {}
+
+template <typename T>
+bool future<T>::valid() const {
+ return static_cast<bool>(state);
+}
+
+template <typename T>
+T future<T>::get() {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->cv.wait(lock, [&] { return state->hasVal; });
+ return state->val;
+}
+
+template <typename T>
+void future<T>::wait() const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->cv.wait(lock, [&] { return state->hasVal; });
+}
+
+template <typename T>
+template <class Rep, class Period>
+future_status future<T>::wait_for(
+ const std::chrono::duration<Rep, Period>& timeout) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ return state->cv.wait_for(lock, timeout, [&] { return state->hasVal; })
+ ? future_status::ready
+ : future_status::timeout;
+}
+
+template <typename T>
+template <class Clock, class Duration>
+future_status future<T>::wait_until(
+ const std::chrono::time_point<Clock, Duration>& timeout) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ return state->cv.wait_until(lock, timeout, [&] { return state->hasVal; })
+ ? future_status::ready
+ : future_status::timeout;
+}
+
+// promise is a minimal reimplementation of std::promise, that does not suffer
+// from TSAN false positives. See:
+// https://gcc.gnu.org/bugzilla//show_bug.cgi?id=69204
+template <typename T>
+class promise {
+ public:
+ // constructors
+ inline promise() = default;
+ inline promise(promise&& other) = default;
+ inline promise(const promise& other) = default;
+
+ // set_value() stores value to the shared state.
+ // set_value() must only be called once.
+ inline void set_value(const T& value) const;
+ inline void set_value(T&& value) const;
+
+ // get_future() returns a future sharing this promise's state.
+ future<T> get_future();
+
+ private:
+ using State = detail::promise_state<T>;
+ std::shared_ptr<State> state = std::make_shared<State>();
+};
+
+template <typename T>
+future<T> promise<T>::get_future() {
+ return future<T>(state);
+}
+
+template <typename T>
+void promise<T>::set_value(const T& value) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->val = value;
+ state->hasVal = true;
+ state->cv.notify_all();
+}
+
+template <typename T>
+void promise<T>::set_value(T&& value) const {
+ std::unique_lock<std::mutex> lock(state->mutex);
+ state->val = std::move(value);
+ state->hasVal = true;
+ state->cv.notify_all();
+}
+
+} // namespace lsp
+
+
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
index 98ee91b544..34e6232917 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/json.h
@@ -10,7 +10,7 @@ class JsonReader : public Reader {
std::vector<const char*> path_;
public:
- rapidjson::GenericValue<rapidjson::UTF8<>>* m_;
+ rapidjson::GenericValue<rapidjson::UTF8<>>* m_;
JsonReader(rapidjson::GenericValue<rapidjson::UTF8<>>* m) : m_(m) {}
SerializeFormat Format() const override { return SerializeFormat::Json; }
@@ -35,10 +35,10 @@ class JsonReader : public Reader {
bool HasMember(const char* x) override
{
- if (m_->IsObject())
- return m_->HasMember(x);
- else
- return false;
+ if (m_->IsObject())
+ return m_->HasMember(x);
+ else
+ return false;
}
std::unique_ptr<Reader> operator[](const char* x) override {
auto& sub = (*m_)[x];
@@ -59,7 +59,7 @@ class JsonReader : public Reader {
class JsonWriter : public Writer {
public:
- rapidjson::Writer<rapidjson::StringBuffer>* m_;
+ rapidjson::Writer<rapidjson::StringBuffer>* m_;
JsonWriter(rapidjson::Writer<rapidjson::StringBuffer>* m) : m_(m) {}
SerializeFormat Format() const override { return SerializeFormat::Json; }
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
index 87e94669ab..2efc80b19a 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsRequestId.h
@@ -3,49 +3,49 @@
#include "LibLsp/JsonRpc/serializer.h"
struct lsRequestId {
- // The client can send the request id as an int or a string. We should output
- // the same format we received.
- enum Type { kNone, kInt, kString };
- Type type = kNone;
+ // The client can send the request id as an int or a string. We should output
+ // the same format we received.
+ enum Type { kNone, kInt, kString };
+ Type type = kNone;
- int value = -1;
- std::string k_string;
- bool has_value() const { return type != kNone; }
- void swap(lsRequestId& arg) noexcept
- {
- std::swap(arg, *this);
- }
- void set(int v)
- {
- value = v;
- type = kInt;
- }
- void set(const std::string& v)
- {
- k_string = v;
- type = kString;
- }
- bool operator==(const lsRequestId& rhs) const
- {
- if (type != rhs.type) return false;
- if (type == kInt)
- return value == rhs.value;
- return k_string == rhs.k_string;
- }
- bool operator!=(const lsRequestId& rhs) const
- {
- return !operator==(rhs);
- }
- bool operator<(const lsRequestId& rhs) const
- {
- if (type != rhs.type) return false;
- if (type == kInt)
- return value < rhs.value;
- return k_string < rhs.k_string;
- }
+ int value = -1;
+ std::string k_string;
+ bool has_value() const { return type != kNone; }
+ void swap(lsRequestId& arg) noexcept
+ {
+ std::swap(arg, *this);
+ }
+ void set(int v)
+ {
+ value = v;
+ type = kInt;
+ }
+ void set(const std::string& v)
+ {
+ k_string = v;
+ type = kString;
+ }
+ bool operator==(const lsRequestId& rhs) const
+ {
+ if (type != rhs.type) return false;
+ if (type == kInt)
+ return value == rhs.value;
+ return k_string == rhs.k_string;
+ }
+ bool operator!=(const lsRequestId& rhs) const
+ {
+ return !operator==(rhs);
+ }
+ bool operator<(const lsRequestId& rhs) const
+ {
+ if (type != rhs.type) return false;
+ if (type == kInt)
+ return value < rhs.value;
+ return k_string < rhs.k_string;
+ }
};
void Reflect(Reader& visitor, lsRequestId& value);
void Reflect(Writer& visitor, lsRequestId& value);
// Debug method to convert an id to a string.
-std::string ToString(const lsRequestId& id); \ No newline at end of file
+std::string ToString(const lsRequestId& id);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
index ba94167cf8..68ad502b0c 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/lsResponseMessage.h
@@ -7,65 +7,65 @@
struct ResponseInMessage :public LspMessage {
- lsRequestId id;
- std::string m_methodType;
+ lsRequestId id;
+ std::string m_methodType;
- virtual MethodType GetMethodType() const override
- {
- return m_methodType.data();
- };
- virtual void SetMethodType(MethodType _type) override
- {
- m_methodType = _type;
- };
+ virtual MethodType GetMethodType() const override
+ {
+ return m_methodType.data();
+ };
+ virtual void SetMethodType(MethodType _type) override
+ {
+ m_methodType = _type;
+ };
- Kind GetKid() override
- {
- return RESPONCE_MESSAGE;
- }
- virtual bool IsErrorType()
- {
- return false;
- }
+ Kind GetKid() override
+ {
+ return RESPONCE_MESSAGE;
+ }
+ virtual bool IsErrorType()
+ {
+ return false;
+ }
};
template <class TDerived >
struct BaseResponseMessage : ResponseInMessage {
- void ReflectWriter(Writer& writer) override {
- Reflect(writer, static_cast<TDerived&>(*this));
- }
- static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
+ void ReflectWriter(Writer& writer) override {
+ Reflect(writer, static_cast<TDerived&>(*this));
+ }
+ static std::unique_ptr<LspMessage> ReflectReader(Reader& visitor) {
- TDerived* temp = new TDerived();
- std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
- // Reflect may throw and *message will be partially deserialized.
- Reflect(visitor, static_cast<TDerived&>(*temp));
- return message;
- }
+ TDerived* temp = new TDerived();
+ std::unique_ptr<TDerived> message = std::unique_ptr<TDerived>(temp);
+ // Reflect may throw and *message will be partially deserialized.
+ Reflect(visitor, static_cast<TDerived&>(*temp));
+ return message;
+ }
};
template <class T, class TDerived >
struct ResponseMessage : BaseResponseMessage<TDerived> {
- T result;
- void swap(ResponseMessage<T, TDerived>& arg) noexcept
- {
- std::swap(result, arg.result);
- this->id.swap(arg.id);
- this->m_methodType.swap(arg.m_methodType);
- }
+ T result;
+ void swap(ResponseMessage<T, TDerived>& arg) noexcept
+ {
+ std::swap(result, arg.result);
+ this->id.swap(arg.id);
+ this->m_methodType.swap(arg.m_methodType);
+ }
};
template <class T, class TDerived >
struct ResponseError : BaseResponseMessage<TDerived> {
- T error;
- bool IsErrorType() override { return true; }
- void swap(ResponseError<T, TDerived>& arg) noexcept
- {
+ T error;
+ bool IsErrorType() override { return true; }
+ void swap(ResponseError<T, TDerived>& arg) noexcept
+ {
- this->id.swap(arg.id);
- this->m_methodType.swap(arg.m_methodType);
- std::swap(error, arg.error);
- }
+ this->id.swap(arg.id);
+ this->m_methodType.swap(arg.m_methodType);
+ std::swap(error, arg.error);
+ }
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
index f09ba5b1a7..19a9634286 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/macro_map.h
@@ -27,7 +27,7 @@ DEALINGS IN THE SOFTWARE.
// Taken from https://github.com/cbeck88/visit_struct.
//
// Usage
-//
+//
// #define PRINT_DOUBLE(x) printf(#x " = %d\n", x);
//
// MACRO_MAP(PRINT_DOUBLE, 1, 2, 3)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
index 6603f3fb3a..57f4932520 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h
@@ -9,26 +9,26 @@
struct LspMessage
{
public:
- std::string jsonrpc = "2.0";
- virtual void ReflectWriter(Writer&) = 0;
-
- // Send the message to the language client by writing it to stdout.
- void Write(std::ostream& out);
-
-
- virtual MethodType GetMethodType() const = 0;
- virtual void SetMethodType(MethodType) = 0;
-
- virtual ~LspMessage()=default;
- enum Kind
- {
- REQUEST_MESSAGE,
- RESPONCE_MESSAGE,
- NOTIFICATION_MESSAGE
- };
-
- virtual Kind GetKid() = 0;
- virtual std::string ToJson() ;
-
+ std::string jsonrpc = "2.0";
+ virtual void ReflectWriter(Writer&) = 0;
+
+ // Send the message to the language client by writing it to stdout.
+ void Write(std::ostream& out);
+
+
+ virtual MethodType GetMethodType() const = 0;
+ virtual void SetMethodType(MethodType) = 0;
+
+ virtual ~LspMessage()=default;
+ enum Kind
+ {
+ REQUEST_MESSAGE,
+ RESPONCE_MESSAGE,
+ NOTIFICATION_MESSAGE
+ };
+
+ virtual Kind GetKid() = 0;
+ virtual std::string ToJson() ;
+
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
index 71b6bede59..477c822845 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/serializer.h
@@ -24,64 +24,64 @@ enum class SerializeFormat { Json, MessagePack };
// A tag type that can be used to write `null` to json.
struct JsonNull
{
- void swap(JsonNull& arg) noexcept;
+ void swap(JsonNull& arg) noexcept;
};
class Reader {
public:
- virtual ~Reader() {}
- virtual SerializeFormat Format() const = 0;
-
- virtual bool IsBool() = 0;
- virtual bool IsNull() = 0;
- virtual bool IsArray() = 0;
- virtual bool IsInt() = 0;
- virtual bool IsInt64() = 0;
- virtual bool IsUint64() = 0;
- virtual bool IsDouble() = 0;
+ virtual ~Reader() {}
+ virtual SerializeFormat Format() const = 0;
+
+ virtual bool IsBool() = 0;
+ virtual bool IsNull() = 0;
+ virtual bool IsArray() = 0;
+ virtual bool IsInt() = 0;
+ virtual bool IsInt64() = 0;
+ virtual bool IsUint64() = 0;
+ virtual bool IsDouble() = 0;
virtual bool IsNumber() = 0;
virtual bool IsString() = 0;
- virtual void GetNull() = 0;
- virtual bool GetBool() = 0;
- virtual int GetInt() = 0;
- virtual uint32_t GetUint32() = 0;
- virtual int64_t GetInt64() = 0;
- virtual uint64_t GetUint64() = 0;
- virtual double GetDouble() = 0;
- virtual std::string GetString() = 0;
-
- virtual bool HasMember(const char* x) = 0;
- virtual std::unique_ptr<Reader> operator[](const char* x) = 0;
- virtual void IterMap( std::function<void(const char*, Reader&)> fn) = 0;
- virtual void IterArray(std::function<void(Reader&)> fn) = 0;
- virtual void DoMember(const char* name, std::function<void(Reader&)> fn) = 0;
- virtual std::string ToString() const = 0;
+ virtual void GetNull() = 0;
+ virtual bool GetBool() = 0;
+ virtual int GetInt() = 0;
+ virtual uint32_t GetUint32() = 0;
+ virtual int64_t GetInt64() = 0;
+ virtual uint64_t GetUint64() = 0;
+ virtual double GetDouble() = 0;
+ virtual std::string GetString() = 0;
+
+ virtual bool HasMember(const char* x) = 0;
+ virtual std::unique_ptr<Reader> operator[](const char* x) = 0;
+ virtual void IterMap( std::function<void(const char*, Reader&)> fn) = 0;
+ virtual void IterArray(std::function<void(Reader&)> fn) = 0;
+ virtual void DoMember(const char* name, std::function<void(Reader&)> fn) = 0;
+ virtual std::string ToString() const = 0;
};
class Writer {
public:
- virtual ~Writer() {}
- virtual SerializeFormat Format() const = 0;
-
- virtual void Null() = 0;
- virtual void Bool(bool x) = 0;
- virtual void Int(int x) = 0;
- virtual void Uint32(uint32_t x) = 0;
- virtual void Int64(int64_t x) = 0;
- virtual void Uint64(uint64_t x) = 0;
- virtual void Double(double x) = 0;
- virtual void String(const char* x) = 0;
- virtual void String(const char* x, size_t len) = 0;
- virtual void StartArray(size_t) = 0;
- virtual void EndArray() = 0;
- virtual void StartObject() = 0;
- virtual void EndObject() = 0;
- virtual void Key(const char* name) = 0;
+ virtual ~Writer() {}
+ virtual SerializeFormat Format() const = 0;
+
+ virtual void Null() = 0;
+ virtual void Bool(bool x) = 0;
+ virtual void Int(int x) = 0;
+ virtual void Uint32(uint32_t x) = 0;
+ virtual void Int64(int64_t x) = 0;
+ virtual void Uint64(uint64_t x) = 0;
+ virtual void Double(double x) = 0;
+ virtual void String(const char* x) = 0;
+ virtual void String(const char* x, size_t len) = 0;
+ virtual void StartArray(size_t) = 0;
+ virtual void EndArray() = 0;
+ virtual void StartObject() = 0;
+ virtual void EndObject() = 0;
+ virtual void Key(const char* name) = 0;
};
@@ -130,9 +130,9 @@ struct optionals_mandatory_tag {};
#define _MAPPABLE_SWAP_MEMBER(name) std::swap(name,arg.name);
-#define MAKE_SWAP_METHOD(type, ...) \
-void swap(type& arg) noexcept{ \
- MACRO_MAP(_MAPPABLE_SWAP_MEMBER, __VA_ARGS__) \
+#define MAKE_SWAP_METHOD(type, ...) \
+void swap(type& arg) noexcept{ \
+ MACRO_MAP(_MAPPABLE_SWAP_MEMBER, __VA_ARGS__) \
}
#define MAKE_REFLECT_STRUCT_OPTIONALS_MANDATORY(type, ...) \
@@ -208,171 +208,171 @@ void Reflect(Writer& visitor, SerializeFormat& value);
template <typename T>
void Reflect(Reader& visitor, boost::optional<T>& value) {
- if (visitor.IsNull()) {
- visitor.GetNull();
- return;
- }
- T real_value;
- Reflect(visitor, real_value);
- value = std::move(real_value);
+ if (visitor.IsNull()) {
+ visitor.GetNull();
+ return;
+ }
+ T real_value;
+ Reflect(visitor, real_value);
+ value = std::move(real_value);
}
template <typename T>
void Reflect(Writer& visitor, boost::optional<T>& value) {
- if (value)
- Reflect(visitor, *value);
- else
- visitor.Null();
+ if (value)
+ Reflect(visitor, *value);
+ else
+ visitor.Null();
}
template <typename T>
void ReflectMember(Writer& visitor, const char* name, boost::optional<T>& value) {
- // For TypeScript optional property key?: value in the spec,
- // We omit both key and value if value is std::nullopt (null) for JsonWriter
- // to reduce output. But keep it for other serialization formats.
- if (value || visitor.Format() != SerializeFormat::Json) {
- visitor.Key(name);
- Reflect(visitor, value);
- }
+ // For TypeScript optional property key?: value in the spec,
+ // We omit both key and value if value is std::nullopt (null) for JsonWriter
+ // to reduce output. But keep it for other serialization formats.
+ if (value || visitor.Format() != SerializeFormat::Json) {
+ visitor.Key(name);
+ Reflect(visitor, value);
+ }
}
template <typename T>
void ReflectMember(Writer& visitor,
- const char* name,
- T& value,
- optionals_mandatory_tag) {
- visitor.Key(name);
- Reflect(visitor, value);
+ const char* name,
+ T& value,
+ optionals_mandatory_tag) {
+ visitor.Key(name);
+ Reflect(visitor, value);
}
template <typename T>
void ReflectMember(Reader& visitor,
- const char* name,
- T& value,
- optionals_mandatory_tag) {
- Reflect(visitor, value);
+ const char* name,
+ T& value,
+ optionals_mandatory_tag) {
+ Reflect(visitor, value);
}
template<class T >
void Reflect(Reader& visitor, std::map<std::string, T>& value)
{
- visitor.IterMap([&](const char* name,Reader& entry) {
- T entry_value;
- Reflect(entry, entry_value);
- value[name]=(std::move(entry_value));
- });
+ visitor.IterMap([&](const char* name,Reader& entry) {
+ T entry_value;
+ Reflect(entry, entry_value);
+ value[name]=(std::move(entry_value));
+ });
}
template<class _Ty >
void Reflect(Writer& visitor, std::map<std::string, _Ty>& value)
{
- REFLECT_MEMBER_START();
- for (auto& it : value)
- {
- visitor.Key(it.first.c_str());
- Reflect(visitor, it.second);
- }
- REFLECT_MEMBER_END();
+ REFLECT_MEMBER_START();
+ for (auto& it : value)
+ {
+ visitor.Key(it.first.c_str());
+ Reflect(visitor, it.second);
+ }
+ REFLECT_MEMBER_END();
}
// std::vector
template <typename T>
void Reflect(Reader& visitor, std::vector<T>& values) {
- visitor.IterArray([&](Reader& entry) {
- T entry_value;
- Reflect(entry, entry_value);
- values.push_back(std::move(entry_value));
- });
+ visitor.IterArray([&](Reader& entry) {
+ T entry_value;
+ Reflect(entry, entry_value);
+ values.push_back(std::move(entry_value));
+ });
}
template <typename T>
void Reflect(Writer& visitor, std::vector<T>& values) {
- visitor.StartArray(values.size());
- for (auto& value : values)
- Reflect(visitor, value);
- visitor.EndArray();
+ visitor.StartArray(values.size());
+ for (auto& value : values)
+ Reflect(visitor, value);
+ visitor.EndArray();
}
// ReflectMember
inline void DefaultReflectMemberStart(Writer& visitor) {
- visitor.StartObject();
+ visitor.StartObject();
}
inline void DefaultReflectMemberStart(Reader& visitor) {}
template <typename T>
bool ReflectMemberStart(Reader& visitor, T& value) {
- return false;
+ return false;
}
template <typename T>
bool ReflectMemberStart(Writer& visitor, T& value) {
- visitor.StartObject();
- return true;
+ visitor.StartObject();
+ return true;
}
template <typename T>
void ReflectMemberEnd(Reader& visitor, T& value) {}
template <typename T>
void ReflectMemberEnd(Writer& visitor, T& value) {
- visitor.EndObject();
+ visitor.EndObject();
}
template <typename T>
void ReflectMember(Reader& visitor, const char* name, T& value) {
- visitor.DoMember(name, [&](Reader& child) { Reflect(child, value); });
+ visitor.DoMember(name, [&](Reader& child) { Reflect(child, value); });
}
template <typename T>
void ReflectMember(Writer& visitor, const char* name, T& value) {
- visitor.Key(name);
- Reflect(visitor, value);
+ visitor.Key(name);
+ Reflect(visitor, value);
}
template<class _Ty1, class _Ty2>
void Reflect(Writer& visitor, std::pair< boost::optional<_Ty1>, boost::optional<_Ty2> >& value)
{
- if (value.first)
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
+ if (value.first)
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
}
template<class _Ty2>
void Reflect(Reader& visitor, std::pair< boost::optional<bool>, boost::optional<_Ty2> >& value)
{
- if(visitor.IsBool())
- {
- Reflect(visitor, value.first);
- return;
- }
+ if(visitor.IsBool())
+ {
+ Reflect(visitor, value.first);
+ return;
+ }
- Reflect(visitor, value.second);
+ Reflect(visitor, value.second);
}
template<class _Ty2>
void Reflect(Reader& visitor, std::pair< boost::optional<std::string>, boost::optional<_Ty2> >& value)
{
- if (visitor.IsString())
- {
- Reflect(visitor, value.first);
- return;
- }
+ if (visitor.IsString())
+ {
+ Reflect(visitor, value.first);
+ return;
+ }
- Reflect(visitor, value.second);
+ Reflect(visitor, value.second);
}
template<class _Ty1, class _Ty2>
void Reflect(Reader& visitor, std::pair< boost::optional<_Ty1>, boost::optional<_Ty2> >& value)
{
- try
- {
- Reflect(visitor, value.second);
- }
- catch (...)
- {
- Reflect(visitor, value.first);
- }
+ try
+ {
+ Reflect(visitor, value.second);
+ }
+ catch (...)
+ {
+ Reflect(visitor, value.first);
+ }
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
index 549c361950..3dd3def993 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/stream.h
@@ -3,194 +3,194 @@
#include <string>
namespace lsp
{
- class stream
- {
- public:
- virtual ~stream() = default;
- virtual bool fail() = 0;
- virtual bool bad() = 0;
- virtual bool eof() = 0;
- virtual bool good() = 0;
- virtual void clear() = 0;
- virtual std::string what() = 0;
- virtual bool need_to_clear_the_state()
- {
- return false;
- }
-
- bool operator!()
- {
- return bad();
- }
- };
- class istream : public stream
- {
- public:
- virtual int get() = 0;
- virtual ~istream() = default;
- virtual istream& read(char* str, std::streamsize count) = 0;
- };
- template <class T >
- class base_istream : public istream
- {
- public:
- explicit base_istream(T& _t) :_impl(_t)
- {
-
- }
-
- int get() override
- {
- return _impl.get();
- }
- bool fail() override
- {
- return _impl.fail();
- }
- bool bad() override
- {
- return _impl.bad();
- }
- bool eof() override
- {
- return _impl.eof();
- }
- bool good() override
- {
- return _impl.good();
- }
- istream& read(char* str, std::streamsize count) override
- {
- _impl.read(str, count);
- return *this;
- }
-
- void clear() override
- {
- _impl.clear();
- }
- T& _impl;
- };
- class ostream : public stream
- {
- public:
- virtual ~ostream() = default;
-
- virtual ostream& write(const std::string&) = 0;
- virtual ostream& write(std::streamsize) = 0;
- virtual ostream& flush() = 0;
-
- };
- template <class T >
- class base_ostream : public ostream
- {
- public:
- explicit base_ostream(T& _t) :_impl(_t)
- {
-
- }
-
- bool fail() override
- {
- return _impl.fail();
- }
- bool good() override
- {
- return _impl.good();
- }
- bool bad() override
- {
- return _impl.bad();
- }
- bool eof() override
- {
- return _impl.eof();
- }
-
- ostream& write(const std::string& c) override
- {
- _impl << c;
- return *this;
- }
-
- ostream& write(std::streamsize _s) override
- {
-
- _impl << std::to_string(_s);
- return *this;
- }
-
- ostream& flush() override
- {
- _impl.flush();
- return *this;
- }
-
- void clear() override
- {
- _impl.clear();
- }
- protected:
- T& _impl;
- };
-
- template <class T >
- class base_iostream : public istream, public ostream
- {
- public:
- explicit base_iostream(T& _t) :_impl(_t)
- {
-
- }
-
- int get() override
- {
- return _impl.get();
- }
- bool fail() override
- {
- return _impl.fail();
- }
- bool bad() override
- {
- return _impl.bad();
- }
- bool eof() override
- {
- return _impl.eof();
- }
- bool good() override
- {
- return _impl.good();
- }
- istream& read(char* str, std::streamsize count) override
- {
- _impl.read(str, count);
- return *this;
- }
- ostream& write(const std::string& c) override
- {
- _impl << c;
- return *this;
- }
-
- ostream& write(std::streamsize _s) override
- {
- _impl << std::to_string(_s);
- return *this;
- }
-
- ostream& flush() override
- {
- _impl.flush();
- return *this;
- }
-
- void clear() override
- {
- _impl.clear();
- }
- protected:
- T& _impl;
- };
+ class stream
+ {
+ public:
+ virtual ~stream() = default;
+ virtual bool fail() = 0;
+ virtual bool bad() = 0;
+ virtual bool eof() = 0;
+ virtual bool good() = 0;
+ virtual void clear() = 0;
+ virtual std::string what() = 0;
+ virtual bool need_to_clear_the_state()
+ {
+ return false;
+ }
+
+ bool operator!()
+ {
+ return bad();
+ }
+ };
+ class istream : public stream
+ {
+ public:
+ virtual int get() = 0;
+ virtual ~istream() = default;
+ virtual istream& read(char* str, std::streamsize count) = 0;
+ };
+ template <class T >
+ class base_istream : public istream
+ {
+ public:
+ explicit base_istream(T& _t) :_impl(_t)
+ {
+
+ }
+
+ int get() override
+ {
+ return _impl.get();
+ }
+ bool fail() override
+ {
+ return _impl.fail();
+ }
+ bool bad() override
+ {
+ return _impl.bad();
+ }
+ bool eof() override
+ {
+ return _impl.eof();
+ }
+ bool good() override
+ {
+ return _impl.good();
+ }
+ istream& read(char* str, std::streamsize count) override
+ {
+ _impl.read(str, count);
+ return *this;
+ }
+
+ void clear() override
+ {
+ _impl.clear();
+ }
+ T& _impl;
+ };
+ class ostream : public stream
+ {
+ public:
+ virtual ~ostream() = default;
+
+ virtual ostream& write(const std::string&) = 0;
+ virtual ostream& write(std::streamsize) = 0;
+ virtual ostream& flush() = 0;
+
+ };
+ template <class T >
+ class base_ostream : public ostream
+ {
+ public:
+ explicit base_ostream(T& _t) :_impl(_t)
+ {
+
+ }
+
+ bool fail() override
+ {
+ return _impl.fail();
+ }
+ bool good() override
+ {
+ return _impl.good();
+ }
+ bool bad() override
+ {
+ return _impl.bad();
+ }
+ bool eof() override
+ {
+ return _impl.eof();
+ }
+
+ ostream& write(const std::string& c) override
+ {
+ _impl << c;
+ return *this;
+ }
+
+ ostream& write(std::streamsize _s) override
+ {
+
+ _impl << std::to_string(_s);
+ return *this;
+ }
+
+ ostream& flush() override
+ {
+ _impl.flush();
+ return *this;
+ }
+
+ void clear() override
+ {
+ _impl.clear();
+ }
+ protected:
+ T& _impl;
+ };
+
+ template <class T >
+ class base_iostream : public istream, public ostream
+ {
+ public:
+ explicit base_iostream(T& _t) :_impl(_t)
+ {
+
+ }
+
+ int get() override
+ {
+ return _impl.get();
+ }
+ bool fail() override
+ {
+ return _impl.fail();
+ }
+ bool bad() override
+ {
+ return _impl.bad();
+ }
+ bool eof() override
+ {
+ return _impl.eof();
+ }
+ bool good() override
+ {
+ return _impl.good();
+ }
+ istream& read(char* str, std::streamsize count) override
+ {
+ _impl.read(str, count);
+ return *this;
+ }
+ ostream& write(const std::string& c) override
+ {
+ _impl << c;
+ return *this;
+ }
+
+ ostream& write(std::streamsize _s) override
+ {
+ _impl << std::to_string(_s);
+ return *this;
+ }
+
+ ostream& flush() override
+ {
+ _impl.flush();
+ return *this;
+ }
+
+ void clear() override
+ {
+ _impl.clear();
+ }
+ protected:
+ T& _impl;
+ };
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
index cca9f9a486..3e1ba547ca 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/threaded_queue.h
@@ -57,23 +57,23 @@ struct MultiQueueWaiter {
static bool HasState(std::initializer_list<BaseThreadQueue*> queues);
bool ValidateWaiter(std::initializer_list<BaseThreadQueue*> queues);
-
+
template <typename... BaseThreadQueue>
bool Wait(std::atomic<bool>& quit, BaseThreadQueue... queues) {
- MultiQueueLock<BaseThreadQueue...> l(queues...);
- while (!quit.load(std::memory_order_relaxed)) {
- if (HasState({ queues... }))
- return false;
- cv.wait(l);
- }
- return true;
+ MultiQueueLock<BaseThreadQueue...> l(queues...);
+ while (!quit.load(std::memory_order_relaxed)) {
+ if (HasState({ queues... }))
+ return false;
+ cv.wait(l);
+ }
+ return true;
}
template <typename... BaseThreadQueue>
void WaitUntil(std::chrono::steady_clock::time_point t,
- BaseThreadQueue... queues) {
- MultiQueueLock<BaseThreadQueue...> l(queues...);
- if (!HasState({ queues... }))
- cv.wait_until(l, t);
+ BaseThreadQueue... queues) {
+ MultiQueueLock<BaseThreadQueue...> l(queues...);
+ if (!HasState({ queues... }))
+ cv.wait_until(l, t);
}
template <typename... BaseThreadQueue>
void Wait(BaseThreadQueue... queues) {
@@ -181,22 +181,22 @@ struct ThreadedQueue : public BaseThreadQueue {
}
// Return all elements in the queue.
std::vector<T> DequeueAll() {
- std::lock_guard<std::mutex> lock(mutex);
-
- total_count_ = 0;
-
- std::vector<T> result;
- result.reserve(priority_.size() + queue_.size());
- while (!priority_.empty()) {
- result.emplace_back(std::move(priority_.front()));
- priority_.pop_front();
- }
- while (!queue_.empty()) {
- result.emplace_back(std::move(queue_.front()));
- queue_.pop_front();
- }
-
- return result;
+ std::lock_guard<std::mutex> lock(mutex);
+
+ total_count_ = 0;
+
+ std::vector<T> result;
+ result.reserve(priority_.size() + queue_.size());
+ while (!priority_.empty()) {
+ result.emplace_back(std::move(priority_.front()));
+ priority_.pop_front();
+ }
+ while (!queue_.empty()) {
+ result.emplace_back(std::move(queue_.front()));
+ queue_.pop_front();
+ }
+
+ return result;
}
std::vector<T> TryDequeueSome(size_t num) {
std::lock_guard<std::mutex> lock(mutex);
@@ -213,7 +213,7 @@ struct ThreadedQueue : public BaseThreadQueue {
}
else
{
- break;
+ break;
}
num -= 1;
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
index ef1ee43860..4f9aae0851 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/AbsolutePath.h
@@ -4,21 +4,21 @@
#include <string>
struct AbsolutePath {
- static AbsolutePath BuildDoNotUse(const std::string& path);
+ static AbsolutePath BuildDoNotUse(const std::string& path);
- // Try not to use this.
- AbsolutePath();
+ // Try not to use this.
+ AbsolutePath();
- // Provide implicit conversions to std::string for the time being.
- AbsolutePath(const std::string& path, bool validate = true);
- operator std::string() const;
+ // Provide implicit conversions to std::string for the time being.
+ AbsolutePath(const std::string& path, bool validate = true);
+ operator std::string() const;
- bool operator==(const AbsolutePath& rhs) const;
- bool operator!=(const AbsolutePath& rhs) const;
- bool operator<(const AbsolutePath& rhs) const;
- bool operator>(const AbsolutePath& rhs) const;
- std::string path;
- bool qualify = true;
+ bool operator==(const AbsolutePath& rhs) const;
+ bool operator!=(const AbsolutePath& rhs) const;
+ bool operator<(const AbsolutePath& rhs) const;
+ bool operator>(const AbsolutePath& rhs) const;
+ std::string path;
+ bool qualify = true;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
index 7adf557f83..29ab82b1c6 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ClientPreferences.h
@@ -9,298 +9,298 @@ class ClientPreferences
{
public:
- std::shared_ptr<lsWorkspaceClientCapabilites> workspace;
- lsTextDocumentClientCapabilities textDocument ;
-
- ClientPreferences(const lsClientCapabilities& capabilities)
- {
- v3supported = capabilities.textDocument.has_value();
- if (v3supported)
- textDocument = capabilities.textDocument.value();
- if(capabilities.workspace)
- {
- workspace = std::make_shared<lsWorkspaceClientCapabilites>(capabilities.workspace.value());
- }
- }
-
- bool v3supported=false;
-
- bool isSignatureHelpSupported() {
-
- return v3supported && (textDocument.signatureHelp);
- }
- bool isWorkspaceDidChangeConfigurationSupported() const
- {
- return workspace && isDynamicRegistrationSupported(workspace->didChangeConfiguration);
- }
- bool isWorkspaceFoldersSupported() {
- return workspace != nullptr && isTrue(workspace->workspaceFolders);
- }
-
- bool isCompletionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.completion);
- }
-
- bool isCompletionSnippetsSupported() {
- //@formatter:off
- if(!v3supported || !textDocument.completion)
- {
- return false;
- }
- const auto& completion = textDocument.completion.value();
- if(completion.completionItem)
- {
- return isTrue(completion.completionItem.value().snippetSupport);
- }
- return false;
- }
-
- bool isV3Supported() {
- return v3supported;
- }
-
- bool isFormattingDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.formatting);
- }
-
- bool isRangeFormattingDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.rangeFormatting);
- }
-
- bool isOnTypeFormattingDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.onTypeFormatting);
- }
-
- bool isCodeLensDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.codeLens);
- }
-
- bool isSignatureHelpDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.signatureHelp);
- }
- template<typename T>
- static bool isDynamicRegistrationSupported(boost::optional<T>& capability)
- {
- if(capability)
- return (capability.value().dynamicRegistration.value());
- return false;
- }
-
- bool isTrue(const boost::optional<bool>& value)
- {
- return value.get_value_or(false);
- }
-
- bool isRenameDynamicRegistrationSupported() {
- return v3supported && isDynamicRegistrationSupported(textDocument.rename);
- }
-
- bool isExecuteCommandDynamicRegistrationSupported() {
- return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->executeCommand);
- }
-
- bool isWorkspaceSymbolDynamicRegistered() {
- return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->symbol);
- }
-
- bool isWorkspaceChangeWatchedFilesDynamicRegistered() {
- return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->didChangeWatchedFiles);
- }
-
- bool isDocumentSymbolDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.documentSymbol);
- }
-
- bool isCodeActionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.codeAction);
- }
-
- bool isDefinitionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.definition);
- }
-
- bool isTypeDefinitionDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.typeDefinition);
- }
-
- bool isHoverDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.hover);
- }
-
- bool isReferencesDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.references);
- }
-
- bool isDocumentHighlightDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.documentHighlight);
- }
-
- bool isFoldgingRangeDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.foldingRange);
- }
-
- bool isImplementationDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.implementation);
- }
-
- bool isSelectionRangeDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.selectionRange);
- }
-
- bool isWillSaveRegistered() {
- return v3supported && isTrue(textDocument.synchronization.willSave);
- }
-
- bool isWillSaveWaitUntilRegistered() {
- return v3supported && isTrue(textDocument.synchronization.willSaveWaitUntil);
- }
-
- bool isWorkspaceApplyEditSupported() {
- return workspace != nullptr && isTrue(workspace->applyEdit);
- }
-
- bool isSupportsCompletionDocumentationMarkdown() {
-
- if (!v3supported || !textDocument.completion)
- {
- return false;
- }
- const auto& completion = textDocument.completion.value();
- if (completion.completionItem)
- {
- auto& documentationFormat = completion.completionItem.value().documentationFormat;
- if(documentationFormat)
- {
- auto& data = documentationFormat.value();
- for(auto& it : data)
- {
- if(it == "markdown")
- {
- return true;
- }
- }
- }
- }
- return false;
-
- }
-
-
- bool isWorkspaceEditResourceChangesSupported() {
- if(!workspace) return false;
-
- if(workspace->workspaceEdit)
- {
- return isTrue(workspace->workspaceEdit.value().resourceChanges);
- }
- return false;
- }
- static bool contains(const std::vector<std::string>& v, const std::string& target)
- {
- for(auto& it : v)
- {
- if(it == target) return true;
- }
- return false;
- }
- bool isResourceOperationSupported() const
- {
- if (!workspace) return false;
- if (!workspace->workspaceEdit)
- {
- return false;
- }
- auto& it = (workspace->workspaceEdit.value());
- if(!it.resourceOperations) return false;
- const auto& resourceOperations = it.resourceOperations.value();
- return contains(resourceOperations, "create") && contains(resourceOperations, "rename") && contains(resourceOperations, "delete");
-
- }
-
- /**
- * {@code true} if the client has explicitly set the
- * {@code textDocument.documentSymbol.hierarchicalDocumentSymbolSupport} to
- * {@code true} when initializing the LS. Otherwise, {@code false}.
- */
- bool isHierarchicalDocumentSymbolSupported() {
- if(!v3supported || !textDocument.documentSymbol) return false;
- return isTrue(textDocument.documentSymbol.value().hierarchicalDocumentSymbolSupport);
-
- }
-
- bool isSemanticHighlightingSupported() {
- //@formatter:off
- if (!v3supported || !textDocument.semanticHighlightingCapabilities) return false;
- return isTrue(textDocument.semanticHighlightingCapabilities.value().semanticHighlighting);
- //@formatter:on
- }
-
- /**
- * {@code true} if the client has explicitly set the
- * {@code textDocument.codeAction.codeActionLiteralSupport.codeActionKind.valueSet}
- * value. Otherwise, {@code false}.
- */
- bool isSupportedCodeActionKind(const std::string& kind) {
- if (!v3supported || !textDocument.codeAction) return false;
- //@formatter:off
- const auto& codeAction = textDocument.codeAction.value();
- if(codeAction.codeActionLiteralSupport)
- {
- const auto& codeActionKind = codeAction.codeActionLiteralSupport.value().codeActionKind;
- if(codeActionKind)
- {
- const auto& valueSet = codeActionKind.value().valueSet;
- if(valueSet)
- {
- for(auto& k : valueSet.value())
- {
- if(lsp::StartsWith(kind,k))
- {
- return true;
- }
- }
- }
- }
- }
- return false;
-
- //@formatter:on
- }
-
- /**
- * {@code true} if the client has explicitly set the
- * {@code textDocument.publishDiagnostics.tagSupport} to
- * {@code true} when initializing the LS. Otherwise, {@code false}.
- */
- bool isDiagnosticTagSupported() {
- if (!v3supported || !textDocument.publishDiagnostics) return false;
- const auto& publishDiagnostics = textDocument.publishDiagnostics.value();
- if(publishDiagnostics.tagSupport)
- {
- isTagSupported(publishDiagnostics.tagSupport);
- }
- return false;
- }
-
- bool isTagSupported(const boost::optional < std::pair<boost::optional<bool>,
- boost::optional<DiagnosticsTagSupport> > >& tagSupport) {
- if(tagSupport)
- {
- auto &v = tagSupport.value();
- if (v.first)
- {
- return v.first.value();
- }
- if (v.second) {
- return !v.second.value().valueSet.empty();
- }
- }
- return false;
- }
-
- bool isCallHierarchyDynamicRegistered() {
- return v3supported && isDynamicRegistrationSupported(textDocument.callHierarchy);
- }
+ std::shared_ptr<lsWorkspaceClientCapabilites> workspace;
+ lsTextDocumentClientCapabilities textDocument ;
+
+ ClientPreferences(const lsClientCapabilities& capabilities)
+ {
+ v3supported = capabilities.textDocument.has_value();
+ if (v3supported)
+ textDocument = capabilities.textDocument.value();
+ if(capabilities.workspace)
+ {
+ workspace = std::make_shared<lsWorkspaceClientCapabilites>(capabilities.workspace.value());
+ }
+ }
+
+ bool v3supported=false;
+
+ bool isSignatureHelpSupported() {
+
+ return v3supported && (textDocument.signatureHelp);
+ }
+ bool isWorkspaceDidChangeConfigurationSupported() const
+ {
+ return workspace && isDynamicRegistrationSupported(workspace->didChangeConfiguration);
+ }
+ bool isWorkspaceFoldersSupported() {
+ return workspace != nullptr && isTrue(workspace->workspaceFolders);
+ }
+
+ bool isCompletionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.completion);
+ }
+
+ bool isCompletionSnippetsSupported() {
+ //@formatter:off
+ if(!v3supported || !textDocument.completion)
+ {
+ return false;
+ }
+ const auto& completion = textDocument.completion.value();
+ if(completion.completionItem)
+ {
+ return isTrue(completion.completionItem.value().snippetSupport);
+ }
+ return false;
+ }
+
+ bool isV3Supported() {
+ return v3supported;
+ }
+
+ bool isFormattingDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.formatting);
+ }
+
+ bool isRangeFormattingDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.rangeFormatting);
+ }
+
+ bool isOnTypeFormattingDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.onTypeFormatting);
+ }
+
+ bool isCodeLensDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.codeLens);
+ }
+
+ bool isSignatureHelpDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.signatureHelp);
+ }
+ template<typename T>
+ static bool isDynamicRegistrationSupported(boost::optional<T>& capability)
+ {
+ if(capability)
+ return (capability.value().dynamicRegistration.value());
+ return false;
+ }
+
+ bool isTrue(const boost::optional<bool>& value)
+ {
+ return value.get_value_or(false);
+ }
+
+ bool isRenameDynamicRegistrationSupported() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.rename);
+ }
+
+ bool isExecuteCommandDynamicRegistrationSupported() {
+ return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->executeCommand);
+ }
+
+ bool isWorkspaceSymbolDynamicRegistered() {
+ return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->symbol);
+ }
+
+ bool isWorkspaceChangeWatchedFilesDynamicRegistered() {
+ return v3supported && workspace != nullptr && isDynamicRegistrationSupported(workspace->didChangeWatchedFiles);
+ }
+
+ bool isDocumentSymbolDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.documentSymbol);
+ }
+
+ bool isCodeActionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.codeAction);
+ }
+
+ bool isDefinitionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.definition);
+ }
+
+ bool isTypeDefinitionDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.typeDefinition);
+ }
+
+ bool isHoverDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.hover);
+ }
+
+ bool isReferencesDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.references);
+ }
+
+ bool isDocumentHighlightDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.documentHighlight);
+ }
+
+ bool isFoldgingRangeDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.foldingRange);
+ }
+
+ bool isImplementationDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.implementation);
+ }
+
+ bool isSelectionRangeDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.selectionRange);
+ }
+
+ bool isWillSaveRegistered() {
+ return v3supported && isTrue(textDocument.synchronization.willSave);
+ }
+
+ bool isWillSaveWaitUntilRegistered() {
+ return v3supported && isTrue(textDocument.synchronization.willSaveWaitUntil);
+ }
+
+ bool isWorkspaceApplyEditSupported() {
+ return workspace != nullptr && isTrue(workspace->applyEdit);
+ }
+
+ bool isSupportsCompletionDocumentationMarkdown() {
+
+ if (!v3supported || !textDocument.completion)
+ {
+ return false;
+ }
+ const auto& completion = textDocument.completion.value();
+ if (completion.completionItem)
+ {
+ auto& documentationFormat = completion.completionItem.value().documentationFormat;
+ if(documentationFormat)
+ {
+ auto& data = documentationFormat.value();
+ for(auto& it : data)
+ {
+ if(it == "markdown")
+ {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+
+ }
+
+
+ bool isWorkspaceEditResourceChangesSupported() {
+ if(!workspace) return false;
+
+ if(workspace->workspaceEdit)
+ {
+ return isTrue(workspace->workspaceEdit.value().resourceChanges);
+ }
+ return false;
+ }
+ static bool contains(const std::vector<std::string>& v, const std::string& target)
+ {
+ for(auto& it : v)
+ {
+ if(it == target) return true;
+ }
+ return false;
+ }
+ bool isResourceOperationSupported() const
+ {
+ if (!workspace) return false;
+ if (!workspace->workspaceEdit)
+ {
+ return false;
+ }
+ auto& it = (workspace->workspaceEdit.value());
+ if(!it.resourceOperations) return false;
+ const auto& resourceOperations = it.resourceOperations.value();
+ return contains(resourceOperations, "create") && contains(resourceOperations, "rename") && contains(resourceOperations, "delete");
+
+ }
+
+ /**
+ * {@code true} if the client has explicitly set the
+ * {@code textDocument.documentSymbol.hierarchicalDocumentSymbolSupport} to
+ * {@code true} when initializing the LS. Otherwise, {@code false}.
+ */
+ bool isHierarchicalDocumentSymbolSupported() {
+ if(!v3supported || !textDocument.documentSymbol) return false;
+ return isTrue(textDocument.documentSymbol.value().hierarchicalDocumentSymbolSupport);
+
+ }
+
+ bool isSemanticHighlightingSupported() {
+ //@formatter:off
+ if (!v3supported || !textDocument.semanticHighlightingCapabilities) return false;
+ return isTrue(textDocument.semanticHighlightingCapabilities.value().semanticHighlighting);
+ //@formatter:on
+ }
+
+ /**
+ * {@code true} if the client has explicitly set the
+ * {@code textDocument.codeAction.codeActionLiteralSupport.codeActionKind.valueSet}
+ * value. Otherwise, {@code false}.
+ */
+ bool isSupportedCodeActionKind(const std::string& kind) {
+ if (!v3supported || !textDocument.codeAction) return false;
+ //@formatter:off
+ const auto& codeAction = textDocument.codeAction.value();
+ if(codeAction.codeActionLiteralSupport)
+ {
+ const auto& codeActionKind = codeAction.codeActionLiteralSupport.value().codeActionKind;
+ if(codeActionKind)
+ {
+ const auto& valueSet = codeActionKind.value().valueSet;
+ if(valueSet)
+ {
+ for(auto& k : valueSet.value())
+ {
+ if(lsp::StartsWith(kind,k))
+ {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ return false;
+
+ //@formatter:on
+ }
+
+ /**
+ * {@code true} if the client has explicitly set the
+ * {@code textDocument.publishDiagnostics.tagSupport} to
+ * {@code true} when initializing the LS. Otherwise, {@code false}.
+ */
+ bool isDiagnosticTagSupported() {
+ if (!v3supported || !textDocument.publishDiagnostics) return false;
+ const auto& publishDiagnostics = textDocument.publishDiagnostics.value();
+ if(publishDiagnostics.tagSupport)
+ {
+ isTagSupported(publishDiagnostics.tagSupport);
+ }
+ return false;
+ }
+
+ bool isTagSupported(const boost::optional < std::pair<boost::optional<bool>,
+ boost::optional<DiagnosticsTagSupport> > >& tagSupport) {
+ if(tagSupport)
+ {
+ auto &v = tagSupport.value();
+ if (v.first)
+ {
+ return v.first.value();
+ }
+ if (v.second) {
+ return !v.second.value().valueSet.empty();
+ }
+ }
+ return false;
+ }
+
+ bool isCallHierarchyDynamicRegistered() {
+ return v3supported && isDynamicRegistrationSupported(textDocument.callHierarchy);
+ }
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
index a1e3f1dcc1..1704dd33c6 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/CodeActionParams.h
@@ -7,98 +7,98 @@
#include "LibLsp/lsp/lsCodeAction.h"
namespace JDT
{
- namespace CodeActionKind {
-
-
- /**
- * Base kind for quickfix actions: 'quickfix'
- */
- extern const char* QuickFix;
-
- /**
- * Base kind for refactoring actions: 'refactor'
- */
- extern const char* Refactor;
-
- /**
- * Base kind for refactoring extraction actions: 'refactor.extract'
- *
- * Example extract actions:
- *
- * - Extract method - Extract function - Extract variable - Extract interface
- * from class - ...
- */
- extern const char* RefactorExtract;
-
- /**
- * Base kind for refactoring inline actions: 'refactor.inline'
- *
- * Example inline actions:
- *
- * - Inline function - Inline variable - Inline constant - ...
- */
- extern const char* RefactorInline;
-
- /**
- * Base kind for refactoring rewrite actions: 'refactor.rewrite'
- *
- * Example rewrite actions:
- *
- * - Convert JavaScript function to class - Add or remove parameter -
- * Encapsulate field - Make method static - Move method to base class - ...
- */
- extern const char* RefactorRewrite;
-
- /**
- * Base kind for source actions: `source`
- *
- * Source code actions apply to the entire file.
- */
- extern const char* Source ;
-
- /**
- * Base kind for an organize imports source action: `source.organizeImports`
- */
- extern const char* SourceOrganizeImports;
-
- extern const char* COMMAND_ID_APPLY_EDIT;
- };
+ namespace CodeActionKind {
+
+
+ /**
+ * Base kind for quickfix actions: 'quickfix'
+ */
+ extern const char* QuickFix;
+
+ /**
+ * Base kind for refactoring actions: 'refactor'
+ */
+ extern const char* Refactor;
+
+ /**
+ * Base kind for refactoring extraction actions: 'refactor.extract'
+ *
+ * Example extract actions:
+ *
+ * - Extract method - Extract function - Extract variable - Extract interface
+ * from class - ...
+ */
+ extern const char* RefactorExtract;
+
+ /**
+ * Base kind for refactoring inline actions: 'refactor.inline'
+ *
+ * Example inline actions:
+ *
+ * - Inline function - Inline variable - Inline constant - ...
+ */
+ extern const char* RefactorInline;
+
+ /**
+ * Base kind for refactoring rewrite actions: 'refactor.rewrite'
+ *
+ * Example rewrite actions:
+ *
+ * - Convert JavaScript function to class - Add or remove parameter -
+ * Encapsulate field - Make method static - Move method to base class - ...
+ */
+ extern const char* RefactorRewrite;
+
+ /**
+ * Base kind for source actions: `source`
+ *
+ * Source code actions apply to the entire file.
+ */
+ extern const char* Source ;
+
+ /**
+ * Base kind for an organize imports source action: `source.organizeImports`
+ */
+ extern const char* SourceOrganizeImports;
+
+ extern const char* COMMAND_ID_APPLY_EDIT;
+ };
}
struct lsCodeActionContext {
- // An array of diagnostics.
- std::vector<lsDiagnostic> diagnostics;
- /**
- * Requested kind of actions to return.
- *
- * Actions not of this kind are filtered out by the client before being shown. So servers
- * can omit computing them.
- *
- * See {@link CodeActionKind} for allowed values.
- */
- boost::optional<std::vector<std::string>> only;
-
- MAKE_SWAP_METHOD(lsCodeActionContext,
- diagnostics, only);
+ // An array of diagnostics.
+ std::vector<lsDiagnostic> diagnostics;
+ /**
+ * Requested kind of actions to return.
+ *
+ * Actions not of this kind are filtered out by the client before being shown. So servers
+ * can omit computing them.
+ *
+ * See {@link CodeActionKind} for allowed values.
+ */
+ boost::optional<std::vector<std::string>> only;
+
+ MAKE_SWAP_METHOD(lsCodeActionContext,
+ diagnostics, only);
};
MAKE_REFLECT_STRUCT(lsCodeActionContext,
- diagnostics, only);
+ diagnostics, only);
// Params for the CodeActionRequest
struct lsCodeActionParams {
- // The document in which the command was invoked.
- lsTextDocumentIdentifier textDocument;
- // The range for which the command was invoked.
- lsRange range;
- // Context carrying additional information.
- lsCodeActionContext context;
-
- MAKE_SWAP_METHOD(lsCodeActionParams,
- textDocument,
- range,
- context);
+ // The document in which the command was invoked.
+ lsTextDocumentIdentifier textDocument;
+ // The range for which the command was invoked.
+ lsRange range;
+ // Context carrying additional information.
+ lsCodeActionContext context;
+
+ MAKE_SWAP_METHOD(lsCodeActionParams,
+ textDocument,
+ range,
+ context);
};
MAKE_REFLECT_STRUCT(lsCodeActionParams,
textDocument,
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
index 93f2c0807d..77b6cbb3e7 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/Directory.h
@@ -4,10 +4,10 @@
struct AbsolutePath;
struct Directory {
- explicit Directory(const AbsolutePath& path);
+ explicit Directory(const AbsolutePath& path);
- bool operator==(const Directory& rhs) const;
- bool operator!=(const Directory& rhs) const;
+ bool operator==(const Directory& rhs) const;
+ bool operator!=(const Directory& rhs) const;
- std::string path;
+ std::string path;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
index c06eed4b1c..5ad4e07d8d 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ExecuteCommandParams.h
@@ -2,19 +2,19 @@
#include "lsAny.h"
struct ExecuteCommandParams {
- /**
- * The identifier of the actual command handler.
- */
+ /**
+ * The identifier of the actual command handler.
+ */
- std::string command;
+ std::string command;
- /**
- * Arguments that the command should be invoked with.
- * The arguments are typically specified when a command is returned from the server to the client.
- * Example requests that return a command are textDocument/codeAction or textDocument/codeLens.
- */
- boost::optional<std::vector<lsp::Any>> arguments;
-
- MAKE_SWAP_METHOD(ExecuteCommandParams, command, arguments);
+ /**
+ * Arguments that the command should be invoked with.
+ * The arguments are typically specified when a command is returned from the server to the client.
+ * Example requests that return a command are textDocument/codeAction or textDocument/codeLens.
+ */
+ boost::optional<std::vector<lsp::Any>> arguments;
+
+ MAKE_SWAP_METHOD(ExecuteCommandParams, command, arguments);
};
MAKE_REFLECT_STRUCT(ExecuteCommandParams,command,arguments)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
index bf1337e44f..369ebb2a6d 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/IProgressMonitor.h
@@ -2,7 +2,7 @@
#include <string>
-namespace lsp {
+namespace lsp {
/**
* The <code>IProgressMonitor</code> interface is implemented
* by objects that monitor the progress of an activity; the methods
@@ -36,110 +36,108 @@ namespace lsp {
* Clients may implement this interface.
* </p>
*/
- class IProgressMonitor {
- public:
- virtual ~IProgressMonitor()
- {
- }
-
- /** Constant indicating an unknown amount of work.
- */
-
- const static int UNKNOWN = -1;
-
- /**
- * Notifies that the main task is beginning. This must only be called once
- * on a given progress monitor instance.
- *
- * @param name the name (or description) of the main task
- * @param totalWork the total number of work units into which
- * the main task is been subdivided. If the value is <code>UNKNOWN</code>
- * the implemenation is free to indicate progress in a way which
- * doesn't require the total number of work units in advance.
- */
- virtual void beginTask(void* , int totalWork)
- {
-
- };
- /**
- * Notifies that the work is done; that is, either the main task is completed
- * or the user canceled it. This method may be called more than once
- * (implementations should be prepared to handle this case).
- */
-
- virtual void endTask(void*, int totalWork)
- {
-
- }
-
- virtual void done(void*) = 0;
-
- /**
- * Internal method to handle scaling correctly. This method
- * must not be called by a client. Clients should
- * always use the method </code>worked(int)</code>.
- */
- virtual void internalWorked(double work)
- {
-
- }
- /**
- * Returns whether cancelation of current operation has been requested.
- * Long-running operations should poll to see if cancelation
- * has been requested.
- *
- * @return <code>true</code> if cancellation has been requested,
- * and <code>false</code> otherwise
- * @see #setCanceled
- */
- virtual bool isCanceled() = 0;
- /**
- * Sets the cancel state to the given value.
- *
- * @param value <code>true</code> indicates that cancelation has
- * been requested (but not necessarily acknowledged);
- * <code>false</code> clears this flag
- *
- * @see #isCanceled
- */
- virtual void setCanceled(bool value) = 0;
- /**
- * Sets the task name to the given value. This method is used to
- * restore the task label after a nested operation was executed.
- * Normally there is no need for clients to call this method.
- *
- * @param name the name (or description) of the main task
- * @see #beginTask(java.lang.const wstring&, int)
- */
- virtual void setTaskName(void*)
- {
-
- };
- /**
- * Notifies that a subtask of the main task is beginning.
- * Subtasks are optional; the main task might not have subtasks.
- *
- * @param name the name (or description) of the subtask
- */
- virtual void subTask(void* )
- {
-
- }
- /**
- * Notifies that a given number of work unit of the main task
- * has been completed. Note that this amount represents an
- * installment, as opposed to a cumulative amount of work done
- * to date.
- *
- * @param work the number of work units just completed
- */
- virtual void worked(int work)
- {
-
- };
-
- virtual void catch_exception(void*) = 0;
- };
+ class IProgressMonitor {
+ public:
+ virtual ~IProgressMonitor()
+ {
+ }
+
+ /** Constant indicating an unknown amount of work.
+ */
+
+ const static int UNKNOWN = -1;
+
+ /**
+ * Notifies that the main task is beginning. This must only be called once
+ * on a given progress monitor instance.
+ *
+ * @param name the name (or description) of the main task
+ * @param totalWork the total number of work units into which
+ * the main task is been subdivided. If the value is <code>UNKNOWN</code>
+ * the implemenation is free to indicate progress in a way which
+ * doesn't require the total number of work units in advance.
+ */
+ virtual void beginTask(void* , int totalWork)
+ {
+
+ };
+ /**
+ * Notifies that the work is done; that is, either the main task is completed
+ * or the user canceled it. This method may be called more than once
+ * (implementations should be prepared to handle this case).
+ */
+
+ virtual void endTask(void*, int totalWork)
+ {
+
+ }
+
+ virtual void done(void*) = 0;
+
+ /**
+ * Internal method to handle scaling correctly. This method
+ * must not be called by a client. Clients should
+ * always use the method <code>worked(int)</code>.
+ */
+ virtual void internalWorked(double work)
+ {
+
+ }
+ /**
+ * Returns whether cancelation of current operation has been requested.
+ * Long-running operations should poll to see if cancelation
+ * has been requested.
+ *
+ * @return <code>true</code> if cancellation has been requested,
+ * and <code>false</code> otherwise
+ * @see #setCanceled
+ */
+ virtual bool isCanceled() = 0;
+ /**
+ * Sets the cancel state to the given value.
+ *
+ * @param value <code>true</code> indicates that cancelation has
+ * been requested (but not necessarily acknowledged);
+ * <code>false</code> clears this flag
+ *
+ * @see #isCanceled
+ */
+ virtual void setCanceled(bool value) = 0;
+ /**
+ * Sets the task name to the given value. This method is used to
+ * restore the task label after a nested operation was executed.
+ * Normally there is no need for clients to call this method.
+ *
+ * @param name the name (or description) of the main task
+ * @see #beginTask(java.lang.const wstring&, int)
+ */
+ virtual void setTaskName(void*)
+ {
+
+ };
+ /**
+ * Notifies that a subtask of the main task is beginning.
+ * Subtasks are optional; the main task might not have subtasks.
+ *
+ * @param name the name (or description) of the subtask
+ */
+ virtual void subTask(void* )
+ {
+
+ }
+ /**
+ * Notifies that a given number of work unit of the main task
+ * has been completed. Note that this amount represents an
+ * installment, as opposed to a cumulative amount of work done
+ * to date.
+ *
+ * @param work the number of work units just completed
+ */
+ virtual void worked(int work)
+ {
+
+ };
+
+ virtual void catch_exception(void*) = 0;
+ };
}
-
-
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
index 92d773db0c..1618939c69 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/Markup.h
@@ -1,5 +1,5 @@
#pragma once
-#include <cctype>
+#include <cctype>
#include <clocale>
#include <cstddef>
#include <memory>
@@ -11,7 +11,7 @@
namespace lsp
{
-
+
/// Holds text and knows how to lay it out. Multiple blocks can be grouped to
/// form a document. Blocks include their own trailing newlines, std::string_ref
/// should trim them if need be.
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
index 220817a1a2..bac8fbbaf5 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/Markup/string_ref.h
@@ -12,877 +12,877 @@
namespace std
{
- /**
- * An extension of STL's string providing additional functionality that is often availiable in
- * higher-level languages such as Python.
- */
- class string_ref : public string
- {
- public:
-
- //static unsigned GetAutoSenseRadix(string_ref& Str) {
- // if (Str.empty())
- // return 10;
-
- // if (Str.start_with("0x") || Str.start_with("0X")) {
- // Str = Str.substr(2);
- // return 16;
- // }
-
- // if (Str.start_with("0b") || Str.start_with("0B")) {
- // Str = Str.substr(2);
- // return 2;
- // }
-
- // if (Str.start_with("0o")) {
- // Str = Str.substr(2);
- // return 8;
- // }
-
- // if (Str[0] == '0' && Str.size() > 1 && std::isdigit(Str[1])) {
- // Str = Str.substr(1);
- // return 8;
- // }
-
- // return 10;
- //}
-
- //static bool consumeUnsignedInteger(string_ref& Str, unsigned Radix,
- // unsigned long long& Result) {
- // // Autosense radix if not specified.
- // if (Radix == 0)
- // Radix = GetAutoSenseRadix(Str);
-
- // // Empty strings (after the radix autosense) are invalid.
- // if (Str.empty()) return true;
-
- // // Parse all the bytes of the string given this radix. Watch for overflow.
- // string_ref Str2 = Str;
- // Result = 0;
- // while (!Str2.empty()) {
- // unsigned CharVal;
- // if (Str2[0] >= '0' && Str2[0] <= '9')
- // CharVal = Str2[0] - '0';
- // else if (Str2[0] >= 'a' && Str2[0] <= 'z')
- // CharVal = Str2[0] - 'a' + 10;
- // else if (Str2[0] >= 'A' && Str2[0] <= 'Z')
- // CharVal = Str2[0] - 'A' + 10;
- // else
- // break;
-
- // // If the parsed value is larger than the integer radix, we cannot
- // // consume any more characters.
- // if (CharVal >= Radix)
- // break;
-
- // // Add in this character.
- // unsigned long long PrevResult = Result;
- // Result = Result * Radix + CharVal;
-
- // // Check for overflow by shifting back and seeing if bits were lost.
- // if (Result / Radix < PrevResult)
- // return true;
-
- // Str2 = Str2.substr(1);
- // }
-
- // // We consider the operation a failure if no characters were consumed
- // // successfully.
- // if (Str.size() == Str2.size())
- // return true;
-
- // Str = Str2;
- // return false;
- //}
-
- //static bool consumeSignedInteger(string_ref& Str, unsigned Radix,
- // long long& Result) {
- // unsigned long long ULLVal;
-
- // // Handle positive strings first.
- // if (Str.empty() || Str.front() != '-') {
- // if (consumeUnsignedInteger(Str, Radix, ULLVal) ||
- // // Check for value so large it overflows a signed value.
- // (long long)ULLVal < 0)
- // return true;
- // Result = ULLVal;
- // return false;
- // }
-
- // // Get the positive part of the value.
- // string_ref Str2 = Str.drop_front(1);
- // if (consumeUnsignedInteger(Str2, Radix, ULLVal) ||
- // // Reject values so large they'd overflow as negative signed, but allow
- // // "-0". This negates the unsigned so that the negative isn't undefined
- // // on signed overflow.
- // (long long)-ULLVal > 0)
- // return true;
-
- // Str = Str2;
- // Result = -ULLVal;
- // return false;
- //}
-
- ///// GetAsUnsignedInteger - Workhorse method that converts a integer character
- ///// sequence of radix up to 36 to an unsigned long long value.
- //static bool getAsUnsignedInteger(string_ref Str, unsigned Radix,
- // unsigned long long& Result) {
- // if (consumeUnsignedInteger(Str, Radix, Result))
- // return true;
-
- // // For getAsUnsignedInteger, we require the whole string to be consumed or
- // // else we consider it a failure.
- // return !Str.empty();
- //}
-
- //static bool getAsSignedInteger(string_ref Str, unsigned Radix,
- // long long& Result) {
- // if (consumeSignedInteger(Str, Radix, Result))
- // return true;
-
- // // For getAsSignedInteger, we require the whole string to be consumed or else
- // // we consider it a failure.
- // return !Str.empty();
- //}
-
-
- ///// Parse the current string as an integer of the specified radix. If
- ///// \p Radix is specified as zero, this does radix autosensing using
- ///// extended C rules: 0 is octal, 0x is hex, 0b is binary.
- /////
- ///// If the string is invalid or if only a subset of the string is valid,
- ///// this returns true to signify the error. The string is considered
- ///// erroneous if empty or if it overflows T.
- //template <typename T>
- //std::enable_if_t<std::numeric_limits<T>::is_signed, bool>
- // getAsInteger(unsigned Radix, T& Result) const {
- // long long LLVal;
- // if (getAsSignedInteger(*this, Radix, LLVal) ||
- // static_cast<T>(LLVal) != LLVal)
- // return true;
- // Result = LLVal;
- // return false;
- //}
-
- //template <typename T>
- //std::enable_if_t<!std::numeric_limits<T>::is_signed, bool>
- // getAsInteger(unsigned Radix, T& Result) const {
- // unsigned long long ULLVal;
- // // The additional cast to unsigned long long is required to avoid the
- // // Visual C++ warning C4805: '!=' : unsafe mix of type 'bool' and type
- // // 'unsigned __int64' when instantiating getAsInteger with T = bool.
- // if (getAsUnsignedInteger(*this, Radix, ULLVal) ||
- // static_cast<unsigned long long>(static_cast<T>(ULLVal)) != ULLVal)
- // return true;
- // Result = ULLVal;
- // return false;
- //}
-
-
-
- /**`
- * Default constructor
- *
- * Constructs an empty string_ref ("")
- */
- string_ref() : string() { }
-
- /**
- * Duplicate the STL string copy constructor
- *
- * @param[in] s The string to copy
- * @param[in] pos The starting position in the string to copy from
- * @param[in] n The number of characters to copy
- */
- string_ref(const string &s, size_type pos = 0, size_type n = npos) : string(s, pos, npos) { }
-
- /**
- * Construct an string_ref from a null-terminated character array
- *
- * @param[in] s The character array to copy into the new string
- */
- string_ref(const value_type *s) : string(s) { }
-
- /**
- * Construct an string_ref from a character array and a length
- *
- * @param[in] s The character array to copy into the new string
- * @param[in] n The number of characters to copy
- */
- string_ref(const value_type *s, size_type n) : string(s, n) { }
-
- /**
- * Create an string_ref with @p n copies of @p c
- *
- * @param[in] n The number of copies
- * @param[in] c The character to copy @p n times
- */
- string_ref(size_type n, value_type c) : string(n, c) { }
-
- /**
- * Create a string from a range
- *
- * @param[in] first The first element to copy in
- * @param[in] last The last element to copy in
- */
- template <class InputIterator>
- string_ref(InputIterator first, InputIterator last) : string(first, last) { }
-
- /**
- * The destructor
- */
- ~string_ref() { }
-
- /**
- * Split a string by whitespace
- *
- * @return A vector of strings, each of which is a substring of the string
- */
- vector<string_ref> split(size_type limit = npos) const
- {
- vector<string_ref> v;
-
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++)
- {
- if (*i == ' ' || *i == '\n' || *i == '\t' || *i == '\r')
- {
- if (i + 1 != end() && (i[1] == ' ' || i[1] == '\n' || i[1] == '\t' || i[1] == '\r'))
- continue;
- v.push_back(string_ref(last, i));
- last = i + 1;
- if (v.size() >= limit - 1)
- {
- v.push_back(string_ref(last, end()));
- return v;
- }
- }
- }
-
- if (last != i)
- v.push_back(string_ref(last, i));
-
- return v;
- }
-
- /**
- * Split a string by a character
- *
- * Returns a vector of ext_strings, each of which is a substring of the string formed by splitting
- * it on boundaries formed by the character @p separator. If @p limit is set, the returned vector
- * will contain a maximum of @p limit elements with the last element containing the rest of
- * the string.
- *
- * If @p separator is not found in the string, a single element will be returned in the vector
- * containing the entire string.
- *
- * The separators are removed from the output
- *
- * @param[in] separator The character separator to split the string on
- * @param[in] limit The maximum number of output elements
- * @return A vector of strings, each of which is a substring of the string
- *
- * @section split_ex Example
- * @code
- * std::string_ref s("This|is|a|test.");
- * std::vector<std::string_ref> v = s.split('|');
- * std::copy(v.begin(), v.end(), std::ostream_iterator<std::string_ref>(std::cout, "\n"));
- *
- * This
- * is
- * a
- * test.
- * @endcode
- */
- vector<string_ref> split(value_type separator, size_type limit = npos) const
- {
- vector<string_ref> v;
-
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++)
- {
- if (*i == separator)
- {
- v.push_back(string_ref(last, i));
- last = i + 1;
- if (v.size() >= limit - 1)
- {
- v.push_back(string_ref(last, end()));
- return v;
- }
- }
- }
-
- if (last != i)
- v.push_back(string_ref(last, i));
-
- return v;
- }
-
- /**
- * Split a string by another string
- *
- * Returns a vector of ext_strings, each of which is a substring of the string formed by
- * splitting it on boundaries formed by the string @p separator. If @p limit is set, the
- * returned vector will contain a maximum of @p limit elements with the last element
- * containing the rest of the string.
- *
- * If @p separator is not found in the string, a single element will be returned in the
- * vector containing the entire string.
- *
- * The separators are removed from the output
- *
- * @param[in] separator The string separator to split the string on
- * @param[in] limit The maximum number of output elements
- * @return A vector of strings, each of which is a substring of the string
- *
- * @ref split_ex
- */
- vector<string_ref> split(const string &separator, size_type limit = npos) const
- {
- vector<string_ref> v;
-
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++)
- {
- if (string(i, i + separator.length()) == separator)
- {
- v.push_back(string_ref(last, i));
- last = i + separator.length();
-
- if (v.size() >= limit - 1)
- {
- v.push_back(string_ref(last, end()));
- return v;
- }
- }
- }
-
- if (last != i)
- v.push_back(string_ref(last, i));
-
- return v;
- }
-
- /**
- * Convert a string into an integer
- *
- * Convert the initial portion of a string into a signed integer. Once a non-numeric
- * character is reached, the remainder of @p string is ignored and the integer that was
- * read returned.
- *
- * @param s The string to convert
- * @return The integer converted from @p string
- */
- static long int integer(const string &s)
- {
- long int retval = 0;
- bool neg = false;
-
- for (const_iterator i = s.begin(); i != s.end(); i++)
- {
- if (i == s.begin())
- {
- if (*i == '-')
- {
- neg = true;
- continue;
- }
- else if (*i == '+')
- continue;
- }
- if (*i >= '0' && *i <= '9')
- {
- retval *= 10;
- retval += *i - '0';
- }
- else
- break;
- }
-
- if (neg)
- retval *= -1;
-
- return retval;
- }
-
- /**
- * Convert the string to an integer
- *
- * Convert the initial portion of the string into a signed integer. Once a non-numeric
- * character is reached, the remainder of the string is ignored and the integer that had
- * been read thus far is returned.
- *
- * @return The integer converted from the string
- */
- long int integer() const
- {
- return integer(*this);
- }
-
- /**
- * Split a string into chunks of size @p chunklen. Returns a vector of strings.
- *
- * Splits a string into chunks of the given size. The final chunk may not fill its
- * entire allocated number of characters.
- *
- * @param[in] chunklen The number of characters per chunk
- * @return A vector of strings, each of length <= chunklen
- *
- * @section chunk_split-ex Example
- * @code
- * std::string_ref s("abcdefghijk");
- * std::vector<std::string_ref> v = s.chunk_split(3);
- * std::copy(v.begin(), v.end(), ostream_iterator<std::string_ref>(cout, " "));
- *
- * abc def ghi jk
- * @endcode
- */
- vector<string_ref> chunk_split(size_type chunklen) const
- {
- vector<string_ref> retval;
- retval.reserve(size() / chunklen + 1);
-
- size_type count = 0;
- const_iterator
- i = begin(),
- last = i;
- for (; i != end(); i++, count++)
- {
- if (count == chunklen)
- {
- count = 0;
- retval.push_back(string_ref(last, i));
- last = i;
- }
- }
-
- if (last != i)
- retval.push_back(string_ref(last, i));
-
- return retval;
- }
-
- /**
- * Join a sequence of strings by some glue to create a new string
- *
- * Glue is not added to the end of the string.
- *
- * @pre [first, last) is a valid range
- * @pre InputIterator is a model of STL's Input Iterator
- * @pre InputIterator must point to a string type (std::string, std::string_ref, char *)
- *
- * @param[in] glue The glue to join strings with
- * @param[in] first The beginning of the range to join
- * @param[in] last The end of the range to join
- * @return A string constructed of each element of the range connected together with @p glue
- *
- * @section join_ex Example
- * @code
- * std::vector<std::string_ref> v;
- * v.push_back("This");
- * v.push_back("is");
- * v.push_back("a");
- * v.push_back("test.");
- * std::cout << std::string_ref::join("|", v.begin(), v.end()) << std::endl;
- *
- * This|is|a|test.
- * @endcode
- */
- template <class InputIterator>
- static string_ref join(const string &glue, InputIterator first, InputIterator last)
- {
- string_ref retval;
-
- for (; first != last; ++first)
- {
- retval.append(*first);
- retval.append(glue);
- }
- retval.erase(retval.length() - glue.length());
-
- return retval;
- }
-
- /**
- * Join a sequence of strings by some glue to create a new string
- *
- * @copydoc join
- * @ref join_ex
- */
- template <class InputIterator>
- static string_ref join(value_type glue, InputIterator first, InputIterator last)
- {
- string_ref retval;
-
- for (; first != last; ++first)
- {
- retval.append(*first);
- retval.append(1, glue);
- }
- retval.erase(retval.length() - 1);
-
- return retval;
- }
-
- /**
- * Search for any instances of @p needle and replace them with @p s
- *
- * @param[in] needle The string to replace
- * @param[in] s The replacement string
- * @return *this
- * @post All instances of @p needle in the string are replaced with @p s
- *
- * @section replace-ex Example
- * @code
- * std::string_ref s("This is a test.");
- * s.replace("is", "ere");
- * std::cout << s << std::endl;
- *
- * There ere a test.
- * @endcode
- */
- string_ref &replace(const string &needle, const string &s)
- {
- size_type
- lastpos = 0,
- thispos;
-
- while ((thispos = find(needle, lastpos)) != npos)
- {
- string::replace(thispos, needle.length(), s);
- lastpos = thispos + 1;
- }
- return *this;
- }
- string_ref &replace_first(const string &needle, const string &s)
- {
- size_type
- lastpos = 0,
- thispos;
-
- if ((thispos = find(needle, lastpos)) != npos)
- {
- string::replace(thispos, needle.length(), s);
- lastpos = thispos + 1;
- }
- return *this;
- }
- /**
- * Search of any instances of @p needle and replace them with @p c
- *
- * @param[in] needle The character to replace
- * @param[in] c The replacement character
- * @return *this
- * @post All instances of @p needle in the string are replaced with @p c
- *
- * @ref replace-ex
- */
- string_ref &replace(value_type needle, value_type c)
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i == needle)
- *i = c;
-
- return *this;
- }
-
- /**
- * Repeat a string @p n times
- *
- * @param[in] n The number of times to repeat the string
- * @return string_ref containing @p n copies of the string
- *
- * @section repeat-ex Example
- * @code
- * std::string_ref s("123");
- * s = s * 3;
- * std::cout << s << std::endl;
- *
- * 123123123
- * @endcode
- */
- string_ref operator*(size_type n)
- {
- string_ref retval;
- for (size_type i = 0; i < n; i++)
- retval.append(*this);
-
- return retval;
- }
-
- /**
- * Convert the string to lowercase
- *
- * @return *this
- * @post The string is converted to lowercase
- */
- string_ref &tolower()
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i >= 'A' && *i <= 'Z')
- *i = (*i) + ('a' - 'A');
- return *this;
- }
-
- /**
- * Convert the string to uppercase
- *
- * @return *this
- * @post The string is converted to uppercase
- */
- string_ref &toupper()
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i >= 'a' && *i <= 'z')
- *i = (*i) - ('a' - 'A');
- return *this;
- }
-
- /**
- * Count the occurances of @p str in the string.
- *
- * @return The count of substrings @p str in the string
- */
- size_type count(const string &str) const
- {
- size_type
- count = 0,
- last = 0,
- cur = 0;
-
- while ((cur = find(str, last + 1)) != npos)
- {
- count++;
- last = cur;
- }
-
- return count;
- }
-
- /**
- * Determine if the string is alphanumeric
- *
- * @return true if the string contains only characters between a-z, A-Z and 0-9 and
- * contains at least one character, else false
- */
- bool is_alnum() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- {
- if (*i < 'A' || *i > 'Z')
- if (*i < '0' || *i > '9')
- if (*i < 'a' || *i > 'z')
- return false;
- }
-
- return true;
- }
-
- /**
- * Determine if the string is alphabetic only
- *
- * @return true of the string contains only characters between a-z and A-Z and contains at
- * least one character, else false
- */
- bool is_alpha() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < 'A' || (*i > 'Z' && (*i < 'a' || *i > 'z')))
- return false;
-
- return true;
- }
-
- /**
- * Determine if the string is numeric only
- *
- * @return true if the string contains only characters between 0-9 and contains at least
- * one character, else false
- */
- bool is_numeric() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < '0' || *i > '9')
- return false;
-
- return true;
- }
-
- /**
- * Determine if a string is all lower case
- *
- * @return true if there is at least one character, and all characters are lowercase
- * letters, else false
- */
- bool is_lower() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < 'a' || *i < 'z')
- return false;
-
- return true;
- }
-
- /**
- * Determine if a string is all upper case
- *
- * @return true if there is at least one character, and all characters are uppercase
- * letters, else false
- */
- bool is_upper() const
- {
- if (length() == 0)
- return false;
-
- for (const_iterator i = begin(); i != end(); i++)
- if (*i < 'A' || *i > 'Z')
- return false;
-
- return true;
- }
-
- /**
- * Swap the case of a string
- *
- * @post Converts all uppercase to lowercase, and all lowercase to uppercase in the string
- * @return *this
- */
- string_ref &swapcase()
- {
- for (iterator i = begin(); i != end(); i++)
- if (*i >= 'A' && *i <= 'Z')
- *i += ('a' - 'A');
- else if (*i >= 'a' && *i <= 'z')
- *i -= ('a' - 'A');
-
- return *this;
- }
-
- /*******************************************************************************
- Function: std::string_ref::start_with
- Access: public
- Qualifier: const
- Parameter: const string & str
- Returns: bool
-
- Purpose: is the string start with str
- *******************************************************************************/
- bool start_with(const string& str) const
- {
- return ( this->find(str) == 0 );
- }
-
- /// Return a string_ref equal to 'this' but with only the last \p N
- /// elements remaining. If \p N is greater than the length of the
- /// string, the entire string is returned.
-
- string_ref take_back(size_t N = 1) const {
- if (N >= size())
- return *this;
- return drop_front(size() - N);
- }
- /// Return a string_ref equal to 'this' but with the first \p N elements
- /// dropped.
-
- string_ref drop_front(size_t N = 1) const {
- //assert(size() >= N && "Dropping more elements than exist");
- return substr(N);
- }
-
-
-
- /// Return a string_ref equal to 'this' but with the last \p N elements
- /// dropped.
-
- string_ref drop_back(size_t N = 1) const {
-
- return substr(0, size() - N);
- }
-
- /// Return a string_ref equal to 'this', but with all characters satisfying
- /// the given predicate dropped from the beginning of the string.
-
- string_ref drop_while(std::function<bool(char)> F) const {
- return substr(std::find_if_not(begin(),end(),F)-begin());
- }
-
- /// Return a string_ref equal to 'this', but with all characters not
- /// satisfying the given predicate dropped from the beginning of the string.
-
- string_ref drop_until(std::function<bool(char)> F) const {
- return substr(std::find_if(begin(), end(), F) - begin());
- }
-
- /// Returns true if this string_ref has the given prefix and removes that
- /// prefix.
- bool consume_front(string_ref Prefix) {
- if (!start_with(Prefix))
- return false;
-
- *this = drop_front(Prefix.size());
- return true;
- }
-
- /// Returns true if this string_ref has the given suffix and removes that
- /// suffix.
- bool consume_back(string_ref Suffix) {
- if (!end_with(Suffix))
- return false;
-
- *this = drop_back(Suffix.size());
- return true;
- }
-
- /*******************************************************************************
- Function: std::string_ref::end_with
- Access: public
- Qualifier: const
- Parameter: const string & str
- Returns: bool
-
- Purpose: is the string end with str
- *******************************************************************************/
- bool end_with(const string& str) const
- {
- if (str.length() > this->length())
- {
- return false;
- }
- size_type off = this->length() - str.length();
- return ( find(str, off) == off);
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::format
- Access: public
- Qualifier:
- Parameter: const char * format_string
- Parameter: ...
- Returns: string_ref&
-
- Purpose: format the string
- *******************************************************************************/
- string_ref& format(const char* format_string, ...)
- {
+ /**
+ * An extension of STL's string providing additional functionality that is often availiable in
+ * higher-level languages such as Python.
+ */
+ class string_ref : public string
+ {
+ public:
+
+ //static unsigned GetAutoSenseRadix(string_ref& Str) {
+ // if (Str.empty())
+ // return 10;
+
+ // if (Str.start_with("0x") || Str.start_with("0X")) {
+ // Str = Str.substr(2);
+ // return 16;
+ // }
+
+ // if (Str.start_with("0b") || Str.start_with("0B")) {
+ // Str = Str.substr(2);
+ // return 2;
+ // }
+
+ // if (Str.start_with("0o")) {
+ // Str = Str.substr(2);
+ // return 8;
+ // }
+
+ // if (Str[0] == '0' && Str.size() > 1 && std::isdigit(Str[1])) {
+ // Str = Str.substr(1);
+ // return 8;
+ // }
+
+ // return 10;
+ //}
+
+ //static bool consumeUnsignedInteger(string_ref& Str, unsigned Radix,
+ // unsigned long long& Result) {
+ // // Autosense radix if not specified.
+ // if (Radix == 0)
+ // Radix = GetAutoSenseRadix(Str);
+
+ // // Empty strings (after the radix autosense) are invalid.
+ // if (Str.empty()) return true;
+
+ // // Parse all the bytes of the string given this radix. Watch for overflow.
+ // string_ref Str2 = Str;
+ // Result = 0;
+ // while (!Str2.empty()) {
+ // unsigned CharVal;
+ // if (Str2[0] >= '0' && Str2[0] <= '9')
+ // CharVal = Str2[0] - '0';
+ // else if (Str2[0] >= 'a' && Str2[0] <= 'z')
+ // CharVal = Str2[0] - 'a' + 10;
+ // else if (Str2[0] >= 'A' && Str2[0] <= 'Z')
+ // CharVal = Str2[0] - 'A' + 10;
+ // else
+ // break;
+
+ // // If the parsed value is larger than the integer radix, we cannot
+ // // consume any more characters.
+ // if (CharVal >= Radix)
+ // break;
+
+ // // Add in this character.
+ // unsigned long long PrevResult = Result;
+ // Result = Result * Radix + CharVal;
+
+ // // Check for overflow by shifting back and seeing if bits were lost.
+ // if (Result / Radix < PrevResult)
+ // return true;
+
+ // Str2 = Str2.substr(1);
+ // }
+
+ // // We consider the operation a failure if no characters were consumed
+ // // successfully.
+ // if (Str.size() == Str2.size())
+ // return true;
+
+ // Str = Str2;
+ // return false;
+ //}
+
+ //static bool consumeSignedInteger(string_ref& Str, unsigned Radix,
+ // long long& Result) {
+ // unsigned long long ULLVal;
+
+ // // Handle positive strings first.
+ // if (Str.empty() || Str.front() != '-') {
+ // if (consumeUnsignedInteger(Str, Radix, ULLVal) ||
+ // // Check for value so large it overflows a signed value.
+ // (long long)ULLVal < 0)
+ // return true;
+ // Result = ULLVal;
+ // return false;
+ // }
+
+ // // Get the positive part of the value.
+ // string_ref Str2 = Str.drop_front(1);
+ // if (consumeUnsignedInteger(Str2, Radix, ULLVal) ||
+ // // Reject values so large they'd overflow as negative signed, but allow
+ // // "-0". This negates the unsigned so that the negative isn't undefined
+ // // on signed overflow.
+ // (long long)-ULLVal > 0)
+ // return true;
+
+ // Str = Str2;
+ // Result = -ULLVal;
+ // return false;
+ //}
+
+ ///// GetAsUnsignedInteger - Workhorse method that converts a integer character
+ ///// sequence of radix up to 36 to an unsigned long long value.
+ //static bool getAsUnsignedInteger(string_ref Str, unsigned Radix,
+ // unsigned long long& Result) {
+ // if (consumeUnsignedInteger(Str, Radix, Result))
+ // return true;
+
+ // // For getAsUnsignedInteger, we require the whole string to be consumed or
+ // // else we consider it a failure.
+ // return !Str.empty();
+ //}
+
+ //static bool getAsSignedInteger(string_ref Str, unsigned Radix,
+ // long long& Result) {
+ // if (consumeSignedInteger(Str, Radix, Result))
+ // return true;
+
+ // // For getAsSignedInteger, we require the whole string to be consumed or else
+ // // we consider it a failure.
+ // return !Str.empty();
+ //}
+
+
+ ///// Parse the current string as an integer of the specified radix. If
+ ///// \p Radix is specified as zero, this does radix autosensing using
+ ///// extended C rules: 0 is octal, 0x is hex, 0b is binary.
+ /////
+ ///// If the string is invalid or if only a subset of the string is valid,
+ ///// this returns true to signify the error. The string is considered
+ ///// erroneous if empty or if it overflows T.
+ //template <typename T>
+ //std::enable_if_t<std::numeric_limits<T>::is_signed, bool>
+ // getAsInteger(unsigned Radix, T& Result) const {
+ // long long LLVal;
+ // if (getAsSignedInteger(*this, Radix, LLVal) ||
+ // static_cast<T>(LLVal) != LLVal)
+ // return true;
+ // Result = LLVal;
+ // return false;
+ //}
+
+ //template <typename T>
+ //std::enable_if_t<!std::numeric_limits<T>::is_signed, bool>
+ // getAsInteger(unsigned Radix, T& Result) const {
+ // unsigned long long ULLVal;
+ // // The additional cast to unsigned long long is required to avoid the
+ // // Visual C++ warning C4805: '!=' : unsafe mix of type 'bool' and type
+ // // 'unsigned __int64' when instantiating getAsInteger with T = bool.
+ // if (getAsUnsignedInteger(*this, Radix, ULLVal) ||
+ // static_cast<unsigned long long>(static_cast<T>(ULLVal)) != ULLVal)
+ // return true;
+ // Result = ULLVal;
+ // return false;
+ //}
+
+
+
+ /**`
+ * Default constructor
+ *
+ * Constructs an empty string_ref ("")
+ */
+ string_ref() : string() { }
+
+ /**
+ * Duplicate the STL string copy constructor
+ *
+ * @param[in] s The string to copy
+ * @param[in] pos The starting position in the string to copy from
+ * @param[in] n The number of characters to copy
+ */
+ string_ref(const string &s, size_type pos = 0, size_type n = npos) : string(s, pos, npos) { }
+
+ /**
+ * Construct an string_ref from a null-terminated character array
+ *
+ * @param[in] s The character array to copy into the new string
+ */
+ string_ref(const value_type *s) : string(s) { }
+
+ /**
+ * Construct an string_ref from a character array and a length
+ *
+ * @param[in] s The character array to copy into the new string
+ * @param[in] n The number of characters to copy
+ */
+ string_ref(const value_type *s, size_type n) : string(s, n) { }
+
+ /**
+ * Create an string_ref with @p n copies of @p c
+ *
+ * @param[in] n The number of copies
+ * @param[in] c The character to copy @p n times
+ */
+ string_ref(size_type n, value_type c) : string(n, c) { }
+
+ /**
+ * Create a string from a range
+ *
+ * @param[in] first The first element to copy in
+ * @param[in] last The last element to copy in
+ */
+ template <class InputIterator>
+ string_ref(InputIterator first, InputIterator last) : string(first, last) { }
+
+ /**
+ * The destructor
+ */
+ ~string_ref() { }
+
+ /**
+ * Split a string by whitespace
+ *
+ * @return A vector of strings, each of which is a substring of the string
+ */
+ vector<string_ref> split(size_type limit = npos) const
+ {
+ vector<string_ref> v;
+
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++)
+ {
+ if (*i == ' ' || *i == '\n' || *i == '\t' || *i == '\r')
+ {
+ if (i + 1 != end() && (i[1] == ' ' || i[1] == '\n' || i[1] == '\t' || i[1] == '\r'))
+ continue;
+ v.push_back(string_ref(last, i));
+ last = i + 1;
+ if (v.size() >= limit - 1)
+ {
+ v.push_back(string_ref(last, end()));
+ return v;
+ }
+ }
+ }
+
+ if (last != i)
+ v.push_back(string_ref(last, i));
+
+ return v;
+ }
+
+ /**
+ * Split a string by a character
+ *
+ * Returns a vector of ext_strings, each of which is a substring of the string formed by splitting
+ * it on boundaries formed by the character @p separator. If @p limit is set, the returned vector
+ * will contain a maximum of @p limit elements with the last element containing the rest of
+ * the string.
+ *
+ * If @p separator is not found in the string, a single element will be returned in the vector
+ * containing the entire string.
+ *
+ * The separators are removed from the output
+ *
+ * @param[in] separator The character separator to split the string on
+ * @param[in] limit The maximum number of output elements
+ * @return A vector of strings, each of which is a substring of the string
+ *
+ * @section split_ex Example
+ * @code
+ * std::string_ref s("This|is|a|test.");
+ * std::vector<std::string_ref> v = s.split('|');
+ * std::copy(v.begin(), v.end(), std::ostream_iterator<std::string_ref>(std::cout, "\n"));
+ *
+ * This
+ * is
+ * a
+ * test.
+ * @endcode
+ */
+ vector<string_ref> split(value_type separator, size_type limit = npos) const
+ {
+ vector<string_ref> v;
+
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++)
+ {
+ if (*i == separator)
+ {
+ v.push_back(string_ref(last, i));
+ last = i + 1;
+ if (v.size() >= limit - 1)
+ {
+ v.push_back(string_ref(last, end()));
+ return v;
+ }
+ }
+ }
+
+ if (last != i)
+ v.push_back(string_ref(last, i));
+
+ return v;
+ }
+
+ /**
+ * Split a string by another string
+ *
+ * Returns a vector of ext_strings, each of which is a substring of the string formed by
+ * splitting it on boundaries formed by the string @p separator. If @p limit is set, the
+ * returned vector will contain a maximum of @p limit elements with the last element
+ * containing the rest of the string.
+ *
+ * If @p separator is not found in the string, a single element will be returned in the
+ * vector containing the entire string.
+ *
+ * The separators are removed from the output
+ *
+ * @param[in] separator The string separator to split the string on
+ * @param[in] limit The maximum number of output elements
+ * @return A vector of strings, each of which is a substring of the string
+ *
+ * @ref split_ex
+ */
+ vector<string_ref> split(const string &separator, size_type limit = npos) const
+ {
+ vector<string_ref> v;
+
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++)
+ {
+ if (string(i, i + separator.length()) == separator)
+ {
+ v.push_back(string_ref(last, i));
+ last = i + separator.length();
+
+ if (v.size() >= limit - 1)
+ {
+ v.push_back(string_ref(last, end()));
+ return v;
+ }
+ }
+ }
+
+ if (last != i)
+ v.push_back(string_ref(last, i));
+
+ return v;
+ }
+
+ /**
+ * Convert a string into an integer
+ *
+ * Convert the initial portion of a string into a signed integer. Once a non-numeric
+ * character is reached, the remainder of @p string is ignored and the integer that was
+ * read returned.
+ *
+ * @param s The string to convert
+ * @return The integer converted from @p string
+ */
+ static long int integer(const string &s)
+ {
+ long int retval = 0;
+ bool neg = false;
+
+ for (const_iterator i = s.begin(); i != s.end(); i++)
+ {
+ if (i == s.begin())
+ {
+ if (*i == '-')
+ {
+ neg = true;
+ continue;
+ }
+ else if (*i == '+')
+ continue;
+ }
+ if (*i >= '0' && *i <= '9')
+ {
+ retval *= 10;
+ retval += *i - '0';
+ }
+ else
+ break;
+ }
+
+ if (neg)
+ retval *= -1;
+
+ return retval;
+ }
+
+ /**
+ * Convert the string to an integer
+ *
+ * Convert the initial portion of the string into a signed integer. Once a non-numeric
+ * character is reached, the remainder of the string is ignored and the integer that had
+ * been read thus far is returned.
+ *
+ * @return The integer converted from the string
+ */
+ long int integer() const
+ {
+ return integer(*this);
+ }
+
+ /**
+ * Split a string into chunks of size @p chunklen. Returns a vector of strings.
+ *
+ * Splits a string into chunks of the given size. The final chunk may not fill its
+ * entire allocated number of characters.
+ *
+ * @param[in] chunklen The number of characters per chunk
+ * @return A vector of strings, each of length <= chunklen
+ *
+ * @section chunk_split-ex Example
+ * @code
+ * std::string_ref s("abcdefghijk");
+ * std::vector<std::string_ref> v = s.chunk_split(3);
+ * std::copy(v.begin(), v.end(), ostream_iterator<std::string_ref>(cout, " "));
+ *
+ * abc def ghi jk
+ * @endcode
+ */
+ vector<string_ref> chunk_split(size_type chunklen) const
+ {
+ vector<string_ref> retval;
+ retval.reserve(size() / chunklen + 1);
+
+ size_type count = 0;
+ const_iterator
+ i = begin(),
+ last = i;
+ for (; i != end(); i++, count++)
+ {
+ if (count == chunklen)
+ {
+ count = 0;
+ retval.push_back(string_ref(last, i));
+ last = i;
+ }
+ }
+
+ if (last != i)
+ retval.push_back(string_ref(last, i));
+
+ return retval;
+ }
+
+ /**
+ * Join a sequence of strings by some glue to create a new string
+ *
+ * Glue is not added to the end of the string.
+ *
+ * @pre [first, last) is a valid range
+ * @pre InputIterator is a model of STL's Input Iterator
+ * @pre InputIterator must point to a string type (std::string, std::string_ref, char *)
+ *
+ * @param[in] glue The glue to join strings with
+ * @param[in] first The beginning of the range to join
+ * @param[in] last The end of the range to join
+ * @return A string constructed of each element of the range connected together with @p glue
+ *
+ * @section join_ex Example
+ * @code
+ * std::vector<std::string_ref> v;
+ * v.push_back("This");
+ * v.push_back("is");
+ * v.push_back("a");
+ * v.push_back("test.");
+ * std::cout << std::string_ref::join("|", v.begin(), v.end()) << std::endl;
+ *
+ * This|is|a|test.
+ * @endcode
+ */
+ template <class InputIterator>
+ static string_ref join(const string &glue, InputIterator first, InputIterator last)
+ {
+ string_ref retval;
+
+ for (; first != last; ++first)
+ {
+ retval.append(*first);
+ retval.append(glue);
+ }
+ retval.erase(retval.length() - glue.length());
+
+ return retval;
+ }
+
+ /**
+ * Join a sequence of strings by some glue to create a new string
+ *
+ * @copydoc join
+ * @ref join_ex
+ */
+ template <class InputIterator>
+ static string_ref join(value_type glue, InputIterator first, InputIterator last)
+ {
+ string_ref retval;
+
+ for (; first != last; ++first)
+ {
+ retval.append(*first);
+ retval.append(1, glue);
+ }
+ retval.erase(retval.length() - 1);
+
+ return retval;
+ }
+
+ /**
+ * Search for any instances of @p needle and replace them with @p s
+ *
+ * @param[in] needle The string to replace
+ * @param[in] s The replacement string
+ * @return *this
+ * @post All instances of @p needle in the string are replaced with @p s
+ *
+ * @section replace-ex Example
+ * @code
+ * std::string_ref s("This is a test.");
+ * s.replace("is", "ere");
+ * std::cout << s << std::endl;
+ *
+ * There ere a test.
+ * @endcode
+ */
+ string_ref &replace(const string &needle, const string &s)
+ {
+ size_type
+ lastpos = 0,
+ thispos;
+
+ while ((thispos = find(needle, lastpos)) != npos)
+ {
+ string::replace(thispos, needle.length(), s);
+ lastpos = thispos + 1;
+ }
+ return *this;
+ }
+ string_ref &replace_first(const string &needle, const string &s)
+ {
+ size_type
+ lastpos = 0,
+ thispos;
+
+ if ((thispos = find(needle, lastpos)) != npos)
+ {
+ string::replace(thispos, needle.length(), s);
+ lastpos = thispos + 1;
+ }
+ return *this;
+ }
+ /**
+ * Search of any instances of @p needle and replace them with @p c
+ *
+ * @param[in] needle The character to replace
+ * @param[in] c The replacement character
+ * @return *this
+ * @post All instances of @p needle in the string are replaced with @p c
+ *
+ * @ref replace-ex
+ */
+ string_ref &replace(value_type needle, value_type c)
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i == needle)
+ *i = c;
+
+ return *this;
+ }
+
+ /**
+ * Repeat a string @p n times
+ *
+ * @param[in] n The number of times to repeat the string
+ * @return string_ref containing @p n copies of the string
+ *
+ * @section repeat-ex Example
+ * @code
+ * std::string_ref s("123");
+ * s = s * 3;
+ * std::cout << s << std::endl;
+ *
+ * 123123123
+ * @endcode
+ */
+ string_ref operator*(size_type n)
+ {
+ string_ref retval;
+ for (size_type i = 0; i < n; i++)
+ retval.append(*this);
+
+ return retval;
+ }
+
+ /**
+ * Convert the string to lowercase
+ *
+ * @return *this
+ * @post The string is converted to lowercase
+ */
+ string_ref &tolower()
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i >= 'A' && *i <= 'Z')
+ *i = (*i) + ('a' - 'A');
+ return *this;
+ }
+
+ /**
+ * Convert the string to uppercase
+ *
+ * @return *this
+ * @post The string is converted to uppercase
+ */
+ string_ref &toupper()
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i >= 'a' && *i <= 'z')
+ *i = (*i) - ('a' - 'A');
+ return *this;
+ }
+
+ /**
+ * Count the occurances of @p str in the string.
+ *
+ * @return The count of substrings @p str in the string
+ */
+ size_type count(const string &str) const
+ {
+ size_type
+ count = 0,
+ last = 0,
+ cur = 0;
+
+ while ((cur = find(str, last + 1)) != npos)
+ {
+ count++;
+ last = cur;
+ }
+
+ return count;
+ }
+
+ /**
+ * Determine if the string is alphanumeric
+ *
+ * @return true if the string contains only characters between a-z, A-Z and 0-9 and
+ * contains at least one character, else false
+ */
+ bool is_alnum() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ {
+ if (*i < 'A' || *i > 'Z')
+ if (*i < '0' || *i > '9')
+ if (*i < 'a' || *i > 'z')
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Determine if the string is alphabetic only
+ *
+ * @return true of the string contains only characters between a-z and A-Z and contains at
+ * least one character, else false
+ */
+ bool is_alpha() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < 'A' || (*i > 'Z' && (*i < 'a' || *i > 'z')))
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Determine if the string is numeric only
+ *
+ * @return true if the string contains only characters between 0-9 and contains at least
+ * one character, else false
+ */
+ bool is_numeric() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < '0' || *i > '9')
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Determine if a string is all lower case
+ *
+ * @return true if there is at least one character, and all characters are lowercase
+ * letters, else false
+ */
+ bool is_lower() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < 'a' || *i < 'z')
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Determine if a string is all upper case
+ *
+ * @return true if there is at least one character, and all characters are uppercase
+ * letters, else false
+ */
+ bool is_upper() const
+ {
+ if (length() == 0)
+ return false;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ if (*i < 'A' || *i > 'Z')
+ return false;
+
+ return true;
+ }
+
+ /**
+ * Swap the case of a string
+ *
+ * @post Converts all uppercase to lowercase, and all lowercase to uppercase in the string
+ * @return *this
+ */
+ string_ref &swapcase()
+ {
+ for (iterator i = begin(); i != end(); i++)
+ if (*i >= 'A' && *i <= 'Z')
+ *i += ('a' - 'A');
+ else if (*i >= 'a' && *i <= 'z')
+ *i -= ('a' - 'A');
+
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: std::string_ref::start_with
+ Access: public
+ Qualifier: const
+ Parameter: const string & str
+ Returns: bool
+
+ Purpose: is the string start with str
+ *******************************************************************************/
+ bool start_with(const string& str) const
+ {
+ return ( this->find(str) == 0 );
+ }
+
+ /// Return a string_ref equal to 'this' but with only the last \p N
+ /// elements remaining. If \p N is greater than the length of the
+ /// string, the entire string is returned.
+
+ string_ref take_back(size_t N = 1) const {
+ if (N >= size())
+ return *this;
+ return drop_front(size() - N);
+ }
+ /// Return a string_ref equal to 'this' but with the first \p N elements
+ /// dropped.
+
+ string_ref drop_front(size_t N = 1) const {
+ //assert(size() >= N && "Dropping more elements than exist");
+ return substr(N);
+ }
+
+
+
+ /// Return a string_ref equal to 'this' but with the last \p N elements
+ /// dropped.
+
+ string_ref drop_back(size_t N = 1) const {
+
+ return substr(0, size() - N);
+ }
+
+ /// Return a string_ref equal to 'this', but with all characters satisfying
+ /// the given predicate dropped from the beginning of the string.
+
+ string_ref drop_while(std::function<bool(char)> F) const {
+ return substr(std::find_if_not(begin(),end(),F)-begin());
+ }
+
+ /// Return a string_ref equal to 'this', but with all characters not
+ /// satisfying the given predicate dropped from the beginning of the string.
+
+ string_ref drop_until(std::function<bool(char)> F) const {
+ return substr(std::find_if(begin(), end(), F) - begin());
+ }
+
+ /// Returns true if this string_ref has the given prefix and removes that
+ /// prefix.
+ bool consume_front(string_ref Prefix) {
+ if (!start_with(Prefix))
+ return false;
+
+ *this = drop_front(Prefix.size());
+ return true;
+ }
+
+ /// Returns true if this string_ref has the given suffix and removes that
+ /// suffix.
+ bool consume_back(string_ref Suffix) {
+ if (!end_with(Suffix))
+ return false;
+
+ *this = drop_back(Suffix.size());
+ return true;
+ }
+
+ /*******************************************************************************
+ Function: std::string_ref::end_with
+ Access: public
+ Qualifier: const
+ Parameter: const string & str
+ Returns: bool
+
+ Purpose: is the string end with str
+ *******************************************************************************/
+ bool end_with(const string& str) const
+ {
+ if (str.length() > this->length())
+ {
+ return false;
+ }
+ size_type off = this->length() - str.length();
+ return ( find(str, off) == off);
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::format
+ Access: public
+ Qualifier:
+ Parameter: const char * format_string
+ Parameter: ...
+ Returns: string_ref&
+
+ Purpose: format the string
+ *******************************************************************************/
+ string_ref& format(const char* format_string, ...)
+ {
if (format_string == 0)
{
return *this;
@@ -912,150 +912,150 @@ namespace std
#endif
va_end( argList );
return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::trim_left
- Access: public
- Qualifier:
- Parameter: value_type ch
- Returns: string_ref&
-
- Purpose: delete all char which is ch at the left of the string
- *******************************************************************************/
- string_ref& trim_left(value_type ch = ' ')
- {
- size_type off = this->find_first_not_of(ch);
- if (off != string::npos)
- {
- this->erase(0, off);
- }
- return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::trim_right
- Access: public
- Qualifier:
- Parameter: value_type ch
- Returns: string_ref&
-
- Purpose: delete all char which is ch at the right of the string
- *******************************************************************************/
- string_ref& trim_right(value_type ch = ' ')
- {
- size_type off = this->find_last_not_of(ch);
- if (off == string::npos)
- {
- off = 0;
- }
- else
- {
- off++;
- }
- this->erase(off, length() - off);
- return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::trim
- Access: public
- Qualifier:
- Parameter: value_type ch
- Returns: string_ref&
-
- Purpose: delete all char which is ch at the left and right of the string
- *******************************************************************************/
- string_ref& trim(value_type ch = ' ')
- {
- trim_left(ch);
- trim_right(ch);
- return *this;
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::float_num
- Access: public static
- Qualifier:
- Parameter: const string & str
- Returns: double
-
- Purpose: parse str to a float number
- *******************************************************************************/
- static double float_num(const string& str)
- {
- return atof(str.c_str());
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::float_num
- Access: public static
- Qualifier:
- Returns: double
-
- Purpose: parse this to a float number
- *******************************************************************************/
- double float_num() const
- {
- return float_num(*this);
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::compare_nocase
- Access: public
- Qualifier: const
- Parameter: const string & str
- Returns: int
-
- Purpose: compare string no case
- *******************************************************************************/
- int compare_nocase(const string& str) const
- {
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::trim_left
+ Access: public
+ Qualifier:
+ Parameter: value_type ch
+ Returns: string_ref&
+
+ Purpose: delete all char which is ch at the left of the string
+ *******************************************************************************/
+ string_ref& trim_left(value_type ch = ' ')
+ {
+ size_type off = this->find_first_not_of(ch);
+ if (off != string::npos)
+ {
+ this->erase(0, off);
+ }
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::trim_right
+ Access: public
+ Qualifier:
+ Parameter: value_type ch
+ Returns: string_ref&
+
+ Purpose: delete all char which is ch at the right of the string
+ *******************************************************************************/
+ string_ref& trim_right(value_type ch = ' ')
+ {
+ size_type off = this->find_last_not_of(ch);
+ if (off == string::npos)
+ {
+ off = 0;
+ }
+ else
+ {
+ off++;
+ }
+ this->erase(off, length() - off);
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::trim
+ Access: public
+ Qualifier:
+ Parameter: value_type ch
+ Returns: string_ref&
+
+ Purpose: delete all char which is ch at the left and right of the string
+ *******************************************************************************/
+ string_ref& trim(value_type ch = ' ')
+ {
+ trim_left(ch);
+ trim_right(ch);
+ return *this;
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::float_num
+ Access: public static
+ Qualifier:
+ Parameter: const string & str
+ Returns: double
+
+ Purpose: parse str to a float number
+ *******************************************************************************/
+ static double float_num(const string& str)
+ {
+ return atof(str.c_str());
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::float_num
+ Access: public static
+ Qualifier:
+ Returns: double
+
+ Purpose: parse this to a float number
+ *******************************************************************************/
+ double float_num() const
+ {
+ return float_num(*this);
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::compare_nocase
+ Access: public
+ Qualifier: const
+ Parameter: const string & str
+ Returns: int
+
+ Purpose: compare string no case
+ *******************************************************************************/
+ int compare_nocase(const string& str) const
+ {
#ifdef _WIN32
- return _stricmp(this->c_str(), str.c_str());
+ return _stricmp(this->c_str(), str.c_str());
#else
- return strcasecmp(this->c_str(), str.c_str());
+ return strcasecmp(this->c_str(), str.c_str());
#endif
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::compare_nocase
- Access: public
- Qualifier: const
- Parameter: size_type index
- Parameter: size_type length
- Parameter: const string & str
- Returns: int
-
- Purpose: compare substring no case
- *******************************************************************************/
- int compare_nocase( size_type index, size_type length, const string &str ) const
- {
- string_ref temp = this->substr(index, length);
- return temp.compare_nocase(str);
- }
-
- /*******************************************************************************
- Function: hl_lib::string_ref::compare_nocase
- Access: public
- Qualifier: const
- Parameter: size_type index
- Parameter: size_type length
- Parameter: const string & str
- Parameter: size_type index2
- Parameter: size_type length2
- Returns: int
-
- Purpose: compare two substring no case
- *******************************************************************************/
- int compare_nocase( size_type index, size_type length, const string &str, size_type index2, size_type length2) const
- {
- string_ref temp1 = this->substr(index, length);
- string_ref temp2 = str.substr(index2, length2);
- return temp1.compare_nocase(temp2);
- }
-
- };
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::compare_nocase
+ Access: public
+ Qualifier: const
+ Parameter: size_type index
+ Parameter: size_type length
+ Parameter: const string & str
+ Returns: int
+
+ Purpose: compare substring no case
+ *******************************************************************************/
+ int compare_nocase( size_type index, size_type length, const string &str ) const
+ {
+ string_ref temp = this->substr(index, length);
+ return temp.compare_nocase(str);
+ }
+
+ /*******************************************************************************
+ Function: hl_lib::string_ref::compare_nocase
+ Access: public
+ Qualifier: const
+ Parameter: size_type index
+ Parameter: size_type length
+ Parameter: const string & str
+ Parameter: size_type index2
+ Parameter: size_type length2
+ Returns: int
+
+ Purpose: compare two substring no case
+ *******************************************************************************/
+ int compare_nocase( size_type index, size_type length, const string &str, size_type index2, size_type length2) const
+ {
+ string_ref temp1 = this->substr(index, length);
+ string_ref temp2 = str.substr(index2, length2);
+ return temp1.compare_nocase(temp2);
+ }
+
+ };
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
index fa84e4109a..6d082d2d2a 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ParentProcessWatcher.h
@@ -6,12 +6,12 @@
class ParentProcessWatcher
{
public:
- struct ParentProcessWatcherData;
+ struct ParentProcessWatcherData;
- ParentProcessWatcher(lsp::Log& log, int pid, const std::function<void()>&& callback, uint32_t poll_delay_secs = 10);
+ ParentProcessWatcher(lsp::Log& log, int pid, const std::function<void()>&& callback, uint32_t poll_delay_secs = 10);
- ~ParentProcessWatcher();
+ ~ParentProcessWatcher();
- std::shared_ptr<ParentProcessWatcherData> d_ptr;
+ std::shared_ptr<ParentProcessWatcherData> d_ptr;
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
index 1389a1d5b7..5edecef0b2 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProcessIoService.h
@@ -4,45 +4,45 @@
namespace lsp
{
- class ProcessIoService
- {
- public:
- using IOService = boost::asio::io_service;
- using Work = boost::asio::io_service::work;
- using WorkPtr = std::unique_ptr<Work>;
+ class ProcessIoService
+ {
+ public:
+ using IOService = boost::asio::io_service;
+ using Work = boost::asio::io_service::work;
+ using WorkPtr = std::unique_ptr<Work>;
- ProcessIoService() {
+ ProcessIoService() {
- work_ = std::unique_ptr<Work>(new Work(ioService_));
- auto temp_thread_ = new std::thread([this]
- {
- ioService_.run();
- });
- thread_ = std::unique_ptr<std::thread>(temp_thread_);
- }
+ work_ = std::unique_ptr<Work>(new Work(ioService_));
+ auto temp_thread_ = new std::thread([this]
+ {
+ ioService_.run();
+ });
+ thread_ = std::unique_ptr<std::thread>(temp_thread_);
+ }
- ProcessIoService(const ProcessIoService&) = delete;
- ProcessIoService& operator=(const ProcessIoService&) = delete;
+ ProcessIoService(const ProcessIoService&) = delete;
+ ProcessIoService& operator=(const ProcessIoService&) = delete;
- boost::asio::io_service& getIOService()
- {
- return ioService_;
- }
+ boost::asio::io_service& getIOService()
+ {
+ return ioService_;
+ }
- void stop()
- {
+ void stop()
+ {
- work_.reset();
+ work_.reset();
- thread_->join();
+ thread_->join();
- }
+ }
- private:
- IOService ioService_;
- WorkPtr work_;
- std::unique_ptr<std::thread> thread_;
+ private:
+ IOService ioService_;
+ WorkPtr work_;
+ std::unique_ptr<std::thread> thread_;
- };
+ };
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
index b563f810d2..f6097fe172 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ProtocolJsonHandler.h
@@ -2,10 +2,10 @@
#include "LibLsp/JsonRpc/MessageJsonHandler.h"
namespace lsp {
- class ProtocolJsonHandler : public MessageJsonHandler
- {
- public:
- ProtocolJsonHandler();
- };
+ class ProtocolJsonHandler : public MessageJsonHandler
+ {
+ public:
+ ProtocolJsonHandler();
+ };
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
index caf2ea5d5f..ea60205900 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/ResourceOperation.h
@@ -6,116 +6,116 @@
#include "LibLsp/lsp/lsAny.h"
#include "LibLsp/lsp/lsTextEdit.h"
struct ResourceOperation {
- std::string kind;
- virtual ~ResourceOperation() = default;
-
- MAKE_SWAP_METHOD(ResourceOperation, kind);
+ std::string kind;
+ virtual ~ResourceOperation() = default;
+
+ MAKE_SWAP_METHOD(ResourceOperation, kind);
};
MAKE_REFLECT_STRUCT(ResourceOperation, kind);
extern void Reflect(Writer& visitor, ResourceOperation* value);
struct CreateFileOptions{
- /**
- * Overwrite existing file. Overwrite wins over `ignoreIfExists`
- */
- boost::optional<bool> overwrite = false;
-
- /**
- * Ignore if exists.
- */
- boost::optional< bool> ignoreIfExists =false;
-
- MAKE_SWAP_METHOD(CreateFileOptions, overwrite, ignoreIfExists)
+ /**
+ * Overwrite existing file. Overwrite wins over `ignoreIfExists`
+ */
+ boost::optional<bool> overwrite = false;
+
+ /**
+ * Ignore if exists.
+ */
+ boost::optional< bool> ignoreIfExists =false;
+
+ MAKE_SWAP_METHOD(CreateFileOptions, overwrite, ignoreIfExists)
};
MAKE_REFLECT_STRUCT(CreateFileOptions, overwrite, ignoreIfExists)
struct lsCreateFile :public ResourceOperation {
- /**
- * The resource to create.
- */
- lsCreateFile();
- lsDocumentUri uri;
-
- /**
- * Additional options
- */
- boost::optional<CreateFileOptions> options;
-
-
- /**
- * An optional annotation identifer describing the operation.
- *
- * @since 3.16.0
- */
- boost::optional<lsChangeAnnotationIdentifier> annotationId;
-
- MAKE_SWAP_METHOD(lsCreateFile, kind, uri, options, annotationId)
+ /**
+ * The resource to create.
+ */
+ lsCreateFile();
+ lsDocumentUri uri;
+
+ /**
+ * Additional options
+ */
+ boost::optional<CreateFileOptions> options;
+
+
+ /**
+ * An optional annotation identifer describing the operation.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<lsChangeAnnotationIdentifier> annotationId;
+
+ MAKE_SWAP_METHOD(lsCreateFile, kind, uri, options, annotationId)
};
MAKE_REFLECT_STRUCT(lsCreateFile, kind, uri,options, annotationId)
struct DeleteFileOptions {
- /**
- * Delete the content recursively if a folder is denoted.
- */
- boost::optional<bool> recursive = false;
+ /**
+ * Delete the content recursively if a folder is denoted.
+ */
+ boost::optional<bool> recursive = false;
- /**
- * Ignore the operation if the file doesn't exist.
- */
- boost::optional<bool> ignoreIfNotExists = false;
+ /**
+ * Ignore the operation if the file doesn't exist.
+ */
+ boost::optional<bool> ignoreIfNotExists = false;
- MAKE_SWAP_METHOD(DeleteFileOptions, recursive, ignoreIfNotExists);
+ MAKE_SWAP_METHOD(DeleteFileOptions, recursive, ignoreIfNotExists);
};
MAKE_REFLECT_STRUCT(DeleteFileOptions, recursive, ignoreIfNotExists)
struct lsDeleteFile :public ResourceOperation {
- /**
- * The file to delete.
- */
- lsDeleteFile();
- lsDocumentUri uri;
-
- /**
- * Delete options.
- */
- boost::optional<DeleteFileOptions> options;
-
- MAKE_SWAP_METHOD(lsDeleteFile, kind, uri, options);
+ /**
+ * The file to delete.
+ */
+ lsDeleteFile();
+ lsDocumentUri uri;
+
+ /**
+ * Delete options.
+ */
+ boost::optional<DeleteFileOptions> options;
+
+ MAKE_SWAP_METHOD(lsDeleteFile, kind, uri, options);
};
MAKE_REFLECT_STRUCT(lsDeleteFile, kind, uri,options);
typedef CreateFileOptions RenameFileOptions;
struct lsRenameFile :public ResourceOperation {
- /**
- * The old (existing) location.
- */
- lsRenameFile();
- lsDocumentUri oldUri;
-
- /**
- * The new location.
- */
-
- lsDocumentUri newUri;
-
- /**
- * Rename options.
- */
- boost::optional<RenameFileOptions> options;
-
- /**
- * An optional annotation identifer describing the operation.
- *
- * @since 3.16.0
- */
- boost::optional<lsChangeAnnotationIdentifier> annotationId;
-
- MAKE_SWAP_METHOD(lsRenameFile, kind, oldUri, newUri, options, annotationId)
+ /**
+ * The old (existing) location.
+ */
+ lsRenameFile();
+ lsDocumentUri oldUri;
+
+ /**
+ * The new location.
+ */
+
+ lsDocumentUri newUri;
+
+ /**
+ * Rename options.
+ */
+ boost::optional<RenameFileOptions> options;
+
+ /**
+ * An optional annotation identifer describing the operation.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<lsChangeAnnotationIdentifier> annotationId;
+
+ MAKE_SWAP_METHOD(lsRenameFile, kind, oldUri, newUri, options, annotationId)
};
MAKE_REFLECT_STRUCT(lsRenameFile, kind, oldUri, newUri, options, annotationId);
-extern ResourceOperation* GetResourceOperation(lsp::Any& lspAny); \ No newline at end of file
+extern ResourceOperation* GetResourceOperation(lsp::Any& lspAny);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
index 0a2707979d..3178d25d69 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/SimpleTimer.h
@@ -9,7 +9,7 @@ class SimpleTimer
{
public:
SimpleTimer(unsigned int duration,const std::function<void()>& _call_back)
- :is_running_(true), call_back(_call_back), _deadline_timer(_ios, Duration(duration))
+ :is_running_(true), call_back(_call_back), _deadline_timer(_ios, Duration(duration))
{
_deadline_timer.async_wait([&](const boost::system::error_code& e)
{
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
index fa5d111403..60484db56a 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/registerCapability.h
@@ -7,20 +7,20 @@
*/
struct Registration {
- static Registration Create(const std::string& method);
- /**
- * The id used to register the request. The id can be used to deregister
- * the request again.
- */
- std::string id;
-
- /**
- * The method / capability to register for.
- */
-
- std::string method;
-
- MAKE_SWAP_METHOD(Registration, id, method);
+ static Registration Create(const std::string& method);
+ /**
+ * The id used to register the request. The id can be used to deregister
+ * the request again.
+ */
+ std::string id;
+
+ /**
+ * The method / capability to register for.
+ */
+
+ std::string method;
+
+ MAKE_SWAP_METHOD(Registration, id, method);
};
@@ -35,8 +35,8 @@ MAKE_REFLECT_STRUCT(Registration, id, method);
*/
struct RegistrationParams
{
- std::vector<Registration> registrations;
- MAKE_SWAP_METHOD(RegistrationParams, registrations);
+ std::vector<Registration> registrations;
+ MAKE_SWAP_METHOD(RegistrationParams, registrations);
};
/**
* The client/registerCapability request is sent from the server to the client
@@ -46,4 +46,4 @@ struct RegistrationParams
*/
MAKE_REFLECT_STRUCT(RegistrationParams, registrations);
-DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientRegisterCapability, RegistrationParams,JsonNull, "client/registerCapability"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientRegisterCapability, RegistrationParams,JsonNull, "client/registerCapability");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
index aa51d7efee..33bf9d1db6 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/client/unregisterCapability.h
@@ -10,20 +10,20 @@
*/
struct Unregistration {
- /**
- * The id used to unregister the request or notification. Usually an id
- * provided during the register request.
- */
+ /**
+ * The id used to unregister the request or notification. Usually an id
+ * provided during the register request.
+ */
- std::string id;
+ std::string id;
- /**
- * The method / capability to unregister for.
- */
+ /**
+ * The method / capability to unregister for.
+ */
- std::string method;
-
- MAKE_SWAP_METHOD(Unregistration, id, method);
+ std::string method;
+
+ MAKE_SWAP_METHOD(Unregistration, id, method);
};
MAKE_REFLECT_STRUCT(Unregistration, id, method);
/**
@@ -32,10 +32,10 @@ MAKE_REFLECT_STRUCT(Unregistration, id, method);
*/
struct UnregistrationParams
{
- std::vector<Unregistration> unregisterations;
- MAKE_SWAP_METHOD(UnregistrationParams, unregisterations);
+ std::vector<Unregistration> unregisterations;
+ MAKE_SWAP_METHOD(UnregistrationParams, unregisterations);
};
MAKE_REFLECT_STRUCT(UnregistrationParams, unregisterations);
-DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientUnregisterCapability, UnregistrationParams,JsonNull, "client/unregisterCapability"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(Req_ClientUnregisterCapability, UnregistrationParams,JsonNull, "client/unregisterCapability");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
index cfb17fdf34..dd0ada60cc 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/OverridableMethod.h
@@ -4,31 +4,31 @@
#include <string>
struct OverridableMethod
{
- std::string bindingKey;
- std::string name;
- std::vector<std::string> parameters;
- bool unimplemented = false;
- std::string declaringClass;
- std::string declaringClassType;
+ std::string bindingKey;
+ std::string name;
+ std::vector<std::string> parameters;
+ bool unimplemented = false;
+ std::string declaringClass;
+ std::string declaringClassType;
- void swap(OverridableMethod& arg) noexcept
- {
- bindingKey.swap(arg.bindingKey);
- name.swap(arg.name);
- parameters.swap(arg.parameters);
- declaringClass.swap(arg.declaringClass);
- declaringClassType.swap(arg.declaringClassType);
- std::swap(unimplemented, arg.unimplemented);
- }
+ void swap(OverridableMethod& arg) noexcept
+ {
+ bindingKey.swap(arg.bindingKey);
+ name.swap(arg.name);
+ parameters.swap(arg.parameters);
+ declaringClass.swap(arg.declaringClass);
+ declaringClassType.swap(arg.declaringClassType);
+ std::swap(unimplemented, arg.unimplemented);
+ }
};
MAKE_REFLECT_STRUCT(OverridableMethod, bindingKey, name, parameters, unimplemented, declaringClass, declaringClassType);
struct OverridableMethodsResponse
{
- std::string type;
- std::vector<OverridableMethod> methods;
+ std::string type;
+ std::vector<OverridableMethod> methods;
- MAKE_SWAP_METHOD(OverridableMethodsResponse, type, methods)
+ MAKE_SWAP_METHOD(OverridableMethodsResponse, type, methods)
};
MAKE_REFLECT_STRUCT(OverridableMethodsResponse, type, methods)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
index c7faa94d6c..c8ddbe3c01 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/WorkspaceSymbolParams.h
@@ -6,8 +6,8 @@
struct WorkspaceSymbolParams
{
- std::string query;
- MAKE_SWAP_METHOD(WorkspaceSymbolParams, query);
+ std::string query;
+ MAKE_SWAP_METHOD(WorkspaceSymbolParams, query);
};
MAKE_REFLECT_STRUCT(WorkspaceSymbolParams, query);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
index 5da14a452a..527b3b1827 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/addOverridableMethods.h
@@ -6,10 +6,10 @@
#include "LibLsp/JsonRpc/RequestInMessage.h"
#include "LibLsp/JsonRpc/lsResponseMessage.h"
struct AddOverridableMethodParams {
- lsCodeActionParams context;
- std::vector<OverridableMethod> overridableMethods;
+ lsCodeActionParams context;
+ std::vector<OverridableMethod> overridableMethods;
- MAKE_SWAP_METHOD(AddOverridableMethodParams, context, overridableMethods);
+ MAKE_SWAP_METHOD(AddOverridableMethodParams, context, overridableMethods);
};
MAKE_REFLECT_STRUCT(AddOverridableMethodParams, context, overridableMethods);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
index a2c2c062cc..4809e360bb 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/buildWorkspace.h
@@ -10,8 +10,8 @@
enum class BuildWorkspaceStatus : uint8_t{
- FAILED, SUCCEED, WITH_ERROR, CANCELLED,
+ FAILED, SUCCEED, WITH_ERROR, CANCELLED,
};
MAKE_REFLECT_TYPE_PROXY(BuildWorkspaceStatus)
-DEFINE_REQUEST_RESPONSE_TYPE(java_buildWorkspace, bool, BuildWorkspaceStatus, "java/buildWorkspace"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(java_buildWorkspace, bool, BuildWorkspaceStatus, "java/buildWorkspace");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
index 261a0cc551..acb1e4caa6 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkConstructorsStatus.h
@@ -6,19 +6,19 @@
#include "checkHashCodeEqualsStatus.h"
struct LspMethodBinding {
- std::string bindingKey;
- std::string name;
- std::vector< std::string> parameters;
+ std::string bindingKey;
+ std::string name;
+ std::vector< std::string> parameters;
- MAKE_SWAP_METHOD(LspMethodBinding, bindingKey, name, parameters);
+ MAKE_SWAP_METHOD(LspMethodBinding, bindingKey, name, parameters);
};
MAKE_REFLECT_STRUCT(LspMethodBinding, bindingKey, name, parameters);
struct CheckConstructorsResponse {
- std::vector<LspMethodBinding> constructors;
- std::vector<LspVariableBinding> fields;
- MAKE_SWAP_METHOD(CheckConstructorsResponse, constructors, fields)
+ std::vector<LspMethodBinding> constructors;
+ std::vector<LspVariableBinding> fields;
+ MAKE_SWAP_METHOD(CheckConstructorsResponse, constructors, fields)
};
MAKE_REFLECT_STRUCT(CheckConstructorsResponse, constructors,fields)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
index 729639eafa..68a7ed6606 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkDelegateMethodsStatus.h
@@ -8,22 +8,22 @@
#include "checkConstructorsStatus.h"
struct LspDelegateField {
- LspVariableBinding field;
- std::vector<LspMethodBinding> delegateMethods;
+ LspVariableBinding field;
+ std::vector<LspMethodBinding> delegateMethods;
- MAKE_SWAP_METHOD(LspDelegateField, field, delegateMethods);
+ MAKE_SWAP_METHOD(LspDelegateField, field, delegateMethods);
};
MAKE_REFLECT_STRUCT(LspDelegateField, field, delegateMethods);
struct CheckDelegateMethodsResponse {
- std::vector<LspDelegateField> delegateFields;
+ std::vector<LspDelegateField> delegateFields;
- MAKE_SWAP_METHOD(CheckDelegateMethodsResponse, delegateFields)
+ MAKE_SWAP_METHOD(CheckDelegateMethodsResponse, delegateFields)
};
MAKE_REFLECT_STRUCT(CheckDelegateMethodsResponse, delegateFields)
DEFINE_REQUEST_RESPONSE_TYPE(java_checkDelegateMethodsStatus,
- lsCodeActionParams, CheckDelegateMethodsResponse, "java/checkDelegateMethodsStatus");
+ lsCodeActionParams, CheckDelegateMethodsResponse, "java/checkDelegateMethodsStatus");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
index 1d9652dd44..88731c29b5 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkHashCodeEqualsStatus.h
@@ -8,29 +8,29 @@
#include "LibLsp/lsp/CodeActionParams.h"
struct LspVariableBinding {
- std::string bindingKey;
- std::string name;
- std::string type;
- bool isField;
- void swap(LspVariableBinding& arg) noexcept
- {
- bindingKey.swap(arg.bindingKey);
- name.swap(arg.name);
- type.swap(arg.type);
- std::swap(isField, arg.isField);
- }
+ std::string bindingKey;
+ std::string name;
+ std::string type;
+ bool isField;
+ void swap(LspVariableBinding& arg) noexcept
+ {
+ bindingKey.swap(arg.bindingKey);
+ name.swap(arg.name);
+ type.swap(arg.type);
+ std::swap(isField, arg.isField);
+ }
};
MAKE_REFLECT_STRUCT(LspVariableBinding, bindingKey, name, type, isField)
struct CheckHashCodeEqualsResponse {
- std::string type;
- std::vector<LspVariableBinding> fields;
- std::vector<std::string> existingMethods;
- MAKE_SWAP_METHOD(CheckHashCodeEqualsResponse, type, fields, type, existingMethods)
+ std::string type;
+ std::vector<LspVariableBinding> fields;
+ std::vector<std::string> existingMethods;
+ MAKE_SWAP_METHOD(CheckHashCodeEqualsResponse, type, fields, type, existingMethods)
};
MAKE_REFLECT_STRUCT(CheckHashCodeEqualsResponse, type, fields, type, existingMethods)
DEFINE_REQUEST_RESPONSE_TYPE(java_checkHashCodeEqualsStatus,
- lsCodeActionParams, CheckHashCodeEqualsResponse, "java/checkHashCodeEqualsStatus")
+ lsCodeActionParams, CheckHashCodeEqualsResponse, "java/checkHashCodeEqualsStatus")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
index 24580d94c0..cadb5ba7dd 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/checkToStringStatus.h
@@ -6,19 +6,19 @@
#include "LibLsp/lsp/CodeActionParams.h"
#include "checkHashCodeEqualsStatus.h"
struct CheckToStringResponse {
- std::string type;
- std::vector<LspVariableBinding> fields;
- bool exists;
- void swap(CheckToStringResponse& arg) noexcept
- {
- type.swap(arg.type);
- fields.swap(arg.fields);
- std::swap(exists, arg.exists);
- }
+ std::string type;
+ std::vector<LspVariableBinding> fields;
+ bool exists;
+ void swap(CheckToStringResponse& arg) noexcept
+ {
+ type.swap(arg.type);
+ fields.swap(arg.fields);
+ std::swap(exists, arg.exists);
+ }
};
MAKE_REFLECT_STRUCT(CheckToStringResponse,type,fields,exists)
DEFINE_REQUEST_RESPONSE_TYPE(java_checkToStringStatus,
- lsCodeActionParams, CheckToStringResponse ,"java/checkToStringStatus")
+ lsCodeActionParams, CheckToStringResponse ,"java/checkToStringStatus")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
index 02024e3d93..c0195908d0 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/codeActionResult.h
@@ -9,14 +9,14 @@
namespace SourceAssistProcessor {
- /*std::set<std::string> UNSUPPORTED_RESOURCES = { "module-info.java", "package-info.java"
- };*/
+ /*std::set<std::string> UNSUPPORTED_RESOURCES = { "module-info.java", "package-info.java"
+ };*/
-// static const char* COMMAND_ID_ACTION_OVERRIDEMETHODSPROMPT = "java.action.overrideMethodsPrompt";
-// static const char* COMMAND_ID_ACTION_HASHCODEEQUALSPROMPT = "java.action.hashCodeEqualsPrompt";
-// static const char* COMMAND_ID_ACTION_ORGANIZEIMPORTS = "java.action.organizeImports";
-// static const char* COMMAND_ID_ACTION_GENERATETOSTRINGPROMPT = "java.action.generateToStringPrompt";
-// static const char* COMMAND_ID_ACTION_GENERATEACCESSORSPROMPT = "java.action.generateAccessorsPrompt";
-// static const char* COMMAND_ID_ACTION_GENERATECONSTRUCTORSPROMPT = "java.action.generateConstructorsPrompt";
-// static const char* COMMAND_ID_ACTION_GENERATEDELEGATEMETHODSPROMPT = "java.action.generateDelegateMethodsPrompt";
+// static const char* COMMAND_ID_ACTION_OVERRIDEMETHODSPROMPT = "java.action.overrideMethodsPrompt";
+// static const char* COMMAND_ID_ACTION_HASHCODEEQUALSPROMPT = "java.action.hashCodeEqualsPrompt";
+// static const char* COMMAND_ID_ACTION_ORGANIZEIMPORTS = "java.action.organizeImports";
+// static const char* COMMAND_ID_ACTION_GENERATETOSTRINGPROMPT = "java.action.generateToStringPrompt";
+// static const char* COMMAND_ID_ACTION_GENERATEACCESSORSPROMPT = "java.action.generateAccessorsPrompt";
+// static const char* COMMAND_ID_ACTION_GENERATECONSTRUCTORSPROMPT = "java.action.generateConstructorsPrompt";
+// static const char* COMMAND_ID_ACTION_GENERATEDELEGATEMETHODSPROMPT = "java.action.generateDelegateMethodsPrompt";
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
index 92d4a3627b..19479adfaf 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/executeCommand.h
@@ -6,20 +6,20 @@
#include "LibLsp/lsp/ExecuteCommandParams.h"
namespace buildpath
{
-// static const char* EDIT_ORGNIZEIMPORTS = "java.edit.organizeImports";
-// static const char* RESOLVE_SOURCE_ATTACHMENT = "java.project.resolveSourceAttachment";
+// static const char* EDIT_ORGNIZEIMPORTS = "java.edit.organizeImports";
+// static const char* RESOLVE_SOURCE_ATTACHMENT = "java.project.resolveSourceAttachment";
-// static const char* UPDATE_SOURCE_ATTACHMENT = "java.project.updateSourceAttachment";
+// static const char* UPDATE_SOURCE_ATTACHMENT = "java.project.updateSourceAttachment";
-// static const char* ADD_TO_SOURCEPATH = "java.project.addToSourcePath";
+// static const char* ADD_TO_SOURCEPATH = "java.project.addToSourcePath";
-// static const char* REMOVE_FROM_SOURCEPATH = "java.project.removeFromSourcePath";
+// static const char* REMOVE_FROM_SOURCEPATH = "java.project.removeFromSourcePath";
-// static const char* LIST_SOURCEPATHS = "java.project.listSourcePaths";
- struct Result {
- bool status;
- std::string message;
- };
+// static const char* LIST_SOURCEPATHS = "java.project.listSourcePaths";
+ struct Result {
+ bool status;
+ std::string message;
+ };
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
index d184c675d8..fd470b17c8 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/findLinks.h
@@ -8,11 +8,11 @@
#include "LibLsp/lsp/lsTextDocumentPositionParams.h"
struct FindLinksParams {
- // Supported link types: superImplementation
- std::string type;
- lsTextDocumentPositionParams position;
-
- MAKE_SWAP_METHOD(FindLinksParams, type, position)
+ // Supported link types: superImplementation
+ std::string type;
+ lsTextDocumentPositionParams position;
+
+ MAKE_SWAP_METHOD(FindLinksParams, type, position)
};
MAKE_REFLECT_STRUCT(FindLinksParams,type,position)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
index 200d840e94..82013096c7 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateAccessors.h
@@ -8,11 +8,11 @@
struct GenerateAccessorsParams {
- lsCodeActionParams context;
- std::vector<AccessorField> accessors;
+ lsCodeActionParams context;
+ std::vector<AccessorField> accessors;
- MAKE_SWAP_METHOD(GenerateAccessorsParams, context, accessors)
+ MAKE_SWAP_METHOD(GenerateAccessorsParams, context, accessors)
};
MAKE_REFLECT_STRUCT(GenerateAccessorsParams, context, accessors)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
index 77c49a66a2..157fefed79 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateConstructors.h
@@ -8,10 +8,10 @@
struct GenerateConstructorsParams {
- lsCodeActionParams context;
- std::vector<LspMethodBinding> constructors;
- std::vector< LspVariableBinding >fields;
- MAKE_SWAP_METHOD(GenerateConstructorsParams, context, fields)
+ lsCodeActionParams context;
+ std::vector<LspMethodBinding> constructors;
+ std::vector< LspVariableBinding >fields;
+ MAKE_SWAP_METHOD(GenerateConstructorsParams, context, fields)
};
MAKE_REFLECT_STRUCT(GenerateConstructorsParams, context, fields)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
index 8958ae4d7e..c6b4729378 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateDelegateMethods.h
@@ -7,17 +7,17 @@
#include "checkConstructorsStatus.h"
struct LspDelegateEntry {
- LspVariableBinding field;
- LspMethodBinding delegateMethod;
- MAKE_SWAP_METHOD(LspDelegateEntry, field, delegateMethod);
+ LspVariableBinding field;
+ LspMethodBinding delegateMethod;
+ MAKE_SWAP_METHOD(LspDelegateEntry, field, delegateMethod);
};
MAKE_REFLECT_STRUCT(LspDelegateEntry, field, delegateMethod);
struct GenerateDelegateMethodsParams {
- lsCodeActionParams context;
- std::vector<LspDelegateEntry> delegateEntries;
- MAKE_SWAP_METHOD(GenerateDelegateMethodsParams, context, delegateEntries)
+ lsCodeActionParams context;
+ std::vector<LspDelegateEntry> delegateEntries;
+ MAKE_SWAP_METHOD(GenerateDelegateMethodsParams, context, delegateEntries)
};
MAKE_REFLECT_STRUCT(GenerateDelegateMethodsParams, context, delegateEntries)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
index 937c358733..0881d305b1 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateHashCodeEquals.h
@@ -8,15 +8,15 @@
#include "checkHashCodeEqualsStatus.h"
struct GenerateHashCodeEqualsParams {
- lsCodeActionParams context;
- std::vector<LspVariableBinding> fields;
- bool regenerate= false;
- void swap(GenerateHashCodeEqualsParams& arg) noexcept
- {
- context.swap(arg.context);
- fields.swap(arg.fields);
- std::swap(regenerate, arg.regenerate);
- }
+ lsCodeActionParams context;
+ std::vector<LspVariableBinding> fields;
+ bool regenerate= false;
+ void swap(GenerateHashCodeEqualsParams& arg) noexcept
+ {
+ context.swap(arg.context);
+ fields.swap(arg.fields);
+ std::swap(regenerate, arg.regenerate);
+ }
};
MAKE_REFLECT_STRUCT(GenerateHashCodeEqualsParams, context, fields, regenerate);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
index 1f8ccc73b8..5e5324a59b 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/generateToString.h
@@ -7,11 +7,11 @@
struct GenerateToStringParams {
- lsCodeActionParams context;
- std::vector< LspVariableBinding >fields;
-
- MAKE_SWAP_METHOD(GenerateToStringParams, context, fields)
-
+ lsCodeActionParams context;
+ std::vector< LspVariableBinding >fields;
+
+ MAKE_SWAP_METHOD(GenerateToStringParams, context, fields)
+
};
MAKE_REFLECT_STRUCT(GenerateToStringParams, context, fields)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
index bcbf6f8c2b..56f09a0a53 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getMoveDestinations.h
@@ -8,54 +8,54 @@
struct MoveKindInfo
{
- static std::string moveResource()
- {
- return "moveResource";
- }
- static std::string moveInstanceMethod()
- {
- return "moveInstanceMethod";
- }
- static std::string moveStaticMember()
- {
- return "moveStaticMember";
- }
+ static std::string moveResource()
+ {
+ return "moveResource";
+ }
+ static std::string moveInstanceMethod()
+ {
+ return "moveInstanceMethod";
+ }
+ static std::string moveStaticMember()
+ {
+ return "moveStaticMember";
+ }
};
struct MoveParams {
- /**
- * The supported move kind: moveResource, moveInstanceMethod, moveStaticMember,
- * moveTypeToNewFile.
- */
- std::string moveKind;
- /**
- * The selected resource uris when the move operation is triggered.
- */
- std::vector<std::string> sourceUris;
- /**
- * The code action params when the move operation is triggered.
- */
- boost::optional<lsCodeActionParams> params;
- /**
- * The possible destination: a folder/package, class, instanceDeclaration.
- */
- lsp::Any destination;
- bool updateReferences;
- void swap(MoveParams& arg) noexcept
- {
- moveKind.swap(arg.moveKind);
- sourceUris.swap(arg.sourceUris);
- params.swap(arg.params);
- destination.swap(arg.destination);
- std::swap(updateReferences, arg.updateReferences);
- }
+ /**
+ * The supported move kind: moveResource, moveInstanceMethod, moveStaticMember,
+ * moveTypeToNewFile.
+ */
+ std::string moveKind;
+ /**
+ * The selected resource uris when the move operation is triggered.
+ */
+ std::vector<std::string> sourceUris;
+ /**
+ * The code action params when the move operation is triggered.
+ */
+ boost::optional<lsCodeActionParams> params;
+ /**
+ * The possible destination: a folder/package, class, instanceDeclaration.
+ */
+ lsp::Any destination;
+ bool updateReferences;
+ void swap(MoveParams& arg) noexcept
+ {
+ moveKind.swap(arg.moveKind);
+ sourceUris.swap(arg.sourceUris);
+ params.swap(arg.params);
+ destination.swap(arg.destination);
+ std::swap(updateReferences, arg.updateReferences);
+ }
};
MAKE_REFLECT_STRUCT(MoveParams, moveKind, sourceUris, params, destination, updateReferences);
struct MoveDestinationsResponse {
- std::string errorMessage;
- std::vector<lsp::Any > destinations;
- MAKE_SWAP_METHOD(MoveDestinationsResponse, errorMessage, destinations);
+ std::string errorMessage;
+ std::vector<lsp::Any > destinations;
+ MAKE_SWAP_METHOD(MoveDestinationsResponse, errorMessage, destinations);
};
MAKE_REFLECT_STRUCT(MoveDestinationsResponse, errorMessage, destinations);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
index e46327075a..131612dc2e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/getRefactorEdit.h
@@ -15,40 +15,40 @@
namespace
RefactorProposalUtility
{
- extern const char* APPLY_REFACTORING_COMMAND_ID;
- extern const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND;
- extern const char* EXTRACT_VARIABLE_COMMAND;
- extern const char* EXTRACT_CONSTANT_COMMAND;
- extern const char* EXTRACT_METHOD_COMMAND;
- extern const char* EXTRACT_FIELD_COMMAND;
- extern const char* CONVERT_VARIABLE_TO_FIELD_COMMAND;
- extern const char* MOVE_FILE_COMMAND;
- extern const char* MOVE_INSTANCE_METHOD_COMMAND;
- extern const char* MOVE_STATIC_MEMBER_COMMAND;
- extern const char* MOVE_TYPE_COMMAND;
+ extern const char* APPLY_REFACTORING_COMMAND_ID;
+ extern const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND;
+ extern const char* EXTRACT_VARIABLE_COMMAND;
+ extern const char* EXTRACT_CONSTANT_COMMAND;
+ extern const char* EXTRACT_METHOD_COMMAND;
+ extern const char* EXTRACT_FIELD_COMMAND;
+ extern const char* CONVERT_VARIABLE_TO_FIELD_COMMAND;
+ extern const char* MOVE_FILE_COMMAND;
+ extern const char* MOVE_INSTANCE_METHOD_COMMAND;
+ extern const char* MOVE_STATIC_MEMBER_COMMAND;
+ extern const char* MOVE_TYPE_COMMAND;
};
struct RenamePosition {
- lsDocumentUri uri;
- int offset = 0;
- int length = 0;
- void swap(RenamePosition& arg) noexcept
- {
- uri.swap(arg.uri);
- std::swap(offset, arg.offset);
- std::swap(length, arg.length);
- }
+ lsDocumentUri uri;
+ int offset = 0;
+ int length = 0;
+ void swap(RenamePosition& arg) noexcept
+ {
+ uri.swap(arg.uri);
+ std::swap(offset, arg.offset);
+ std::swap(length, arg.length);
+ }
};
MAKE_REFLECT_STRUCT(RenamePosition, uri, offset, length);
struct GetRefactorEditParams
{
- std::string command;
- std::vector<lsp::Any> commandArguments;
- lsCodeActionParams context;
- boost::optional<lsFormattingOptions> options;
- MAKE_SWAP_METHOD(GetRefactorEditParams, command, context, options);
+ std::string command;
+ std::vector<lsp::Any> commandArguments;
+ lsCodeActionParams context;
+ boost::optional<lsFormattingOptions> options;
+ MAKE_SWAP_METHOD(GetRefactorEditParams, command, context, options);
};
MAKE_REFLECT_STRUCT(GetRefactorEditParams, command, context, options);
@@ -56,20 +56,20 @@ MAKE_REFLECT_STRUCT(GetRefactorEditParams, command, context, options);
struct RefactorWorkspaceEdit {
- /**
- * The workspace edit this code action performs.
- */
- lsWorkspaceEdit edit;
- /**
- * A command this code action executes. If a code action provides a edit and a
- * command, first the edit is executed and then the command.
- */
-
- boost::optional<std::string> errorMessage;
-
- boost::optional < lsCommandWithAny > command;
-
- MAKE_SWAP_METHOD(RefactorWorkspaceEdit, edit, command, errorMessage)
+ /**
+ * The workspace edit this code action performs.
+ */
+ lsWorkspaceEdit edit;
+ /**
+ * A command this code action executes. If a code action provides a edit and a
+ * command, first the edit is executed and then the command.
+ */
+
+ boost::optional<std::string> errorMessage;
+
+ boost::optional < lsCommandWithAny > command;
+
+ MAKE_SWAP_METHOD(RefactorWorkspaceEdit, edit, command, errorMessage)
};
MAKE_REFLECT_STRUCT(RefactorWorkspaceEdit,edit,command,errorMessage)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
index ba77041474..f8bd8a4f7a 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/resolveUnimplementedAccessors.h
@@ -7,16 +7,16 @@
struct AccessorField {
- std::string fieldName;
- bool isStatic =false;
- bool generateGetter = false;
- bool generateSetter = false;
- void swap(AccessorField& arg) noexcept{
- fieldName.swap(arg.fieldName);
- std::swap(isStatic, arg.isStatic);
- std::swap(generateGetter, arg.generateGetter);
- std::swap(generateSetter, arg.generateSetter);
- }
+ std::string fieldName;
+ bool isStatic =false;
+ bool generateGetter = false;
+ bool generateSetter = false;
+ void swap(AccessorField& arg) noexcept{
+ fieldName.swap(arg.fieldName);
+ std::swap(isStatic, arg.isStatic);
+ std::swap(generateGetter, arg.generateGetter);
+ std::swap(generateSetter, arg.generateSetter);
+ }
};
MAKE_REFLECT_STRUCT(AccessorField, fieldName,isStatic,generateGetter,generateSetter)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
index ac8a2419f6..18a2f9999e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/jdtls/searchSymbols.h
@@ -13,10 +13,10 @@
struct SearchSymbolParams :public WorkspaceSymbolParams
{
- boost::optional<std::string> projectName;
- boost::optional< bool >sourceOnly;
- boost::optional< int> maxResults;
- MAKE_SWAP_METHOD(SearchSymbolParams, query, projectName, sourceOnly, maxResults);
+ boost::optional<std::string> projectName;
+ boost::optional< bool >sourceOnly;
+ boost::optional< int> maxResults;
+ MAKE_SWAP_METHOD(SearchSymbolParams, query, projectName, sourceOnly, maxResults);
};
MAKE_REFLECT_STRUCT(SearchSymbolParams, query, projectName, sourceOnly, maxResults);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
index d81c3eaa63..0823469ba9 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/extention/sonarlint/protocol.h
@@ -9,46 +9,46 @@
struct LintRule
{
- std::string key;
- std::string name;
+ std::string key;
+ std::string name;
- std::string Display() const
- {
- return name + " (" + key + ")";
- }
- bool activeByDefault = true;
- boost::optional<std::string> severity;
- boost::optional<std::string> type;
- int icon_index = -1;
- MAKE_SWAP_METHOD(LintRule, key, name, activeByDefault, severity, type);
+ std::string Display() const
+ {
+ return name + " (" + key + ")";
+ }
+ bool activeByDefault = true;
+ boost::optional<std::string> severity;
+ boost::optional<std::string> type;
+ int icon_index = -1;
+ MAKE_SWAP_METHOD(LintRule, key, name, activeByDefault, severity, type);
};
MAKE_REFLECT_STRUCT(LintRule, key, name, activeByDefault, severity, type);
struct RuleParameter {
- std::string name;
- boost::optional<std::string> description;
- boost::optional<std::string> defaultValue;
+ std::string name;
+ boost::optional<std::string> description;
+ boost::optional<std::string> defaultValue;
};
MAKE_REFLECT_STRUCT(RuleParameter, name, description, defaultValue);
struct ShowRuleDescriptionParams {
- boost::optional<std::string> key;
+ boost::optional<std::string> key;
- boost::optional<std::string> name;
+ boost::optional<std::string> name;
- boost::optional<std::string> htmlDescription;
+ boost::optional<std::string> htmlDescription;
- boost::optional<std::string> type;
+ boost::optional<std::string> type;
- boost::optional<std::string> severity;
+ boost::optional<std::string> severity;
- boost::optional< std::vector<RuleParameter> > parameters;
- MAKE_SWAP_METHOD(ShowRuleDescriptionParams, key, name, htmlDescription, type, severity, parameters)
+ boost::optional< std::vector<RuleParameter> > parameters;
+ MAKE_SWAP_METHOD(ShowRuleDescriptionParams, key, name, htmlDescription, type, severity, parameters)
};
@@ -56,96 +56,96 @@ MAKE_REFLECT_STRUCT(ShowRuleDescriptionParams, key, name, htmlDescription, type,
struct GetJavaConfigResponse {
- std::string projectRoot;
- std::string sourceLevel;
- std::vector<std::string> classpath;
- bool isTest;
- std::string vmLocation;
- MAKE_SWAP_METHOD(GetJavaConfigResponse, projectRoot, sourceLevel, classpath, isTest, vmLocation);
+ std::string projectRoot;
+ std::string sourceLevel;
+ std::vector<std::string> classpath;
+ bool isTest;
+ std::string vmLocation;
+ MAKE_SWAP_METHOD(GetJavaConfigResponse, projectRoot, sourceLevel, classpath, isTest, vmLocation);
};
MAKE_REFLECT_STRUCT(GetJavaConfigResponse, projectRoot, sourceLevel, classpath, isTest, vmLocation);
struct SetTraceNotificationParams {
- lsInitializeParams::lsTrace value;
+ lsInitializeParams::lsTrace value;
};
MAKE_REFLECT_STRUCT(SetTraceNotificationParams, value);
struct ServerConnectionSettings {
- std::string SONARCLOUD_URL = "https://sonarcloud.io";
- std::vector<std::string>SONARCLOUD_ALIAS = { "https://sonarqube.com",
- "https://www.sonarqube.com",
- "https://www.sonarcloud.io",
- "https://sonarcloud.io" };
+ std::string SONARCLOUD_URL = "https://sonarcloud.io";
+ std::vector<std::string>SONARCLOUD_ALIAS = { "https://sonarqube.com",
+ "https://www.sonarqube.com",
+ "https://www.sonarcloud.io",
+ "https://sonarcloud.io" };
- std::string connectionId;
- std::string serverUrl;
- std::string token;
- boost::optional<std::string> organizationKey;
- MAKE_SWAP_METHOD(ServerConnectionSettings, connectionId, serverUrl, token, organizationKey)
+ std::string connectionId;
+ std::string serverUrl;
+ std::string token;
+ boost::optional<std::string> organizationKey;
+ MAKE_SWAP_METHOD(ServerConnectionSettings, connectionId, serverUrl, token, organizationKey)
};
MAKE_REFLECT_STRUCT(ServerConnectionSettings, connectionId, serverUrl, token, organizationKey)
struct RuleSetting
{
- bool IsOn();
- std::string level = "on";
- RuleSetting(bool activate);
- RuleSetting() = default;
- void toggle();
- void on()
- {
- level = "on";
- }
- void off()
- {
- level = "off";
- }
- void turn(bool activate)
- {
- if (activate)
- {
- on();
- }
- else
- {
- off();
- }
- }
- boost::optional< std::map<std::string, std::string > > parameters;
+ bool IsOn();
+ std::string level = "on";
+ RuleSetting(bool activate);
+ RuleSetting() = default;
+ void toggle();
+ void on()
+ {
+ level = "on";
+ }
+ void off()
+ {
+ level = "off";
+ }
+ void turn(bool activate)
+ {
+ if (activate)
+ {
+ on();
+ }
+ else
+ {
+ off();
+ }
+ }
+ boost::optional< std::map<std::string, std::string > > parameters;
};
MAKE_REFLECT_STRUCT(RuleSetting, level, parameters)
struct ConsoleParams
{
- boost::optional < bool >showAnalyzerLogs;
- boost::optional < bool >showVerboseLogs;
- MAKE_SWAP_METHOD(ConsoleParams, showAnalyzerLogs, showVerboseLogs)
+ boost::optional < bool >showAnalyzerLogs;
+ boost::optional < bool >showVerboseLogs;
+ MAKE_SWAP_METHOD(ConsoleParams, showAnalyzerLogs, showVerboseLogs)
};
MAKE_REFLECT_STRUCT(ConsoleParams, showAnalyzerLogs, showVerboseLogs)
struct SonarLintWorkspaceSettings
{
- boost::optional < bool > disableTelemetry;
- boost::optional < std::map<std::string, ServerConnectionSettings> >connectedMode;
- boost::optional<std::map<std::string, RuleSetting>> rules;
- boost::optional<ConsoleParams> output;
+ boost::optional < bool > disableTelemetry;
+ boost::optional < std::map<std::string, ServerConnectionSettings> >connectedMode;
+ boost::optional<std::map<std::string, RuleSetting>> rules;
+ boost::optional<ConsoleParams> output;
- boost::optional<std::string > pathToNodeExecutable;
+ boost::optional<std::string > pathToNodeExecutable;
- boost::optional< std::map<std::string, std::string > > getConfigurationParameters(const std::string& ruleKey);
+ boost::optional< std::map<std::string, std::string > > getConfigurationParameters(const std::string& ruleKey);
};
MAKE_REFLECT_STRUCT(SonarLintWorkspaceSettings, disableTelemetry, connectedMode,
- rules, output, pathToNodeExecutable)
+ rules, output, pathToNodeExecutable)
- DEFINE_REQUEST_RESPONSE_TYPE(slls_listAllRules, JsonNull, lsp::Any, "sonarlint/listAllRules");
+ DEFINE_REQUEST_RESPONSE_TYPE(slls_listAllRules, JsonNull, lsp::Any, "sonarlint/listAllRules");
@@ -173,4 +173,4 @@ DEFINE_REQUEST_RESPONSE_TYPE(slls_showRuleDescription, ShowRuleDescriptionParams
DEFINE_REQUEST_RESPONSE_TYPE(slls_getJavaConfig, lsDocumentUri, GetJavaConfigResponse, "sonarlint/getJavaConfig");
-DEFINE_NOTIFICATION_TYPE(slls_setTraceNotification, SetTraceNotificationParams, "$/setTraceNotification") \ No newline at end of file
+DEFINE_NOTIFICATION_TYPE(slls_setTraceNotification, SetTraceNotificationParams, "$/setTraceNotification")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
index f10080ea21..c07cc8149d 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/InitializeParams.h
@@ -6,10 +6,10 @@
#include "LibLsp/lsp/workspace/workspaceFolders.h"
struct ClientInfo {
- std::string name;
- boost::optional<std::string> version;
-
- MAKE_SWAP_METHOD(ClientInfo,name,version);
+ std::string name;
+ boost::optional<std::string> version;
+
+ MAKE_SWAP_METHOD(ClientInfo,name,version);
};
MAKE_REFLECT_STRUCT(ClientInfo,name,version);
@@ -19,7 +19,7 @@ struct lsInitializeParams {
// If the parent process is not alive then the server should exit (see exit
// notification) its process.
boost::optional<int> processId;
-
+
/**
* Information about the client
*
@@ -37,7 +37,7 @@ struct lsInitializeParams {
* @since 3.16.0
*/
boost::optional<std::string> locale;
-
+
// The rootPath of the workspace. Is null
// if no folder is open.
//
@@ -64,13 +64,13 @@ struct lsInitializeParams {
boost::optional< std::string >clientName;
-
+
enum class lsTrace {
// NOTE: serialized as a string, one of 'off' | 'messages' | 'verbose';
Off, // off
Messages, // messages
Verbose // verbose
-
+
};
// The initial trace setting. If omitted trace is disabled ('off').
@@ -117,9 +117,9 @@ struct lsInitializeError {
bool retry;
void swap(lsInitializeError& arg) noexcept
{
- auto tem = retry;
- retry = arg.retry;
- arg.retry = tem;
+ auto tem = retry;
+ retry = arg.retry;
+ arg.retry = tem;
}
};
MAKE_REFLECT_STRUCT(lsInitializeError, retry);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
index eb8810939a..2198b158bf 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/initialize.h
@@ -15,7 +15,7 @@
*/
struct InitializeResult {
lsServerCapabilities capabilities;
- MAKE_SWAP_METHOD(InitializeResult, capabilities);
+ MAKE_SWAP_METHOD(InitializeResult, capabilities);
};
MAKE_REFLECT_STRUCT(InitializeResult, capabilities);
@@ -26,7 +26,7 @@ MAKE_REFLECT_STRUCT(InitializeResult, capabilities);
* the server.
*
* If the server receives request or notification before the initialize request it should act as follows:
- * - for a request the respond should be errored with code: -32001. The message can be picked by the server.
+ * - for a request the respond should be errored with code: -32001. The message can be picked by the server.
* - notifications should be dropped, except for the exit notification. This will allow the exit a server without an initialize request.
*
* Until the server has responded to the initialize request with an InitializeResult
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
index fcf6634e13..29129565e4 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsClientCapabilities.h
@@ -10,17 +10,17 @@
* @since 3.16.0
*/
struct MarkdownClientCapabilities {
- /**
- * The name of the parser.
- */
- std::string parser;
-
- /**
- * The version of the parser.
- */
- boost::optional<std::string> version;
- MAKE_SWAP_METHOD(MarkdownClientCapabilities, parser, version)
-
+ /**
+ * The name of the parser.
+ */
+ std::string parser;
+
+ /**
+ * The version of the parser.
+ */
+ boost::optional<std::string> version;
+ MAKE_SWAP_METHOD(MarkdownClientCapabilities, parser, version)
+
};
MAKE_REFLECT_STRUCT(MarkdownClientCapabilities, parser, version)
@@ -32,7 +32,7 @@ struct lsClientCapabilities {
boost::optional<lsTextDocumentClientCapabilities> textDocument;
/**
- * Window specific client capabilities.
+ * Window specific client capabilities.
*/
boost::optional<lsp::Any> window;
/**
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
index 66af2ced6b..d62d3e4dfd 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsServerCapabilities.h
@@ -16,77 +16,77 @@ extern void Reflect(Reader&, std::pair<boost::optional<lsTextDocumentSyncKind>,
// Code Action options.
//
struct CodeActionOptions : WorkDoneProgressOptions {
- //
- // CodeActionKinds that this server may return.
- //
- // The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
- // may list out every specific kind they provide.
- //
- typedef std::string CodeActionKind;
- std::vector<CodeActionKind> codeActionKinds;
-
- MAKE_SWAP_METHOD(CodeActionOptions, workDoneProgress, codeActionKinds);
+ //
+ // CodeActionKinds that this server may return.
+ //
+ // The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
+ // may list out every specific kind they provide.
+ //
+ typedef std::string CodeActionKind;
+ std::vector<CodeActionKind> codeActionKinds;
+
+ MAKE_SWAP_METHOD(CodeActionOptions, workDoneProgress, codeActionKinds);
};
MAKE_REFLECT_STRUCT(CodeActionOptions, workDoneProgress, codeActionKinds)
struct CodeLensOptions : WorkDoneProgressOptions {
- //
- // Code lens has a resolve provider as well.
- //
- boost::optional<bool> resolveProvider ;
- MAKE_SWAP_METHOD(CodeLensOptions, workDoneProgress, resolveProvider);
+ //
+ // Code lens has a resolve provider as well.
+ //
+ boost::optional<bool> resolveProvider ;
+ MAKE_SWAP_METHOD(CodeLensOptions, workDoneProgress, resolveProvider);
};
MAKE_REFLECT_STRUCT(CodeLensOptions, workDoneProgress, resolveProvider)
// Format document on type options
struct lsDocumentOnTypeFormattingOptions :WorkDoneProgressOptions {
- // A character on which formatting should be triggered, like `}`.
- std::string firstTriggerCharacter;
-
- // More trigger characters.
- std::vector<std::string> moreTriggerCharacter;
- MAKE_SWAP_METHOD(lsDocumentOnTypeFormattingOptions, workDoneProgress,
- firstTriggerCharacter,
- moreTriggerCharacter);
+ // A character on which formatting should be triggered, like `}`.
+ std::string firstTriggerCharacter;
+
+ // More trigger characters.
+ std::vector<std::string> moreTriggerCharacter;
+ MAKE_SWAP_METHOD(lsDocumentOnTypeFormattingOptions, workDoneProgress,
+ firstTriggerCharacter,
+ moreTriggerCharacter);
};
MAKE_REFLECT_STRUCT(lsDocumentOnTypeFormattingOptions, workDoneProgress,
- firstTriggerCharacter,
- moreTriggerCharacter);
+ firstTriggerCharacter,
+ moreTriggerCharacter);
struct RenameOptions : WorkDoneProgressOptions {
- //
- // Renames should be checked and tested before being executed.
- //
- boost::optional<bool> prepareProvider;
- MAKE_SWAP_METHOD(RenameOptions, workDoneProgress, prepareProvider);
+ //
+ // Renames should be checked and tested before being executed.
+ //
+ boost::optional<bool> prepareProvider;
+ MAKE_SWAP_METHOD(RenameOptions, workDoneProgress, prepareProvider);
};
MAKE_REFLECT_STRUCT(RenameOptions,workDoneProgress,prepareProvider)
struct DocumentFilter{
- //
- // A language id, like `typescript`.
- //
- boost::optional<std::string> language;
- //
- // A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
- //
- boost::optional<std::string>scheme;
- //
- // A glob pattern, like `*.{ts,js}`.
- //
- // Glob patterns can have the following syntax:
- // - `*` to match one or more characters in a path segment
- // - `?` to match on one character in a path segment
- // - `**` to match any number of path segments, including none
- // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}
- // matches all TypeScript and JavaScript files)
- // - `[]` to declare a range of characters to match in a path segment
- // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
- // - `[!...]` to negate a range of characters to match in a path segment
- // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
- // not `example.0`)
- //
- boost::optional<std::string>pattern;
- MAKE_SWAP_METHOD(DocumentFilter, language, scheme, pattern)
+ //
+ // A language id, like `typescript`.
+ //
+ boost::optional<std::string> language;
+ //
+ // A Uri [scheme](#Uri.scheme), like `file` or `untitled`.
+ //
+ boost::optional<std::string>scheme;
+ //
+ // A glob pattern, like `*.{ts,js}`.
+ //
+ // Glob patterns can have the following syntax:
+ // - `*` to match one or more characters in a path segment
+ // - `?` to match on one character in a path segment
+ // - `**` to match any number of path segments, including none
+ // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}
+ // matches all TypeScript and JavaScript files)
+ // - `[]` to declare a range of characters to match in a path segment
+ // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
+ // - `[!...]` to negate a range of characters to match in a path segment
+ // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
+ // not `example.0`)
+ //
+ boost::optional<std::string>pattern;
+ MAKE_SWAP_METHOD(DocumentFilter, language, scheme, pattern)
};
MAKE_REFLECT_STRUCT(DocumentFilter, language, scheme, pattern)
@@ -95,17 +95,17 @@ using DocumentSelector = std::vector<DocumentFilter>;
// Document link options
struct lsDocumentLinkOptions :WorkDoneProgressOptions {
- // Document links have a resolve provider as well.
- boost::optional<bool> resolveProvider;
- MAKE_SWAP_METHOD(lsDocumentLinkOptions, workDoneProgress, resolveProvider);
+ // Document links have a resolve provider as well.
+ boost::optional<bool> resolveProvider;
+ MAKE_SWAP_METHOD(lsDocumentLinkOptions, workDoneProgress, resolveProvider);
};
MAKE_REFLECT_STRUCT(lsDocumentLinkOptions, workDoneProgress,resolveProvider);
// Execute command options.
struct lsExecuteCommandOptions : WorkDoneProgressOptions {
- // The commands to be executed on the server
- std::vector<std::string> commands;
- MAKE_SWAP_METHOD(lsExecuteCommandOptions, workDoneProgress, commands);
+ // The commands to be executed on the server
+ std::vector<std::string> commands;
+ MAKE_SWAP_METHOD(lsExecuteCommandOptions, workDoneProgress, commands);
};
MAKE_REFLECT_STRUCT(lsExecuteCommandOptions, workDoneProgress, commands);
@@ -116,9 +116,9 @@ struct TextDocumentRegistrationOptions
// A document selector to identify the scope of the registration. If set to null
// the document selector provided on the client side will be used.
//
- boost::optional<DocumentSelector> documentSelector;
+ boost::optional<DocumentSelector> documentSelector;
- MAKE_SWAP_METHOD(TextDocumentRegistrationOptions, documentSelector);
+ MAKE_SWAP_METHOD(TextDocumentRegistrationOptions, documentSelector);
};
MAKE_REFLECT_STRUCT(TextDocumentRegistrationOptions, documentSelector);
@@ -127,12 +127,12 @@ MAKE_REFLECT_STRUCT(TextDocumentRegistrationOptions, documentSelector);
//
struct StaticRegistrationOptions :public TextDocumentRegistrationOptions
{
- //
- // The id used to register the request. The id can be used to deregister
- // the request again. See also Registration#id.
- //
- boost::optional<std::string> id;
- MAKE_SWAP_METHOD(StaticRegistrationOptions, documentSelector, id)
+ //
+ // The id used to register the request. The id can be used to deregister
+ // the request again. See also Registration#id.
+ //
+ boost::optional<std::string> id;
+ MAKE_SWAP_METHOD(StaticRegistrationOptions, documentSelector, id)
};
MAKE_REFLECT_STRUCT(StaticRegistrationOptions, documentSelector,id)
@@ -143,22 +143,22 @@ MAKE_REFLECT_STRUCT(StaticRegistrationOptions, documentSelector,id)
//
struct WorkspaceFoldersOptions {
- //
- // The server has support for workspace folders
- //
- boost::optional<bool> supported;
-
- //
- // Whether the server wants to receive workspace folder
- // change notifications.
- //
- // If a string is provided, the string is treated as an ID
- // under which the notification is registered on the client
- // side. The ID can be used to unregister for these events
- // using the `client/unregisterCapability` request.
- //
- boost::optional<std::pair< boost::optional<std::string>, boost::optional<bool> > > changeNotifications;
- MAKE_SWAP_METHOD(WorkspaceFoldersOptions, supported, changeNotifications);
+ //
+ // The server has support for workspace folders
+ //
+ boost::optional<bool> supported;
+
+ //
+ // Whether the server wants to receive workspace folder
+ // change notifications.
+ //
+ // If a string is provided, the string is treated as an ID
+ // under which the notification is registered on the client
+ // side. The ID can be used to unregister for these events
+ // using the `client/unregisterCapability` request.
+ //
+ boost::optional<std::pair< boost::optional<std::string>, boost::optional<bool> > > changeNotifications;
+ MAKE_SWAP_METHOD(WorkspaceFoldersOptions, supported, changeNotifications);
};
MAKE_REFLECT_STRUCT(WorkspaceFoldersOptions, supported, changeNotifications);
@@ -170,8 +170,8 @@ MAKE_REFLECT_STRUCT(WorkspaceFoldersOptions, supported, changeNotifications);
//
enum lsFileOperationPatternKind
{
- file,
- folder
+ file,
+ folder
};
MAKE_REFLECT_TYPE_PROXY(lsFileOperationPatternKind)
@@ -182,11 +182,11 @@ MAKE_REFLECT_TYPE_PROXY(lsFileOperationPatternKind)
//
struct lsFileOperationPatternOptions {
- //
- // The pattern should be matched ignoring casing.
- //
- boost::optional<bool> ignoreCase;
- MAKE_SWAP_METHOD(lsFileOperationPatternOptions, ignoreCase)
+ //
+ // The pattern should be matched ignoring casing.
+ //
+ boost::optional<bool> ignoreCase;
+ MAKE_SWAP_METHOD(lsFileOperationPatternOptions, ignoreCase)
};
MAKE_REFLECT_STRUCT(lsFileOperationPatternOptions, ignoreCase)
//
@@ -196,33 +196,33 @@ MAKE_REFLECT_STRUCT(lsFileOperationPatternOptions, ignoreCase)
// @since 3.16.0
//
struct lsFileOperationPattern {
- //
- // The glob pattern to match. Glob patterns can have the following syntax:
- // - `*` to match one or more characters in a path segment
- // - `?` to match on one character in a path segment
- // - `**` to match any number of path segments, including none
- // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}`
- // matches all TypeScript and JavaScript files)
- // - `[]` to declare a range of characters to match in a path segment
- // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
- // - `[!...]` to negate a range of characters to match in a path segment
- // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
- // not `example.0`)
- //
- std::string glob;
-
- //
- // Whether to match files or folders with this pattern.
- //
- // Matches both if undefined.
- //
- boost::optional<lsFileOperationPatternKind> matches;
-
- //
- // Additional options used during matching.
- //
- boost::optional<lsFileOperationPatternOptions> options ;
- MAKE_SWAP_METHOD(lsFileOperationPattern, glob, matches, options)
+ //
+ // The glob pattern to match. Glob patterns can have the following syntax:
+ // - `*` to match one or more characters in a path segment
+ // - `?` to match on one character in a path segment
+ // - `**` to match any number of path segments, including none
+ // - `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}`
+ // matches all TypeScript and JavaScript files)
+ // - `[]` to declare a range of characters to match in a path segment
+ // (e.g., `example.[0-9]` to match on `example.0`, `example.1`,...)
+ // - `[!...]` to negate a range of characters to match in a path segment
+ // (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but
+ // not `example.0`)
+ //
+ std::string glob;
+
+ //
+ // Whether to match files or folders with this pattern.
+ //
+ // Matches both if undefined.
+ //
+ boost::optional<lsFileOperationPatternKind> matches;
+
+ //
+ // Additional options used during matching.
+ //
+ boost::optional<lsFileOperationPatternOptions> options ;
+ MAKE_SWAP_METHOD(lsFileOperationPattern, glob, matches, options)
};
MAKE_REFLECT_STRUCT(lsFileOperationPattern, glob, matches, options)
//
@@ -233,16 +233,16 @@ MAKE_REFLECT_STRUCT(lsFileOperationPattern, glob, matches, options)
//
struct lsFileOperationFilter {
- //
- // A Uri like `file` or `untitled`.
- //
- boost::optional<std::string> scheme;
+ //
+ // A Uri like `file` or `untitled`.
+ //
+ boost::optional<std::string> scheme;
- //
- // The actual file operation pattern.
- //
- boost::optional<lsFileOperationPattern> pattern;
- MAKE_SWAP_METHOD(lsFileOperationFilter, scheme, pattern)
+ //
+ // The actual file operation pattern.
+ //
+ boost::optional<lsFileOperationPattern> pattern;
+ MAKE_SWAP_METHOD(lsFileOperationFilter, scheme, pattern)
};
MAKE_REFLECT_STRUCT(lsFileOperationFilter, scheme, pattern)
//
@@ -251,69 +251,69 @@ MAKE_REFLECT_STRUCT(lsFileOperationFilter, scheme, pattern)
// @since 3.16.0
//
struct lsFileOperationRegistrationOptions {
- //
- // The actual filters.
- //
- boost::optional<std::vector<lsFileOperationFilter>> filters;
- MAKE_SWAP_METHOD(lsFileOperationRegistrationOptions, filters)
+ //
+ // The actual filters.
+ //
+ boost::optional<std::vector<lsFileOperationFilter>> filters;
+ MAKE_SWAP_METHOD(lsFileOperationRegistrationOptions, filters)
};
MAKE_REFLECT_STRUCT(lsFileOperationRegistrationOptions, filters)
struct WorkspaceServerCapabilities {
- //
- // The server supports workspace folder.
- //
- // Since 3.6.0
- //
- WorkspaceFoldersOptions workspaceFolders;
-
-
- //
- // The server is interested in file notifications/requests.
- //
- // @since 3.16.0
- //
- struct lsFileOperations
- {
- //
- // The server is interested in receiving didCreateFiles
- // notifications.
- //
- boost::optional<lsFileOperationRegistrationOptions> didCreate;
-
- //
- // The server is interested in receiving willCreateFiles requests.
- //
- boost::optional<lsFileOperationRegistrationOptions> willCreate;
-
- //
- // The server is interested in receiving didRenameFiles
- // notifications.
- //
- boost::optional<lsFileOperationRegistrationOptions> didRename;
-
- //
- // The server is interested in receiving willRenameFiles requests.
- //
- boost::optional<lsFileOperationRegistrationOptions> willRename;
-
- //
- // The server is interested in receiving didDeleteFiles file
- // notifications.
- //
- boost::optional<lsFileOperationRegistrationOptions> didDelete;
-
- //
- // The server is interested in receiving willDeleteFiles file
- // requests.
- //
- boost::optional<lsFileOperationRegistrationOptions> willDelete;
- MAKE_SWAP_METHOD(lsFileOperations, didCreate, willCreate, didRename, willRename, didDelete, willDelete)
- };
- boost::optional<lsFileOperations>fileOperations;
-
-
- MAKE_SWAP_METHOD(WorkspaceServerCapabilities, workspaceFolders, fileOperations)
+ //
+ // The server supports workspace folder.
+ //
+ // Since 3.6.0
+ //
+ WorkspaceFoldersOptions workspaceFolders;
+
+
+ //
+ // The server is interested in file notifications/requests.
+ //
+ // @since 3.16.0
+ //
+ struct lsFileOperations
+ {
+ //
+ // The server is interested in receiving didCreateFiles
+ // notifications.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> didCreate;
+
+ //
+ // The server is interested in receiving willCreateFiles requests.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> willCreate;
+
+ //
+ // The server is interested in receiving didRenameFiles
+ // notifications.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> didRename;
+
+ //
+ // The server is interested in receiving willRenameFiles requests.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> willRename;
+
+ //
+ // The server is interested in receiving didDeleteFiles file
+ // notifications.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> didDelete;
+
+ //
+ // The server is interested in receiving willDeleteFiles file
+ // requests.
+ //
+ boost::optional<lsFileOperationRegistrationOptions> willDelete;
+ MAKE_SWAP_METHOD(lsFileOperations, didCreate, willCreate, didRename, willRename, didDelete, willDelete)
+ };
+ boost::optional<lsFileOperations>fileOperations;
+
+
+ MAKE_SWAP_METHOD(WorkspaceServerCapabilities, workspaceFolders, fileOperations)
};
MAKE_REFLECT_STRUCT(WorkspaceServerCapabilities, workspaceFolders, fileOperations)
MAKE_REFLECT_STRUCT(WorkspaceServerCapabilities::lsFileOperations, didCreate, willCreate, didRename, willRename, didDelete, willDelete)
@@ -328,77 +328,77 @@ MAKE_REFLECT_STRUCT(WorkspaceServerCapabilities::lsFileOperations, didCreate, wi
//
struct SemanticHighlightingServerCapabilities {
- //
- // A "lookup table" of semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">TextMate scopes</a>
- // supported by the language server. If not defined or empty, then the server does not support the semantic highlighting
- // feature. Otherwise, clients should reuse this "lookup table" when receiving semantic highlighting notifications from
- // the server.
- //
- std::vector< std::vector<std::string> > scopes;
- MAKE_SWAP_METHOD(SemanticHighlightingServerCapabilities, scopes)
+ //
+ // A "lookup table" of semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">TextMate scopes</a>
+ // supported by the language server. If not defined or empty, then the server does not support the semantic highlighting
+ // feature. Otherwise, clients should reuse this "lookup table" when receiving semantic highlighting notifications from
+ // the server.
+ //
+ std::vector< std::vector<std::string> > scopes;
+ MAKE_SWAP_METHOD(SemanticHighlightingServerCapabilities, scopes)
};
MAKE_REFLECT_STRUCT(SemanticHighlightingServerCapabilities, scopes)
struct SemanticTokensServerFull
{
- //
- // The server supports deltas for full documents.
- //
- bool delta =false;
- MAKE_SWAP_METHOD(SemanticTokensServerFull, delta)
+ //
+ // The server supports deltas for full documents.
+ //
+ bool delta =false;
+ MAKE_SWAP_METHOD(SemanticTokensServerFull, delta)
};
MAKE_REFLECT_STRUCT(SemanticTokensServerFull, delta)
struct SemanticTokensWithRegistrationOptions
{
- SemanticTokensLegend legend;
-
- //
- // Server supports providing semantic tokens for a specific range
- // of a document.
- //
- boost::optional< std::pair< boost::optional<bool>, boost::optional<lsp::Any> > > range;
-
- //
- // Server supports providing semantic tokens for a full document.
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<SemanticTokensServerFull> > > full;
-
- //
- // A document selector to identify the scope of the registration. If set to null
- // the document selector provided on the client side will be used.
- //
- boost::optional < std::vector<DocumentFilter> > documentSelector;
- //
- // The id used to register the request. The id can be used to deregister
- // the request again. See also Registration#id.
- //
- boost::optional<std::string> id;
- MAKE_SWAP_METHOD(SemanticTokensWithRegistrationOptions, legend, range, full, documentSelector, id)
+ SemanticTokensLegend legend;
+
+ //
+ // Server supports providing semantic tokens for a specific range
+ // of a document.
+ //
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<lsp::Any> > > range;
+
+ //
+ // Server supports providing semantic tokens for a full document.
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<SemanticTokensServerFull> > > full;
+
+ //
+ // A document selector to identify the scope of the registration. If set to null
+ // the document selector provided on the client side will be used.
+ //
+ boost::optional < std::vector<DocumentFilter> > documentSelector;
+ //
+ // The id used to register the request. The id can be used to deregister
+ // the request again. See also Registration#id.
+ //
+ boost::optional<std::string> id;
+ MAKE_SWAP_METHOD(SemanticTokensWithRegistrationOptions, legend, range, full, documentSelector, id)
};
MAKE_REFLECT_STRUCT(SemanticTokensWithRegistrationOptions, legend, range, full, documentSelector ,id)
using DocumentColorOptions = WorkDoneProgressOptions;
using FoldingRangeOptions = WorkDoneProgressOptions;
struct lsServerCapabilities {
- // Defines how text documents are synced. Is either a detailed structure
- // defining each notification or for backwards compatibility the
+ // Defines how text documents are synced. Is either a detailed structure
+ // defining each notification or for backwards compatibility the
- // TextDocumentSyncKind number.
- boost::optional< std::pair<boost::optional<lsTextDocumentSyncKind>,
- boost::optional<lsTextDocumentSyncOptions> >> textDocumentSync;
+ // TextDocumentSyncKind number.
+ boost::optional< std::pair<boost::optional<lsTextDocumentSyncKind>,
+ boost::optional<lsTextDocumentSyncOptions> >> textDocumentSync;
- // The server provides hover support.
- boost::optional<bool> hoverProvider;
+ // The server provides hover support.
+ boost::optional<bool> hoverProvider;
- // The server provides completion support.
- boost::optional < lsCompletionOptions > completionProvider;
+ // The server provides completion support.
+ boost::optional < lsCompletionOptions > completionProvider;
- // The server provides signature help support.
- boost::optional < lsSignatureHelpOptions > signatureHelpProvider;
+ // The server provides signature help support.
+ boost::optional < lsSignatureHelpOptions > signatureHelpProvider;
- // The server provides goto definition support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > definitionProvider;
+ // The server provides goto definition support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > definitionProvider;
//
@@ -406,184 +406,184 @@ struct lsServerCapabilities {
//
// Since 3.6.0
//
- boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > typeDefinitionProvider ;
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > typeDefinitionProvider ;
- // The server provides implementation support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > implementationProvider ;
+ // The server provides implementation support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<StaticRegistrationOptions> > > implementationProvider ;
- // The server provides find references support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > referencesProvider ;
+ // The server provides find references support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > referencesProvider ;
- // The server provides document highlight support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentHighlightProvider ;
+ // The server provides document highlight support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentHighlightProvider ;
- // The server provides document symbol support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentSymbolProvider ;
+ // The server provides document symbol support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentSymbolProvider ;
- // The server provides workspace symbol support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > workspaceSymbolProvider ;
+ // The server provides workspace symbol support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > workspaceSymbolProvider ;
- // The server provides code actions.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<CodeActionOptions> > > codeActionProvider ;
+ // The server provides code actions.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<CodeActionOptions> > > codeActionProvider ;
- // The server provides code lens.
- boost::optional<CodeLensOptions> codeLensProvider;
+ // The server provides code lens.
+ boost::optional<CodeLensOptions> codeLensProvider;
- // The server provides document formatting.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentFormattingProvider ;
+ // The server provides document formatting.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentFormattingProvider ;
- // The server provides document range formatting.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentRangeFormattingProvider ;
+ // The server provides document range formatting.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<WorkDoneProgressOptions> > > documentRangeFormattingProvider ;
- // The server provides document formatting on typing.
- boost::optional<lsDocumentOnTypeFormattingOptions> documentOnTypeFormattingProvider;
+ // The server provides document formatting on typing.
+ boost::optional<lsDocumentOnTypeFormattingOptions> documentOnTypeFormattingProvider;
- // The server provides rename support.
- boost::optional< std::pair< boost::optional<bool>, boost::optional<RenameOptions> > > renameProvider;
+ // The server provides rename support.
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<RenameOptions> > > renameProvider;
- // The server provides document link support.
- boost::optional<lsDocumentLinkOptions > documentLinkProvider;
+ // The server provides document link support.
+ boost::optional<lsDocumentLinkOptions > documentLinkProvider;
-
- //
- // The server provides color provider support.
- //
- // @since 3.6.0
- //
- boost::optional< std::pair< boost::optional<bool>, boost::optional<DocumentColorOptions> > > colorProvider;
-
-
- //
- // The server provides folding provider support.
- //
- // @since 3.10.0
- //
- boost::optional < std::pair< boost::optional<bool>, boost::optional<FoldingRangeOptions> > > foldingRangeProvider;
-
- // The server provides execute command support.
- boost::optional < lsExecuteCommandOptions >executeCommandProvider;
-
-
- //
- // Workspace specific server capabilities
- //
- boost::optional< WorkspaceServerCapabilities > workspace;
-
- //
- // Semantic highlighting server capabilities.
- //
-
- boost::optional< SemanticHighlightingServerCapabilities >semanticHighlighting;
-
- //
- // Server capability for calculating super- and subtype hierarchies.
- // The LS supports the type hierarchy language feature, if this capability is set to {@code true}.
- //
- // <p>
- // <b>Note:</b> the <a href=
- // "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
- // language feature</a> is not yet part of the official LSP specification.
- //
-
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > typeHierarchyProvider;
-
- //
- // The server provides Call Hierarchy support.
- //
-
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > callHierarchyProvider;
-
- //
- // The server provides selection range support.
- //
- // Since 3.15.0
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > selectionRangeProvider;
-
- //
- // The server provides linked editing range support.
- //
- // Since 3.16.0
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > linkedEditingRangeProvider;
-
-
- //
- // The server provides semantic tokens support.
- //
- // Since 3.16.0
- //
- boost::optional < SemanticTokensWithRegistrationOptions> semanticTokensProvider;
-
- //
- // Whether server provides moniker support.
- //
- // Since 3.16.0
- //
- boost::optional< std::pair< boost::optional<bool>,
- boost::optional<StaticRegistrationOptions> > > monikerProvider;
-
- boost::optional<lsp::Any> experimental;
-
-
- MAKE_SWAP_METHOD(lsServerCapabilities,
- textDocumentSync,
- hoverProvider,
- completionProvider,
- signatureHelpProvider,
- definitionProvider,
- typeDefinitionProvider,
- implementationProvider,
- referencesProvider,
- documentHighlightProvider,
- documentSymbolProvider,
- workspaceSymbolProvider,
- codeActionProvider,
- codeLensProvider,
- documentFormattingProvider,
- documentRangeFormattingProvider,
- documentOnTypeFormattingProvider,
- renameProvider,
- documentLinkProvider,
- executeCommandProvider,
- workspace,
- semanticHighlighting,
- typeHierarchyProvider,
- callHierarchyProvider,
- selectionRangeProvider,
- experimental, colorProvider, foldingRangeProvider,
- linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
+
+ //
+ // The server provides color provider support.
+ //
+ // @since 3.6.0
+ //
+ boost::optional< std::pair< boost::optional<bool>, boost::optional<DocumentColorOptions> > > colorProvider;
+
+
+ //
+ // The server provides folding provider support.
+ //
+ // @since 3.10.0
+ //
+ boost::optional < std::pair< boost::optional<bool>, boost::optional<FoldingRangeOptions> > > foldingRangeProvider;
+
+ // The server provides execute command support.
+ boost::optional < lsExecuteCommandOptions >executeCommandProvider;
+
+
+ //
+ // Workspace specific server capabilities
+ //
+ boost::optional< WorkspaceServerCapabilities > workspace;
+
+ //
+ // Semantic highlighting server capabilities.
+ //
+
+ boost::optional< SemanticHighlightingServerCapabilities >semanticHighlighting;
+
+ //
+ // Server capability for calculating super- and subtype hierarchies.
+ // The LS supports the type hierarchy language feature, if this capability is set to {@code true}.
+ //
+ // <p>
+ // <b>Note:</b> the <a href=
+ // "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
+ // language feature</a> is not yet part of the official LSP specification.
+ //
+
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > typeHierarchyProvider;
+
+ //
+ // The server provides Call Hierarchy support.
+ //
+
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > callHierarchyProvider;
+
+ //
+ // The server provides selection range support.
+ //
+ // Since 3.15.0
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > selectionRangeProvider;
+
+ //
+ // The server provides linked editing range support.
+ //
+ // Since 3.16.0
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > linkedEditingRangeProvider;
+
+
+ //
+ // The server provides semantic tokens support.
+ //
+ // Since 3.16.0
+ //
+ boost::optional < SemanticTokensWithRegistrationOptions> semanticTokensProvider;
+
+ //
+ // Whether server provides moniker support.
+ //
+ // Since 3.16.0
+ //
+ boost::optional< std::pair< boost::optional<bool>,
+ boost::optional<StaticRegistrationOptions> > > monikerProvider;
+
+ boost::optional<lsp::Any> experimental;
+
+
+ MAKE_SWAP_METHOD(lsServerCapabilities,
+ textDocumentSync,
+ hoverProvider,
+ completionProvider,
+ signatureHelpProvider,
+ definitionProvider,
+ typeDefinitionProvider,
+ implementationProvider,
+ referencesProvider,
+ documentHighlightProvider,
+ documentSymbolProvider,
+ workspaceSymbolProvider,
+ codeActionProvider,
+ codeLensProvider,
+ documentFormattingProvider,
+ documentRangeFormattingProvider,
+ documentOnTypeFormattingProvider,
+ renameProvider,
+ documentLinkProvider,
+ executeCommandProvider,
+ workspace,
+ semanticHighlighting,
+ typeHierarchyProvider,
+ callHierarchyProvider,
+ selectionRangeProvider,
+ experimental, colorProvider, foldingRangeProvider,
+ linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
};
MAKE_REFLECT_STRUCT(lsServerCapabilities,
- textDocumentSync,
- hoverProvider,
- completionProvider,
- signatureHelpProvider,
- definitionProvider,
- typeDefinitionProvider,
- implementationProvider,
- referencesProvider,
- documentHighlightProvider,
- documentSymbolProvider,
- workspaceSymbolProvider,
- codeActionProvider,
- codeLensProvider,
- documentFormattingProvider,
- documentRangeFormattingProvider,
- documentOnTypeFormattingProvider,
- renameProvider,
- documentLinkProvider,
- executeCommandProvider,
- workspace,
- semanticHighlighting,
- typeHierarchyProvider,
- callHierarchyProvider,
- selectionRangeProvider,
- experimental, colorProvider, foldingRangeProvider,
- linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
+ textDocumentSync,
+ hoverProvider,
+ completionProvider,
+ signatureHelpProvider,
+ definitionProvider,
+ typeDefinitionProvider,
+ implementationProvider,
+ referencesProvider,
+ documentHighlightProvider,
+ documentSymbolProvider,
+ workspaceSymbolProvider,
+ codeActionProvider,
+ codeLensProvider,
+ documentFormattingProvider,
+ documentRangeFormattingProvider,
+ documentOnTypeFormattingProvider,
+ renameProvider,
+ documentLinkProvider,
+ executeCommandProvider,
+ workspace,
+ semanticHighlighting,
+ typeHierarchyProvider,
+ callHierarchyProvider,
+ selectionRangeProvider,
+ experimental, colorProvider, foldingRangeProvider,
+ linkedEditingRangeProvider, monikerProvider, semanticTokensProvider)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
index 569f203c7a..4e66bcb7ae 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsTextDocumentClientCapabilities.h
@@ -14,8 +14,8 @@
struct WorkDoneProgressOptions
{
- boost::optional<bool>workDoneProgress;
- MAKE_SWAP_METHOD(WorkDoneProgressOptions, workDoneProgress);
+ boost::optional<bool>workDoneProgress;
+ MAKE_SWAP_METHOD(WorkDoneProgressOptions, workDoneProgress);
};
MAKE_REFLECT_STRUCT(WorkDoneProgressOptions, workDoneProgress);
@@ -58,9 +58,9 @@ struct lsSaveOptions {
bool includeText = false;
void swap(lsSaveOptions& arg)noexcept
{
- auto temp = includeText;
- includeText = arg.includeText;
- arg.includeText = temp;
+ auto temp = includeText;
+ includeText = arg.includeText;
+ arg.includeText = temp;
}
};
MAKE_REFLECT_STRUCT(lsSaveOptions, includeText);
@@ -114,11 +114,11 @@ struct lsTextDocumentSyncOptions {
boost::optional<lsSaveOptions> save;
MAKE_SWAP_METHOD(lsTextDocumentSyncOptions,
- openClose,
- change,
- willSave,
- willSaveWaitUntil,
- save);
+ openClose,
+ change,
+ willSave,
+ willSaveWaitUntil,
+ save);
};
MAKE_REFLECT_STRUCT(lsTextDocumentSyncOptions,
openClose,
@@ -128,402 +128,402 @@ MAKE_REFLECT_STRUCT(lsTextDocumentSyncOptions,
save);
struct SynchronizationCapabilities {
- // Whether text document synchronization supports dynamic registration.
- boost::optional<bool> dynamicRegistration;
+ // Whether text document synchronization supports dynamic registration.
+ boost::optional<bool> dynamicRegistration;
- // The client supports sending will save notifications.
- boost::optional<bool> willSave;
+ // The client supports sending will save notifications.
+ boost::optional<bool> willSave;
- // The client supports sending a will save request and
- // waits for a response providing text edits which will
- // be applied to the document before it is saved.
- boost::optional<bool> willSaveWaitUntil;
+ // The client supports sending a will save request and
+ // waits for a response providing text edits which will
+ // be applied to the document before it is saved.
+ boost::optional<bool> willSaveWaitUntil;
- // The client supports did save notifications.
- boost::optional<bool> didSave;
+ // The client supports did save notifications.
+ boost::optional<bool> didSave;
- MAKE_SWAP_METHOD(SynchronizationCapabilities,
- dynamicRegistration,
- willSave,
- willSaveWaitUntil,
- didSave);
+ MAKE_SWAP_METHOD(SynchronizationCapabilities,
+ dynamicRegistration,
+ willSave,
+ willSaveWaitUntil,
+ didSave);
};
MAKE_REFLECT_STRUCT(SynchronizationCapabilities,
- dynamicRegistration,
- willSave,
- willSaveWaitUntil,
- didSave);
+ dynamicRegistration,
+ willSave,
+ willSaveWaitUntil,
+ didSave);
struct CompletionItemKindCapabilities
{
- boost::optional<std::vector<lsCompletionItemKind> >valueSet;
- MAKE_SWAP_METHOD(CompletionItemKindCapabilities, valueSet);
+ boost::optional<std::vector<lsCompletionItemKind> >valueSet;
+ MAKE_SWAP_METHOD(CompletionItemKindCapabilities, valueSet);
};
MAKE_REFLECT_STRUCT(CompletionItemKindCapabilities, valueSet);
struct CompletionItemCapabilities {
- // Client supports snippets as insert text.
- //
- // A snippet can define tab stops and placeholders with `$1`, `$2`
- // and `${3:foo}`. `$0` defines the final tab stop, it defaults to
- // the end of the snippet. Placeholders with equal identifiers are linked,
- // that is typing in one will update others too.
- boost::optional<bool> snippetSupport;
+ // Client supports snippets as insert text.
+ //
+ // A snippet can define tab stops and placeholders with `$1`, `$2`
+ // and `${3:foo}`. `$0` defines the final tab stop, it defaults to
+ // the end of the snippet. Placeholders with equal identifiers are linked,
+ // that is typing in one will update others too.
+ boost::optional<bool> snippetSupport;
// Client supports commit characters on a completion item.
- boost::optional<bool> commitCharactersSupport;
+ boost::optional<bool> commitCharactersSupport;
// Client supports the following content formats for the documentation
// property. The order describes the preferred format of the client.
- boost::optional< std::vector<std::string> > documentationFormat;
+ boost::optional< std::vector<std::string> > documentationFormat;
// Client supports the deprecated property on a completion item.
- boost::optional<bool> deprecatedSupport;
+ boost::optional<bool> deprecatedSupport;
- //
- // Client supports the preselect property on a completion item.
- //
- boost::optional<bool> preselectSupport;
+ //
+ // Client supports the preselect property on a completion item.
+ //
+ boost::optional<bool> preselectSupport;
- MAKE_SWAP_METHOD(CompletionItemCapabilities,
- snippetSupport,
- commitCharactersSupport,
- documentationFormat,
- deprecatedSupport, preselectSupport);
+ MAKE_SWAP_METHOD(CompletionItemCapabilities,
+ snippetSupport,
+ commitCharactersSupport,
+ documentationFormat,
+ deprecatedSupport, preselectSupport);
};
MAKE_REFLECT_STRUCT(CompletionItemCapabilities,
- snippetSupport,
- commitCharactersSupport,
- documentationFormat,
- deprecatedSupport, preselectSupport);
+ snippetSupport,
+ commitCharactersSupport,
+ documentationFormat,
+ deprecatedSupport, preselectSupport);
//
// Capabilities specific to the `textDocument/completion`
//
struct CompletionCapabilities {
- // Whether completion supports dynamic registration.
- boost::optional<bool> dynamicRegistration;
+ // Whether completion supports dynamic registration.
+ boost::optional<bool> dynamicRegistration;
- // The client supports the following `CompletionItem` specific
- // capabilities.
- boost::optional<CompletionItemCapabilities> completionItem;
+ // The client supports the following `CompletionItem` specific
+ // capabilities.
+ boost::optional<CompletionItemCapabilities> completionItem;
- //
- // The client supports the following `CompletionItemKind` specific
- // capabilities.
- //
- boost::optional<CompletionItemKindCapabilities> completionItemKind;
+ //
+ // The client supports the following `CompletionItemKind` specific
+ // capabilities.
+ //
+ boost::optional<CompletionItemKindCapabilities> completionItemKind;
- //
- // The client supports sending additional context information for a
- // `textDocument/completion` request.
- //
- boost::optional<bool> contextSupport;
+ //
+ // The client supports sending additional context information for a
+ // `textDocument/completion` request.
+ //
+ boost::optional<bool> contextSupport;
- MAKE_SWAP_METHOD(CompletionCapabilities,
- dynamicRegistration,
- completionItem, completionItemKind);
+ MAKE_SWAP_METHOD(CompletionCapabilities,
+ dynamicRegistration,
+ completionItem, completionItemKind);
};
MAKE_REFLECT_STRUCT(CompletionCapabilities,
- dynamicRegistration,
- completionItem , completionItemKind);
+ dynamicRegistration,
+ completionItem , completionItemKind);
struct HoverCapabilities:public DynamicRegistrationCapabilities
{
- //
+ //
// Client supports the following content formats for the content
// property. The order describes the preferred format of the client.
//
// See {@link MarkupKind} for allowed values.
//
- boost::optional<std::vector<std::string>> contentFormat;
+ boost::optional<std::vector<std::string>> contentFormat;
- MAKE_SWAP_METHOD(HoverCapabilities, dynamicRegistration, contentFormat);
+ MAKE_SWAP_METHOD(HoverCapabilities, dynamicRegistration, contentFormat);
};
MAKE_REFLECT_STRUCT(HoverCapabilities, dynamicRegistration, contentFormat);
//
// Client capabilities specific to parameter information.
//
-struct ParameterInformationCapabilities {
- //
- // The client supports processing label offsets instead of a
- // simple label string.
- //
- // Since 3.14.0
- //
- boost::optional<bool> labelOffsetSupport;
-
- MAKE_SWAP_METHOD(ParameterInformationCapabilities, labelOffsetSupport);
+struct ParameterInformationCapabilities {
+ //
+ // The client supports processing label offsets instead of a
+ // simple label string.
+ //
+ // Since 3.14.0
+ //
+ boost::optional<bool> labelOffsetSupport;
+
+ MAKE_SWAP_METHOD(ParameterInformationCapabilities, labelOffsetSupport);
};
MAKE_REFLECT_STRUCT(ParameterInformationCapabilities, labelOffsetSupport)
struct SignatureInformationCapabilities {
- //
- // Client supports the following content formats for the documentation
- // property. The order describes the preferred format of the client.
- //
- // See {@link MarkupKind} for allowed values.
- //
- std::vector<std::string> documentationFormat;
-
- //
- // Client capabilities specific to parameter information.
- //
- ParameterInformationCapabilities parameterInformation;
-
- MAKE_SWAP_METHOD(SignatureInformationCapabilities, documentationFormat, parameterInformation)
+ //
+ // Client supports the following content formats for the documentation
+ // property. The order describes the preferred format of the client.
+ //
+ // See {@link MarkupKind} for allowed values.
+ //
+ std::vector<std::string> documentationFormat;
+
+ //
+ // Client capabilities specific to parameter information.
+ //
+ ParameterInformationCapabilities parameterInformation;
+
+ MAKE_SWAP_METHOD(SignatureInformationCapabilities, documentationFormat, parameterInformation)
};
MAKE_REFLECT_STRUCT(SignatureInformationCapabilities,documentationFormat, parameterInformation)
struct SignatureHelpCapabilities :public DynamicRegistrationCapabilities
{
- //
- // The client supports the following `SignatureInformation`
- // specific properties.
- //
- boost::optional< SignatureInformationCapabilities > signatureInformation;
+ //
+ // The client supports the following `SignatureInformation`
+ // specific properties.
+ //
+ boost::optional< SignatureInformationCapabilities > signatureInformation;
- MAKE_SWAP_METHOD(SignatureHelpCapabilities, dynamicRegistration, signatureInformation)
+ MAKE_SWAP_METHOD(SignatureHelpCapabilities, dynamicRegistration, signatureInformation)
};
MAKE_REFLECT_STRUCT(SignatureHelpCapabilities, dynamicRegistration, signatureInformation)
struct DocumentSymbolCapabilities :public DynamicRegistrationCapabilities {
- //
- // Specific capabilities for the `SymbolKind`.
- //
- boost::optional<SymbolKindCapabilities> symbolKind;
+ //
+ // Specific capabilities for the `SymbolKind`.
+ //
+ boost::optional<SymbolKindCapabilities> symbolKind;
- //
- // The client support hierarchical document symbols.
- //
- boost::optional<bool> hierarchicalDocumentSymbolSupport;
+ //
+ // The client support hierarchical document symbols.
+ //
+ boost::optional<bool> hierarchicalDocumentSymbolSupport;
- MAKE_SWAP_METHOD(DocumentSymbolCapabilities, dynamicRegistration, symbolKind, hierarchicalDocumentSymbolSupport)
+ MAKE_SWAP_METHOD(DocumentSymbolCapabilities, dynamicRegistration, symbolKind, hierarchicalDocumentSymbolSupport)
};
MAKE_REFLECT_STRUCT(DocumentSymbolCapabilities, dynamicRegistration, symbolKind, hierarchicalDocumentSymbolSupport)
struct DeclarationCapabilities:public DynamicRegistrationCapabilities{
- //
- // The client supports additional metadata in the form of declaration links.
- //
- boost::optional<bool>linkSupport;
+ //
+ // The client supports additional metadata in the form of declaration links.
+ //
+ boost::optional<bool>linkSupport;
- MAKE_SWAP_METHOD(DeclarationCapabilities, dynamicRegistration, linkSupport);
+ MAKE_SWAP_METHOD(DeclarationCapabilities, dynamicRegistration, linkSupport);
};
MAKE_REFLECT_STRUCT(DeclarationCapabilities, dynamicRegistration, linkSupport)
struct CodeActionKindCapabilities
{
- //
- // The code action kind values the client supports. When this
- // property exists the client also guarantees that it will
- // handle values outside its set gracefully and falls back
- // to a default value when unknown.
- //
- // See {@link CodeActionKind} for allowed values.
- //
- boost::optional< std::vector< std::string> >valueSet;
-
- MAKE_SWAP_METHOD(CodeActionKindCapabilities, valueSet)
+ //
+ // The code action kind values the client supports. When this
+ // property exists the client also guarantees that it will
+ // handle values outside its set gracefully and falls back
+ // to a default value when unknown.
+ //
+ // See {@link CodeActionKind} for allowed values.
+ //
+ boost::optional< std::vector< std::string> >valueSet;
+
+ MAKE_SWAP_METHOD(CodeActionKindCapabilities, valueSet)
};
MAKE_REFLECT_STRUCT(CodeActionKindCapabilities,valueSet)
struct CodeActionLiteralSupportCapabilities
{
- boost::optional<CodeActionKindCapabilities> codeActionKind;
+ boost::optional<CodeActionKindCapabilities> codeActionKind;
- MAKE_SWAP_METHOD(CodeActionLiteralSupportCapabilities, codeActionKind)
+ MAKE_SWAP_METHOD(CodeActionLiteralSupportCapabilities, codeActionKind)
};
MAKE_REFLECT_STRUCT(CodeActionLiteralSupportCapabilities, codeActionKind)
struct CodeActionCapabilities:public DynamicRegistrationCapabilities{
- //
+ //
// The client support code action literals as a valid
// response of the `textDocument/codeAction` request.
//
- boost::optional<CodeActionLiteralSupportCapabilities> codeActionLiteralSupport;
+ boost::optional<CodeActionLiteralSupportCapabilities> codeActionLiteralSupport;
- MAKE_SWAP_METHOD(CodeActionCapabilities, dynamicRegistration, codeActionLiteralSupport)
+ MAKE_SWAP_METHOD(CodeActionCapabilities, dynamicRegistration, codeActionLiteralSupport)
};
MAKE_REFLECT_STRUCT(CodeActionCapabilities,dynamicRegistration,codeActionLiteralSupport)
struct RenameCapabilities :public DynamicRegistrationCapabilities {
- //
+ //
// The client support code action literals as a valid
// response of the `textDocument/codeAction` request.
//
- boost::optional<bool> prepareSupport;
+ boost::optional<bool> prepareSupport;
- MAKE_SWAP_METHOD(RenameCapabilities, dynamicRegistration, prepareSupport)
+ MAKE_SWAP_METHOD(RenameCapabilities, dynamicRegistration, prepareSupport)
};
MAKE_REFLECT_STRUCT(RenameCapabilities, dynamicRegistration, prepareSupport)
struct DiagnosticsTagSupport {
- /**
- * The tags supported by the client.
- */
- std::vector<DiagnosticTag> valueSet;
- MAKE_SWAP_METHOD(DiagnosticsTagSupport, valueSet)
+ /**
+ * The tags supported by the client.
+ */
+ std::vector<DiagnosticTag> valueSet;
+ MAKE_SWAP_METHOD(DiagnosticsTagSupport, valueSet)
};
MAKE_REFLECT_STRUCT(DiagnosticsTagSupport, valueSet)
struct PublishDiagnosticsClientCapabilities :public DynamicRegistrationCapabilities {
- /**
+ /**
* The client support code action literals as a valid
* response of the `textDocument/codeAction` request.
*/
- boost::optional<bool> relatedInformation;
-
- /**
- * Client supports the tag property to provide meta data about a diagnostic.
- * Clients supporting tags have to handle unknown tags gracefully.
- *
- * This property had been added and implemented as boolean before it was
- * added to the specification as {@link DiagnosticsTagSupport}. In order to
- * keep this implementation compatible with intermediate clients (including
- * vscode-language-client < 6.0.0) we add an either type here.
- *
- * Since 3.15
- */
- boost::optional < std::pair<boost::optional<bool>, boost::optional<DiagnosticsTagSupport> > > tagSupport;
-
- /**
- * Whether the client interprets the version property of the
- * `textDocument/publishDiagnostics` notification's parameter.
- *
- * Since 3.15.0
- */
- boost::optional<bool> versionSupport;
-
- /**
+ boost::optional<bool> relatedInformation;
+
+ /**
+ * Client supports the tag property to provide meta data about a diagnostic.
+ * Clients supporting tags have to handle unknown tags gracefully.
+ *
+ * This property had been added and implemented as boolean before it was
+ * added to the specification as {@link DiagnosticsTagSupport}. In order to
+ * keep this implementation compatible with intermediate clients (including
+ * vscode-language-client < 6.0.0) we add an either type here.
+ *
+ * Since 3.15
+ */
+ boost::optional < std::pair<boost::optional<bool>, boost::optional<DiagnosticsTagSupport> > > tagSupport;
+
+ /**
+ * Whether the client interprets the version property of the
+ * `textDocument/publishDiagnostics` notification's parameter.
+ *
+ * Since 3.15.0
+ */
+ boost::optional<bool> versionSupport;
+
+ /**
* Client supports a codeDescription property
*
* @since 3.16.0
*/
- boost::optional<bool> codeDescriptionSupport ;
+ boost::optional<bool> codeDescriptionSupport ;
- /**
- * Whether code action supports the `data` property which is
- * preserved between a `textDocument/publishDiagnostics` and
- * `textDocument/codeAction` request.
- *
- * @since 3.16.0
- */
- boost::optional<bool> dataSupport ;
+ /**
+ * Whether code action supports the `data` property which is
+ * preserved between a `textDocument/publishDiagnostics` and
+ * `textDocument/codeAction` request.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<bool> dataSupport ;
- MAKE_SWAP_METHOD(PublishDiagnosticsClientCapabilities, dynamicRegistration, relatedInformation, tagSupport,versionSupport,codeDescriptionSupport,dataSupport)
+ MAKE_SWAP_METHOD(PublishDiagnosticsClientCapabilities, dynamicRegistration, relatedInformation, tagSupport,versionSupport,codeDescriptionSupport,dataSupport)
};
MAKE_REFLECT_STRUCT(PublishDiagnosticsClientCapabilities, dynamicRegistration, relatedInformation, tagSupport, versionSupport, codeDescriptionSupport, dataSupport)
struct FoldingRangeCapabilities :public DynamicRegistrationCapabilities {
- //
- // The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
- // hint, servers are free to follow the limit.
- //
- boost::optional<int> rangeLimit;
-
- //
- // If set, the client signals that it only supports folding complete lines. If set, client will
- // ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
- //
- boost::optional<bool> lineFoldingOnly;
- MAKE_SWAP_METHOD(FoldingRangeCapabilities, dynamicRegistration, rangeLimit, lineFoldingOnly)
+ //
+ // The maximum number of folding ranges that the client prefers to receive per document. The value serves as a
+ // hint, servers are free to follow the limit.
+ //
+ boost::optional<int> rangeLimit;
+
+ //
+ // If set, the client signals that it only supports folding complete lines. If set, client will
+ // ignore specified `startCharacter` and `endCharacter` properties in a FoldingRange.
+ //
+ boost::optional<bool> lineFoldingOnly;
+ MAKE_SWAP_METHOD(FoldingRangeCapabilities, dynamicRegistration, rangeLimit, lineFoldingOnly)
};
MAKE_REFLECT_STRUCT(FoldingRangeCapabilities, dynamicRegistration, rangeLimit,lineFoldingOnly)
struct SemanticHighlightingCapabilities :public DynamicRegistrationCapabilities {
- //
+ //
// The client support code action literals as a valid
// response of the `textDocument/codeAction` request.
//
- boost::optional<bool> semanticHighlighting;
+ boost::optional<bool> semanticHighlighting;
- MAKE_SWAP_METHOD(SemanticHighlightingCapabilities, dynamicRegistration, semanticHighlighting)
+ MAKE_SWAP_METHOD(SemanticHighlightingCapabilities, dynamicRegistration, semanticHighlighting)
};
MAKE_REFLECT_STRUCT(SemanticHighlightingCapabilities, dynamicRegistration, semanticHighlighting)
struct SemanticTokensClientCapabilitiesRequestsFull {
- //
- // The client will send the `textDocument/semanticTokens/full/delta` request if
- // the server provides a corresponding handler.
- //
- bool delta = false;
- MAKE_SWAP_METHOD(SemanticTokensClientCapabilitiesRequestsFull, delta)
+ //
+ // The client will send the `textDocument/semanticTokens/full/delta` request if
+ // the server provides a corresponding handler.
+ //
+ bool delta = false;
+ MAKE_SWAP_METHOD(SemanticTokensClientCapabilitiesRequestsFull, delta)
};
MAKE_REFLECT_STRUCT(SemanticTokensClientCapabilitiesRequestsFull, delta)
struct SemanticTokensClientCapabilities : public DynamicRegistrationCapabilities
{
- //export TokenFormat = 'relative';
- struct lsRequests
- {
- //
- // The client will send the `textDocument/semanticTokens/range` request
- // if the server provides a corresponding handler.
- //
- boost::optional<std::pair< boost::optional<bool>,
- boost::optional<SemanticTokensClientCapabilitiesRequestsFull>>> range;
- //
- // The client will send the `textDocument/semanticTokens/full` request
- // if the server provides a corresponding handler.
- //
- boost::optional<std::pair< boost::optional<bool>, boost::optional<lsp::Any>>> full;
- MAKE_SWAP_METHOD(lsRequests, range, full)
- };
-
- lsRequests requests;
- //
- // The token types that the client supports.
- //
- std::vector<std::string> tokenTypes;
-
- //
- // The token modifiers that the client supports.
- //
- std::vector<std::string> tokenModifiers;
- //
- // The formats the clients supports.
- //
- std::vector<std::string> formats;
- //
- // Whether the client supports tokens that can overlap each other.
- //
- boost::optional < bool >overlappingTokenSupport;
-
- //
- // Whether the client supports tokens that can span multiple lines.
- //
- boost::optional < bool > multilineTokenSupport;
-
- MAKE_SWAP_METHOD(SemanticTokensClientCapabilities, dynamicRegistration,requests, tokenTypes, tokenModifiers,
- formats, overlappingTokenSupport, multilineTokenSupport)
+ //export TokenFormat = 'relative';
+ struct lsRequests
+ {
+ //
+ // The client will send the `textDocument/semanticTokens/range` request
+ // if the server provides a corresponding handler.
+ //
+ boost::optional<std::pair< boost::optional<bool>,
+ boost::optional<SemanticTokensClientCapabilitiesRequestsFull>>> range;
+ //
+ // The client will send the `textDocument/semanticTokens/full` request
+ // if the server provides a corresponding handler.
+ //
+ boost::optional<std::pair< boost::optional<bool>, boost::optional<lsp::Any>>> full;
+ MAKE_SWAP_METHOD(lsRequests, range, full)
+ };
+
+ lsRequests requests;
+ //
+ // The token types that the client supports.
+ //
+ std::vector<std::string> tokenTypes;
+
+ //
+ // The token modifiers that the client supports.
+ //
+ std::vector<std::string> tokenModifiers;
+ //
+ // The formats the clients supports.
+ //
+ std::vector<std::string> formats;
+ //
+ // Whether the client supports tokens that can overlap each other.
+ //
+ boost::optional < bool >overlappingTokenSupport;
+
+ //
+ // Whether the client supports tokens that can span multiple lines.
+ //
+ boost::optional < bool > multilineTokenSupport;
+
+ MAKE_SWAP_METHOD(SemanticTokensClientCapabilities, dynamicRegistration,requests, tokenTypes, tokenModifiers,
+ formats, overlappingTokenSupport, multilineTokenSupport)
};
MAKE_REFLECT_STRUCT(SemanticTokensClientCapabilities::lsRequests, range,full)
MAKE_REFLECT_STRUCT(SemanticTokensClientCapabilities, dynamicRegistration, requests, tokenTypes, tokenModifiers,
- formats, overlappingTokenSupport, multilineTokenSupport)
+ formats, overlappingTokenSupport, multilineTokenSupport)
// Text document specific client capabilities.
struct lsTextDocumentClientCapabilities {
- SynchronizationCapabilities synchronization;
+ SynchronizationCapabilities synchronization;
// Capabilities specific to the `textDocument/completion`
@@ -641,10 +641,10 @@ struct lsTextDocumentClientCapabilities {
boost::optional< DynamicRegistrationCapabilities > selectionRange;
//
- // Capabilities specific to the `textDocument/linkedEditingRange` request.
- //
- // @since 3.16.0
- //
+ // Capabilities specific to the `textDocument/linkedEditingRange` request.
+ //
+ // @since 3.16.0
+ //
boost::optional< DynamicRegistrationCapabilities > linkedEditingRange;
//
@@ -669,45 +669,45 @@ struct lsTextDocumentClientCapabilities {
boost::optional< DynamicRegistrationCapabilities > moniker;
MAKE_SWAP_METHOD(lsTextDocumentClientCapabilities,
- synchronization,
- completion,
- hover,
- signatureHelp,
- implementation,
- references,
- documentHighlight,
- documentSymbol,
- formatting,
- rangeFormatting,
- onTypeFormatting,
- declaration,
- definition, typeDefinition, implementation,
- codeAction,
- codeLens,
- documentLink, colorProvider,
- rename, publishDiagnostics, foldingRange,
- semanticHighlightingCapabilities, typeHierarchyCapabilities,
- callHierarchy, selectionRange , linkedEditingRange, semanticTokens, moniker)
+ synchronization,
+ completion,
+ hover,
+ signatureHelp,
+ implementation,
+ references,
+ documentHighlight,
+ documentSymbol,
+ formatting,
+ rangeFormatting,
+ onTypeFormatting,
+ declaration,
+ definition, typeDefinition, implementation,
+ codeAction,
+ codeLens,
+ documentLink, colorProvider,
+ rename, publishDiagnostics, foldingRange,
+ semanticHighlightingCapabilities, typeHierarchyCapabilities,
+ callHierarchy, selectionRange , linkedEditingRange, semanticTokens, moniker)
};
MAKE_REFLECT_STRUCT(lsTextDocumentClientCapabilities,
- synchronization,
- completion,
- hover,
- signatureHelp,
- implementation,
- references,
- documentHighlight,
- documentSymbol,
- formatting,
- rangeFormatting,
- onTypeFormatting,
- declaration,
- definition, typeDefinition, implementation,
- codeAction,
- codeLens,
- documentLink, colorProvider,
- rename, publishDiagnostics, foldingRange,
- semanticHighlightingCapabilities, typeHierarchyCapabilities,
- callHierarchy, selectionRange, linkedEditingRange, semanticTokens, moniker)
+ synchronization,
+ completion,
+ hover,
+ signatureHelp,
+ implementation,
+ references,
+ documentHighlight,
+ documentSymbol,
+ formatting,
+ rangeFormatting,
+ onTypeFormatting,
+ declaration,
+ definition, typeDefinition, implementation,
+ codeAction,
+ codeLens,
+ documentLink, colorProvider,
+ rename, publishDiagnostics, foldingRange,
+ semanticHighlightingCapabilities, typeHierarchyCapabilities,
+ callHierarchy, selectionRange, linkedEditingRange, semanticTokens, moniker)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
index dd37a1af2f..ee672aa111 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/lsWorkspaceClientCapabilites.h
@@ -21,90 +21,90 @@
struct lschangeAnnotationSupport
{
- /**
- * Whether the client groups edits with equal labels into tree nodes,
- * for instance all edits labelled with "Changes in Strings" would
- * be a tree node.
- */
- boost::optional<bool> groupsOnLabel;
- MAKE_SWAP_METHOD(lschangeAnnotationSupport, groupsOnLabel)
+ /**
+ * Whether the client groups edits with equal labels into tree nodes,
+ * for instance all edits labelled with "Changes in Strings" would
+ * be a tree node.
+ */
+ boost::optional<bool> groupsOnLabel;
+ MAKE_SWAP_METHOD(lschangeAnnotationSupport, groupsOnLabel)
};
MAKE_REFLECT_STRUCT(lschangeAnnotationSupport, groupsOnLabel)
struct WorkspaceEditCapabilities {
- /**
- * The client supports versioned document changes in `WorkspaceEdit`s
- */
- boost::optional<bool> documentChanges;
-
- /**
- * The client supports resource changes
- * in `WorkspaceEdit`s.
- *
- * @deprecated Since LSP introduces resource operations, use {link #resourceOperations}
- */
-
- boost::optional<bool> resourceChanges;
-
- /**
- * The resource operations the client supports. Clients should at least
- * support 'create', 'rename' and 'delete' files and folders.
- *
- * @since 3.13.0
- */
- boost::optional< std::vector<std::string> > resourceOperations;
-
- /**
- * The failure handling strategy of a client if applying the workspace edit
- * fails.
- *
- * See {@link FailureHandlingKind} for allowed values.
- */
- boost::optional<std::string > failureHandling;
-
- /**
- * Whether the client normalizes line endings to the client specific
- * setting.
- * If set to `true` the client will normalize line ending characters
- * in a workspace edit to the client specific new line character(s).
- *
- * @since 3.16.0
- */
- boost::optional<bool> normalizesLineEndings;;
-
- /**
- * Whether the client in general supports change annotations on text edits,
- * create file, rename file and delete file changes.
- *
- * @since 3.16.0
- */
- boost::optional<lschangeAnnotationSupport> changeAnnotationSupport;
-
- MAKE_SWAP_METHOD(WorkspaceEditCapabilities, documentChanges, resourceChanges, resourceOperations, failureHandling, normalizesLineEndings, changeAnnotationSupport)
+ /**
+ * The client supports versioned document changes in `WorkspaceEdit`s
+ */
+ boost::optional<bool> documentChanges;
+
+ /**
+ * The client supports resource changes
+ * in `WorkspaceEdit`s.
+ *
+ * @deprecated Since LSP introduces resource operations, use {link #resourceOperations}
+ */
+
+ boost::optional<bool> resourceChanges;
+
+ /**
+ * The resource operations the client supports. Clients should at least
+ * support 'create', 'rename' and 'delete' files and folders.
+ *
+ * @since 3.13.0
+ */
+ boost::optional< std::vector<std::string> > resourceOperations;
+
+ /**
+ * The failure handling strategy of a client if applying the workspace edit
+ * fails.
+ *
+ * See {@link FailureHandlingKind} for allowed values.
+ */
+ boost::optional<std::string > failureHandling;
+
+ /**
+ * Whether the client normalizes line endings to the client specific
+ * setting.
+ * If set to `true` the client will normalize line ending characters
+ * in a workspace edit to the client specific new line character(s).
+ *
+ * @since 3.16.0
+ */
+ boost::optional<bool> normalizesLineEndings;;
+
+ /**
+ * Whether the client in general supports change annotations on text edits,
+ * create file, rename file and delete file changes.
+ *
+ * @since 3.16.0
+ */
+ boost::optional<lschangeAnnotationSupport> changeAnnotationSupport;
+
+ MAKE_SWAP_METHOD(WorkspaceEditCapabilities, documentChanges, resourceChanges, resourceOperations, failureHandling, normalizesLineEndings, changeAnnotationSupport)
};
MAKE_REFLECT_STRUCT(WorkspaceEditCapabilities,documentChanges, resourceChanges, resourceOperations, failureHandling, normalizesLineEndings, changeAnnotationSupport)
struct DynamicRegistrationCapabilities {
- // Did foo notification supports dynamic registration.
- boost::optional<bool> dynamicRegistration;
+ // Did foo notification supports dynamic registration.
+ boost::optional<bool> dynamicRegistration;
- MAKE_SWAP_METHOD(DynamicRegistrationCapabilities,
- dynamicRegistration);
+ MAKE_SWAP_METHOD(DynamicRegistrationCapabilities,
+ dynamicRegistration);
};
MAKE_REFLECT_STRUCT(DynamicRegistrationCapabilities,
- dynamicRegistration);
+ dynamicRegistration);
// Workspace specific client capabilities.
struct SymbolKindCapabilities
{
- boost::optional< std::vector<lsSymbolKind> > valueSet;
+ boost::optional< std::vector<lsSymbolKind> > valueSet;
- MAKE_SWAP_METHOD(SymbolKindCapabilities, valueSet)
+ MAKE_SWAP_METHOD(SymbolKindCapabilities, valueSet)
};
@@ -114,66 +114,66 @@ MAKE_REFLECT_STRUCT(SymbolKindCapabilities, valueSet)
struct SymbolCapabilities :public DynamicRegistrationCapabilities {
- /**
- * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
- */
- boost::optional<SymbolKindCapabilities> symbolKind;
+ /**
+ * Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
+ */
+ boost::optional<SymbolKindCapabilities> symbolKind;
- MAKE_SWAP_METHOD(SymbolCapabilities,
- symbolKind, dynamicRegistration)
+ MAKE_SWAP_METHOD(SymbolCapabilities,
+ symbolKind, dynamicRegistration)
};
MAKE_REFLECT_STRUCT(SymbolCapabilities,
- symbolKind, dynamicRegistration)
+ symbolKind, dynamicRegistration)
struct lsFileOperations
{
- /**
+ /**
* Whether the client supports dynamic registration for file
* requests/notifications.
*/
- boost::optional<bool> dynamicRegistration ;
-
- /**
- * The client has support for sending didCreateFiles notifications.
- */
- boost::optional<bool>didCreate ;
-
- /**
- * The client has support for sending willCreateFiles requests.
- */
- boost::optional<bool>willCreate ;
-
- /**
- * The client has support for sending didRenameFiles notifications.
- */
- boost::optional<bool>didRename ;
-
- /**
- * The client has support for sending willRenameFiles requests.
- */
- boost::optional<bool>willRename ;
-
- /**
- * The client has support for sending didDeleteFiles notifications.
- */
- boost::optional<bool>didDelete ;
-
- /**
- * The client has support for sending willDeleteFiles requests.
- */
- boost::optional<bool> willDelete ;
- MAKE_SWAP_METHOD(lsFileOperations, dynamicRegistration, didCreate, willCreate,
- didRename, willRename, didDelete, willDelete)
+ boost::optional<bool> dynamicRegistration ;
+
+ /**
+ * The client has support for sending didCreateFiles notifications.
+ */
+ boost::optional<bool>didCreate ;
+
+ /**
+ * The client has support for sending willCreateFiles requests.
+ */
+ boost::optional<bool>willCreate ;
+
+ /**
+ * The client has support for sending didRenameFiles notifications.
+ */
+ boost::optional<bool>didRename ;
+
+ /**
+ * The client has support for sending willRenameFiles requests.
+ */
+ boost::optional<bool>willRename ;
+
+ /**
+ * The client has support for sending didDeleteFiles notifications.
+ */
+ boost::optional<bool>didDelete ;
+
+ /**
+ * The client has support for sending willDeleteFiles requests.
+ */
+ boost::optional<bool> willDelete ;
+ MAKE_SWAP_METHOD(lsFileOperations, dynamicRegistration, didCreate, willCreate,
+ didRename, willRename, didDelete, willDelete)
};
MAKE_REFLECT_STRUCT(lsFileOperations, dynamicRegistration, didCreate, willCreate,
- didRename, willRename, didDelete, willDelete)
+ didRename, willRename, didDelete, willDelete)
struct lsWorkspaceClientCapabilites {
// The client supports applying batch edits to the workspace.
boost::optional<bool> applyEdit;
-
+
// Capabilities specific to `WorkspaceEdit`s
boost::optional<WorkspaceEditCapabilities> workspaceEdit;
@@ -211,11 +211,11 @@ struct lsWorkspaceClientCapabilites {
/**
- * Capabilities specific to the semantic token requests scoped to the
- * workspace.
- *
- * @since 3.16.0
- */
+ * Capabilities specific to the semantic token requests scoped to the
+ * workspace.
+ *
+ * @since 3.16.0
+ */
boost::optional<DynamicRegistrationCapabilities> semanticTokens ;
/**
@@ -232,14 +232,14 @@ struct lsWorkspaceClientCapabilites {
* @since 3.16.0
*/
boost::optional<lsFileOperations> fileOperations;
-
+
MAKE_SWAP_METHOD(lsWorkspaceClientCapabilites,
- applyEdit,
- workspaceEdit,
- didChangeConfiguration,
- didChangeWatchedFiles,
- symbol,executeCommand, workspaceFolders,
- configuration, semanticTokens, codeLens, fileOperations)
+ applyEdit,
+ workspaceEdit,
+ didChangeConfiguration,
+ didChangeWatchedFiles,
+ symbol,executeCommand, workspaceFolders,
+ configuration, semanticTokens, codeLens, fileOperations)
};
MAKE_REFLECT_STRUCT(lsWorkspaceClientCapabilites,
@@ -249,7 +249,7 @@ MAKE_REFLECT_STRUCT(lsWorkspaceClientCapabilites,
didChangeWatchedFiles,
symbol,
executeCommand,workspaceFolders,
- configuration, semanticTokens, codeLens, fileOperations)
+ configuration, semanticTokens, codeLens, fileOperations)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
index 01cb18d68d..bf70d58842 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/general/progress.h
@@ -8,9 +8,9 @@
//and partial result progress to support streaming of results.
struct ProgressParams
{
- std::pair<boost::optional<std::string> , boost::optional<int> > token;
- lsp::Any value;
- MAKE_SWAP_METHOD(ProgressParams, token, value)
+ std::pair<boost::optional<std::string> , boost::optional<int> > token;
+ lsp::Any value;
+ MAKE_SWAP_METHOD(ProgressParams, token, value)
};
MAKE_REFLECT_STRUCT(ProgressParams, token, value)
DEFINE_NOTIFICATION_TYPE(Notify_Progress, ProgressParams, "$/progress");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
index b4c7829e95..3f64946972 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/language/language.h
@@ -11,27 +11,27 @@
#endif
struct StatusReport {
-
- std::string ToString() const
- {
- std::string info;
- info += "type:" + type + "\n";
- info += "message:" + message + "\n";
- return info;
- }
- /**
- * The message type. See {
- *
- */
-
- std::string type;
- /**
- * The actual message
- *
- */
-
- std::string message;
- MAKE_SWAP_METHOD(StatusReport, type, message);
+
+ std::string ToString() const
+ {
+ std::string info;
+ info += "type:" + type + "\n";
+ info += "message:" + message + "\n";
+ return info;
+ }
+ /**
+ * The message type. See {
+ *
+ */
+
+ std::string type;
+ /**
+ * The actual message
+ *
+ */
+
+ std::string message;
+ MAKE_SWAP_METHOD(StatusReport, type, message);
};
MAKE_REFLECT_STRUCT(StatusReport, type, message);
@@ -44,25 +44,25 @@ DEFINE_NOTIFICATION_TYPE(lang_status, StatusReport, "language/status");
enum class MessageType {
- /**
- * An error message.
- */
- Error=(1),
-
- /**
- * A warning message.
- */
- Warning=(2),
-
- /**
- * An information message.
- */
- Info=(3),
-
- /**
- * A log message.
- */
- Log=(4)
+ /**
+ * An error message.
+ */
+ Error=(1),
+
+ /**
+ * A warning message.
+ */
+ Warning=(2),
+
+ /**
+ * An information message.
+ */
+ Info=(3),
+
+ /**
+ * A log message.
+ */
+ Log=(4)
};
MAKE_REFLECT_TYPE_PROXY(MessageType);
@@ -70,36 +70,36 @@ MAKE_REFLECT_TYPE_PROXY(MessageType);
struct ActionableNotification {
-
- /**
- * The message type. See {
- *
- */
- MessageType severity;
- /**
- * The actual message
- *
- */
+ /**
+ * The message type. See {
+ *
+ */
+
+ MessageType severity;
+ /**
+ * The actual message
+ *
+ */
- std::string message;
+ std::string message;
- /**
- * Optional data
- *
- */
+ /**
+ * Optional data
+ *
+ */
- boost::optional<lsp::Any> data;
+ boost::optional<lsp::Any> data;
- /**
- * Optional commands
- *
- */
+ /**
+ * Optional commands
+ *
+ */
- std::vector<lsCommandWithAny> commands;
+ std::vector<lsCommandWithAny> commands;
- MAKE_SWAP_METHOD(ActionableNotification, severity, message, data, commands)
+ MAKE_SWAP_METHOD(ActionableNotification, severity, message, data, commands)
};
MAKE_REFLECT_STRUCT(ActionableNotification, severity, message, data, commands)
@@ -114,27 +114,27 @@ DEFINE_NOTIFICATION_TYPE(lang_actionableNotification, ActionableNotification, "l
struct ProgressReport {
- std::string ToString() const;
+ std::string ToString() const;
- std::string id;
+ std::string id;
- std::string task;
+ std::string task;
- std::string subTask;
+ std::string subTask;
- std::string status;
+ std::string status;
- int totalWork = 0;
+ int totalWork = 0;
- int workDone = 0;
+ int workDone = 0;
- bool complete = false;
- MAKE_SWAP_METHOD(ProgressReport, id, task, subTask, status, workDone, complete);
+ bool complete = false;
+ MAKE_SWAP_METHOD(ProgressReport, id, task, subTask, status, workDone, complete);
};
@@ -147,24 +147,24 @@ MAKE_REFLECT_STRUCT(ProgressReport, id, task, subTask, status, workDone, complet
DEFINE_NOTIFICATION_TYPE(lang_progressReport, ProgressReport, "language/progressReport");
enum EventType {
- /**
- * classpath updated event.
- */
- ClasspathUpdated = (100),
-
- /**
- * projects imported event.
- */
- ProjectsImported = (200)
+ /**
+ * classpath updated event.
+ */
+ ClasspathUpdated = (100),
+
+ /**
+ * projects imported event.
+ */
+ ProjectsImported = (200)
};
struct EventNotification
{
- int eventType;
- lsp::Any data;
- std::string ToString() const;
- MAKE_SWAP_METHOD(EventNotification, eventType, data)
+ int eventType;
+ lsp::Any data;
+ std::string ToString() const;
+ MAKE_SWAP_METHOD(EventNotification, eventType, data)
};
MAKE_REFLECT_STRUCT(EventNotification, eventType, data);
-DEFINE_NOTIFICATION_TYPE(lang_eventNotification, EventNotification, "language/eventNotification"); \ No newline at end of file
+DEFINE_NOTIFICATION_TYPE(lang_eventNotification, EventNotification, "language/eventNotification");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
index 14e130f571..c4197917a9 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/location_type.h
@@ -4,15 +4,15 @@
#include "lsRange.h"
//Represents a location inside a resource, such as a line inside a text file.
struct lsLocation {
- lsLocation();
- lsLocation(lsDocumentUri uri, lsRange range);
+ lsLocation();
+ lsLocation(lsDocumentUri uri, lsRange range);
- bool operator==(const lsLocation& other) const;
- bool operator<(const lsLocation& o) const;
+ bool operator==(const lsLocation& other) const;
+ bool operator<(const lsLocation& o) const;
- lsDocumentUri uri;
- lsRange range;
- MAKE_SWAP_METHOD(lsLocation, uri, range)
+ lsDocumentUri uri;
+ lsRange range;
+ MAKE_SWAP_METHOD(lsLocation, uri, range)
};
MAKE_REFLECT_STRUCT(lsLocation, uri, range)
@@ -20,44 +20,44 @@ MAKE_REFLECT_STRUCT(lsLocation, uri, range)
struct LinkLocation :public lsLocation
{
- std::string displayName;
- std::string kind;
- MAKE_REFLECT_STRUCT(LinkLocation, uri, range, displayName, kind)
+ std::string displayName;
+ std::string kind;
+ MAKE_REFLECT_STRUCT(LinkLocation, uri, range, displayName, kind)
};
MAKE_REFLECT_STRUCT(LinkLocation, uri, range, displayName,kind)
//Represents a link between a sourceand a target location.
struct LocationLink
{
- /**
- * Span of the origin of this link.
- *
- * Used as the underlined span for mouse interaction. Defaults to the word range at
- * the mouse position.
- */
- boost::optional<lsRange> originSelectionRange;
+ /**
+ * Span of the origin of this link.
+ *
+ * Used as the underlined span for mouse interaction. Defaults to the word range at
+ * the mouse position.
+ */
+ boost::optional<lsRange> originSelectionRange;
- /**
- * The target resource identifier of this link.
- */
+ /**
+ * The target resource identifier of this link.
+ */
- lsDocumentUri targetUri;
+ lsDocumentUri targetUri;
- /**
- * The full target range of this link. If the target for example is a symbol then target range is the
- * range enclosing this symbol not including leading/trailing whitespace but everything else
- * like comments. This information is typically used to highlight the range in the editor.
- */
+ /**
+ * The full target range of this link. If the target for example is a symbol then target range is the
+ * range enclosing this symbol not including leading/trailing whitespace but everything else
+ * like comments. This information is typically used to highlight the range in the editor.
+ */
- lsRange targetRange;
+ lsRange targetRange;
- /**
- * The range that should be selected and revealed when this link is being followed, e.g the name of a function.
- * Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
- */
+ /**
+ * The range that should be selected and revealed when this link is being followed, e.g the name of a function.
+ * Must be contained by the the `targetRange`. See also `DocumentSymbol#range`
+ */
- lsRange targetSelectionRange;
+ lsRange targetSelectionRange;
- MAKE_SWAP_METHOD(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange);
+ MAKE_SWAP_METHOD(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange);
};
-MAKE_REFLECT_STRUCT(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange); \ No newline at end of file
+MAKE_REFLECT_STRUCT(LocationLink, originSelectionRange, targetUri, targetRange, targetSelectionRange);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
index 3335aa86dc..035382669f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsAny.h
@@ -5,75 +5,75 @@
#include "LibLsp/JsonRpc/message.h"
namespace lsp
{
- struct Any
- {
- //! Type of JSON value
- enum Type {
- kUnKnown=-1,
- kNullType = 0, //!< null
- kFalseType = 1, //!< false
- kTrueType = 2, //!< true
- kObjectType = 3, //!< object
- kArrayType = 4, //!< array
- kStringType = 5, //!< string
- kNumberType = 6 //!< number
- };
-
-
-
- template <typename T>
- bool Get(T& value);
-
- template <typename T>
- void Set(T& value);
-
- int GuessType();
- int GetType();
-
- void Set(std::unique_ptr<LspMessage> value);
-
- void SetJsonString(std::string&& _data, Type _type);
-
- void SetJsonString(const std::string& _data, Type _type);
-
- const std::string& Data()const
- {
- return data;
- }
-
- void swap(Any& arg) noexcept;
-
- /*
- *Example for GetFromMap
- struct A{
- std::string visitor;
- bool verbose;
- }
- REFLECT_MAP_TO_STRUCT(A,visitor,verbose)
-
- std::string data = "{\"visitor\":\"default\",\"verbose\":\"true\"};
- lsp:Any any;
- any.SetJsonString(data, static_cast<lsp::Any::Type>(-1));
- A a_object;
- any.GetFromMap(a_object);
- */
- template <typename T>
- bool GetFromMap(T& value);
-
-
- template <typename T>
- bool GetForMapHelper(T& value);
- bool GetForMapHelper(std::string& value);
- bool GetForMapHelper(boost::optional<std::string>& value);
- private:
- std::unique_ptr<Reader> GetReader();
- std::unique_ptr<Writer> GetWriter() const;
- void SetData(std::unique_ptr<Writer>&);
-
- std::string data;
- int jsonType = kUnKnown;
-
- };
+ struct Any
+ {
+ //! Type of JSON value
+ enum Type {
+ kUnKnown=-1,
+ kNullType = 0, //!< null
+ kFalseType = 1, //!< false
+ kTrueType = 2, //!< true
+ kObjectType = 3, //!< object
+ kArrayType = 4, //!< array
+ kStringType = 5, //!< string
+ kNumberType = 6 //!< number
+ };
+
+
+
+ template <typename T>
+ bool Get(T& value);
+
+ template <typename T>
+ void Set(T& value);
+
+ int GuessType();
+ int GetType();
+
+ void Set(std::unique_ptr<LspMessage> value);
+
+ void SetJsonString(std::string&& _data, Type _type);
+
+ void SetJsonString(const std::string& _data, Type _type);
+
+ const std::string& Data()const
+ {
+ return data;
+ }
+
+ void swap(Any& arg) noexcept;
+
+ /*
+ *Example for GetFromMap
+ struct A{
+ std::string visitor;
+ bool verbose;
+ }
+ REFLECT_MAP_TO_STRUCT(A,visitor,verbose)
+
+ std::string data = "{\"visitor\":\"default\",\"verbose\":\"true\"};
+ lsp:Any any;
+ any.SetJsonString(data, static_cast<lsp::Any::Type>(-1));
+ A a_object;
+ any.GetFromMap(a_object);
+ */
+ template <typename T>
+ bool GetFromMap(T& value);
+
+
+ template <typename T>
+ bool GetForMapHelper(T& value);
+ bool GetForMapHelper(std::string& value);
+ bool GetForMapHelper(boost::optional<std::string>& value);
+ private:
+ std::unique_ptr<Reader> GetReader();
+ std::unique_ptr<Writer> GetWriter() const;
+ void SetData(std::unique_ptr<Writer>&);
+
+ std::string data;
+ int jsonType = kUnKnown;
+
+ };
};
@@ -84,22 +84,22 @@ extern void Reflect(Writer& visitor, lsp::Any& value);
template <typename T>
void ReflectMember(std::map < std::string, lsp::Any>& visitor, const char* name, T& value) {
- auto it = visitor.find(name);
- if (it != visitor.end())
- {
- it->second.GetForMapHelper(value);
- }
+ auto it = visitor.find(name);
+ if (it != visitor.end())
+ {
+ it->second.GetForMapHelper(value);
+ }
}
template <typename T>
void ReflectMember(std::map < std::string, std::string>& visitor, const char* name, T& value) {
- auto it = visitor.find(name);
- if (it != visitor.end())
- {
- lsp::Any any;
- any.SetJsonString(it->second, static_cast<lsp::Any::Type>(-1));
- any.Get(value);
- }
+ auto it = visitor.find(name);
+ if (it != visitor.end())
+ {
+ lsp::Any any;
+ any.SetJsonString(it->second, static_cast<lsp::Any::Type>(-1));
+ any.Get(value);
+ }
}
#define REFLECT_MAP_TO_STRUCT(type, ...) \
@@ -111,49 +111,49 @@ void ReflectMember(std::map < std::string, std::string>& visitor, const char* na
namespace lsp
{
- template <typename T>
- bool Any::Get(T& value)
- {
- const auto visitor = GetReader();
- Reflect(*visitor, value);
- return true;
- }
-
- template <typename T>
- void Any::Set(T& value)
- {
- auto visitor = GetWriter();
- Reflect(*visitor, value);
- SetData(visitor);
- }
-
- template <typename T>
- bool Any::GetFromMap(T& value)
- {
- const auto visitor = GetReader();
- std::map < std::string, lsp::Any> _temp;
- Reflect(*visitor, _temp);
- ReflectMap(_temp, value);
- return true;
- }
-
- template <typename T>
- bool Any::GetForMapHelper(T& value)
- {
- jsonType = GetType();
- if (jsonType == kStringType)
- {
- auto copy = data;
- copy.erase(copy.find_last_not_of('"') + 1);
- copy.erase(0, copy.find_first_not_of('"'));
- lsp::Any any;
- any.SetJsonString(copy, kUnKnown);
- any.Get(value);
- }
- else
- {
- Get(value);
- }
- return true;
- }
+ template <typename T>
+ bool Any::Get(T& value)
+ {
+ const auto visitor = GetReader();
+ Reflect(*visitor, value);
+ return true;
+ }
+
+ template <typename T>
+ void Any::Set(T& value)
+ {
+ auto visitor = GetWriter();
+ Reflect(*visitor, value);
+ SetData(visitor);
+ }
+
+ template <typename T>
+ bool Any::GetFromMap(T& value)
+ {
+ const auto visitor = GetReader();
+ std::map < std::string, lsp::Any> _temp;
+ Reflect(*visitor, _temp);
+ ReflectMap(_temp, value);
+ return true;
+ }
+
+ template <typename T>
+ bool Any::GetForMapHelper(T& value)
+ {
+ jsonType = GetType();
+ if (jsonType == kStringType)
+ {
+ auto copy = data;
+ copy.erase(copy.find_last_not_of('"') + 1);
+ copy.erase(0, copy.find_first_not_of('"'));
+ lsp::Any any;
+ any.SetJsonString(copy, kUnKnown);
+ any.Get(value);
+ }
+ else
+ {
+ Get(value);
+ }
+ return true;
+ }
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
index 06a14f1540..cf0a2aa65b 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCodeAction.h
@@ -13,46 +13,46 @@
struct CodeAction
{
- /**
- * A short, human-readable, title for this code action.
- */
-
- std::string title;
-
- /**
- * The kind of the code action.
- *
- * Used to filter code actions.
- */
- boost::optional < std::string> kind;
-
- /**
- * The diagnostics that this code action resolves.
- */
- boost::optional < std::vector<lsDiagnostic>> diagnostics;
-
- /**
- * The workspace edit this code action performs.
- */
- boost::optional < lsWorkspaceEdit >edit;
-
- /**
- * A command this code action executes. If a code action
- * provides a edit and a command, first the edit is
- * executed and then the command.
- */
- boost::optional< lsCommandWithAny > command;
-
- MAKE_SWAP_METHOD(CodeAction, title, kind, diagnostics, edit, command)
+ /**
+ * A short, human-readable, title for this code action.
+ */
+
+ std::string title;
+
+ /**
+ * The kind of the code action.
+ *
+ * Used to filter code actions.
+ */
+ boost::optional < std::string> kind;
+
+ /**
+ * The diagnostics that this code action resolves.
+ */
+ boost::optional < std::vector<lsDiagnostic>> diagnostics;
+
+ /**
+ * The workspace edit this code action performs.
+ */
+ boost::optional < lsWorkspaceEdit >edit;
+
+ /**
+ * A command this code action executes. If a code action
+ * provides a edit and a command, first the edit is
+ * executed and then the command.
+ */
+ boost::optional< lsCommandWithAny > command;
+
+ MAKE_SWAP_METHOD(CodeAction, title, kind, diagnostics, edit, command)
};
MAKE_REFLECT_STRUCT(CodeAction, title, kind, diagnostics, edit, command)
struct TextDocumentCodeAction
{
- typedef std::pair<boost::optional<lsCommandWithAny>, boost::optional<CodeAction> > Either;
+ typedef std::pair<boost::optional<lsCommandWithAny>, boost::optional<CodeAction> > Either;
};
-extern void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value); \ No newline at end of file
+extern void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
index 94307f1479..88ced6e41c 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsCommand.h
@@ -15,29 +15,29 @@
//extension code could handle the command.The protocol currently doesnt specify a set of well - known commands.
template <typename AnyArray>
struct lsCommand {
- // Title of the command (ie, 'save')
- std::string title;
- // Actual command identifier.
- std::string command;
- // Arguments to run the command with.
- // **NOTE** This must be serialized as an array. Use
- // MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY.
- boost::optional<AnyArray> arguments;
+ // Title of the command (ie, 'save')
+ std::string title;
+ // Actual command identifier.
+ std::string command;
+ // Arguments to run the command with.
+ // **NOTE** This must be serialized as an array. Use
+ // MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY.
+ boost::optional<AnyArray> arguments;
- void swap(lsCommand<AnyArray>& arg) noexcept
- {
- title.swap(arg.title);
- command.swap(arg.command);
- arguments.swap(arg.arguments);
- }
+ void swap(lsCommand<AnyArray>& arg) noexcept
+ {
+ title.swap(arg.title);
+ command.swap(arg.command);
+ arguments.swap(arg.arguments);
+ }
};
template <typename TVisitor, typename T>
void Reflect(TVisitor& visitor, lsCommand<T>& value) {
- REFLECT_MEMBER_START();
- REFLECT_MEMBER(title);
- REFLECT_MEMBER(command);
- REFLECT_MEMBER(arguments);
- REFLECT_MEMBER_END();
+ REFLECT_MEMBER_START();
+ REFLECT_MEMBER(title);
+ REFLECT_MEMBER(command);
+ REFLECT_MEMBER(arguments);
+ REFLECT_MEMBER_END();
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
index 5d24f59e3a..255c4c39ba 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsDocumentUri.h
@@ -2,24 +2,24 @@
#include "LibLsp/JsonRpc/serializer.h"
#include <string>
struct lsDocumentUri {
- static lsDocumentUri FromPath(const AbsolutePath& path);
+ static lsDocumentUri FromPath(const AbsolutePath& path);
- lsDocumentUri();
-
- lsDocumentUri(const AbsolutePath& path);
- lsDocumentUri(const lsDocumentUri& other);;
- bool operator==(const lsDocumentUri& other) const;
- bool operator==(const std::string& other) const;
- void SetPath(const AbsolutePath& path);
- std::string GetRawPath() const;
- AbsolutePath GetAbsolutePath() const;
+ lsDocumentUri();
-
- std::string raw_uri_;
- void swap(lsDocumentUri& arg) noexcept
- {
- raw_uri_.swap(arg.raw_uri_);
- }
+ lsDocumentUri(const AbsolutePath& path);
+ lsDocumentUri(const lsDocumentUri& other);;
+ bool operator==(const lsDocumentUri& other) const;
+ bool operator==(const std::string& other) const;
+ void SetPath(const AbsolutePath& path);
+ std::string GetRawPath() const;
+ AbsolutePath GetAbsolutePath() const;
+
+
+ std::string raw_uri_;
+ void swap(lsDocumentUri& arg) noexcept
+ {
+ raw_uri_.swap(arg.raw_uri_);
+ }
};
extern void Reflect(Writer& visitor, lsDocumentUri& value);
extern void Reflect(Reader& visitor, lsDocumentUri& value);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
index a92df9b077..cc3ad4bbac 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsFormattingOptions.h
@@ -3,41 +3,41 @@
#include "LibLsp/JsonRpc/serializer.h"
struct lsFormattingOptions {
- struct KeyData {
- boost::optional<bool> _boolean;
- boost::optional<int32_t> _integer;
- boost::optional<std::string> _string;
- };
+ struct KeyData {
+ boost::optional<bool> _boolean;
+ boost::optional<int32_t> _integer;
+ boost::optional<std::string> _string;
+ };
- // Size of a tab in spaces.
- int tabSize =4;
- // Prefer spaces over tabs.
- bool insertSpaces = true;
+ // Size of a tab in spaces.
+ int tabSize =4;
+ // Prefer spaces over tabs.
+ bool insertSpaces = true;
- /**
- * Trim trailing whitespace on a line.
- *
- * @since 3.15.0
- */
- boost::optional<bool> trimTrailingWhitespace;
+ /**
+ * Trim trailing whitespace on a line.
+ *
+ * @since 3.15.0
+ */
+ boost::optional<bool> trimTrailingWhitespace;
- /**
- * Insert a newline character at the end of the file if one does not exist.
- *
- * @since 3.15.0
- */
- boost::optional<bool> insertFinalNewline;
+ /**
+ * Insert a newline character at the end of the file if one does not exist.
+ *
+ * @since 3.15.0
+ */
+ boost::optional<bool> insertFinalNewline;
- /**
- * Trim all newlines after the final newline at the end of the file.
- *
- * @since 3.15.0
- */
- boost::optional<bool> trimFinalNewlines;
- boost::optional<KeyData> key;
+ /**
+ * Trim all newlines after the final newline at the end of the file.
+ *
+ * @since 3.15.0
+ */
+ boost::optional<bool> trimFinalNewlines;
+ boost::optional<KeyData> key;
MAKE_SWAP_METHOD(lsFormattingOptions, tabSize, insertSpaces, trimTrailingWhitespace, insertFinalNewline, trimFinalNewlines, key)
};
MAKE_REFLECT_STRUCT(lsFormattingOptions, tabSize, insertSpaces, trimTrailingWhitespace, insertFinalNewline, trimFinalNewlines, key);
extern void Reflect(Reader& visitor, lsFormattingOptions::KeyData& value);
-extern void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value); \ No newline at end of file
+extern void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
index 9191aa66d1..975ee4fed0 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsMarkedString.h
@@ -20,24 +20,24 @@
// Note that markdown strings will be sanitized - that means html will be
// escaped.
struct lsMarkedString {
- boost::optional<std::string> language;
- std::string value;
+ boost::optional<std::string> language;
+ std::string value;
};
struct MarkupContent {
- /**
- * The type of the Markup.
- */
+ /**
+ * The type of the Markup.
+ */
- std::string kind;
+ std::string kind;
- /**
- * The content itself.
- */
-
- std::string value;
+ /**
+ * The content itself.
+ */
- MAKE_SWAP_METHOD(MarkupContent, kind, value);
+ std::string value;
+
+ MAKE_SWAP_METHOD(MarkupContent, kind, value);
};
MAKE_REFLECT_STRUCT(MarkupContent,kind,value);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
index 8c2106e16e..a14d75ed90 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsPosition.h
@@ -11,30 +11,30 @@
//A position is between two characters like an insert cursor in a editor.Special values like
//for example - 1 to denote the end of a line are not supported.
struct lsPosition {
- lsPosition();
- lsPosition(int line, int character);
-
- bool operator==(const lsPosition& other) const;
- bool operator<(const lsPosition& other) const;
-
- std::string ToString() const;
-
- /**
- * Line position in a document (zero-based).
- */
- // Note: these are 0-based.
- unsigned line = 0;
- /**
- * Character offset on a line in a document (zero-based). Assuming that
- * the line is represented as a string, the `character` value represents
- * the gap between the `character` and `character + 1`.
- *
- * If the character value is greater than the line length it defaults back
- * to the line length.
- */
- unsigned character = 0;
- static const lsPosition kZeroPosition;
-
- MAKE_SWAP_METHOD(lsPosition, line, character)
+ lsPosition();
+ lsPosition(int line, int character);
+
+ bool operator==(const lsPosition& other) const;
+ bool operator<(const lsPosition& other) const;
+
+ std::string ToString() const;
+
+ /**
+ * Line position in a document (zero-based).
+ */
+ // Note: these are 0-based.
+ unsigned line = 0;
+ /**
+ * Character offset on a line in a document (zero-based). Assuming that
+ * the line is represented as a string, the `character` value represents
+ * the gap between the `character` and `character + 1`.
+ *
+ * If the character value is greater than the line length it defaults back
+ * to the line length.
+ */
+ unsigned character = 0;
+ static const lsPosition kZeroPosition;
+
+ MAKE_SWAP_METHOD(lsPosition, line, character)
};
-MAKE_REFLECT_STRUCT(lsPosition, line, character); \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsPosition, line, character);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
index 6cc01e37a7..97d78712d7 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsRange.h
@@ -12,21 +12,21 @@
//If you want to specify a range that contains a line including the line ending character(s)
//then use an end position denoting the start of the next line.
struct lsRange {
- lsRange();
- lsRange(lsPosition start, lsPosition end);
+ lsRange();
+ lsRange(lsPosition start, lsPosition end);
- bool operator==(const lsRange& other) const;
- bool operator<(const lsRange& other) const;
- /**
- * The range's start position.
- */
- lsPosition start;
- /**
- * The range's end position.
- */
- lsPosition end;
- std::string ToString()const;
- MAKE_SWAP_METHOD(lsRange, start, end)
+ bool operator==(const lsRange& other) const;
+ bool operator<(const lsRange& other) const;
+ /**
+ * The range's start position.
+ */
+ lsPosition start;
+ /**
+ * The range's end position.
+ */
+ lsPosition end;
+ std::string ToString()const;
+ MAKE_SWAP_METHOD(lsRange, start, end)
};
-MAKE_REFLECT_STRUCT(lsRange, start, end) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsRange, start, end)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
index 6146d6188f..9b0120e3e4 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsResponseError.h
@@ -5,113 +5,113 @@
#include "LibLsp/lsp/lsAny.h"
enum class lsErrorCodes:int32_t {
- // Defined by JSON RPC
- ParseError = -32700,
- InvalidRequest = -32600,
- MethodNotFound = -32601,
- InvalidParams = -32602,
- InternalError = -32603,
-
- /**
- * This is the start range of JSON RPC reserved error codes.
- * It doesn't denote a real error code. No LSP error codes should
- * be defined between the start and end range. For backwards
- * compatibility the `ServerNotInitialized` and the `UnknownErrorCode`
- * are left in the range.
- *
- * @since 3.16.0
- */
- jsonrpcReservedErrorRangeStart = -32099,
- /** @deprecated use jsonrpcReservedErrorRangeStart */
- serverErrorStart = jsonrpcReservedErrorRangeStart,
-
- /**
- * This is the start range of JSON RPC reserved error codes.
- * It doesn't denote a real error code.
- *
- * @since 3.16.0
- */
- jsonrpcReservedErrorRangeEnd = -32000,
- /** @deprecated use jsonrpcReservedErrorRangeEnd */
- serverErrorEnd = jsonrpcReservedErrorRangeEnd,
-
- /**
- * Error code indicating that a server received a notification or
- * request before the server has received the `initialize` request.
- */
- ServerNotInitialized = -32002,
- UnknownErrorCode = -32001,
-
- /**
- * This is the start range of LSP reserved error codes.
- * It doesn't denote a real error code.
- *
- * @since 3.16.0
- */
- lspReservedErrorRangeStart= -32899,
-
- /**
- * The server cancelled the request. This error code should
- * only be used for requests that explicitly support being
- * server cancellable.
- *
- * @since 3.17.0
- */
- ServerCancelled = -32802,
-
- /**
- * The server detected that the content of a document got
- * modified outside normal conditions. A server should
- * NOT send this error code if it detects a content change
- * in it unprocessed messages. The result even computed
- * on an older state might still be useful for the client.
- *
- * If a client decides that a result is not of any use anymore
- * the client should cancel the request.
- */
- ContentModified = -32801,
-
- /**
- * The client has canceled a request and a server as detected
- * the cancel.
- */
- RequestCancelled = -32800,
-
- /**
- * This is the end range of LSP reserved error codes.
- * It doesn't denote a real error code.
- *
- * @since 3.16.0
- */
- lspReservedErrorRangeEnd = -32800,
-
-
+ // Defined by JSON RPC
+ ParseError = -32700,
+ InvalidRequest = -32600,
+ MethodNotFound = -32601,
+ InvalidParams = -32602,
+ InternalError = -32603,
+
+ /**
+ * This is the start range of JSON RPC reserved error codes.
+ * It doesn't denote a real error code. No LSP error codes should
+ * be defined between the start and end range. For backwards
+ * compatibility the `ServerNotInitialized` and the `UnknownErrorCode`
+ * are left in the range.
+ *
+ * @since 3.16.0
+ */
+ jsonrpcReservedErrorRangeStart = -32099,
+ /** @deprecated use jsonrpcReservedErrorRangeStart */
+ serverErrorStart = jsonrpcReservedErrorRangeStart,
+
+ /**
+ * This is the start range of JSON RPC reserved error codes.
+ * It doesn't denote a real error code.
+ *
+ * @since 3.16.0
+ */
+ jsonrpcReservedErrorRangeEnd = -32000,
+ /** @deprecated use jsonrpcReservedErrorRangeEnd */
+ serverErrorEnd = jsonrpcReservedErrorRangeEnd,
+
+ /**
+ * Error code indicating that a server received a notification or
+ * request before the server has received the `initialize` request.
+ */
+ ServerNotInitialized = -32002,
+ UnknownErrorCode = -32001,
+
+ /**
+ * This is the start range of LSP reserved error codes.
+ * It doesn't denote a real error code.
+ *
+ * @since 3.16.0
+ */
+ lspReservedErrorRangeStart= -32899,
+
+ /**
+ * The server cancelled the request. This error code should
+ * only be used for requests that explicitly support being
+ * server cancellable.
+ *
+ * @since 3.17.0
+ */
+ ServerCancelled = -32802,
+
+ /**
+ * The server detected that the content of a document got
+ * modified outside normal conditions. A server should
+ * NOT send this error code if it detects a content change
+ * in it unprocessed messages. The result even computed
+ * on an older state might still be useful for the client.
+ *
+ * If a client decides that a result is not of any use anymore
+ * the client should cancel the request.
+ */
+ ContentModified = -32801,
+
+ /**
+ * The client has canceled a request and a server as detected
+ * the cancel.
+ */
+ RequestCancelled = -32800,
+
+ /**
+ * This is the end range of LSP reserved error codes.
+ * It doesn't denote a real error code.
+ *
+ * @since 3.16.0
+ */
+ lspReservedErrorRangeEnd = -32800,
+
+
};
MAKE_REFLECT_TYPE_PROXY(lsErrorCodes);
struct lsResponseError {
- lsResponseError(): code(lsErrorCodes::UnknownErrorCode)
- {
- }
-
- /**
- * A number indicating the error type that occurred.
- */
- lsErrorCodes code;
- // Short description.
- /**
- * A string providing a short description of the error.
- */
- std::string message;
-
- /**
- * A primitive or structured value that contains additional
- * information about the error. Can be omitted.
- */
- boost::optional<lsp::Any> data;
- std::string ToString();
- void Write(Writer& visitor);
-
- MAKE_SWAP_METHOD(lsResponseError, code, message, data)
+ lsResponseError(): code(lsErrorCodes::UnknownErrorCode)
+ {
+ }
+
+ /**
+ * A number indicating the error type that occurred.
+ */
+ lsErrorCodes code;
+ // Short description.
+ /**
+ * A string providing a short description of the error.
+ */
+ std::string message;
+
+ /**
+ * A primitive or structured value that contains additional
+ * information about the error. Can be omitted.
+ */
+ boost::optional<lsp::Any> data;
+ std::string ToString();
+ void Write(Writer& visitor);
+
+ MAKE_SWAP_METHOD(lsResponseError, code, message, data)
};
-MAKE_REFLECT_STRUCT(lsResponseError, code, message, data) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsResponseError, code, message, data)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
index 0bab8bc3d8..bebbcd48c2 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentEdit.h
@@ -8,17 +8,17 @@
struct lsTextDocumentEdit {
- // The text document to change.
- lsVersionedTextDocumentIdentifier textDocument;
-
- /**
- * The edits to be applied.
- *
- * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded by the
- * client capability `workspace.workspaceEdit.changeAnnotationSupport`
- */
- // The edits to be applied.
- std::vector< lsAnnotatedTextEdit > edits;
- MAKE_SWAP_METHOD(lsTextDocumentEdit, textDocument, edits);
+ // The text document to change.
+ lsVersionedTextDocumentIdentifier textDocument;
+
+ /**
+ * The edits to be applied.
+ *
+ * @since 3.16.0 - support for AnnotatedTextEdit. This is guarded by the
+ * client capability `workspace.workspaceEdit.changeAnnotationSupport`
+ */
+ // The edits to be applied.
+ std::vector< lsAnnotatedTextEdit > edits;
+ MAKE_SWAP_METHOD(lsTextDocumentEdit, textDocument, edits);
};
-MAKE_REFLECT_STRUCT(lsTextDocumentEdit, textDocument, edits); \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsTextDocumentEdit, textDocument, edits);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
index bb316eae5a..0129df9b99 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentIdentifier.h
@@ -5,10 +5,10 @@
//Text documents are identified using a URI.On the protocol level,
//URIs are passed as strings.The corresponding JSON structure looks like this:
struct lsTextDocumentIdentifier {
- /**
- * The text document's URI.
- */
- lsDocumentUri uri;
+ /**
+ * The text document's URI.
+ */
+ lsDocumentUri uri;
MAKE_SWAP_METHOD(lsTextDocumentIdentifier, uri)
};
-MAKE_REFLECT_STRUCT(lsTextDocumentIdentifier, uri) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsTextDocumentIdentifier, uri)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
index 4d9b4ccc9f..c5bc915132 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentItem.h
@@ -7,20 +7,20 @@
//An item to transfer a text document from the client to the server.
struct lsTextDocumentItem {
- // The text document's URI.
- lsDocumentUri uri;
+ // The text document's URI.
+ lsDocumentUri uri;
- // The text document's language identifier.
- std::string languageId;
+ // The text document's language identifier.
+ std::string languageId;
- // The version number of this document (it will strictly increase after each
- // change, including undo/redo).
- int version = 0;
+ // The version number of this document (it will strictly increase after each
+ // change, including undo/redo).
+ int version = 0;
- // The content of the opened text document.
- std::string text;
+ // The content of the opened text document.
+ std::string text;
- MAKE_SWAP_METHOD(lsTextDocumentItem, uri, languageId, version, text)
+ MAKE_SWAP_METHOD(lsTextDocumentItem, uri, languageId, version, text)
};
-MAKE_REFLECT_STRUCT(lsTextDocumentItem, uri, languageId, version, text) \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsTextDocumentItem, uri, languageId, version, text)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
index 52d291351e..6f0940c0b2 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextDocumentPositionParams.h
@@ -9,18 +9,18 @@
* A parameter literal used in requests to pass a text document and a position inside that document.
*/
struct lsTextDocumentPositionParams {
- // The text document.
- lsTextDocumentIdentifier textDocument;
+ // The text document.
+ lsTextDocumentIdentifier textDocument;
- // The position inside the text document.
- lsPosition position;
+ // The position inside the text document.
+ lsPosition position;
+
+ /**
+ * Legacy property to support protocol version 1.0 requests.
+ */
+ boost::optional<lsDocumentUri> uri;
- /**
- * Legacy property to support protocol version 1.0 requests.
- */
- boost::optional<lsDocumentUri> uri;
-
MAKE_SWAP_METHOD(lsTextDocumentPositionParams, textDocument, position, uri);
-
+
};
MAKE_REFLECT_STRUCT(lsTextDocumentPositionParams, textDocument, position, uri);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
index 8785e0dcbc..de06e85e92 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsTextEdit.h
@@ -17,24 +17,24 @@
*/
struct lsChangeAnnotation
{
- /**
- * A human-readable string describing the actual change. The string
- * is rendered prominent in the user interface.
- */
- std::string label;
-
- /**
- * A flag which indicates that user confirmation is needed
- * before applying the change.
- */
- boost::optional<bool> needsConfirmation;
-
- /**
- * A human-readable string which is rendered less prominent in
- * the user interface.
- */
- boost::optional < std::string > description;
- MAKE_REFLECT_STRUCT(lsChangeAnnotation, label, needsConfirmation, description)
+ /**
+ * A human-readable string describing the actual change. The string
+ * is rendered prominent in the user interface.
+ */
+ std::string label;
+
+ /**
+ * A flag which indicates that user confirmation is needed
+ * before applying the change.
+ */
+ boost::optional<bool> needsConfirmation;
+
+ /**
+ * A human-readable string which is rendered less prominent in
+ * the user interface.
+ */
+ boost::optional < std::string > description;
+ MAKE_REFLECT_STRUCT(lsChangeAnnotation, label, needsConfirmation, description)
};
MAKE_REFLECT_STRUCT(lsChangeAnnotation, label, needsConfirmation, description)
@@ -64,23 +64,23 @@ using lsChangeAnnotationIdentifier = std::string;
//A textual edit applicable to a text document.
struct lsTextEdit {
- // The range of the text document to be manipulated. To insert
- // text into a document create a range where start === end.
- lsRange range;
+ // The range of the text document to be manipulated. To insert
+ // text into a document create a range where start === end.
+ lsRange range;
- // The string to be inserted. For delete operations use an
- // empty string.
- std::string newText;
+ // The string to be inserted. For delete operations use an
+ // empty string.
+ std::string newText;
- /**
+ /**
* The actual annotation identifier.
*/
- boost::optional<lsChangeAnnotationIdentifier> annotationId;
-
+ boost::optional<lsChangeAnnotationIdentifier> annotationId;
- bool operator==(const lsTextEdit& that);
- std::string ToString() const;
- MAKE_SWAP_METHOD(lsTextEdit, range, newText, annotationId)
+
+ bool operator==(const lsTextEdit& that);
+ std::string ToString() const;
+ MAKE_SWAP_METHOD(lsTextEdit, range, newText, annotationId)
};
MAKE_REFLECT_STRUCT(lsTextEdit, range, newText, annotationId)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
index 8a858053b1..7e8ccbd635 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsVersionedTextDocumentIdentifier.h
@@ -8,13 +8,13 @@
struct lsVersionedTextDocumentIdentifier
{
- lsDocumentUri uri;
- // The version number of this document. number | null
- boost::optional<int> version;
+ lsDocumentUri uri;
+ // The version number of this document. number | null
+ boost::optional<int> version;
- lsTextDocumentIdentifier AsTextDocumentIdentifier() const;
+ lsTextDocumentIdentifier AsTextDocumentIdentifier() const;
- MAKE_SWAP_METHOD(lsVersionedTextDocumentIdentifier, uri, version)
+ MAKE_SWAP_METHOD(lsVersionedTextDocumentIdentifier, uri, version)
};
MAKE_REFLECT_STRUCT(lsVersionedTextDocumentIdentifier, uri, version)
@@ -29,4 +29,4 @@ MAKE_REFLECT_STRUCT(lsVersionedTextDocumentIdentifier, uri, version)
* The version number of a document will increase after each change,
* including undo/redo. The number doesn't need to be consecutive.
*/
-using lsOptionalVersionedTextDocumentIdentifier = lsVersionedTextDocumentIdentifier; \ No newline at end of file
+using lsOptionalVersionedTextDocumentIdentifier = lsVersionedTextDocumentIdentifier;
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
index c7fb73930a..4df020d7a2 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsWorkspaceEdit.h
@@ -20,36 +20,36 @@
struct lsChangeAnnotations
{
- lsChangeAnnotation id;
- MAKE_SWAP_METHOD(lsChangeAnnotations, id)
+ lsChangeAnnotation id;
+ MAKE_SWAP_METHOD(lsChangeAnnotations, id)
};
MAKE_REFLECT_STRUCT(lsChangeAnnotations, id)
struct lsWorkspaceEdit {
- // Holds changes to existing resources.
- // changes ? : { [uri:string]: TextEdit[]; };
- // std::unordered_map<lsDocumentUri, std::vector<lsTextEdit>> changes;
-
- // An array of `TextDocumentEdit`s to express changes to specific a specific
- // version of a text document. Whether a client supports versioned document
- // edits is expressed via `WorkspaceClientCapabilites.versionedWorkspaceEdit`.
- //
- boost::optional< std::map<std::string, std::vector<lsTextEdit> > > changes;
- typedef std::pair < boost::optional<lsTextDocumentEdit>, boost::optional<lsp::Any> > Either;
-
- boost::optional < std::vector< Either > > documentChanges;
- /**
- * A map of change annotations that can be referenced in
- * `AnnotatedTextEdit`s or create, rename and delete file / folder
- * operations.
- *
- * Whether clients honor this property depends on the client capability
- * `workspace.changeAnnotationSupport`.
- *
- * @since 3.16.0
- */
- boost::optional< lsChangeAnnotations > changeAnnotations;
-
- MAKE_SWAP_METHOD(lsWorkspaceEdit, changes, documentChanges, changeAnnotations)
+ // Holds changes to existing resources.
+ // changes ? : { [uri:string]: TextEdit[]; };
+ // std::unordered_map<lsDocumentUri, std::vector<lsTextEdit>> changes;
+
+ // An array of `TextDocumentEdit`s to express changes to specific a specific
+ // version of a text document. Whether a client supports versioned document
+ // edits is expressed via `WorkspaceClientCapabilites.versionedWorkspaceEdit`.
+ //
+ boost::optional< std::map<std::string, std::vector<lsTextEdit> > > changes;
+ typedef std::pair < boost::optional<lsTextDocumentEdit>, boost::optional<lsp::Any> > Either;
+
+ boost::optional < std::vector< Either > > documentChanges;
+ /**
+ * A map of change annotations that can be referenced in
+ * `AnnotatedTextEdit`s or create, rename and delete file / folder
+ * operations.
+ *
+ * Whether clients honor this property depends on the client capability
+ * `workspace.changeAnnotationSupport`.
+ *
+ * @since 3.16.0
+ */
+ boost::optional< lsChangeAnnotations > changeAnnotations;
+
+ MAKE_SWAP_METHOD(lsWorkspaceEdit, changes, documentChanges, changeAnnotations)
};
MAKE_REFLECT_STRUCT(lsWorkspaceEdit, changes, documentChanges, changeAnnotations)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
index 37acc6ca61..2d5c7111fb 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_code_action.h
@@ -13,18 +13,18 @@ struct CommandArgs {
};
MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY(CommandArgs, textDocumentUri, edits);
inline void Reflect(Reader& visitor, CommandArgs& value) {
- int i = 0;
- visitor.IterArray([&](Reader& visitor) {
- switch (i++) {
- case 0:
- Reflect(visitor, value.textDocumentUri);
- break;
- case 1:
- Reflect(visitor, value.edits);
- break;
+ int i = 0;
+ visitor.IterArray([&](Reader& visitor) {
+ switch (i++) {
+ case 0:
+ Reflect(visitor, value.textDocumentUri);
+ break;
+ case 1:
+ Reflect(visitor, value.edits);
+ break;
- }
- });
+ }
+ });
}
// codeLens
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
index 250699a44a..d434b31d13 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_completion.h
@@ -57,8 +57,8 @@ MAKE_REFLECT_TYPE_PROXY(lsInsertTextFormat);
namespace lsp
{
- std::string ToString(lsCompletionItemKind);
- std::string ToString(lsInsertTextFormat);
+ std::string ToString(lsCompletionItemKind);
+ std::string ToString(lsInsertTextFormat);
}
/**
* The Completion request is sent from the client to the server to compute completion items at a given cursor position.
@@ -67,7 +67,7 @@ namespace lsp
* completion item is selected in the user class.
*/
struct lsCompletionItem {
-
+
// The label of this completion item. By default
// also the text that is inserted when selecting
// this completion.
@@ -89,11 +89,11 @@ struct lsCompletionItem {
* Indicates if this item is deprecated.
*/
boost::optional< bool >deprecated;
-
+
/**
* Select this item when showing.
- *
+ *
* *Note* that only one completion item can be selected and that the
* tool / client decides which item that is. The rule is that the *first
* item of those that match best is selected.
@@ -177,18 +177,18 @@ struct lsCompletionItem {
boost::optional<lsp::Any> data;
std::string ToString();
MAKE_SWAP_METHOD(lsCompletionItem,
- label,
- kind,
- detail,
- documentation,
- sortText,
- insertText,
- filterText,
- insertTextFormat,
- textEdit,
- deprecated, preselect, additionalTextEdits, commitCharacters,
- command, data);
-
+ label,
+ kind,
+ detail,
+ documentation,
+ sortText,
+ insertText,
+ filterText,
+ insertTextFormat,
+ textEdit,
+ deprecated, preselect, additionalTextEdits, commitCharacters,
+ command, data);
+
};
@@ -204,21 +204,21 @@ MAKE_REFLECT_STRUCT(lsCompletionItem,
insertTextFormat,
textEdit,
deprecated, preselect, additionalTextEdits, commitCharacters,
- command, data);
+ command, data);
struct CompletionList {
- // This list it not complete. Further typing should result in recomputing
- // this list.
- bool isIncomplete = false;
- // The completion items.
- std::vector<lsCompletionItem> items;
-
- void swap(CompletionList& arg) noexcept
- {
- items.swap(arg.items);
- std::swap(isIncomplete, arg.isIncomplete);
- }
+ // This list it not complete. Further typing should result in recomputing
+ // this list.
+ bool isIncomplete = false;
+ // The completion items.
+ std::vector<lsCompletionItem> items;
+
+ void swap(CompletionList& arg) noexcept
+ {
+ items.swap(arg.items);
+ std::swap(isIncomplete, arg.isIncomplete);
+ }
};
-MAKE_REFLECT_STRUCT(CompletionList, isIncomplete, items); \ No newline at end of file
+MAKE_REFLECT_STRUCT(CompletionList, isIncomplete, items);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
index d1b1d1ba78..3ddea4b9ee 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/lsp_diagnostic.h
@@ -28,20 +28,20 @@ MAKE_REFLECT_TYPE_PROXY(lsDiagnosticSeverity);
*/
enum class DiagnosticTag :uint8_t {
- /**
- * Unused or unnecessary code.
- *
- * Clients are allowed to render diagnostics with this tag faded out instead of having
- * an error squiggle.
- */
- Unnecessary=(1),
-
- /**
- * Deprecated or obsolete code.
- *
- * Clients are allowed to rendered diagnostics with this tag strike through.
- */
- Deprecated=(2),
+ /**
+ * Unused or unnecessary code.
+ *
+ * Clients are allowed to render diagnostics with this tag faded out instead of having
+ * an error squiggle.
+ */
+ Unnecessary=(1),
+
+ /**
+ * Deprecated or obsolete code.
+ *
+ * Clients are allowed to rendered diagnostics with this tag strike through.
+ */
+ Deprecated=(2),
};
MAKE_REFLECT_TYPE_PROXY(DiagnosticTag);
@@ -56,19 +56,19 @@ MAKE_REFLECT_TYPE_PROXY(DiagnosticTag);
*/
struct DiagnosticRelatedInformation {
- /**
- * The location of this related diagnostic information.
- */
+ /**
+ * The location of this related diagnostic information.
+ */
lsLocation location;
- /**
- * The message of this related diagnostic information.
- */
+ /**
+ * The message of this related diagnostic information.
+ */
- std::string message;
+ std::string message;
- MAKE_SWAP_METHOD(DiagnosticRelatedInformation, location, message)
+ MAKE_SWAP_METHOD(DiagnosticRelatedInformation, location, message)
};
MAKE_REFLECT_STRUCT(DiagnosticRelatedInformation, location, message)
/**
@@ -77,11 +77,11 @@ MAKE_REFLECT_STRUCT(DiagnosticRelatedInformation, location, message)
* @since 3.16.0
*/
struct DiagnosticCodeDescription {
- /**
- * An URI to open with more information about the diagnostic error.
- */
- std::string href;
- MAKE_SWAP_METHOD(DiagnosticCodeDescription, href)
+ /**
+ * An URI to open with more information about the diagnostic error.
+ */
+ std::string href;
+ MAKE_SWAP_METHOD(DiagnosticCodeDescription, href)
};
MAKE_REFLECT_STRUCT(DiagnosticCodeDescription, href)
@@ -114,7 +114,7 @@ struct lsDiagnostic {
* @since 3.15.0
*/
boost::optional<std::vector<DiagnosticTag>> tags;
-
+
/**
* An array of related diagnostic information, e.g. when symbol-names within a scope collide
@@ -142,8 +142,8 @@ MAKE_REFLECT_STRUCT(lsDiagnostic, range, severity, code, codeDescription, source
struct Rsp_Error : ResponseError<lsResponseError, Rsp_Error> {
-
- MAKE_SWAP_METHOD(Rsp_Error, jsonrpc, id, error)
+
+ MAKE_SWAP_METHOD(Rsp_Error, jsonrpc, id, error)
};
MAKE_REFLECT_STRUCT(Rsp_Error, jsonrpc, id, error)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
index 36c4aa78ba..60f8ba3c7f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/out_list.h
@@ -15,8 +15,8 @@
namespace LocationListEither{
- typedef std::pair< boost::optional<std::vector<lsLocation>> , boost::optional<std::vector<LocationLink> > > Either;
-
+ typedef std::pair< boost::optional<std::vector<lsLocation>> , boost::optional<std::vector<LocationLink> > > Either;
+
};
extern void Reflect(Reader& visitor, LocationListEither::Either& value);
//DEFINE_RESPONCE_TYPE(Rsp_LocationListEither, LocationListEither::Either);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
index 57298b8d7f..87ebfe89ed 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/symbol.h
@@ -3,45 +3,45 @@
enum class lsSymbolKind : uint8_t {
- Unknown = 0,
-
- File = 1,
- Module = 2,
- Namespace = 3,
- Package = 4,
- Class = 5,
- Method = 6,
- Property = 7,
- Field = 8,
- Constructor = 9,
- Enum = 10,
- Interface = 11,
- Function = 12,
- Variable = 13,
- Constant = 14,
- String = 15,
- Number = 16,
- Boolean = 17,
- Array = 18,
- Object = 19,
- Key = 20,
- Null = 21,
- EnumMember = 22,
- Struct = 23,
- Event = 24,
- Operator = 25,
-
- // For C++, this is interpreted as "template parameter" (including
- // non-type template parameters).
- TypeParameter = 26,
-
- // cquery extensions
- // See also https://github.com/Microsoft/language-server-protocol/issues/344
- // for new SymbolKind clang/Index/IndexSymbol.h clang::index::SymbolKind
- TypeAlias = 252,
- Parameter = 253,
- StaticMethod = 254,
- Macro = 255,
+ Unknown = 0,
+
+ File = 1,
+ Module = 2,
+ Namespace = 3,
+ Package = 4,
+ Class = 5,
+ Method = 6,
+ Property = 7,
+ Field = 8,
+ Constructor = 9,
+ Enum = 10,
+ Interface = 11,
+ Function = 12,
+ Variable = 13,
+ Constant = 14,
+ String = 15,
+ Number = 16,
+ Boolean = 17,
+ Array = 18,
+ Object = 19,
+ Key = 20,
+ Null = 21,
+ EnumMember = 22,
+ Struct = 23,
+ Event = 24,
+ Operator = 25,
+
+ // For C++, this is interpreted as "template parameter" (including
+ // non-type template parameters).
+ TypeParameter = 26,
+
+ // cquery extensions
+ // See also https://github.com/Microsoft/language-server-protocol/issues/344
+ // for new SymbolKind clang/Index/IndexSymbol.h clang::index::SymbolKind
+ TypeAlias = 252,
+ Parameter = 253,
+ StaticMethod = 254,
+ Macro = 255,
};
MAKE_REFLECT_TYPE_PROXY(lsSymbolKind);
@@ -113,52 +113,52 @@ MAKE_REFLECT_STRUCT(lsSymbolInformation, name, kind, deprecated, location, conta
struct lsDocumentSymbol {
- /**
- * The name of this symbol.
- */
-
- std::string name;
-
- /**
- * The kind of this symbol.
- */
-
- lsSymbolKind kind = lsSymbolKind::Unknown;
-
- /**
- * The range enclosing this symbol not including leading/trailing whitespace but everything else
- * like comments. This information is typically used to determine if the clients cursor is
- * inside the symbol to reveal in the symbol in the UI.
- */
-
- lsRange range;
-
- /**
- * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
- * Must be contained by the `range`.
- */
-
- lsRange selectionRange;
-
- /**
- * More detail for this symbol, e.g the signature of a function. If not provided the
- * name is used.
- */
- boost::optional< std::string > detail;
-
- /**
- * Indicates if this symbol is deprecated.
- */
- boost::optional< bool > deprecated;
-
- /**
- * Children of this symbol, e.g. properties of a class.
- */
- boost::optional < std::vector<lsDocumentSymbol> > children;
-
- //internal use
- int flags=0;
-
- MAKE_SWAP_METHOD(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags);
+ /**
+ * The name of this symbol.
+ */
+
+ std::string name;
+
+ /**
+ * The kind of this symbol.
+ */
+
+ lsSymbolKind kind = lsSymbolKind::Unknown;
+
+ /**
+ * The range enclosing this symbol not including leading/trailing whitespace but everything else
+ * like comments. This information is typically used to determine if the clients cursor is
+ * inside the symbol to reveal in the symbol in the UI.
+ */
+
+ lsRange range;
+
+ /**
+ * The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
+ * Must be contained by the `range`.
+ */
+
+ lsRange selectionRange;
+
+ /**
+ * More detail for this symbol, e.g the signature of a function. If not provided the
+ * name is used.
+ */
+ boost::optional< std::string > detail;
+
+ /**
+ * Indicates if this symbol is deprecated.
+ */
+ boost::optional< bool > deprecated;
+
+ /**
+ * Children of this symbol, e.g. properties of a class.
+ */
+ boost::optional < std::vector<lsDocumentSymbol> > children;
+
+ //internal use
+ int flags=0;
+
+ MAKE_SWAP_METHOD(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags);
};
-MAKE_REFLECT_STRUCT(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags); \ No newline at end of file
+MAKE_REFLECT_STRUCT(lsDocumentSymbol, name, kind, range, selectionRange, detail, deprecated, children, flags);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
index 612d186f6f..7f5978ff84 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/SemanticTokens.h
@@ -4,115 +4,115 @@
#include "LibLsp/lsp/lsVersionedTextDocumentIdentifier.h"
#include "LibLsp/JsonRpc/RequestInMessage.h"
enum class HighlightingKind_clangD {
- Variable = 0,
- LocalVariable,
- Parameter,
- Function,
- Method,
- StaticMethod,
- Field,
- StaticField,
- Class,
- Interface,
- Enum,
- EnumConstant,
- Typedef,
- Type,
- Unknown,
- Namespace,
- TemplateParameter,
- Concept,
- Primitive,
- Macro,
+ Variable = 0,
+ LocalVariable,
+ Parameter,
+ Function,
+ Method,
+ StaticMethod,
+ Field,
+ StaticField,
+ Class,
+ Interface,
+ Enum,
+ EnumConstant,
+ Typedef,
+ Type,
+ Unknown,
+ Namespace,
+ TemplateParameter,
+ Concept,
+ Primitive,
+ Macro,
- // This one is different from the other kinds as it's a line style
- // rather than a token style.
- InactiveCode,
+ // This one is different from the other kinds as it's a line style
+ // rather than a token style.
+ InactiveCode,
- LastKind = InactiveCode
+ LastKind = InactiveCode
};
std::string toSemanticTokenType(HighlightingKind_clangD kind);
enum class HighlightingModifier_clangD {
- Declaration,
- Deprecated,
- Deduced,
- Readonly,
- Static,
- Abstract,
- DependentName,
- DefaultLibrary,
+ Declaration,
+ Deprecated,
+ Deduced,
+ Readonly,
+ Static,
+ Abstract,
+ DependentName,
+ DefaultLibrary,
- FunctionScope,
- ClassScope,
- FileScope,
- GlobalScope,
+ FunctionScope,
+ ClassScope,
+ FileScope,
+ GlobalScope,
- LastModifier = GlobalScope
+ LastModifier = GlobalScope
};
std::string toSemanticTokenModifier(HighlightingModifier_clangD modifier);
enum SemanticTokenType {
- ls_namespace=0,// 'namespace',
- /**
- * Represents a generic type. Acts as a fallback for types which
- * can't be mapped to a specific type like class or enum.
- */
- ls_type,// 'type',
- ls_class,// 'class',
- ls_enum,// 'enum',
- ls_interface,// 'interface',
- ls_struct,// 'struct',
- ls_typeParameter,// 'typeParameter',
- ls_parameter,// 'parameter',
- ls_variable,// 'variable',
- ls_property,// 'property',
- ls_enumMember,// 'enumMember',
- ls_event,// 'event',
- ls_function,// 'function',
- ls_method,// 'method',
- ls_macro,// 'macro',
- ls_keyword,// 'keyword',
- ls_modifier,// 'modifier',
- ls_comment,// 'comment',
- ls_string,// 'string',
- ls_number,// 'number',
- ls_regexp,// 'regexp',
- ls_operator,// 'operator'
- lastKind = ls_operator
+ ls_namespace=0,// 'namespace',
+ /**
+ * Represents a generic type. Acts as a fallback for types which
+ * can't be mapped to a specific type like class or enum.
+ */
+ ls_type,// 'type',
+ ls_class,// 'class',
+ ls_enum,// 'enum',
+ ls_interface,// 'interface',
+ ls_struct,// 'struct',
+ ls_typeParameter,// 'typeParameter',
+ ls_parameter,// 'parameter',
+ ls_variable,// 'variable',
+ ls_property,// 'property',
+ ls_enumMember,// 'enumMember',
+ ls_event,// 'event',
+ ls_function,// 'function',
+ ls_method,// 'method',
+ ls_macro,// 'macro',
+ ls_keyword,// 'keyword',
+ ls_modifier,// 'modifier',
+ ls_comment,// 'comment',
+ ls_string,// 'string',
+ ls_number,// 'number',
+ ls_regexp,// 'regexp',
+ ls_operator,// 'operator'
+ lastKind = ls_operator
};
std::string to_string(SemanticTokenType);
unsigned toSemanticTokenType(std::vector<SemanticTokenType>& modifiers);
enum TokenType_JDT {
- PACKAGE_JDT=0,
- CLASS_JDT,
- INTERFACE_JDT,
- ENUM_JDT,
- ENUM_MEMBER_JDT,
- TYPE_JDT,
- TYPE_PARAMETER_JDT,
- ANNOTATION_JDT,
- ANNOTATION_MEMBER_JDT,
- METHOD_JDT,
- PROPERTY_JDT,
- VARIABLE_JDT,
- PARAMETER_JDT
+ PACKAGE_JDT=0,
+ CLASS_JDT,
+ INTERFACE_JDT,
+ ENUM_JDT,
+ ENUM_MEMBER_JDT,
+ TYPE_JDT,
+ TYPE_PARAMETER_JDT,
+ ANNOTATION_JDT,
+ ANNOTATION_MEMBER_JDT,
+ METHOD_JDT,
+ PROPERTY_JDT,
+ VARIABLE_JDT,
+ PARAMETER_JDT
};
std::string to_string(TokenType_JDT);
enum SemanticTokenModifier {
- ls_declaration=0,// 'declaration',
- ls_definition,// 'definition',
- ls_readonly,// 'readonly',
- ls_static,// 'static',
- ls_deprecated,// 'deprecated',
- ls_abstract,// 'abstract',
- ls_async,// 'async',
- ls_modification,// 'modification',
- ls_documentation,// 'documentation',
- ls_defaultLibrary,// 'defaultLibrary'
- LastModifier = ls_defaultLibrary
+ ls_declaration=0,// 'declaration',
+ ls_definition,// 'definition',
+ ls_readonly,// 'readonly',
+ ls_static,// 'static',
+ ls_deprecated,// 'deprecated',
+ ls_abstract,// 'abstract',
+ ls_async,// 'async',
+ ls_modification,// 'modification',
+ ls_documentation,// 'documentation',
+ ls_defaultLibrary,// 'defaultLibrary'
+ LastModifier = ls_defaultLibrary
};
std::string to_string(SemanticTokenModifier);
unsigned toSemanticTokenModifiers(std::vector<SemanticTokenModifier>&);
@@ -120,85 +120,85 @@ unsigned toSemanticTokenModifiers(std::vector<SemanticTokenModifier>&);
/// This struct is not part of LSP, which just encodes lists of tokens as
/// arrays of numbers directly.
struct SemanticToken {
- /// token line number, relative to the previous token
- unsigned deltaLine = 0;
- /// token start character, relative to the previous token
- /// (relative to 0 or the previous token's start if they are on the same line)
- unsigned deltaStart = 0;
- /// the length of the token. A token cannot be multiline
- unsigned length = 0;
- /// will be looked up in `SemanticTokensLegend.tokenTypes`
- unsigned tokenType = 0;
- /// each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
- unsigned tokenModifiers = 0;
+ /// token line number, relative to the previous token
+ unsigned deltaLine = 0;
+ /// token start character, relative to the previous token
+ /// (relative to 0 or the previous token's start if they are on the same line)
+ unsigned deltaStart = 0;
+ /// the length of the token. A token cannot be multiline
+ unsigned length = 0;
+ /// will be looked up in `SemanticTokensLegend.tokenTypes`
+ unsigned tokenType = 0;
+ /// each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
+ unsigned tokenModifiers = 0;
};
bool operator==(const SemanticToken&, const SemanticToken&);
struct SemanticTokens{
- /**
- * Tokens in a file are represented as an array of integers. The position of each token is expressed relative to
- * the token before it, because most tokens remain stable relative to each other when edits are made in a file.
- *
- * ---
- * In short, each token takes 5 integers to represent, so a specific token `i` in the file consists of the following array indices:
- * - at index `5*i` - `deltaLine`: token line number, relative to the previous token
- * - at index `5*i+1` - `deltaStart`: token start character, relative to the previous token (relative to 0 or the previous token's start if they are on the same line)
- * - at index `5*i+2` - `length`: the length of the token. A token cannot be multiline.
- * - at index `5*i+3` - `tokenType`: will be looked up in `SemanticTokensLegend.tokenTypes`. We currently ask that `tokenType` < 65536.
- * - at index `5*i+4` - `tokenModifiers`: each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
- *
- * ---
- * ### How to encode tokens
- *
- * Here is an example for encoding a file with 3 tokens in a uint32 array:
- * ```
- * { line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
- * { line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
- * { line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
- * ```
- *
- * 1. First of all, a legend must be devised. This legend must be provided up-front and capture all possible token types.
- * For this example, we will choose the following legend which must be passed in when registering the provider:
- * ```
- * tokenTypes: ['property', 'type', 'class'],
- * tokenModifiers: ['private', 'static']
- * ```
- *
- * 2. The first transformation step is to encode `tokenType` and `tokenModifiers` as integers using the legend. Token types are looked
- * up by index, so a `tokenType` value of `1` means `tokenTypes[1]`. Multiple token modifiers can be set by using bit flags,
- * so a `tokenModifier` value of `3` is first viewed as binary `0b00000011`, which means `[tokenModifiers[0], tokenModifiers[1]]` because
- * bits 0 and 1 are set. Using this legend, the tokens now are:
- * ```
- * { line: 2, startChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
- * { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
- * { line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
- * ```
- *
- * 3. The next step is to represent each token relative to the previous token in the file. In this case, the second token
- * is on the same line as the first token, so the `startChar` of the second token is made relative to the `startChar`
- * of the first token, so it will be `10 - 5`. The third token is on a different line than the second token, so the
- * `startChar` of the third token will not be altered:
- * ```
- * { deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
- * { deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
- * { deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
- * ```
- *
- * 4. Finally, the last step is to inline each of the 5 fields for a token in a single array, which is a memory friendly representation:
- * ```
- * // 1st token, 2nd token, 3rd token
- * [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
- * ```
- */
- std::vector<int32_t> data;
- static std::vector<int32_t> encodeTokens(std::vector<SemanticToken>& tokens);
+ /**
+ * Tokens in a file are represented as an array of integers. The position of each token is expressed relative to
+ * the token before it, because most tokens remain stable relative to each other when edits are made in a file.
+ *
+ * ---
+ * In short, each token takes 5 integers to represent, so a specific token `i` in the file consists of the following array indices:
+ * - at index `5*i` - `deltaLine`: token line number, relative to the previous token
+ * - at index `5*i+1` - `deltaStart`: token start character, relative to the previous token (relative to 0 or the previous token's start if they are on the same line)
+ * - at index `5*i+2` - `length`: the length of the token. A token cannot be multiline.
+ * - at index `5*i+3` - `tokenType`: will be looked up in `SemanticTokensLegend.tokenTypes`. We currently ask that `tokenType` < 65536.
+ * - at index `5*i+4` - `tokenModifiers`: each set bit will be looked up in `SemanticTokensLegend.tokenModifiers`
+ *
+ * ---
+ * ### How to encode tokens
+ *
+ * Here is an example for encoding a file with 3 tokens in a uint32 array:
+ * ```
+ * { line: 2, startChar: 5, length: 3, tokenType: "property", tokenModifiers: ["private", "static"] },
+ * { line: 2, startChar: 10, length: 4, tokenType: "type", tokenModifiers: [] },
+ * { line: 5, startChar: 2, length: 7, tokenType: "class", tokenModifiers: [] }
+ * ```
+ *
+ * 1. First of all, a legend must be devised. This legend must be provided up-front and capture all possible token types.
+ * For this example, we will choose the following legend which must be passed in when registering the provider:
+ * ```
+ * tokenTypes: ['property', 'type', 'class'],
+ * tokenModifiers: ['private', 'static']
+ * ```
+ *
+ * 2. The first transformation step is to encode `tokenType` and `tokenModifiers` as integers using the legend. Token types are looked
+ * up by index, so a `tokenType` value of `1` means `tokenTypes[1]`. Multiple token modifiers can be set by using bit flags,
+ * so a `tokenModifier` value of `3` is first viewed as binary `0b00000011`, which means `[tokenModifiers[0], tokenModifiers[1]]` because
+ * bits 0 and 1 are set. Using this legend, the tokens now are:
+ * ```
+ * { line: 2, startChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
+ * { line: 2, startChar: 10, length: 4, tokenType: 1, tokenModifiers: 0 },
+ * { line: 5, startChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
+ * ```
+ *
+ * 3. The next step is to represent each token relative to the previous token in the file. In this case, the second token
+ * is on the same line as the first token, so the `startChar` of the second token is made relative to the `startChar`
+ * of the first token, so it will be `10 - 5`. The third token is on a different line than the second token, so the
+ * `startChar` of the third token will not be altered:
+ * ```
+ * { deltaLine: 2, deltaStartChar: 5, length: 3, tokenType: 0, tokenModifiers: 3 },
+ * { deltaLine: 0, deltaStartChar: 5, length: 4, tokenType: 1, tokenModifiers: 0 },
+ * { deltaLine: 3, deltaStartChar: 2, length: 7, tokenType: 2, tokenModifiers: 0 }
+ * ```
+ *
+ * 4. Finally, the last step is to inline each of the 5 fields for a token in a single array, which is a memory friendly representation:
+ * ```
+ * // 1st token, 2nd token, 3rd token
+ * [ 2,5,3,0,3, 0,5,4,1,0, 3,2,7,2,0 ]
+ * ```
+ */
+ std::vector<int32_t> data;
+ static std::vector<int32_t> encodeTokens(std::vector<SemanticToken>& tokens);
- /**
- * An optional result id. If provided and clients support delta updating
- * the client will include the result id in the next semantic token request.
- * A server can then instead of computing all semantic tokens again simply
- * send a delta.
- */
+ /**
+ * An optional result id. If provided and clients support delta updating
+ * the client will include the result id in the next semantic token request.
+ * A server can then instead of computing all semantic tokens again simply
+ * send a delta.
+ */
boost::optional<std::string> resultId;
MAKE_SWAP_METHOD(SemanticTokens, data, resultId)
};
@@ -206,9 +206,9 @@ MAKE_REFLECT_STRUCT(SemanticTokens, data, resultId)
/// Body of textDocument/semanticTokens/full request.
struct SemanticTokensParams {
- /// The text document.
- lsTextDocumentIdentifier textDocument;
- MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
+ /// The text document.
+ lsTextDocumentIdentifier textDocument;
+ MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
};
MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
@@ -216,28 +216,28 @@ MAKE_REFLECT_STRUCT(SemanticTokensParams, textDocument)
/// Body of textDocument/semanticTokens/full/delta request.
/// Requests the changes in semantic tokens since a previous response.
struct SemanticTokensDeltaParams {
- /// The text document.
- lsTextDocumentIdentifier textDocument;
- /**
- * The result id of a previous response. The result Id can either point to
- * a full response or a delta response depending on what was received last.
- */
- std::string previousResultId;
+ /// The text document.
+ lsTextDocumentIdentifier textDocument;
+ /**
+ * The result id of a previous response. The result Id can either point to
+ * a full response or a delta response depending on what was received last.
+ */
+ std::string previousResultId;
- MAKE_REFLECT_STRUCT(SemanticTokensDeltaParams, textDocument, previousResultId)
+ MAKE_REFLECT_STRUCT(SemanticTokensDeltaParams, textDocument, previousResultId)
};
MAKE_REFLECT_STRUCT(SemanticTokensDeltaParams, textDocument, previousResultId)
/// Describes a a replacement of a contiguous range of semanticTokens.
struct SemanticTokensEdit {
- // LSP specifies `start` and `deleteCount` which are relative to the array
- // encoding of the previous tokens.
- // We use token counts instead, and translate when serializing this struct.
- unsigned startToken = 0;
- unsigned deleteTokens = 0;
- std::vector<int32_t> tokens; // encoded as a flat integer array
+ // LSP specifies `start` and `deleteCount` which are relative to the array
+ // encoding of the previous tokens.
+ // We use token counts instead, and translate when serializing this struct.
+ unsigned startToken = 0;
+ unsigned deleteTokens = 0;
+ std::vector<int32_t> tokens; // encoded as a flat integer array
- MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
+ MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
};
MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
@@ -245,23 +245,23 @@ MAKE_REFLECT_STRUCT(SemanticTokensEdit, startToken, deleteTokens, tokens)
/// This models LSP SemanticTokensDelta | SemanticTokens, which is the result of
/// textDocument/semanticTokens/full/delta.
struct SemanticTokensOrDelta {
- boost::optional<std::string > resultId;
- /// Set if we computed edits relative to a previous set of tokens.
- boost::optional< std::vector<SemanticTokensEdit> > edits;
- /// Set if we computed a fresh set of tokens.
- /// Set if we computed edits relative to a previous set of tokens.
- boost::optional<std::vector<int32_t>> tokens; // encoded as integer array
- MAKE_REFLECT_STRUCT(SemanticTokensOrDelta, resultId, edits, tokens)
+ boost::optional<std::string > resultId;
+ /// Set if we computed edits relative to a previous set of tokens.
+ boost::optional< std::vector<SemanticTokensEdit> > edits;
+ /// Set if we computed a fresh set of tokens.
+ /// Set if we computed edits relative to a previous set of tokens.
+ boost::optional<std::vector<int32_t>> tokens; // encoded as integer array
+ MAKE_REFLECT_STRUCT(SemanticTokensOrDelta, resultId, edits, tokens)
};
MAKE_REFLECT_STRUCT(SemanticTokensOrDelta, resultId, edits, tokens)
-
+
struct SemanticTokensLegend {
- std::vector<std::string> tokenTypes;
- std::vector<std::string> tokenModifiers;
- MAKE_REFLECT_STRUCT(SemanticTokensLegend, tokenTypes, tokenModifiers)
+ std::vector<std::string> tokenTypes;
+ std::vector<std::string> tokenModifiers;
+ MAKE_REFLECT_STRUCT(SemanticTokensLegend, tokenTypes, tokenModifiers)
};
MAKE_REFLECT_STRUCT(SemanticTokensLegend, tokenTypes, tokenModifiers)
DEFINE_REQUEST_RESPONSE_TYPE(td_semanticTokens_full, SemanticTokensParams,boost::optional<SemanticTokens >,"textDocument/semanticTokens/full")
-DEFINE_REQUEST_RESPONSE_TYPE(td_semanticTokens_full_delta, SemanticTokensDeltaParams, boost::optional<SemanticTokensOrDelta >, "textDocument/semanticTokens/full/delta") \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_semanticTokens_full_delta, SemanticTokensDeltaParams, boost::optional<SemanticTokensOrDelta >, "textDocument/semanticTokens/full/delta")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
index a005c182e1..432fa518d5 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/callHierarchy.h
@@ -12,56 +12,56 @@ MAKE_REFLECT_TYPE_PROXY(SymbolTag)
struct CallHierarchyPrepareParams
{
- lsTextDocumentIdentifier textDocument;
- lsPosition position;
+ lsTextDocumentIdentifier textDocument;
+ lsPosition position;
- MAKE_SWAP_METHOD(CallHierarchyPrepareParams,
- textDocument,
- position)
+ MAKE_SWAP_METHOD(CallHierarchyPrepareParams,
+ textDocument,
+ position)
};
MAKE_REFLECT_STRUCT(CallHierarchyPrepareParams,
- textDocument,
- position)
+ textDocument,
+ position)
- /// Represents programming constructs like functions or constructors
- /// in the context of call hierarchy.
+ /// Represents programming constructs like functions or constructors
+ /// in the context of call hierarchy.
struct CallHierarchyItem {
- /// The name of this item.
- std::string name;
-
- /// The kind of this item.
- SymbolKind kind;
-
- /// Tags for this item.
- boost::optional<std::vector<SymbolTag>> tags;
-
- /// More detaill for this item, e.g. the signature of a function.
- boost::optional<std::string> detail;
-
- /// The resource identifier of this item.
- lsDocumentUri uri;
-
- /**
- * The range enclosing this symbol not including leading/trailing whitespace
- * but everything else, e.g. comments and code.
- */
- lsRange range;
-
- /**
- * The range that should be selected and revealed when this symbol is being
- * picked, e.g. the name of a function. Must be contained by the
- * [`range`](#CallHierarchyItem.range).
- */
- lsRange selectionRange;
-
- /**
- * A data entry field that is preserved between a call hierarchy prepare and
- * incoming calls or outgoing calls requests.
- */
- boost::optional<lsp::Any> data;
- MAKE_SWAP_METHOD(CallHierarchyItem, name, kind, tags, detail, uri, range, selectionRange, data)
+ /// The name of this item.
+ std::string name;
+
+ /// The kind of this item.
+ SymbolKind kind;
+
+ /// Tags for this item.
+ boost::optional<std::vector<SymbolTag>> tags;
+
+ /// More detaill for this item, e.g. the signature of a function.
+ boost::optional<std::string> detail;
+
+ /// The resource identifier of this item.
+ lsDocumentUri uri;
+
+ /**
+ * The range enclosing this symbol not including leading/trailing whitespace
+ * but everything else, e.g. comments and code.
+ */
+ lsRange range;
+
+ /**
+ * The range that should be selected and revealed when this symbol is being
+ * picked, e.g. the name of a function. Must be contained by the
+ * [`range`](#CallHierarchyItem.range).
+ */
+ lsRange selectionRange;
+
+ /**
+ * A data entry field that is preserved between a call hierarchy prepare and
+ * incoming calls or outgoing calls requests.
+ */
+ boost::optional<lsp::Any> data;
+ MAKE_SWAP_METHOD(CallHierarchyItem, name, kind, tags, detail, uri, range, selectionRange, data)
};
MAKE_REFLECT_STRUCT(CallHierarchyItem, name, kind, tags, detail, uri, range, selectionRange, data)
@@ -69,21 +69,21 @@ MAKE_REFLECT_STRUCT(CallHierarchyItem, name, kind, tags, detail, uri, range, sel
/// The parameter of a `callHierarchy/incomingCalls` request.
struct CallHierarchyIncomingCallsParams {
- CallHierarchyItem item;
- MAKE_SWAP_METHOD(CallHierarchyIncomingCallsParams,item)
+ CallHierarchyItem item;
+ MAKE_SWAP_METHOD(CallHierarchyIncomingCallsParams,item)
};
MAKE_REFLECT_STRUCT(CallHierarchyIncomingCallsParams, item)
/// Represents an incoming call, e.g. a caller of a method or constructor.
struct CallHierarchyIncomingCall {
- /// The item that makes the call.
- CallHierarchyItem from;
+ /// The item that makes the call.
+ CallHierarchyItem from;
- /// The range at which the calls appear.
- /// This is relative to the caller denoted by `From`.
- std::vector<lsRange> fromRanges;
- MAKE_SWAP_METHOD(CallHierarchyIncomingCall, from, fromRanges)
+ /// The range at which the calls appear.
+ /// This is relative to the caller denoted by `From`.
+ std::vector<lsRange> fromRanges;
+ MAKE_SWAP_METHOD(CallHierarchyIncomingCall, from, fromRanges)
};
MAKE_REFLECT_STRUCT(CallHierarchyIncomingCall, from, fromRanges)
@@ -92,30 +92,30 @@ MAKE_REFLECT_STRUCT(CallHierarchyIncomingCall, from, fromRanges)
/// The parameter of a `callHierarchy/outgoingCalls` request.
struct CallHierarchyOutgoingCallsParams {
- CallHierarchyItem item;
- MAKE_SWAP_METHOD(CallHierarchyOutgoingCallsParams, item)
+ CallHierarchyItem item;
+ MAKE_SWAP_METHOD(CallHierarchyOutgoingCallsParams, item)
};
MAKE_REFLECT_STRUCT(CallHierarchyOutgoingCallsParams, item)
/// Represents an outgoing call, e.g. calling a getter from a method or
/// a method from a constructor etc.
struct CallHierarchyOutgoingCall {
- /// The item that is called.
- CallHierarchyItem to;
+ /// The item that is called.
+ CallHierarchyItem to;
- /// The range at which this item is called.
- /// This is the range relative to the caller, and not `To`.
- std::vector<lsRange> fromRanges;
- MAKE_SWAP_METHOD(CallHierarchyOutgoingCall, to, fromRanges)
+ /// The range at which this item is called.
+ /// This is the range relative to the caller, and not `To`.
+ std::vector<lsRange> fromRanges;
+ MAKE_SWAP_METHOD(CallHierarchyOutgoingCall, to, fromRanges)
};
MAKE_REFLECT_STRUCT(CallHierarchyOutgoingCall, to, fromRanges)
DEFINE_REQUEST_RESPONSE_TYPE(td_prepareCallHierarchy, CallHierarchyPrepareParams,
- boost::optional<std::vector<CallHierarchyItem>>, "textDocument/prepareCallHierarchy")
+ boost::optional<std::vector<CallHierarchyItem>>, "textDocument/prepareCallHierarchy")
DEFINE_REQUEST_RESPONSE_TYPE(td_incomingCalls, CallHierarchyIncomingCallsParams,
- boost::optional<std::vector<CallHierarchyIncomingCall>>, "callHierarchy/incomingCalls")
+ boost::optional<std::vector<CallHierarchyIncomingCall>>, "callHierarchy/incomingCalls")
DEFINE_REQUEST_RESPONSE_TYPE(td_outgoingCalls, CallHierarchyOutgoingCallsParams,
- boost::optional<std::vector<CallHierarchyOutgoingCall>>, "callHierarchy/CallHierarchyOutgoingCall") \ No newline at end of file
+ boost::optional<std::vector<CallHierarchyOutgoingCall>>, "callHierarchy/CallHierarchyOutgoingCall")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
index 419fdfbc9b..e72d83af90 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_action.h
@@ -7,24 +7,24 @@
namespace QuickAssistProcessor {
- extern const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID;//$NON-NLS-1$
- extern const char* CONVERT_FOR_LOOP_ID;// ;// "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_PARAM_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
- extern const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID ;// "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
- extern const char* ADD_BLOCK_ID ;// "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
- extern const char* EXTRACT_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
- extern const char* EXTRACT_LOCAL_NOT_REPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
- extern const char* EXTRACT_CONSTANT_ID ;// "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
- extern const char* INLINE_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
- extern const char* CONVERT_LOCAL_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
- extern const char* CONVERT_ANONYMOUS_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
- extern const char* CONVERT_TO_STRING_BUFFER_ID ;// "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
- extern const char* CONVERT_TO_MESSAGE_FORMAT_ID ;// "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
- extern const char* EXTRACT_METHOD_INPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
+ extern const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID;//$NON-NLS-1$
+ extern const char* CONVERT_FOR_LOOP_ID;// ;// "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_PARAM_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
+ extern const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID ;// "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
+ extern const char* ADD_BLOCK_ID ;// "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
+ extern const char* EXTRACT_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
+ extern const char* EXTRACT_LOCAL_NOT_REPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
+ extern const char* EXTRACT_CONSTANT_ID ;// "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
+ extern const char* INLINE_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_LOCAL_TO_FIELD_ID ;// "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_ANONYMOUS_TO_LOCAL_ID ;// "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_TO_STRING_BUFFER_ID ;// "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
+ extern const char* CONVERT_TO_MESSAGE_FORMAT_ID ;// "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
+ extern const char* EXTRACT_METHOD_INPLACE_ID ;// "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
- extern const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND ;// "convertAnonymousClassToNestedCommand";
+ extern const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND ;// "convertAnonymousClassToNestedCommand";
};
/**
* The code action request is sent from the client to the server to compute
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
index 7fd5ae0cf9..9dd763333d 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/code_lens.h
@@ -4,7 +4,7 @@
#include "LibLsp/JsonRpc/lsResponseMessage.h"
struct lsDocumentCodeLensParams {
-
+
/**
* The document to request code lens for.
*/
@@ -18,15 +18,15 @@ MAKE_REFLECT_STRUCT(lsDocumentCodeLensParams, textDocument);
struct lsCodeLens {
- // The range in which this code lens is valid. Should only span a single line.
- lsRange range;
- // The command this code lens represents.
- boost::optional<lsCommandWithAny> command;
- // A data entry field that is preserved on a code lens item between
- // a code lens and a code lens resolve request.
- boost::optional< lsp::Any> data;
-
- MAKE_SWAP_METHOD(lsCodeLens, range, command, data)
+ // The range in which this code lens is valid. Should only span a single line.
+ lsRange range;
+ // The command this code lens represents.
+ boost::optional<lsCommandWithAny> command;
+ // A data entry field that is preserved on a code lens item between
+ // a code lens and a code lens resolve request.
+ boost::optional< lsp::Any> data;
+
+ MAKE_SWAP_METHOD(lsCodeLens, range, command, data)
};
MAKE_REFLECT_STRUCT(lsCodeLens, range, command, data)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
index 22574e3e19..c70b6502d2 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/colorPresentation.h
@@ -12,52 +12,52 @@
struct ColorPresentationParams {
- /**
+ /**
* The text document.
*/
- lsTextDocumentIdentifier textDocument;
+ lsTextDocumentIdentifier textDocument;
- /**
- * The range in the document where this color appers.
- */
+ /**
+ * The range in the document where this color appers.
+ */
- lsRange range;
+ lsRange range;
- /**
- * The actual color value for this color range.
- */
+ /**
+ * The actual color value for this color range.
+ */
- TextDocument::Color color;
- MAKE_SWAP_METHOD(ColorPresentationParams, textDocument, range, color)
+ TextDocument::Color color;
+ MAKE_SWAP_METHOD(ColorPresentationParams, textDocument, range, color)
};
MAKE_REFLECT_STRUCT(ColorPresentationParams, textDocument, range, color)
struct ColorPresentation {
- /**
- * The label of this color presentation. It will be shown on the color
- * picker header. By default this is also the text that is inserted when selecting
- * this color presentation.
- */
-
- std::string label;
-
- /**
- * An edit which is applied to a document when selecting
- * this presentation for the color. When `null` the label is used.
- */
- lsTextEdit textEdit;
-
- /**
- * An optional array of additional text edits that are applied when
- * selecting this color presentation. Edits must not overlap with the main edit nor with themselves.
- */
- std::vector<lsTextEdit> additionalTextEdits;
- MAKE_SWAP_METHOD(ColorPresentation, label, textEdit, additionalTextEdits)
+ /**
+ * The label of this color presentation. It will be shown on the color
+ * picker header. By default this is also the text that is inserted when selecting
+ * this color presentation.
+ */
+
+ std::string label;
+
+ /**
+ * An edit which is applied to a document when selecting
+ * this presentation for the color. When `null` the label is used.
+ */
+ lsTextEdit textEdit;
+
+ /**
+ * An optional array of additional text edits that are applied when
+ * selecting this color presentation. Edits must not overlap with the main edit nor with themselves.
+ */
+ std::vector<lsTextEdit> additionalTextEdits;
+ MAKE_SWAP_METHOD(ColorPresentation, label, textEdit, additionalTextEdits)
};
MAKE_REFLECT_STRUCT(ColorPresentation, label, textEdit, additionalTextEdits)
DEFINE_REQUEST_RESPONSE_TYPE(td_colorPresentation,
- ColorPresentationParams, std::vector<ColorPresentation>, "textDocument/colorPresentation") \ No newline at end of file
+ ColorPresentationParams, std::vector<ColorPresentation>, "textDocument/colorPresentation")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
index 883c5cfe3a..916d4550e9 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/completion.h
@@ -41,9 +41,9 @@ struct lsCompletionParams : lsTextDocumentPositionParams {
// send this using
// `ClientCapabilities.textDocument.completion.contextSupport === true`
boost::optional<lsCompletionContext> context;
-
+
MAKE_SWAP_METHOD(lsCompletionParams, textDocument, position, context);
-
+
};
MAKE_REFLECT_STRUCT(lsCompletionParams, textDocument, position, context);
@@ -56,9 +56,9 @@ MAKE_REFLECT_STRUCT(lsCompletionParams, textDocument, position, context);
namespace TextDocumentComplete{
-
- typedef std::pair< boost::optional<std::vector<lsCompletionItem>>, boost::optional<CompletionList> > Either;
-
+
+ typedef std::pair< boost::optional<std::vector<lsCompletionItem>>, boost::optional<CompletionList> > Either;
+
};
extern void Reflect(Reader& visitor, TextDocumentComplete::Either& value);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
index e8a6235a00..a7c6fdba34 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/didRenameFiles.h
@@ -9,31 +9,31 @@
class FileRenameEvent {
public:
- std::string oldUri;
- std::string newUri;
+ std::string oldUri;
+ std::string newUri;
- FileRenameEvent() {
- }
+ FileRenameEvent() {
+ }
- FileRenameEvent(std::string oldUri, std::string newUri) {
- this->oldUri = oldUri;
- this->newUri = newUri;
- }
- MAKE_SWAP_METHOD(FileRenameEvent, oldUri, newUri);
+ FileRenameEvent(std::string oldUri, std::string newUri) {
+ this->oldUri = oldUri;
+ this->newUri = newUri;
+ }
+ MAKE_SWAP_METHOD(FileRenameEvent, oldUri, newUri);
};
MAKE_REFLECT_STRUCT(FileRenameEvent, oldUri, newUri);
class FileRenameParams {
public:
- std::vector <FileRenameEvent> files;
+ std::vector <FileRenameEvent> files;
- FileRenameParams() {
- }
+ FileRenameParams() {
+ }
- FileRenameParams(std::vector<FileRenameEvent>& files) {
- this->files = files;
- }
- MAKE_SWAP_METHOD(FileRenameParams, files);
+ FileRenameParams(std::vector<FileRenameEvent>& files) {
+ this->files = files;
+ }
+ MAKE_SWAP_METHOD(FileRenameParams, files);
};
MAKE_REFLECT_STRUCT(FileRenameParams, files);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
index 0887bf6602..fda407f93f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_change.h
@@ -8,38 +8,38 @@
#include "LibLsp/lsp/lsRange.h"
#include "LibLsp/lsp/lsDocumentUri.h"
struct lsTextDocumentContentChangeEvent {
- // The range of the document that changed.
- boost::optional<lsRange> range;
- // The length of the range that got replaced.
- boost::optional<int> rangeLength;
- // The new text of the range/document.
- std::string text;
-
- MAKE_SWAP_METHOD(lsTextDocumentContentChangeEvent, range, rangeLength, text);
+ // The range of the document that changed.
+ boost::optional<lsRange> range;
+ // The length of the range that got replaced.
+ boost::optional<int> rangeLength;
+ // The new text of the range/document.
+ std::string text;
+
+ MAKE_SWAP_METHOD(lsTextDocumentContentChangeEvent, range, rangeLength, text);
};
MAKE_REFLECT_STRUCT(lsTextDocumentContentChangeEvent, range, rangeLength, text);
struct lsTextDocumentDidChangeParams {
- lsVersionedTextDocumentIdentifier textDocument;
- std::vector<lsTextDocumentContentChangeEvent> contentChanges;
-
- /**
- * Legacy property to support protocol version 1.0 requests.
- */
-
- boost::optional<lsDocumentUri> uri;
-
- void swap(lsTextDocumentDidChangeParams& arg) noexcept
- {
- uri.swap(arg.uri);
- contentChanges.swap(arg.contentChanges);
- textDocument.swap(arg.textDocument);
- }
+ lsVersionedTextDocumentIdentifier textDocument;
+ std::vector<lsTextDocumentContentChangeEvent> contentChanges;
+
+ /**
+ * Legacy property to support protocol version 1.0 requests.
+ */
+
+ boost::optional<lsDocumentUri> uri;
+
+ void swap(lsTextDocumentDidChangeParams& arg) noexcept
+ {
+ uri.swap(arg.uri);
+ contentChanges.swap(arg.contentChanges);
+ textDocument.swap(arg.textDocument);
+ }
};
MAKE_REFLECT_STRUCT(lsTextDocumentDidChangeParams,
- textDocument,
- contentChanges, uri);
+ textDocument,
+ contentChanges, uri);
/**
* The document change notification is sent from the client to the server to
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
index e2eaa2cfcd..d064819ae9 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_close.h
@@ -11,11 +11,11 @@ namespace TextDocumentDidClose {
struct Params {
lsTextDocumentIdentifier textDocument;
- void swap(Params& arg) noexcept
- {
- textDocument.swap(arg.textDocument);
- }
-
+ void swap(Params& arg) noexcept
+ {
+ textDocument.swap(arg.textDocument);
+ }
+
};
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
index 7be7a735d6..ed5dfa535f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_open.h
@@ -11,15 +11,15 @@ namespace TextDocumentDidOpen {
struct Params {
lsTextDocumentItem textDocument;
-
+
/**
* Legacy property to support protocol version 1.0 requests.
*/
boost::optional<std::string> text;
-
+
MAKE_SWAP_METHOD(TextDocumentDidOpen::Params, textDocument, text);
-
+
};
}
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
index 1ce386c415..649c9b76ec 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/did_save.h
@@ -15,7 +15,7 @@ namespace TextDocumentDidSave {
// when the save notifcation was requested.
boost::optional<std::string> text;
- MAKE_SWAP_METHOD(TextDocumentDidSave::Params, textDocument, text);
+ MAKE_SWAP_METHOD(TextDocumentDidSave::Params, textDocument, text);
};
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
index 23a6d08d87..9aeeadba05 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/documentColor.h
@@ -7,12 +7,12 @@
#include "LibLsp/lsp/lsRange.h"
#include <vector>
struct DocumentColorParams {
- /**
- * The text document.
- */
+ /**
+ * The text document.
+ */
- lsTextDocumentIdentifier textDocument;
- MAKE_SWAP_METHOD(DocumentColorParams, textDocument);
+ lsTextDocumentIdentifier textDocument;
+ MAKE_SWAP_METHOD(DocumentColorParams, textDocument);
};
MAKE_REFLECT_STRUCT(DocumentColorParams, textDocument);
@@ -28,46 +28,46 @@ MAKE_REFLECT_STRUCT(DocumentColorParams, textDocument);
*/
namespace TextDocument {
- struct Color {
- /**
- * The red component of this color in the range [0-1].
- */
- double red = 0;
+ struct Color {
+ /**
+ * The red component of this color in the range [0-1].
+ */
+ double red = 0;
- /**
- * The green component of this color in the range [0-1].
- */
- double green = 0;
+ /**
+ * The green component of this color in the range [0-1].
+ */
+ double green = 0;
- /**
- * The blue component of this color in the range [0-1].
- */
- double blue = 0;
+ /**
+ * The blue component of this color in the range [0-1].
+ */
+ double blue = 0;
- /**
- * The alpha component of this color in the range [0-1].
- */
- double alpha = 0;
- MAKE_SWAP_METHOD(TextDocument::Color, red, green, blue, alpha)
- };
+ /**
+ * The alpha component of this color in the range [0-1].
+ */
+ double alpha = 0;
+ MAKE_SWAP_METHOD(TextDocument::Color, red, green, blue, alpha)
+ };
}
MAKE_REFLECT_STRUCT(TextDocument::Color, red, green, blue, alpha)
struct ColorInformation {
- /**
- * The range in the document where this color appers.
- */
+ /**
+ * The range in the document where this color appers.
+ */
- lsRange range;
+ lsRange range;
- /**
- * The actual color value for this color range.
- */
+ /**
+ * The actual color value for this color range.
+ */
- TextDocument::Color color;
- MAKE_SWAP_METHOD(ColorInformation, range, color)
+ TextDocument::Color color;
+ MAKE_SWAP_METHOD(ColorInformation, range, color)
};
MAKE_REFLECT_STRUCT(ColorInformation,range,color)
-DEFINE_REQUEST_RESPONSE_TYPE(td_documentColor, DocumentColorParams,std::vector<ColorInformation>, "textDocument/documentColor"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_documentColor, DocumentColorParams,std::vector<ColorInformation>, "textDocument/documentColor");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
index 536a625c4c..e450a08df1 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_link.h
@@ -9,7 +9,7 @@ namespace TextDocumentDocumentLink {
struct Params {
// The document to provide document links for.
lsTextDocumentIdentifier textDocument;
- MAKE_SWAP_METHOD(Params, textDocument)
+ MAKE_SWAP_METHOD(Params, textDocument)
};
};
@@ -27,9 +27,9 @@ struct lsDocumentLink {
boost::optional<lsDocumentUri> target;
boost::optional<lsp::Any> data;
-
+
MAKE_SWAP_METHOD(lsDocumentLink, range, target, data)
-
+
};
MAKE_REFLECT_STRUCT(lsDocumentLink, range, target,data);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
index 8aa6e8b00e..150dde1f0b 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/document_symbol.h
@@ -18,7 +18,7 @@ MAKE_REFLECT_STRUCT(lsDocumentSymbolParams, textDocument);
struct TextDocumentDocumentSymbol{
- typedef std::pair< boost::optional<lsSymbolInformation> , boost::optional<lsDocumentSymbol> > Either;
+ typedef std::pair< boost::optional<lsSymbolInformation> , boost::optional<lsDocumentSymbol> > Either;
};
void Reflect(Reader& visitor, TextDocumentDocumentSymbol::Either& value);
@@ -42,14 +42,14 @@ void Reflect(Reader& visitor, TextDocumentDocumentSymbol::Either& value);
* </p>
*/
-//DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
-// lsDocumentSymbolParams,
-// std::vector<TextDocumentDocumentSymbol::Either> );
+//DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
+// lsDocumentSymbolParams,
+// std::vector<TextDocumentDocumentSymbol::Either> );
//
-DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
- lsDocumentSymbolParams,
- std::vector< lsDocumentSymbol >,"textDocument/documentSymbol" );
+DEFINE_REQUEST_RESPONSE_TYPE(td_symbol,
+ lsDocumentSymbolParams,
+ std::vector< lsDocumentSymbol >,"textDocument/documentSymbol" );
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
index 27977a4517..f863b4991d 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/foldingRange.h
@@ -9,47 +9,47 @@
struct FoldingRangeRequestParams {
- /**
- * The text document.
- */
+ /**
+ * The text document.
+ */
- lsTextDocumentIdentifier textDocument;
- MAKE_SWAP_METHOD(FoldingRangeRequestParams, textDocument)
+ lsTextDocumentIdentifier textDocument;
+ MAKE_SWAP_METHOD(FoldingRangeRequestParams, textDocument)
};
MAKE_REFLECT_STRUCT(FoldingRangeRequestParams, textDocument)
struct FoldingRange {
- /**
- * The zero-based line number from where the folded range starts.
- */
- int startLine;
-
- /**
- * The zero-based line number where the folded range ends.
- */
- int endLine;
-
- /**
- * The zero-based character offset from where the folded range starts. If not defined, defaults
- * to the length of the start line.
- */
- int startCharacter;
-
- /**
- * The zero-based character offset before the folded range ends. If not defined, defaults to the
- * length of the end line.
- */
- int endCharacter;
-
- /**
- * Describes the kind of the folding range such as `comment' or 'region'. The kind
- * is used to categorize folding ranges and used by commands like 'Fold all comments'. See
- * FoldingRangeKind for an enumeration of standardized kinds.
- */
- std::string kind;
-
- MAKE_SWAP_METHOD(FoldingRange, startLine, endLine, startCharacter, endCharacter, kind)
+ /**
+ * The zero-based line number from where the folded range starts.
+ */
+ int startLine;
+
+ /**
+ * The zero-based line number where the folded range ends.
+ */
+ int endLine;
+
+ /**
+ * The zero-based character offset from where the folded range starts. If not defined, defaults
+ * to the length of the start line.
+ */
+ int startCharacter;
+
+ /**
+ * The zero-based character offset before the folded range ends. If not defined, defaults to the
+ * length of the end line.
+ */
+ int endCharacter;
+
+ /**
+ * Describes the kind of the folding range such as `comment' or 'region'. The kind
+ * is used to categorize folding ranges and used by commands like 'Fold all comments'. See
+ * FoldingRangeKind for an enumeration of standardized kinds.
+ */
+ std::string kind;
+
+ MAKE_SWAP_METHOD(FoldingRange, startLine, endLine, startCharacter, endCharacter, kind)
};
MAKE_REFLECT_STRUCT(FoldingRange,startLine,endLine,startCharacter,endCharacter,kind)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
index ad54e24bf9..49b7883b5f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/formatting.h
@@ -8,15 +8,15 @@
namespace TextDocumentFormatting {
struct Params {
- /**
- * The document to format.
- */
+ /**
+ * The document to format.
+ */
lsTextDocumentIdentifier textDocument;
- /**
- * The format options.
- */
+ /**
+ * The format options.
+ */
lsFormattingOptions options;
- MAKE_SWAP_METHOD(Params, textDocument, options);
+ MAKE_SWAP_METHOD(Params, textDocument, options);
};
};
@@ -28,5 +28,5 @@ MAKE_REFLECT_STRUCT(TextDocumentFormatting::Params, textDocument, options);
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_formatting, TextDocumentFormatting::Params,
- std::vector<lsTextEdit>, "textDocument/formatting");
+ std::vector<lsTextEdit>, "textDocument/formatting");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
index 332baf69e1..0e01416126 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/highlight.h
@@ -14,5 +14,5 @@
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_highlight, lsTextDocumentPositionParams,
- std::vector<lsDocumentHighlight>, "textDocument/documentHighlight");
+ std::vector<lsDocumentHighlight>, "textDocument/documentHighlight");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
index 5302316c6f..06f3f9613e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/hover.h
@@ -16,21 +16,21 @@
namespace TextDocumentHover
{
- typedef boost::optional< std::vector< std::pair<boost::optional<std::string>, boost::optional<lsMarkedString>> > > Left;
- typedef std::pair< Left, boost::optional<MarkupContent> > Either;
- struct Result {
- /**
- * The hover's content as markdown
- */
- Either contents;
-
- /**
- * An boost::optional range
- */
- boost::optional<lsRange> range;
-
- MAKE_SWAP_METHOD(Result, contents, range)
- };
+ typedef boost::optional< std::vector< std::pair<boost::optional<std::string>, boost::optional<lsMarkedString>> > > Left;
+ typedef std::pair< Left, boost::optional<MarkupContent> > Either;
+ struct Result {
+ /**
+ * The hover's content as markdown
+ */
+ Either contents;
+
+ /**
+ * An boost::optional range
+ */
+ boost::optional<lsRange> range;
+
+ MAKE_SWAP_METHOD(Result, contents, range)
+ };
}
MAKE_REFLECT_STRUCT(TextDocumentHover::Result, contents, range);
@@ -44,12 +44,12 @@ DEFINE_REQUEST_RESPONSE_TYPE(td_hover, lsTextDocumentPositionParams, TextDocumen
//
//};
//MAKE_REFLECT_STRUCT(Rsp_TextDocumentHover,
-// jsonrpc,
-// id,
-// result);
+// jsonrpc,
+// id,
+// result);
//MAKE_REFLECT_STRUCT_OPTIONALS_MANDATORY(Rsp_TextDocumentHover,
// jsonrpc,
-// id,
+// id,
// result);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
index e4055d359f..96e938a89f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/linkedEditingRange.h
@@ -12,40 +12,40 @@
struct LinkedEditingRangeParams
{
- lsTextDocumentIdentifier textDocument;
- lsPosition position;
+ lsTextDocumentIdentifier textDocument;
+ lsPosition position;
- MAKE_SWAP_METHOD(LinkedEditingRangeParams,
- textDocument,
- position)
+ MAKE_SWAP_METHOD(LinkedEditingRangeParams,
+ textDocument,
+ position)
};
MAKE_REFLECT_STRUCT(LinkedEditingRangeParams,
- textDocument,
- position)
+ textDocument,
+ position)
struct LinkedEditingRanges
{
- /**
+ /**
* A list of ranges that can be renamed together. The ranges must have
* identical length and contain identical text content. The ranges cannot overlap.
*/
std::vector<lsRange> ranges;
- /**
- * An optional word pattern (regular expression) that describes valid contents for
- * the given ranges. If no pattern is provided, the client configuration's word
- * pattern will be used.
- */
-
- boost::optional<std::string> wordPattern;
- MAKE_SWAP_METHOD(LinkedEditingRanges,
- ranges,
- wordPattern)
+ /**
+ * An optional word pattern (regular expression) that describes valid contents for
+ * the given ranges. If no pattern is provided, the client configuration's word
+ * pattern will be used.
+ */
+
+ boost::optional<std::string> wordPattern;
+ MAKE_SWAP_METHOD(LinkedEditingRanges,
+ ranges,
+ wordPattern)
};
MAKE_REFLECT_STRUCT(LinkedEditingRanges,
- ranges,
- wordPattern)
+ ranges,
+ wordPattern)
DEFINE_REQUEST_RESPONSE_TYPE(td_linkedEditingRange, LinkedEditingRangeParams,
- boost::optional<std::vector<LinkedEditingRanges >>,"textDocument/linkedEditingRange") \ No newline at end of file
+ boost::optional<std::vector<LinkedEditingRanges >>,"textDocument/linkedEditingRange")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
index df14ea5d3d..ada2162d12 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/onTypeFormatting.h
@@ -17,20 +17,20 @@ struct lsDocumentOnTypeFormattingParams
lsPosition position;
- /**
- * The character that has been typed.
- */
+ /**
+ * The character that has been typed.
+ */
std::string ch;
MAKE_SWAP_METHOD(lsDocumentOnTypeFormattingParams,
- textDocument,
- position,
- options, ch);
+ textDocument,
+ position,
+ options, ch);
};
MAKE_REFLECT_STRUCT(lsDocumentOnTypeFormattingParams,
textDocument,
- position,
+ position,
options,ch);
/**
@@ -40,5 +40,5 @@ MAKE_REFLECT_STRUCT(lsDocumentOnTypeFormattingParams,
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_onTypeFormatting,
- lsDocumentOnTypeFormattingParams, std::vector<lsTextEdit>, "textDocument/onTypeFormatting");
+ lsDocumentOnTypeFormattingParams, std::vector<lsTextEdit>, "textDocument/onTypeFormatting");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
index 8c653d9864..a7ece38114 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/prepareRename.h
@@ -13,20 +13,20 @@
* Registration Options: TextDocumentRegistrationOptions
*/
struct PrepareRenameResult{
- /**
- * The range of the string to rename
- */
-
- lsRange range;
+ /**
+ * The range of the string to rename
+ */
+
+ lsRange range;
/**
* A placeholder text of the string content to be renamed.
*/
- std::string placeholder;
-
- MAKE_SWAP_METHOD(PrepareRenameResult, range, placeholder)
-
+ std::string placeholder;
+
+ MAKE_SWAP_METHOD(PrepareRenameResult, range, placeholder)
+
};
MAKE_REFLECT_STRUCT(PrepareRenameResult,range,placeholder)
@@ -36,5 +36,5 @@ typedef std::pair< boost::optional< lsRange>, boost::optional<PrepareRenameResu
extern void Reflect(Reader& visitor, TextDocumentPrepareRenameResult& value);
-DEFINE_REQUEST_RESPONSE_TYPE(td_prepareRename,
- lsTextDocumentPositionParams, TextDocumentPrepareRenameResult, "textDocument/prepareRename"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_prepareRename,
+ lsTextDocumentPositionParams, TextDocumentPrepareRenameResult, "textDocument/prepareRename");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
index bf28104bbb..8272df10e8 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/publishDiagnostics.h
@@ -11,14 +11,14 @@ namespace TextDocumentPublishDiagnostics{
// An array of diagnostic information items.
std::vector<lsDiagnostic> diagnostics;
- MAKE_SWAP_METHOD(Params,uri,diagnostics);
+ MAKE_SWAP_METHOD(Params,uri,diagnostics);
};
-
+
};
MAKE_REFLECT_STRUCT(TextDocumentPublishDiagnostics::Params,
- uri,
- diagnostics);
+ uri,
+ diagnostics);
/**
* Diagnostics notifications are sent from the server to the client to
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
index b2fe750af1..c3c5ff0d0b 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/range_formatting.h
@@ -13,9 +13,9 @@ struct lsTextDocumentRangeFormattingParams {
lsFormattingOptions options;
MAKE_SWAP_METHOD(lsTextDocumentRangeFormattingParams,
- textDocument,
- range,
- options)
+ textDocument,
+ range,
+ options)
};
MAKE_REFLECT_STRUCT(lsTextDocumentRangeFormattingParams,
textDocument,
@@ -29,7 +29,7 @@ MAKE_REFLECT_STRUCT(lsTextDocumentRangeFormattingParams,
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_rangeFormatting, lsTextDocumentRangeFormattingParams, std::vector<lsTextEdit>,
- "textDocument/rangeFormatting");
+ "textDocument/rangeFormatting");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
index 2376912756..f398a0b859 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/references.h
@@ -13,16 +13,16 @@ namespace TextDocumentReferences {
// Include the declaration of the current symbol.
boost::optional<bool> includeDeclaration;
MAKE_REFLECT_STRUCT(lsReferenceContext,
- includeDeclaration)
+ includeDeclaration)
};
struct Params {
lsTextDocumentIdentifier textDocument;
lsPosition position;
lsReferenceContext context;
- MAKE_SWAP_METHOD(Params,
- textDocument,
- position,
- context)
+ MAKE_SWAP_METHOD(Params,
+ textDocument,
+ position,
+ context)
};
@@ -44,5 +44,5 @@ MAKE_REFLECT_STRUCT(TextDocumentReferences::Params,
*
* Registration Options: TextDocumentRegistrationOptions
*/
-DEFINE_REQUEST_RESPONSE_TYPE(td_references, TextDocumentReferences::Params,
+DEFINE_REQUEST_RESPONSE_TYPE(td_references, TextDocumentReferences::Params,
std::vector<lsLocation>, "textDocument/references");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
index 35895f0f4f..8b6d085910 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/rename.h
@@ -20,10 +20,10 @@ namespace TextDocumentRename {
// request must return a [ResponseError](#ResponseError) with an
// appropriate message set.
std::string newName;
- MAKE_SWAP_METHOD(Params,
- textDocument,
- position,
- newName);
+ MAKE_SWAP_METHOD(Params,
+ textDocument,
+ position,
+ newName);
};
};
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
index eab5f838fc..dceba1fb8f 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/resolveTypeHierarchy.h
@@ -9,23 +9,23 @@
#include "typeHierarchy.h"
struct ResolveTypeHierarchyItemParams {
- /**
- * The hierarchy item to resolve.
- */
+ /**
+ * The hierarchy item to resolve.
+ */
- TypeHierarchyItem item;
+ TypeHierarchyItem item;
- /**
- * The number of hierarchy levels to resolve. {@code 0} indicates no hierarchy level.
- */
- boost::optional<int> resolve;
+ /**
+ * The number of hierarchy levels to resolve. {@code 0} indicates no hierarchy level.
+ */
+ boost::optional<int> resolve;
- /**
- * The direction of the type hierarchy resolution.
- */
+ /**
+ * The direction of the type hierarchy resolution.
+ */
- TypeHierarchyDirection direction;
- MAKE_SWAP_METHOD(ResolveTypeHierarchyItemParams, item, resolve, direction)
+ TypeHierarchyDirection direction;
+ MAKE_SWAP_METHOD(ResolveTypeHierarchyItemParams, item, resolve, direction)
};
MAKE_REFLECT_STRUCT(ResolveTypeHierarchyItemParams,item,resolve,direction)
DEFINE_REQUEST_RESPONSE_TYPE(typeHierarchy_resolve, ResolveTypeHierarchyItemParams, TypeHierarchyItem, "typeHierarchy/resolve")
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
index 47590e4152..91915275bd 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/selectionRange.h
@@ -8,35 +8,35 @@
#include "LibLsp/lsp/lsTextDocumentIdentifier.h"
struct SelectionRangeParams {
- /**
- * The text document.
- */
+ /**
+ * The text document.
+ */
- lsTextDocumentIdentifier textDocument;
+ lsTextDocumentIdentifier textDocument;
- /**
- * The positions inside the text document.
- */
+ /**
+ * The positions inside the text document.
+ */
+
+ std::vector<lsPosition> positions;
+
+ MAKE_SWAP_METHOD(SelectionRangeParams, textDocument, positions)
- std::vector<lsPosition> positions;
-
- MAKE_SWAP_METHOD(SelectionRangeParams, textDocument, positions)
-
};
MAKE_REFLECT_STRUCT(SelectionRangeParams, textDocument, positions)
struct SelectionRange {
- /**
- * The [range](#Range) of this selection range.
- */
+ /**
+ * The [range](#Range) of this selection range.
+ */
- lsRange range;
+ lsRange range;
- /**
- * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
- */
- boost::optional<SelectionRange*> parent;
- MAKE_SWAP_METHOD(SelectionRange, range, parent)
+ /**
+ * The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
+ */
+ boost::optional<SelectionRange*> parent;
+ MAKE_SWAP_METHOD(SelectionRange, range, parent)
};
extern void Reflect(Reader& visitor, boost::optional<SelectionRange*>& value);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
index 32bc86f5fb..bfb8619559 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/semanticHighlighting.h
@@ -10,19 +10,19 @@
*/
struct SemanticHighlightingInformation {
- /**
- * The zero-based line position in the text document.
- */
- int line = 0;
+ /**
+ * The zero-based line position in the text document.
+ */
+ int line = 0;
- /**
- * A base64 encoded string representing every single highlighted ranges in the line with its start position, length
- * and the "lookup table" index of of the semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">
- * TextMate scopes</a>. If the {@code tokens} is empty or not defined, then no highlighted positions are available for the line.
- */
- std::string tokens;
+ /**
+ * A base64 encoded string representing every single highlighted ranges in the line with its start position, length
+ * and the "lookup table" index of of the semantic highlighting <a href="https://manual.macromates.com/en/language_grammars">
+ * TextMate scopes</a>. If the {@code tokens} is empty or not defined, then no highlighted positions are available for the line.
+ */
+ std::string tokens;
- MAKE_SWAP_METHOD(SemanticHighlightingInformation, line, tokens)
+ MAKE_SWAP_METHOD(SemanticHighlightingInformation, line, tokens)
};
MAKE_REFLECT_STRUCT(SemanticHighlightingInformation, line, tokens);
@@ -32,35 +32,35 @@ MAKE_REFLECT_STRUCT(SemanticHighlightingInformation, line, tokens);
*/
struct SemanticHighlightingParams {
- /**
- * The text document that has to be decorated with the semantic highlighting information.
- */
-
- lsVersionedTextDocumentIdentifier textDocument;
+ /**
+ * The text document that has to be decorated with the semantic highlighting information.
+ */
- /**
- * An array of semantic highlighting information.
- */
+ lsVersionedTextDocumentIdentifier textDocument;
+
+ /**
+ * An array of semantic highlighting information.
+ */
+
+ std::vector<SemanticHighlightingInformation> lines;
+
+ MAKE_SWAP_METHOD(SemanticHighlightingParams, textDocument, lines)
- std::vector<SemanticHighlightingInformation> lines;
-
- MAKE_SWAP_METHOD(SemanticHighlightingParams, textDocument, lines)
-
};
MAKE_REFLECT_STRUCT(SemanticHighlightingParams, textDocument, lines);
/**
- * The {@code textDocument/semanticHighlighting} notification is pushed from the server to the client
- * to inform the client about additional semantic highlighting information that has to be applied
- * on the text document. It is the server's responsibility to decide which lines are included in
- * the highlighting information. In other words, the server is capable of sending only a delta
- * information. For instance, after opening the text document ({@code DidOpenTextDocumentNotification})
- * the server sends the semantic highlighting information for the entire document, but if the server
- * receives a {@code DidChangeTextDocumentNotification}, it pushes the information only about
- * the affected lines in the document.
- *
- * <p>
- * <b>Note:</b> the <a href=
- * "https://github.com/Microsoft/vscode-languageserver-node/pull/367">{@code textDocument/semanticHighlighting}
- * language feature</a> is not yet part of the official LSP specification.
- */
-DEFINE_NOTIFICATION_TYPE(Notify_semanticHighlighting, SemanticHighlightingParams, "textDocument/semanticHighlighting"); \ No newline at end of file
+ * The {@code textDocument/semanticHighlighting} notification is pushed from the server to the client
+ * to inform the client about additional semantic highlighting information that has to be applied
+ * on the text document. It is the server's responsibility to decide which lines are included in
+ * the highlighting information. In other words, the server is capable of sending only a delta
+ * information. For instance, after opening the text document ({@code DidOpenTextDocumentNotification})
+ * the server sends the semantic highlighting information for the entire document, but if the server
+ * receives a {@code DidChangeTextDocumentNotification}, it pushes the information only about
+ * the affected lines in the document.
+ *
+ * <p>
+ * <b>Note:</b> the <a href=
+ * "https://github.com/Microsoft/vscode-languageserver-node/pull/367">{@code textDocument/semanticHighlighting}
+ * language feature</a> is not yet part of the official LSP specification.
+ */
+DEFINE_NOTIFICATION_TYPE(Notify_semanticHighlighting, SemanticHighlightingParams, "textDocument/semanticHighlighting");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
index 2a83645901..837096695e 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/signature_help.h
@@ -6,8 +6,8 @@
#include "LibLsp/lsp/lsMarkedString.h"
#include "LibLsp/lsp/lsTextDocumentPositionParams.h"
-extern void Reflect(Reader& visitor,
- std::pair<boost::optional<std::string>, boost::optional<MarkupContent>>& value);
+extern void Reflect(Reader& visitor,
+ std::pair<boost::optional<std::string>, boost::optional<MarkupContent>>& value);
@@ -72,9 +72,9 @@ struct lsSignatureHelp {
MAKE_SWAP_METHOD(lsSignatureHelp,
- signatures,
- activeSignature,
- activeParameter)
+ signatures,
+ activeSignature,
+ activeParameter)
};
MAKE_REFLECT_STRUCT(lsSignatureHelp,
signatures,
@@ -89,4 +89,4 @@ MAKE_REFLECT_STRUCT(lsSignatureHelp,
*
* Registration Options: SignatureHelpRegistrationOptions
*/
-DEFINE_REQUEST_RESPONSE_TYPE(td_signatureHelp, lsTextDocumentPositionParams, lsSignatureHelp, "textDocument/signatureHelp"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_signatureHelp, lsTextDocumentPositionParams, lsSignatureHelp, "textDocument/signatureHelp");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
index b554d751f3..384cfb68c9 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/typeHierarchy.h
@@ -6,34 +6,34 @@
#include "LibLsp/lsp/symbol.h"
#include "LibLsp/lsp/lsAny.h"
/**
- * The {@code textDocument/typeHierarchy} request is sent from the client to the
- * server to retrieve a {@link TypeHierarchyItem type hierarchy item} based on
- * the {@link TypeHierarchyParams cursor position in the text document}. This
- * request would also allow to specify if the item should be resolved and
- * whether sub- or supertypes are to be resolved. If no type hierarchy item can
- * be found under the given text document position, resolves to {@code null}.
- *
- * <p>
- * <b>Note:</b> the <a href=
- * "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
- * language feature</a> is not yet part of the official LSP specification.
- */
+ * The {@code textDocument/typeHierarchy} request is sent from the client to the
+ * server to retrieve a {@link TypeHierarchyItem type hierarchy item} based on
+ * the {@link TypeHierarchyParams cursor position in the text document}. This
+ * request would also allow to specify if the item should be resolved and
+ * whether sub- or supertypes are to be resolved. If no type hierarchy item can
+ * be found under the given text document position, resolves to {@code null}.
+ *
+ * <p>
+ * <b>Note:</b> the <a href=
+ * "https://github.com/Microsoft/vscode-languageserver-node/pull/426">{@code textDocument/typeHierarchy}
+ * language feature</a> is not yet part of the official LSP specification.
+ */
enum class TypeHierarchyDirection : uint32_t{
- /**
- * Flag for retrieving/resolving the subtypes. Value: {@code 0}.
- */
- Children = 0,
+ /**
+ * Flag for retrieving/resolving the subtypes. Value: {@code 0}.
+ */
+ Children = 0,
- /**
- * Flag to use when retrieving/resolving the supertypes. Value: {@code 1}.
- */
- Parents =1,
+ /**
+ * Flag to use when retrieving/resolving the supertypes. Value: {@code 1}.
+ */
+ Parents =1,
- /**
- * Flag for resolving both the super- and subtypes. Value: {@code 2}.
- */
- Both=2
+ /**
+ * Flag for resolving both the super- and subtypes. Value: {@code 2}.
+ */
+ Both=2
};
void Reflect(Reader& reader, TypeHierarchyDirection& value);
@@ -42,10 +42,10 @@ void Reflect(Writer& writer, TypeHierarchyDirection& value);
struct TypeHierarchyParams :public lsTextDocumentPositionParams
{
- boost::optional<int> resolve;
- boost::optional<TypeHierarchyDirection> direction ;
-
- MAKE_SWAP_METHOD(TypeHierarchyParams, textDocument, position, resolve, direction)
+ boost::optional<int> resolve;
+ boost::optional<TypeHierarchyDirection> direction ;
+
+ MAKE_SWAP_METHOD(TypeHierarchyParams, textDocument, position, resolve, direction)
};
MAKE_REFLECT_STRUCT(TypeHierarchyParams, textDocument, position, resolve, direction);
@@ -58,76 +58,76 @@ MAKE_REFLECT_STRUCT(TypeHierarchyParams, textDocument, position, resolve, direc
*/
struct TypeHierarchyItem {
- /**
- * The human readable name of the hierarchy item.
- */
-
- std::string name;
-
- /**
- * Optional detail for the hierarchy item. It can be, for instance, the signature of a function or method.
- */
- boost::optional<std::string>
- detail;
-
- /**
- * The kind of the hierarchy item. For instance, class or interface.
- */
-
- SymbolKind kind;
-
- /**
- * {@code true} if the hierarchy item is deprecated. Otherwise, {@code false}. It is {@code false} by default.
- */
-
- boost::optional<bool> deprecated;
-
- /**
- * The URI of the text document where this type hierarchy item belongs to.
- */
-
- lsDocumentUri uri;
-
- /**
- * The range enclosing this type hierarchy item not including leading/trailing whitespace but everything else
- * like comments. This information is typically used to determine if the clients cursor is inside the type
- * hierarchy item to reveal in the symbol in the UI.
- *
- * @see TypeHierarchyItem#selectionRange
- */
-
- lsRange range;
-
- /**
- * The range that should be selected and revealed when this type hierarchy item is being picked, e.g the name of a function.
- * Must be contained by the the {@link TypeHierarchyItem#getRange range}.
- *
- * @see TypeHierarchyItem#range
- */
-
- lsRange selectionRange;
-
- /**
- * If this type hierarchy item is resolved, it contains the direct parents. Could be empty if the item does not have any
- * direct parents. If not defined, the parents have not been resolved yet.
- */
- boost::optional< std::vector<TypeHierarchyItem> > parents;
-
- /**
- * If this type hierarchy item is resolved, it contains the direct children of the current item.
- * Could be empty if the item does not have any descendants. If not defined, the children have not been resolved.
- */
- boost::optional< std::vector<TypeHierarchyItem> > children;
-
- /**
+ /**
+ * The human readable name of the hierarchy item.
+ */
+
+ std::string name;
+
+ /**
+ * Optional detail for the hierarchy item. It can be, for instance, the signature of a function or method.
+ */
+ boost::optional<std::string>
+ detail;
+
+ /**
+ * The kind of the hierarchy item. For instance, class or interface.
+ */
+
+ SymbolKind kind;
+
+ /**
+ * {@code true} if the hierarchy item is deprecated. Otherwise, {@code false}. It is {@code false} by default.
+ */
+
+ boost::optional<bool> deprecated;
+
+ /**
+ * The URI of the text document where this type hierarchy item belongs to.
+ */
+
+ lsDocumentUri uri;
+
+ /**
+ * The range enclosing this type hierarchy item not including leading/trailing whitespace but everything else
+ * like comments. This information is typically used to determine if the clients cursor is inside the type
+ * hierarchy item to reveal in the symbol in the UI.
+ *
+ * @see TypeHierarchyItem#selectionRange
+ */
+
+ lsRange range;
+
+ /**
+ * The range that should be selected and revealed when this type hierarchy item is being picked, e.g the name of a function.
+ * Must be contained by the the {@link TypeHierarchyItem#getRange range}.
+ *
+ * @see TypeHierarchyItem#range
+ */
+
+ lsRange selectionRange;
+
+ /**
+ * If this type hierarchy item is resolved, it contains the direct parents. Could be empty if the item does not have any
+ * direct parents. If not defined, the parents have not been resolved yet.
+ */
+ boost::optional< std::vector<TypeHierarchyItem> > parents;
+
+ /**
+ * If this type hierarchy item is resolved, it contains the direct children of the current item.
+ * Could be empty if the item does not have any descendants. If not defined, the children have not been resolved.
+ */
+ boost::optional< std::vector<TypeHierarchyItem> > children;
+
+ /**
* An boost::optional data field can be used to identify a type hierarchy item in a resolve request.
*/
- boost::optional<lsp::Any> data;
+ boost::optional<lsp::Any> data;
- MAKE_SWAP_METHOD(TypeHierarchyItem, name, detail, kind, deprecated, uri, range, selectionRange, parents, children, data)
+ MAKE_SWAP_METHOD(TypeHierarchyItem, name, detail, kind, deprecated, uri, range, selectionRange, parents, children, data)
};
MAKE_REFLECT_STRUCT(TypeHierarchyItem, name, detail, kind, deprecated, uri, range, selectionRange, parents, children, data);
-DEFINE_REQUEST_RESPONSE_TYPE(td_typeHierarchy, TypeHierarchyParams, TypeHierarchyItem, "textDocument/typeHierarchy"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(td_typeHierarchy, TypeHierarchyParams, TypeHierarchyItem, "textDocument/typeHierarchy");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
index 38ced43b42..196a65c5d3 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/type_definition.h
@@ -13,4 +13,4 @@
* Since version 3.6.0
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_typeDefinition,
- lsTextDocumentPositionParams, LocationListEither::Either, "textDocument/typeDefinition"); \ No newline at end of file
+ lsTextDocumentPositionParams, LocationListEither::Either, "textDocument/typeDefinition");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
index 84aa0badaa..29afcac41a 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/textDocument/willSave.h
@@ -8,41 +8,41 @@
namespace WillSaveTextDocumentParams {
- /**
- * Represents reasons why a text document is saved.
- */
- enum class TextDocumentSaveReason {
-
- /**
- * Manually triggered, e.g. by the user pressing save, by starting debugging,
- * or by an API call.
- */
- Manual=(1),
-
- /**
- * Automatic after a delay.
- */
- AfterDelay=(2),
-
- /**
- * When the editor lost focus.
- */
- FocusOut=(3)
- };
-
+ /**
+ * Represents reasons why a text document is saved.
+ */
+ enum class TextDocumentSaveReason {
+
+ /**
+ * Manually triggered, e.g. by the user pressing save, by starting debugging,
+ * or by an API call.
+ */
+ Manual=(1),
+
+ /**
+ * Automatic after a delay.
+ */
+ AfterDelay=(2),
+
+ /**
+ * When the editor lost focus.
+ */
+ FocusOut=(3)
+ };
+
struct Params {
- /**
- * The document that will be saved.
- */
+ /**
+ * The document that will be saved.
+ */
lsTextDocumentIdentifier textDocument;
/*
* A reason why a text document is saved.
*/
- boost::optional<TextDocumentSaveReason> reason;
+ boost::optional<TextDocumentSaveReason> reason;
- MAKE_SWAP_METHOD(Params, textDocument, reason);
+ MAKE_SWAP_METHOD(Params, textDocument, reason);
};
};
@@ -67,5 +67,5 @@ DEFINE_NOTIFICATION_TYPE(td_willSave, WillSaveTextDocumentParams::Params, "textD
* Registration Options: TextDocumentRegistrationOptions
*/
DEFINE_REQUEST_RESPONSE_TYPE(td_willSaveWaitUntil,
- WillSaveTextDocumentParams::Params, std::vector<lsTextEdit>, "textDocument/willSaveWaitUntil");
+ WillSaveTextDocumentParams::Params, std::vector<lsTextEdit>, "textDocument/willSaveWaitUntil");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
index 796b5d2569..95064c34d6 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/utils.h
@@ -15,7 +15,7 @@
namespace lsp
{
-
+
// Returns true if |value| starts/ends with |start| or |ending|.
bool StartsWith(std::string value, std::string start);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
index 8499304f55..332fb7e2e7 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/windows/MessageNotify.h
@@ -11,20 +11,20 @@ struct MessageParams {
/**
* The message type.
*/
-
- lsMessageType type = lsMessageType::Error;
-
+
+ lsMessageType type = lsMessageType::Error;
+
/**
* The actual message.
*/
- std::string message;
-
- void swap(MessageParams& arg) noexcept {
- lsMessageType temp = type;
- type = arg.type;
- arg.type = temp;
- message.swap(arg.message);
- }
+ std::string message;
+
+ void swap(MessageParams& arg) noexcept {
+ lsMessageType temp = type;
+ type = arg.type;
+ arg.type = temp;
+ message.swap(arg.message);
+ }
};
MAKE_REFLECT_STRUCT(MessageParams, type, message)
@@ -49,23 +49,23 @@ DEFINE_NOTIFICATION_TYPE(Notify_ShowMessage, MessageParams, "window/showMessage"
* answer from the client.
*/
struct MessageActionItem {
- /**
- * A short title like 'Retry', 'Open Log' etc.
- */
+ /**
+ * A short title like 'Retry', 'Open Log' etc.
+ */
- std::string title;
- MAKE_SWAP_METHOD(MessageActionItem, title)
+ std::string title;
+ MAKE_SWAP_METHOD(MessageActionItem, title)
};
MAKE_REFLECT_STRUCT(MessageActionItem, title);
struct ShowMessageRequestParams :public MessageParams {
- /**
- * The message action items to present.
- */
- std::vector<MessageActionItem> actions;
-
- MAKE_SWAP_METHOD(ShowMessageRequestParams, type, message, actions)
+ /**
+ * The message action items to present.
+ */
+ std::vector<MessageActionItem> actions;
+
+ MAKE_SWAP_METHOD(ShowMessageRequestParams, type, message, actions)
};
MAKE_REFLECT_STRUCT(ShowMessageRequestParams, type, message, actions)
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
index e305fee8d0..916268f0fa 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/working_files.h
@@ -44,9 +44,9 @@ struct WorkingFiles {
bool GetFileBufferContent(const AbsolutePath& filename, std::wstring& out)
{
auto file = GetFileByFilename(filename);
- if(!file)
+ if(!file)
return false;
- return GetFileBufferContent(file, out);
+ return GetFileBufferContent(file, out);
}
bool GetFileBufferContent(const AbsolutePath& filename,std::string& out)
{
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
index 7e2d8bee0a..d1d4bc85df 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/applyEdit.h
@@ -8,20 +8,20 @@
struct ApplyWorkspaceEditParams
{
- /**
- * The edits to apply.
- */
+ /**
+ * The edits to apply.
+ */
- lsWorkspaceEdit edit;
+ lsWorkspaceEdit edit;
- /**
- * An optional label of the workspace edit. This label is
- * presented in the user interface for example on an undo
- * stack to undo the workspace edit.
- */
- std::string label;
+ /**
+ * An optional label of the workspace edit. This label is
+ * presented in the user interface for example on an undo
+ * stack to undo the workspace edit.
+ */
+ std::string label;
- MAKE_SWAP_METHOD(ApplyWorkspaceEditParams, edit, label)
+ MAKE_SWAP_METHOD(ApplyWorkspaceEditParams, edit, label)
};
/**
* The workspace/applyEdit request is sent from the server to the client to modify resource on the client side.
@@ -32,9 +32,9 @@ MAKE_REFLECT_STRUCT(ApplyWorkspaceEditParams, edit, label);
struct ApplyWorkspaceEditResponse
{
- bool applied;
- boost::optional<std::string> failureReason;
- MAKE_SWAP_METHOD(ApplyWorkspaceEditResponse, applied, failureReason)
+ bool applied;
+ boost::optional<std::string> failureReason;
+ MAKE_SWAP_METHOD(ApplyWorkspaceEditResponse, applied, failureReason)
};
MAKE_REFLECT_STRUCT(ApplyWorkspaceEditResponse, applied, failureReason);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
index f7709aa607..ad22bf0185 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/configuration.h
@@ -7,22 +7,22 @@
struct ConfigurationItem {
- /**
- * The scope to get the configuration section for.
- */
- lsDocumentUri scopeUri;
+ /**
+ * The scope to get the configuration section for.
+ */
+ lsDocumentUri scopeUri;
- /**
- * The configuration section asked for.
- */
- std::string section;
- MAKE_SWAP_METHOD(ConfigurationItem, scopeUri, section);
+ /**
+ * The configuration section asked for.
+ */
+ std::string section;
+ MAKE_SWAP_METHOD(ConfigurationItem, scopeUri, section);
};
MAKE_REFLECT_STRUCT(ConfigurationItem, scopeUri, section);
struct ConfigurationParams
{
- std::vector<ConfigurationItem> items;
- MAKE_SWAP_METHOD(ConfigurationParams, items)
+ std::vector<ConfigurationItem> items;
+ MAKE_SWAP_METHOD(ConfigurationParams, items)
};
MAKE_REFLECT_STRUCT(ConfigurationParams, items);
@@ -34,4 +34,4 @@ MAKE_REFLECT_STRUCT(ConfigurationParams, items);
* order of the passed ConfigurationItems (e.g. the first item in the response is the
* result for the first configuration item in the params).
*/
-DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceConfiguration, ConfigurationParams,std::vector<lsp::Any>, "workspace/configuration"); \ No newline at end of file
+DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceConfiguration, ConfigurationParams,std::vector<lsp::Any>, "workspace/configuration");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
index 78f000f30d..1c6cd83b62 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/didChangeWorkspaceFolders.h
@@ -5,30 +5,30 @@
* The workspace folder change event.
*/
struct WorkspaceFoldersChangeEvent {
- /**
- * The array of added workspace folders
- */
+ /**
+ * The array of added workspace folders
+ */
- std::vector<WorkspaceFolder> added;
+ std::vector<WorkspaceFolder> added;
- /**
- * The array of the removed workspace folders
- */
+ /**
+ * The array of the removed workspace folders
+ */
+
+ std::vector <WorkspaceFolder> removed;
+ MAKE_SWAP_METHOD(WorkspaceFoldersChangeEvent, added, removed);
- std::vector <WorkspaceFolder> removed;
- MAKE_SWAP_METHOD(WorkspaceFoldersChangeEvent, added, removed);
-
};
MAKE_REFLECT_STRUCT(WorkspaceFoldersChangeEvent, added, removed);
struct DidChangeWorkspaceFoldersParams {
- /**
- * The actual workspace folder change event.
- */
+ /**
+ * The actual workspace folder change event.
+ */
+
+ WorkspaceFoldersChangeEvent event;
- WorkspaceFoldersChangeEvent event;
-
- MAKE_SWAP_METHOD(DidChangeWorkspaceFoldersParams, event);
+ MAKE_SWAP_METHOD(DidChangeWorkspaceFoldersParams, event);
};
MAKE_REFLECT_STRUCT(DidChangeWorkspaceFoldersParams, event);
@@ -40,8 +40,8 @@ MAKE_REFLECT_STRUCT(DidChangeWorkspaceFoldersParams, event);
* and ClientCapabilities/workspace/workspaceFolders are true; or if the server has
* registered to receive this notification it first.
*/
-DEFINE_NOTIFICATION_TYPE(Notify_WorkspaceDidChangeWorkspaceFolders,
- DidChangeWorkspaceFoldersParams, "workspace/didChangeWorkspaceFolders");
+DEFINE_NOTIFICATION_TYPE(Notify_WorkspaceDidChangeWorkspaceFolders,
+ DidChangeWorkspaceFoldersParams, "workspace/didChangeWorkspaceFolders");
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
index 8f8acceea4..3e7ca6dded 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/did_change_configuration.h
@@ -9,11 +9,11 @@
struct lsDidChangeConfigurationParams {
- /**
- * The actual changed settings.
- */
- lsp::Any settings;
- MAKE_SWAP_METHOD(lsDidChangeConfigurationParams, settings);
+ /**
+ * The actual changed settings.
+ */
+ lsp::Any settings;
+ MAKE_SWAP_METHOD(lsDidChangeConfigurationParams, settings);
};
MAKE_REFLECT_STRUCT(lsDidChangeConfigurationParams, settings);
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
index 7cedcfa5f4..1ba33b501c 100644
--- a/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
+++ b/graphics/asymptote/LspCpp/include/LibLsp/lsp/workspace/workspaceFolders.h
@@ -5,18 +5,18 @@
#include "LibLsp/lsp/lsDocumentUri.h"
struct WorkspaceFolder {
- /**
- * The associated URI for this workspace folder.
- */
+ /**
+ * The associated URI for this workspace folder.
+ */
- lsDocumentUri uri;
+ lsDocumentUri uri;
- /**
- * The name of the workspace folder. Defaults to the uri's basename.
- */
- std::string name;
+ /**
+ * The name of the workspace folder. Defaults to the uri's basename.
+ */
+ std::string name;
- MAKE_SWAP_METHOD(WorkspaceFolder, uri, name)
+ MAKE_SWAP_METHOD(WorkspaceFolder, uri, name)
};
MAKE_REFLECT_STRUCT(WorkspaceFolder, uri, name);
@@ -29,6 +29,6 @@ MAKE_REFLECT_STRUCT(WorkspaceFolder, uri, name);
* an empty array if a workspace is open but no folders are configured,
* the workspace folders otherwise.
*/
-DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceFolders,
- boost::optional<JsonNull>, boost::optional<std::vector< WorkspaceFolder>>, "workspace/workspaceFolders");
+DEFINE_REQUEST_RESPONSE_TYPE(WorkspaceFolders,
+ boost::optional<JsonNull>, boost::optional<std::vector< WorkspaceFolder>>, "workspace/workspaceFolders");
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
index 3c7c275d6d..a66108d2e5 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/Endpoint.cpp
@@ -4,43 +4,43 @@
bool GenericEndpoint::notify(std::unique_ptr<LspMessage> msg)
{
- auto findIt = method2notification.find(msg->GetMethodType());
-
- if (findIt != method2notification.end())
- {
- return findIt->second(std::move(msg));
- }
- std::string info = "can't find method2notification for notification:\n" + msg->ToJson() + "\n";
- log.log(lsp::Log::Level::SEVERE, info);
- return false;
+ auto findIt = method2notification.find(msg->GetMethodType());
+
+ if (findIt != method2notification.end())
+ {
+ return findIt->second(std::move(msg));
+ }
+ std::string info = "can't find method2notification for notification:\n" + msg->ToJson() + "\n";
+ log.log(lsp::Log::Level::SEVERE, info);
+ return false;
}
bool GenericEndpoint::onResponse(const std::string& method, std::unique_ptr<LspMessage>msg)
{
- auto findIt = method2response.find(method);
-
- if (findIt != method2response.end())
- {
- return findIt->second(std::move(msg));
- }
-
- std::string info = "can't find method2response for response:\n" + msg->ToJson() + "\n";
- log.log(lsp::Log::Level::SEVERE, info);
-
- return false;
+ auto findIt = method2response.find(method);
+
+ if (findIt != method2response.end())
+ {
+ return findIt->second(std::move(msg));
+ }
+
+ std::string info = "can't find method2response for response:\n" + msg->ToJson() + "\n";
+ log.log(lsp::Log::Level::SEVERE, info);
+
+ return false;
}
bool GenericEndpoint::onRequest(std::unique_ptr<LspMessage> request)
{
- auto findIt = method2request.find(request->GetMethodType());
-
- if (findIt != method2request.end())
- {
- return findIt->second(std::move(request));
- }
- std::string info = "can't find method2request for request:\n" + request->ToJson() + "\n";
- log.log(lsp::Log::Level::SEVERE, info);
- return false;
+ auto findIt = method2request.find(request->GetMethodType());
+
+ if (findIt != method2request.end())
+ {
+ return findIt->second(std::move(request));
+ }
+ std::string info = "can't find method2request for request:\n" + request->ToJson() + "\n";
+ log.log(lsp::Log::Level::SEVERE, info);
+ return false;
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
index 4f79312a0c..78cf8950c2 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/MessageJsonHandler.cpp
@@ -6,52 +6,52 @@
std::unique_ptr<LspMessage> MessageJsonHandler::parseResponseMessage(const std::string& method, Reader& r)
{
- auto findIt = method2response.find(method);
-
- if( findIt != method2response.end())
- {
- return findIt->second(r);
- }
- return nullptr;
+ auto findIt = method2response.find(method);
+
+ if( findIt != method2response.end())
+ {
+ return findIt->second(r);
+ }
+ return nullptr;
}
std::unique_ptr<LspMessage> MessageJsonHandler::parseRequstMessage(const std::string& method, Reader&r)
{
- auto findIt = method2request.find(method);
+ auto findIt = method2request.find(method);
- if (findIt != method2request.end())
- {
- return findIt->second(r);
- }
- return nullptr;
+ if (findIt != method2request.end())
+ {
+ return findIt->second(r);
+ }
+ return nullptr;
}
bool MessageJsonHandler::resovleResponseMessage(Reader&r, std::pair<std::string, std::unique_ptr<LspMessage>>& result)
{
- for (auto& handler : method2response)
- {
- try
- {
- auto msg = handler.second(r);
- result.first = handler.first;
- result.second = std::move(msg);
- return true;
- }
- catch (...)
- {
-
- }
- }
- return false;
+ for (auto& handler : method2response)
+ {
+ try
+ {
+ auto msg = handler.second(r);
+ result.first = handler.first;
+ result.second = std::move(msg);
+ return true;
+ }
+ catch (...)
+ {
+
+ }
+ }
+ return false;
}
std::unique_ptr<LspMessage> MessageJsonHandler::parseNotificationMessage(const std::string& method, Reader& r)
{
- auto findIt = method2notification.find(method);
+ auto findIt = method2notification.find(method);
- if (findIt != method2notification.end())
- {
- return findIt->second(r);
- }
- return nullptr;
+ if (findIt != method2notification.end())
+ {
+ return findIt->second(r);
+ }
+ return nullptr;
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
index 29ff69b2e2..e8bdc073f3 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/RemoteEndPoint.cpp
@@ -14,10 +14,10 @@
#include "LibLsp/JsonRpc/GCThreadContext.h"
#include "LibLsp/JsonRpc/ScopeExit.h"
#include "LibLsp/JsonRpc/stream.h"
-
-#define BOOST_BIND_GLOBAL_PLACEHOLDERS
-#include "boost/threadpool.hpp"
#include <atomic>
+#include <boost/asio/thread_pool.hpp>
+#include <boost/asio/post.hpp>
+
namespace lsp {
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
@@ -71,70 +71,70 @@ namespace lsp {
// ways that preserve the context. (Like runAsync() or TUScheduler).
//
- /// A canceller requests cancellation of a task, when called.
- /// Calling it again has no effect.
- using Canceler = std::function<void()>;
-
- // We don't want a cancelable scope to "shadow" an enclosing one.
- struct CancelState {
- std::shared_ptr<std::atomic<int>> cancelled;
- const CancelState* parent = nullptr;
- lsRequestId id;
- };
- static Key<CancelState> g_stateKey;
-
- /// Defines a new task whose cancellation may be requested.
- /// The returned Context defines the scope of the task.
- /// When the context is active, getCancelledMonitor() is 0 until the Canceler is
- /// invoked, and equal to Reason afterwards.
- /// Conventionally, Reason may be the LSP error code to return.
- std::pair<Context, Canceler> cancelableTask(const lsRequestId& id,int reason = 1){
- assert(reason != 0 && "Can't detect cancellation if Reason is zero");
- CancelState state;
- state.id = id;
- state.cancelled = std::make_shared<std::atomic<int>>();
- state.parent = Context::current().get(g_stateKey);
- return {
- Context::current().derive(g_stateKey, state),
- [reason, cancelled(state.cancelled)] { *cancelled = reason; },
- };
- }
- /// If the current context is within a cancelled task, returns the reason.
+ /// A canceller requests cancellation of a task, when called.
+ /// Calling it again has no effect.
+ using Canceler = std::function<void()>;
+
+ // We don't want a cancelable scope to "shadow" an enclosing one.
+ struct CancelState {
+ std::shared_ptr<std::atomic<int>> cancelled;
+ const CancelState* parent = nullptr;
+ lsRequestId id;
+ };
+ static Key<CancelState> g_stateKey;
+
+ /// Defines a new task whose cancellation may be requested.
+ /// The returned Context defines the scope of the task.
+ /// When the context is active, getCancelledMonitor() is 0 until the Canceler is
+ /// invoked, and equal to Reason afterwards.
+ /// Conventionally, Reason may be the LSP error code to return.
+ std::pair<Context, Canceler> cancelableTask(const lsRequestId& id,int reason = 1){
+ assert(reason != 0 && "Can't detect cancellation if Reason is zero");
+ CancelState state;
+ state.id = id;
+ state.cancelled = std::make_shared<std::atomic<int>>();
+ state.parent = Context::current().get(g_stateKey);
+ return {
+ Context::current().derive(g_stateKey, state),
+ [reason, cancelled(state.cancelled)] { *cancelled = reason; },
+ };
+ }
+ /// If the current context is within a cancelled task, returns the reason.
/// (If the context is within multiple nested tasks, true if any are cancelled).
/// Always zero if there is no active cancelable task.
/// This isn't free (context lookup) - don't call it in a tight loop.
- boost::optional<CancelMonitor> getCancelledMonitor(const lsRequestId& id, const Context& ctx = Context::current()){
- for (const CancelState* state = ctx.get(g_stateKey); state != nullptr;
- state = state->parent)
- {
- if (id != state->id)continue;
- const std::shared_ptr<std::atomic<int> > cancelled = state->cancelled;
- std::function<int()> temp = [=]{
- return cancelled->load();
- };
- return std::move(temp);
- }
-
- return {};
- }
+ boost::optional<CancelMonitor> getCancelledMonitor(const lsRequestId& id, const Context& ctx = Context::current()){
+ for (const CancelState* state = ctx.get(g_stateKey); state != nullptr;
+ state = state->parent)
+ {
+ if (id != state->id)continue;
+ const std::shared_ptr<std::atomic<int> > cancelled = state->cancelled;
+ std::function<int()> temp = [=]{
+ return cancelled->load();
+ };
+ return std::move(temp);
+ }
+
+ return {};
+ }
} // namespace lsp
using namespace lsp;
class PendingRequestInfo
{
- using RequestCallBack = std::function< bool(std::unique_ptr<LspMessage>) >;
+ using RequestCallBack = std::function< bool(std::unique_ptr<LspMessage>) >;
public:
- PendingRequestInfo(const std::string& md,
- const RequestCallBack& callback);
- PendingRequestInfo(const std::string& md);
- PendingRequestInfo() {}
- std::string method;
- RequestCallBack futureInfo;
+ PendingRequestInfo(const std::string& md,
+ const RequestCallBack& callback);
+ PendingRequestInfo(const std::string& md);
+ PendingRequestInfo() {}
+ std::string method;
+ RequestCallBack futureInfo;
};
PendingRequestInfo::PendingRequestInfo(const std::string& _md,
- const RequestCallBack& callback) : method(_md),
- futureInfo(callback)
+ const RequestCallBack& callback) : method(_md),
+ futureInfo(callback)
{
}
@@ -143,470 +143,507 @@ PendingRequestInfo::PendingRequestInfo(const std::string& md) : method(md)
}
struct RemoteEndPoint::Data
{
- explicit Data(lsp::Log& _log , RemoteEndPoint* owner)
- : m_id(0), next_request_cookie(0), message_producer(new StreamMessageProducer(*owner)), log(_log)
- {
-
- }
- ~Data()
- {
- delete message_producer;
- }
- std::atomic<unsigned> m_id;
- boost::threadpool::pool tp;
- // Method calls may be cancelled by ID, so keep track of their state.
+ explicit Data(uint8_t workers,lsp::Log& _log , RemoteEndPoint* owner)
+ : max_workers(workers), m_id(0),next_request_cookie(0), message_producer(new StreamMessageProducer(*owner)), log(_log)
+ {
+
+ }
+ ~Data()
+ {
+ delete message_producer;
+ }
+ uint8_t max_workers;
+ std::atomic<int> m_id;
+ std::shared_ptr<boost::asio::thread_pool> tp;
+ // Method calls may be cancelled by ID, so keep track of their state.
// This needs a mutex: handlers may finish on a different thread, and that's
// when we clean up entries in the map.
- mutable std::mutex request_cancelers_mutex;
-
- std::map< lsRequestId, std::pair<Canceler, /*Cookie*/ unsigned> > requestCancelers;
-
- std::atomic<unsigned> next_request_cookie; // To disambiguate reused IDs, see below.
- void onCancel(Notify_Cancellation::notify* notify) {
- std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
- const auto it = requestCancelers.find(notify->params.id);
- if (it != requestCancelers.end())
- it->second.first(); // Invoke the canceler.
- }
-
- // We run cancelable requests in a context that does two things:
- // - allows cancellation using requestCancelers[ID]
- // - cleans up the entry in requestCancelers when it's no longer needed
- // If a client reuses an ID, the last wins and the first cannot be canceled.
- Context cancelableRequestContext(lsRequestId id) {
- auto task = cancelableTask(id,
- /*Reason=*/static_cast<int>(lsErrorCodes::RequestCancelled));
- unsigned cookie;
- {
- std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
- cookie = next_request_cookie.fetch_add(1, std::memory_order_relaxed);
- requestCancelers[id] = { std::move(task.second), cookie };
- }
- // When the request ends, we can clean up the entry we just added.
- // The cookie lets us check that it hasn't been overwritten due to ID
- // reuse.
- return task.first.derive(lsp::make_scope_exit([this, id, cookie] {
- std::lock_guard<std::mutex> lock(request_cancelers_mutex);
- const auto& it = requestCancelers.find(id);
- if (it != requestCancelers.end() && it->second.second == cookie)
- requestCancelers.erase(it);
- }));
- }
-
- std::map <lsRequestId, std::shared_ptr<PendingRequestInfo>> _client_request_futures;
- StreamMessageProducer* message_producer;
- std::atomic<bool> quit{};
- lsp::Log& log;
- std::shared_ptr<lsp::istream> input;
- std::shared_ptr<lsp::ostream> output;
-
- void pendingRequest(RequestInMessage& info, GenericResponseHandler&& handler)
- {
- auto id = m_id.fetch_add(1, std::memory_order_relaxed);
- info.id.set(id);
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- _client_request_futures[info.id] = std::make_shared<PendingRequestInfo>(info.method, handler);
-
- }
- const std::shared_ptr<const PendingRequestInfo> getRequestInfo(const lsRequestId& _id)
- {
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- auto findIt = _client_request_futures.find(_id);
- if (findIt != _client_request_futures.end())
- {
- return findIt->second;
- }
- return nullptr;
- }
-
- std::mutex m_requsetInfo;
- void removeRequestInfo(const lsRequestId& _id)
- {
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- auto findIt = _client_request_futures.find(_id);
- if (findIt != _client_request_futures.end())
- {
- _client_request_futures.erase(findIt);
- }
- }
- void clear()
- {
- {
- std::lock_guard<std::mutex> lock(m_requsetInfo);
- _client_request_futures.clear();
-
- }
- tp.clear();
- quit.store(true, std::memory_order_relaxed);
- }
+ mutable std::mutex request_cancelers_mutex;
+
+ std::map< lsRequestId, std::pair<Canceler, /*Cookie*/ unsigned> > requestCancelers;
+
+ std::atomic<unsigned> next_request_cookie; // To disambiguate reused IDs, see below.
+ void onCancel(Notify_Cancellation::notify* notify) {
+ std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
+ const auto it = requestCancelers.find(notify->params.id);
+ if (it != requestCancelers.end())
+ it->second.first(); // Invoke the canceler.
+ }
+
+ // We run cancelable requests in a context that does two things:
+ // - allows cancellation using requestCancelers[ID]
+ // - cleans up the entry in requestCancelers when it's no longer needed
+ // If a client reuses an ID, the last wins and the first cannot be canceled.
+ Context cancelableRequestContext(lsRequestId id) {
+ auto task = cancelableTask(id,
+ /*Reason=*/static_cast<int>(lsErrorCodes::RequestCancelled));
+ unsigned cookie;
+ {
+ std::lock_guard<std::mutex> Lock(request_cancelers_mutex);
+ cookie = next_request_cookie.fetch_add(1, std::memory_order_relaxed);
+ requestCancelers[id] = { std::move(task.second), cookie };
+ }
+ // When the request ends, we can clean up the entry we just added.
+ // The cookie lets us check that it hasn't been overwritten due to ID
+ // reuse.
+ return task.first.derive(lsp::make_scope_exit([this, id, cookie] {
+ std::lock_guard<std::mutex> lock(request_cancelers_mutex);
+ const auto& it = requestCancelers.find(id);
+ if (it != requestCancelers.end() && it->second.second == cookie)
+ requestCancelers.erase(it);
+ }));
+ }
+
+ std::map <lsRequestId, std::shared_ptr<PendingRequestInfo>> _client_request_futures;
+ StreamMessageProducer* message_producer;
+ std::atomic<bool> quit{};
+ lsp::Log& log;
+ std::shared_ptr<lsp::istream> input;
+ std::shared_ptr<lsp::ostream> output;
+
+ std::mutex m_requestInfo;
+
+ bool pendingRequest(RequestInMessage& info, GenericResponseHandler&& handler)
+ {
+ bool ret = true;
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ if(!info.id.has_value()){
+ auto id = getNextRequestId();
+ info.id.set(id);
+ }
+ else{
+ if(_client_request_futures.find(info.id) != _client_request_futures.end()){
+ ret = false;
+ }
+ }
+ _client_request_futures[info.id] = std::make_shared<PendingRequestInfo>(info.method, handler);
+ return ret;
+ }
+ const std::shared_ptr<const PendingRequestInfo> getRequestInfo(const lsRequestId& _id)
+ {
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ auto findIt = _client_request_futures.find(_id);
+ if (findIt != _client_request_futures.end())
+ {
+ return findIt->second;
+ }
+ return nullptr;
+ }
+
+ void removeRequestInfo(const lsRequestId& _id)
+ {
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ auto findIt = _client_request_futures.find(_id);
+ if (findIt != _client_request_futures.end())
+ {
+ _client_request_futures.erase(findIt);
+ }
+ }
+ void clear()
+ {
+ {
+ std::lock_guard<std::mutex> lock(m_requestInfo);
+ _client_request_futures.clear();
+ }
+ if(tp){
+ tp->stop();
+ }
+ quit.store(true, std::memory_order_relaxed);
+ }
+
+ int getNextRequestId()
+ {
+ return m_id.fetch_add(1, std::memory_order_relaxed);
+ }
};
namespace
{
void WriterMsg(std::shared_ptr<lsp::ostream>& output, LspMessage& msg)
{
- const auto& s = msg.ToJson();
- const auto value =
- std::string("Content-Length: ") + std::to_string(s.size()) + "\r\n\r\n" + s;
- output->write(value);
- output->flush();
+ const auto& s = msg.ToJson();
+ const auto value =
+ std::string("Content-Length: ") + std::to_string(s.size()) + "\r\n\r\n" + s;
+ output->write(value);
+ output->flush();
}
bool isResponseMessage(JsonReader& visitor)
{
- if (!visitor.HasMember("id"))
- {
- return false;
- }
+ if (!visitor.HasMember("id"))
+ {
+ return false;
+ }
- if (!visitor.HasMember("result") && !visitor.HasMember("error"))
- {
- return false;
- }
+ if (!visitor.HasMember("result") && !visitor.HasMember("error"))
+ {
+ return false;
+ }
- return true;
+ return true;
}
bool isRequestMessage(JsonReader& visitor)
{
- if (!visitor.HasMember("method"))
- {
- return false;
- }
- if (!visitor["method"]->IsString())
- {
- return false;
- }
- if (!visitor.HasMember("id"))
- {
- return false;
- }
- return true;
+ if (!visitor.HasMember("method"))
+ {
+ return false;
+ }
+ if (!visitor["method"]->IsString())
+ {
+ return false;
+ }
+ if (!visitor.HasMember("id"))
+ {
+ return false;
+ }
+ return true;
}
bool isNotificationMessage(JsonReader& visitor)
{
- if (!visitor.HasMember("method"))
- {
- return false;
- }
- if (!visitor["method"]->IsString())
- {
- return false;
- }
- if (visitor.HasMember("id"))
- {
- return false;
- }
- return true;
+ if (!visitor.HasMember("method"))
+ {
+ return false;
+ }
+ if (!visitor["method"]->IsString())
+ {
+ return false;
+ }
+ if (visitor.HasMember("id"))
+ {
+ return false;
+ }
+ return true;
}
}
CancelMonitor RemoteEndPoint::getCancelMonitor(const lsRequestId& id)
{
- auto monitor = getCancelledMonitor(id);
- if(monitor.has_value())
- {
- return monitor.value();
- }
- return [] {
- return 0;
- };
+ auto monitor = getCancelledMonitor(id);
+ if(monitor.has_value())
+ {
+ return monitor.value();
+ }
+ return [] {
+ return 0;
+ };
}
RemoteEndPoint::RemoteEndPoint(
- const std::shared_ptr < MessageJsonHandler >& json_handler,const std::shared_ptr < Endpoint>& localEndPoint, lsp::Log& _log, uint8_t max_workers):
- d_ptr(new Data(_log,this)),jsonHandler(json_handler), local_endpoint(localEndPoint)
+ const std::shared_ptr < MessageJsonHandler >& json_handler,const std::shared_ptr < Endpoint>& localEndPoint, lsp::Log& _log, uint8_t max_workers):
+ d_ptr(new Data(max_workers,_log,this)),jsonHandler(json_handler), local_endpoint(localEndPoint)
{
- jsonHandler->method2notification[Notify_Cancellation::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_Cancellation::notify::ReflectReader(visitor);
- };
+ jsonHandler->method2notification[Notify_Cancellation::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_Cancellation::notify::ReflectReader(visitor);
+ };
+
+ d_ptr->quit.store(false, std::memory_order_relaxed);
- d_ptr->quit.store(false, std::memory_order_relaxed);
- d_ptr->tp.size_controller().resize(max_workers);
}
RemoteEndPoint::~RemoteEndPoint()
{
- delete d_ptr;
- d_ptr->quit.store(true, std::memory_order_relaxed);
+ delete d_ptr;
+ d_ptr->quit.store(true, std::memory_order_relaxed);
}
bool RemoteEndPoint::dispatch(const std::string& content)
{
- rapidjson::Document document;
- document.Parse(content.c_str(), content.length());
- if (document.HasParseError())
- {
- std::string info ="lsp msg format error:";
- rapidjson::GetParseErrorFunc GetParseError = rapidjson::GetParseError_En; // or whatever
- info+= GetParseError(document.GetParseError());
- info += "\n";
- info += "ErrorContext offset:\n";
- info += content.substr(document.GetErrorOffset());
- d_ptr->log.log(Log::Level::SEVERE, info);
-
- return false;
- }
-
- JsonReader visitor{ &document };
- if (!visitor.HasMember("jsonrpc") ||
- std::string(visitor["jsonrpc"]->GetString()) != "2.0")
- {
- std::string reason;
- reason = "Reason:Bad or missing jsonrpc version\n";
- reason += "content:\n" + content;
- d_ptr->log.log(Log::Level::SEVERE, reason);
- return false;
-
- }
- LspMessage::Kind _kind = LspMessage::NOTIFICATION_MESSAGE;
- try {
- if (isRequestMessage(visitor))
- {
- _kind = LspMessage::REQUEST_MESSAGE;
- auto msg = jsonHandler->parseRequstMessage(visitor["method"]->GetString(), visitor);
- if (msg) {
- mainLoop(std::move(msg));
- }
- else {
- std::string info = "Unknown support request message when consumer message:\n";
- info += content;
- d_ptr->log.log(Log::Level::WARNING, info);
- return false;
- }
- }
- else if (isResponseMessage(visitor))
- {
- _kind = LspMessage::RESPONCE_MESSAGE;
- lsRequestId id;
- ReflectMember(visitor, "id", id);
-
- auto msgInfo = d_ptr->getRequestInfo(id);
- if (!msgInfo)
- {
- std::pair<std::string, std::unique_ptr<LspMessage>> result;
- auto b = jsonHandler->resovleResponseMessage(visitor, result);
- if (b)
- {
- result.second->SetMethodType(result.first.c_str());
- mainLoop(std::move(result.second));
- }
- else
- {
- std::string info = "Unknown response message :\n";
- info += content;
- d_ptr->log.log(Log::Level::INFO, info);
- }
- }
- else
- {
-
- auto msg = jsonHandler->parseResponseMessage(msgInfo->method, visitor);
- if (msg) {
- mainLoop(std::move(msg));
- }
- else
- {
- std::string info = "Unknown response message :\n";
- info += content;
- d_ptr->log.log(Log::Level::SEVERE, info);
- return false;
- }
-
- }
- }
- else if (isNotificationMessage(visitor))
- {
- auto msg = jsonHandler->parseNotificationMessage(visitor["method"]->GetString(), visitor);
- if (!msg)
- {
- std::string info = "Unknown notification message :\n";
- info += content;
- d_ptr->log.log(Log::Level::SEVERE, info);
- return false;
- }
- mainLoop(std::move(msg));
- }
- else
- {
- std::string info = "Unknown lsp message when consumer message:\n";
- info += content;
- d_ptr->log.log(Log::Level::WARNING, info);
- return false;
- }
- }
- catch (std::exception& e)
- {
-
- std::string info = "Exception when process ";
- if(_kind==LspMessage::REQUEST_MESSAGE)
- {
- info += "request";
- }
- if (_kind == LspMessage::RESPONCE_MESSAGE)
- {
- info += "response";
- }
- else
- {
- info += "notification";
- }
- info += " message:\n";
- info += e.what();
- std::string reason = "Reason:" + info + "\n";
- reason += "content:\n" + content;
- d_ptr->log.log(Log::Level::SEVERE, reason);
- return false;
- }
- return true;
+ rapidjson::Document document;
+ document.Parse(content.c_str(), content.length());
+ if (document.HasParseError())
+ {
+ std::string info ="lsp msg format error:";
+ rapidjson::GetParseErrorFunc GetParseError = rapidjson::GetParseError_En; // or whatever
+ info+= GetParseError(document.GetParseError());
+ info += "\n";
+ info += "ErrorContext offset:\n";
+ info += content.substr(document.GetErrorOffset());
+ d_ptr->log.log(Log::Level::SEVERE, info);
+
+ return false;
+ }
+
+ JsonReader visitor{ &document };
+ if (!visitor.HasMember("jsonrpc") ||
+ std::string(visitor["jsonrpc"]->GetString()) != "2.0")
+ {
+ std::string reason;
+ reason = "Reason:Bad or missing jsonrpc version\n";
+ reason += "content:\n" + content;
+ d_ptr->log.log(Log::Level::SEVERE, reason);
+ return false;
+
+ }
+ LspMessage::Kind _kind = LspMessage::NOTIFICATION_MESSAGE;
+ try {
+ if (isRequestMessage(visitor))
+ {
+ _kind = LspMessage::REQUEST_MESSAGE;
+ auto msg = jsonHandler->parseRequstMessage(visitor["method"]->GetString(), visitor);
+ if (msg) {
+ mainLoop(std::move(msg));
+ }
+ else {
+ std::string info = "Unknown support request message when consumer message:\n";
+ info += content;
+ d_ptr->log.log(Log::Level::WARNING, info);
+ return false;
+ }
+ }
+ else if (isResponseMessage(visitor))
+ {
+ _kind = LspMessage::RESPONCE_MESSAGE;
+ lsRequestId id;
+ ReflectMember(visitor, "id", id);
+
+ auto msgInfo = d_ptr->getRequestInfo(id);
+ if (!msgInfo)
+ {
+ std::string info = "Unknown response message :\n";
+ info += content;
+ d_ptr->log.log(Log::Level::INFO, info);
+ }
+ else
+ {
+
+ auto msg = jsonHandler->parseResponseMessage(msgInfo->method, visitor);
+ if (msg) {
+ mainLoop(std::move(msg));
+ }
+ else
+ {
+ std::string info = "Unknown response message :\n";
+ info += content;
+ d_ptr->log.log(Log::Level::SEVERE, info);
+ return false;
+ }
+
+ }
+ }
+ else if (isNotificationMessage(visitor))
+ {
+ auto msg = jsonHandler->parseNotificationMessage(visitor["method"]->GetString(), visitor);
+ if (!msg)
+ {
+ std::string info = "Unknown notification message :\n";
+ info += content;
+ d_ptr->log.log(Log::Level::SEVERE, info);
+ return false;
+ }
+ mainLoop(std::move(msg));
+ }
+ else
+ {
+ std::string info = "Unknown lsp message when consumer message:\n";
+ info += content;
+ d_ptr->log.log(Log::Level::WARNING, info);
+ return false;
+ }
+ }
+ catch (std::exception& e)
+ {
+
+ std::string info = "Exception when process ";
+ if(_kind==LspMessage::REQUEST_MESSAGE)
+ {
+ info += "request";
+ }
+ if (_kind == LspMessage::RESPONCE_MESSAGE)
+ {
+ info += "response";
+ }
+ else
+ {
+ info += "notification";
+ }
+ info += " message:\n";
+ info += e.what();
+ std::string reason = "Reason:" + info + "\n";
+ reason += "content:\n" + content;
+ d_ptr->log.log(Log::Level::SEVERE, reason);
+ return false;
+ }
+ return true;
}
-void RemoteEndPoint::internalSendRequest( RequestInMessage& info, GenericResponseHandler handler)
+bool RemoteEndPoint::internalSendRequest(RequestInMessage& info, GenericResponseHandler handler)
{
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!d_ptr->output || d_ptr->output->bad())
- {
- std::string desc = "Output isn't good any more:\n";
- d_ptr->log.log(Log::Level::INFO, desc);
- return ;
- }
- d_ptr->pendingRequest(info, std::move(handler));
- WriterMsg(d_ptr->output, info);
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!d_ptr->output || d_ptr->output->bad())
+ {
+ std::string desc = "Output isn't good any more:\n";
+ d_ptr->log.log(Log::Level::WARNING, desc);
+ return false;
+ }
+ if(!d_ptr->pendingRequest(info, std::move(handler)))
+ {
+ std::string desc = "Duplicate id which of request:";
+ desc += info.ToJson();
+ desc += "\n";
+ d_ptr->log.log(Log::Level::WARNING, desc);
+ }
+ WriterMsg(d_ptr->output, info);
+ return true;
}
-
+int RemoteEndPoint::getNextRequestId(){
+ return d_ptr->getNextRequestId();
+}
+bool RemoteEndPoint::cancelRequest(const lsRequestId& id){
+ if(!isWorking()){
+ return false;
+ }
+ auto msgInfo = d_ptr->getRequestInfo(id);
+ if (msgInfo){
+ Notify_Cancellation::notify cancel_notify;
+ cancel_notify.params.id = id;
+ send(cancel_notify);
+ return true;
+ }
+ return false;
+}
std::unique_ptr<LspMessage> RemoteEndPoint::internalWaitResponse(RequestInMessage& request, unsigned time_out)
{
- auto eventFuture = std::make_shared< Condition< LspMessage > >();
- internalSendRequest(request, [=](std::unique_ptr<LspMessage> data)
- {
- eventFuture->notify(std::move(data));
- return true;
- });
- return eventFuture->wait(time_out);
+ auto eventFuture = std::make_shared< Condition< LspMessage > >();
+ internalSendRequest(request, [=](std::unique_ptr<LspMessage> data)
+ {
+ eventFuture->notify(std::move(data));
+ return true;
+ });
+ return eventFuture->wait(time_out);
}
void RemoteEndPoint::mainLoop(std::unique_ptr<LspMessage>msg)
{
- if(d_ptr->quit.load(std::memory_order_relaxed))
- {
- return;
- }
- const auto _kind = msg->GetKid();
- if (_kind == LspMessage::REQUEST_MESSAGE)
- {
- auto req = static_cast<RequestInMessage*>(msg.get());
- // Calls can be canceled by the client. Add cancellation context.
- WithContext WithCancel(d_ptr->cancelableRequestContext(req->id));
- local_endpoint->onRequest(std::move(msg));
- }
-
- else if (_kind == LspMessage::RESPONCE_MESSAGE)
- {
- auto response = static_cast<ResponseInMessage*>(msg.get());
- auto msgInfo = d_ptr->getRequestInfo(response->id);
- if (!msgInfo)
- {
- const auto _method_desc = msg->GetMethodType();
- local_endpoint->onResponse(_method_desc, std::move(msg));
- }
- else
- {
- bool needLocal = true;
- if (msgInfo->futureInfo)
- {
- if (msgInfo->futureInfo(std::move(msg)))
- {
- needLocal = false;
- }
- }
- if (needLocal)
- {
- local_endpoint->onResponse(msgInfo->method, std::move(msg));
- }
- d_ptr->removeRequestInfo(response->id);
- }
- }
- else if (_kind == LspMessage::NOTIFICATION_MESSAGE)
- {
- if (strcmp(Notify_Cancellation::notify::kMethodInfo, msg->GetMethodType())==0)
- {
- d_ptr->onCancel(static_cast<Notify_Cancellation::notify*>(msg.get()));
- }
- else
- {
- local_endpoint->notify(std::move(msg));
- }
-
- }
- else
- {
- std::string info = "Unknown lsp message when process message in mainLoop:\n";
- d_ptr->log.log(Log::Level::WARNING, info);
- }
+ if(d_ptr->quit.load(std::memory_order_relaxed))
+ {
+ return;
+ }
+ const auto _kind = msg->GetKid();
+ if (_kind == LspMessage::REQUEST_MESSAGE)
+ {
+ auto req = static_cast<RequestInMessage*>(msg.get());
+ // Calls can be canceled by the client. Add cancellation context.
+ WithContext WithCancel(d_ptr->cancelableRequestContext(req->id));
+ local_endpoint->onRequest(std::move(msg));
+ }
+
+ else if (_kind == LspMessage::RESPONCE_MESSAGE)
+ {
+ const auto id = static_cast<ResponseInMessage*>(msg.get())->id;
+ auto msgInfo = d_ptr->getRequestInfo(id);
+ if (!msgInfo)
+ {
+ const auto _method_desc = msg->GetMethodType();
+ local_endpoint->onResponse(_method_desc, std::move(msg));
+ }
+ else
+ {
+ bool needLocal = true;
+ if (msgInfo->futureInfo)
+ {
+ if (msgInfo->futureInfo(std::move(msg)))
+ {
+ needLocal = false;
+ }
+ }
+ if (needLocal)
+ {
+ local_endpoint->onResponse(msgInfo->method, std::move(msg));
+ }
+ d_ptr->removeRequestInfo(id);
+ }
+ }
+ else if (_kind == LspMessage::NOTIFICATION_MESSAGE)
+ {
+ if (strcmp(Notify_Cancellation::notify::kMethodInfo, msg->GetMethodType())==0)
+ {
+ d_ptr->onCancel(static_cast<Notify_Cancellation::notify*>(msg.get()));
+ }
+ else
+ {
+ local_endpoint->notify(std::move(msg));
+ }
+
+ }
+ else
+ {
+ std::string info = "Unknown lsp message when process message in mainLoop:\n";
+ d_ptr->log.log(Log::Level::WARNING, info);
+ }
}
void RemoteEndPoint::handle(std::vector<MessageIssue>&& issue)
{
- for(auto& it : issue)
- {
- d_ptr->log.log(it.code, it.text);
- }
+ for(auto& it : issue)
+ {
+ d_ptr->log.log(it.code, it.text);
+ }
}
void RemoteEndPoint::handle(MessageIssue&& issue)
{
- d_ptr->log.log(issue.code, issue.text);
+ d_ptr->log.log(issue.code, issue.text);
}
void RemoteEndPoint::startProcessingMessages(std::shared_ptr<lsp::istream> r,
- std::shared_ptr<lsp::ostream> w)
+ std::shared_ptr<lsp::ostream> w)
{
- d_ptr->quit.store(false, std::memory_order_relaxed);
- d_ptr->input = r;
- d_ptr->output = w;
- d_ptr->message_producer->bind(r);
- message_producer_thread_ = std::make_shared<std::thread>([&]()
+ d_ptr->quit.store(false, std::memory_order_relaxed);
+ d_ptr->input = r;
+ d_ptr->output = w;
+ d_ptr->message_producer->bind(r);
+ d_ptr->tp = std::make_shared<boost::asio::thread_pool>(d_ptr->max_workers);
+ message_producer_thread_ = std::make_shared<std::thread>([&]()
{
- d_ptr->message_producer->listen([&](std::string&& content){
- const auto temp = std::make_shared<std::string>(std::move(content));
- d_ptr->tp.schedule([this, temp]{
+ d_ptr->message_producer->listen([&](std::string&& content){
+ const auto temp = std::make_shared<std::string>(std::move(content));
+ boost::asio::post(*d_ptr->tp,
+ [this, temp]{
#ifdef USEGC
GCThreadContext gcContext;
#endif
- dispatch(*temp);
- });
- });
- });
+ dispatch(*temp);
+ });
+ });
+ });
}
-void RemoteEndPoint::Stop()
+void RemoteEndPoint::stop()
{
- if(message_producer_thread_ && message_producer_thread_->joinable())
- {
- message_producer_thread_->detach();
- }
- d_ptr->clear();
+ if(message_producer_thread_ && message_producer_thread_->joinable())
+ {
+ message_producer_thread_->detach();
+ message_producer_thread_ = nullptr;
+ }
+ d_ptr->clear();
}
void RemoteEndPoint::sendMsg( LspMessage& msg)
{
- std::lock_guard<std::mutex> lock(m_sendMutex);
- if (!d_ptr->output || d_ptr->output->bad())
- {
- std::string info = "Output isn't good any more:\n";
- d_ptr->log.log(Log::Level::INFO, info);
- return;
- }
- WriterMsg(d_ptr->output, msg);
+ std::lock_guard<std::mutex> lock(m_sendMutex);
+ if (!d_ptr->output || d_ptr->output->bad())
+ {
+ std::string info = "Output isn't good any more:\n";
+ d_ptr->log.log(Log::Level::INFO, info);
+ return;
+ }
+ WriterMsg(d_ptr->output, msg);
+
+}
+bool RemoteEndPoint::isWorking() const {
+ if (message_producer_thread_ && message_producer_thread_->joinable())
+ return true;
+ return false;
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
index 119e9040bd..cc14d62076 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/StreamMessageProducer.cpp
@@ -7,185 +7,185 @@
bool StartsWith(std::string value, std::string start);
bool StartsWith(std::string value, std::string start) {
- if (start.size() > value.size())
- return false;
- return std::equal(start.begin(), start.end(), value.begin());
+ if (start.size() > value.size())
+ return false;
+ return std::equal(start.begin(), start.end(), value.begin());
}
using namespace std;
namespace
{
- string JSONRPC_VERSION = "2.0";
- string CONTENT_LENGTH_HEADER = "Content-Length";
- string CONTENT_TYPE_HEADER = "Content-Type";
- string JSON_MIME_TYPE = "application/json";
- string CRLF = "\r\n";
+ string JSONRPC_VERSION = "2.0";
+ string CONTENT_LENGTH_HEADER = "Content-Length";
+ string CONTENT_TYPE_HEADER = "Content-Type";
+ string JSON_MIME_TYPE = "application/json";
+ string CRLF = "\r\n";
}
void StreamMessageProducer::parseHeader(std::string& line, StreamMessageProducer::Headers& headers)
{
- int sepIndex = line.find(':');
- if (sepIndex >= 0) {
- auto key = line.substr(0, sepIndex);
- if(key == CONTENT_LENGTH_HEADER)
- {
- headers.contentLength = atoi(line.substr(sepIndex + 1).data());
- }
- else if(key == CONTENT_TYPE_HEADER)
- {
- int charsetIndex = line.find("charset=");
- if (charsetIndex >= 0)
- headers.charset = line.substr(charsetIndex + 8);
- }
- }
+ int sepIndex = line.find(':');
+ if (sepIndex >= 0) {
+ auto key = line.substr(0, sepIndex);
+ if(key == CONTENT_LENGTH_HEADER)
+ {
+ headers.contentLength = atoi(line.substr(sepIndex + 1).data());
+ }
+ else if(key == CONTENT_TYPE_HEADER)
+ {
+ int charsetIndex = line.find("charset=");
+ if (charsetIndex >= 0)
+ headers.charset = line.substr(charsetIndex + 8);
+ }
+ }
}
-
+
void StreamMessageProducer::listen(MessageConsumer callBack)
{
- if(!input)
- return;
-
- keepRunning = true;
- bool newLine = false;
- Headers headers;
- string headerBuilder ;
- string debugBuilder ;
- // Read the content length. It is terminated by the "\r\n" sequence.
- while (keepRunning)
- {
- if(input->bad())
- {
- std::string info = "Input stream is bad.";
- auto what = input->what();
- if (what.size())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::SEVERE);
- issueHandler.handle(std::move(issue));
- return;
- }
- if(input->fail())
- {
- std::string info = "Input fail.";
- auto what = input->what();
- if(what.size())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::WARNING);
- issueHandler.handle(std::move(issue));
- if(input->need_to_clear_the_state())
- input->clear();
- else
- {
- return;
- }
- }
- int c = input->get();
- if (c == EOF) {
- // End of input stream has been reached
- keepRunning = false;
- }
- else
- {
-
- debugBuilder.push_back((char)c);
- if (c == '\n')
- {
- if (newLine) {
- // Two consecutive newlines have been read, which signals the start of the message content
- if (headers.contentLength <= 0)
- {
- string info = "Unexpected token:" + debugBuilder;
- info = +" (expected Content-Length: sequence);";
- MessageIssue issue(info, lsp::Log::Level::WARNING);
- issueHandler.handle(std::move(issue));
- }
- else {
- bool result = handleMessage(headers,callBack);
- if (!result)
- keepRunning = false;
- newLine = false;
- }
- headers.clear();
- debugBuilder.clear();
- }
- else if (!headerBuilder.empty()) {
- // A single newline ends a header line
- parseHeader(headerBuilder, headers);
- headerBuilder.clear();
- }
- newLine = true;
- }
- else if (c != '\r') {
- // Add the input to the current header line
-
- headerBuilder.push_back((char)c);
- newLine = false;
- }
- }
- }
+ if(!input)
+ return;
+
+ keepRunning = true;
+ bool newLine = false;
+ Headers headers;
+ string headerBuilder ;
+ string debugBuilder ;
+ // Read the content length. It is terminated by the "\r\n" sequence.
+ while (keepRunning)
+ {
+ if(input->bad())
+ {
+ std::string info = "Input stream is bad.";
+ auto what = input->what();
+ if (what.size())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::SEVERE);
+ issueHandler.handle(std::move(issue));
+ return;
+ }
+ if(input->fail())
+ {
+ std::string info = "Input fail.";
+ auto what = input->what();
+ if(what.size())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::WARNING);
+ issueHandler.handle(std::move(issue));
+ if(input->need_to_clear_the_state())
+ input->clear();
+ else
+ {
+ return;
+ }
+ }
+ int c = input->get();
+ if (c == EOF) {
+ // End of input stream has been reached
+ keepRunning = false;
+ }
+ else
+ {
+
+ debugBuilder.push_back((char)c);
+ if (c == '\n')
+ {
+ if (newLine) {
+ // Two consecutive newlines have been read, which signals the start of the message content
+ if (headers.contentLength <= 0)
+ {
+ string info = "Unexpected token:" + debugBuilder;
+ info = +" (expected Content-Length: sequence);";
+ MessageIssue issue(info, lsp::Log::Level::WARNING);
+ issueHandler.handle(std::move(issue));
+ }
+ else {
+ bool result = handleMessage(headers,callBack);
+ if (!result)
+ keepRunning = false;
+ newLine = false;
+ }
+ headers.clear();
+ debugBuilder.clear();
+ }
+ else if (!headerBuilder.empty()) {
+ // A single newline ends a header line
+ parseHeader(headerBuilder, headers);
+ headerBuilder.clear();
+ }
+ newLine = true;
+ }
+ else if (c != '\r') {
+ // Add the input to the current header line
+
+ headerBuilder.push_back((char)c);
+ newLine = false;
+ }
+ }
+ }
}
void StreamMessageProducer::bind(std::shared_ptr<lsp::istream>_in)
{
- input = _in;
+ input = _in;
}
bool StreamMessageProducer::handleMessage(Headers& headers ,MessageConsumer callBack)
{
- // Read content.
- auto content_length = headers.contentLength;
- std::string content(content_length,0);
- auto data = &content[0];
- input->read(data, content_length);
- if (input->bad())
- {
- std::string info = "Input stream is bad.";
- auto what = input->what();
- if (!what.empty())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::SEVERE);
- issueHandler.handle(std::move(issue));
- return false;
- }
-
- if (input->eof())
- {
- MessageIssue issue("No more input when reading content body", lsp::Log::Level::INFO);
- issueHandler.handle(std::move(issue));
- return false;
- }
- if (input->fail())
- {
- std::string info = "Input fail.";
- auto what = input->what();
- if (!what.empty())
- {
- info += "Reason:";
- info += input->what();
- }
- MessageIssue issue(info, lsp::Log::Level::WARNING);
- issueHandler.handle(std::move(issue));
- if (input->need_to_clear_the_state())
- input->clear();
- else
- {
- return false;
- }
- }
-
- callBack(std::move(content));
-
- return true;
+ // Read content.
+ auto content_length = headers.contentLength;
+ std::string content(content_length,0);
+ auto data = &content[0];
+ input->read(data, content_length);
+ if (input->bad())
+ {
+ std::string info = "Input stream is bad.";
+ auto what = input->what();
+ if (!what.empty())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::SEVERE);
+ issueHandler.handle(std::move(issue));
+ return false;
+ }
+
+ if (input->eof())
+ {
+ MessageIssue issue("No more input when reading content body", lsp::Log::Level::INFO);
+ issueHandler.handle(std::move(issue));
+ return false;
+ }
+ if (input->fail())
+ {
+ std::string info = "Input fail.";
+ auto what = input->what();
+ if (!what.empty())
+ {
+ info += "Reason:";
+ info += input->what();
+ }
+ MessageIssue issue(info, lsp::Log::Level::WARNING);
+ issueHandler.handle(std::move(issue));
+ if (input->need_to_clear_the_state())
+ input->clear();
+ else
+ {
+ return false;
+ }
+ }
+
+ callBack(std::move(content));
+
+ return true;
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
index 37a7a3a3af..799d0aec9a 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/TcpServer.cpp
@@ -11,39 +11,39 @@
namespace lsp {
- struct tcp_connect_session;
+ struct tcp_connect_session;
- class tcp_stream_wrapper :public istream, public ostream
- {
- public:
- tcp_stream_wrapper(tcp_connect_session& _w);
+ class tcp_stream_wrapper :public istream, public ostream
+ {
+ public:
+ tcp_stream_wrapper(tcp_connect_session& _w);
- tcp_connect_session& session;
- std::atomic<bool> quit{};
- std::shared_ptr < MultiQueueWaiter> request_waiter;
- ThreadedQueue< char > on_request;
+ tcp_connect_session& session;
+ std::atomic<bool> quit{};
+ std::shared_ptr < MultiQueueWaiter> request_waiter;
+ ThreadedQueue< char > on_request;
std::string error_message;
- bool fail() override
- {
- return bad();
- }
+ bool fail() override
+ {
+ return bad();
+ }
- bool eof() override
- {
- return bad();
- }
- bool good() override
- {
- return !bad();
- }
- tcp_stream_wrapper& read(char* str, std::streamsize count)
+ bool eof() override
+ {
+ return bad();
+ }
+ bool good() override
+ {
+ return !bad();
+ }
+ tcp_stream_wrapper& read(char* str, std::streamsize count)
override
- {
+ {
auto some = on_request.TryDequeueSome(static_cast<size_t>( count ));
memcpy(str,some.data(),some.size());
for (std::streamsize i = some.size(); i < count; ++i)
@@ -51,41 +51,41 @@ namespace lsp {
str[i] = static_cast<char>(get());
}
- return *this;
- }
- int get() override
- {
- return on_request.Dequeue();
- }
+ return *this;
+ }
+ int get() override
+ {
+ return on_request.Dequeue();
+ }
- bool bad() override;
+ bool bad() override;
- tcp_stream_wrapper& write(const std::string& c) override;
+ tcp_stream_wrapper& write(const std::string& c) override;
- tcp_stream_wrapper& write(std::streamsize _s) override;
+ tcp_stream_wrapper& write(std::streamsize _s) override;
- tcp_stream_wrapper& flush() override
- {
- return *this;
- }
- void reset_state()
- {
- return;
- }
+ tcp_stream_wrapper& flush() override
+ {
+ return *this;
+ }
+ void reset_state()
+ {
+ return;
+ }
- void clear() override
- {
+ void clear() override
+ {
- }
+ }
- std::string what() override;
- bool need_to_clear_the_state() override
- {
+ std::string what() override;
+ bool need_to_clear_the_state() override
+ {
return false;
- }
- };
- struct tcp_connect_session:std::enable_shared_from_this<tcp_connect_session>
- {
+ }
+ };
+ struct tcp_connect_session:std::enable_shared_from_this<tcp_connect_session>
+ {
/// Buffer for incoming data.
std::array<unsigned char, 8192> buffer_;
boost::asio::ip::tcp::socket socket_;
@@ -93,7 +93,7 @@ namespace lsp {
boost::asio::io_context::strand strand_;
std::shared_ptr<tcp_stream_wrapper> proxy_;
explicit tcp_connect_session(boost::asio::io_context& io_context, boost::asio::ip::tcp::socket&& _socket)
- : socket_(std::move(_socket)), strand_(io_context), proxy_(new tcp_stream_wrapper(*this))
+ : socket_(std::move(_socket)), strand_(io_context), proxy_(new tcp_stream_wrapper(*this))
{
do_read();
}
@@ -127,22 +127,22 @@ namespace lsp {
}));
}
- };
+ };
- tcp_stream_wrapper::tcp_stream_wrapper(tcp_connect_session& _w): session(_w)
- {
- }
+ tcp_stream_wrapper::tcp_stream_wrapper(tcp_connect_session& _w): session(_w)
+ {
+ }
- bool tcp_stream_wrapper::bad()
+ bool tcp_stream_wrapper::bad()
{
return !session.socket_.is_open();
}
- tcp_stream_wrapper& tcp_stream_wrapper::write(const std::string& c)
- {
- session.do_write(c);
- return *this;
- }
+ tcp_stream_wrapper& tcp_stream_wrapper::write(const std::string& c)
+ {
+ session.do_write(c);
+ return *this;
+ }
tcp_stream_wrapper& tcp_stream_wrapper::write(std::streamsize _s)
{
@@ -150,8 +150,8 @@ namespace lsp {
return *this;
}
- std::string tcp_stream_wrapper::what()
- {
+ std::string tcp_stream_wrapper::what()
+ {
if (error_message.size())
return error_message;
@@ -159,21 +159,21 @@ namespace lsp {
{
return "Socket is not open.";
}
- return {};
- }
+ return {};
+ }
struct TcpServer::Data
{
Data(
lsp::Log& log, uint32_t _max_workers) :
- acceptor_(io_context_), _log(log)
- {
- }
+ acceptor_(io_context_), _log(log)
+ {
+ }
- ~Data()
- {
+ ~Data()
+ {
- }
+ }
/// The io_context used to perform asynchronous operations.
boost::asio::io_context io_context_;
@@ -187,10 +187,10 @@ namespace lsp {
};
- TcpServer::~TcpServer()
- {
+ TcpServer::~TcpServer()
+ {
delete d_ptr;
- }
+ }
TcpServer::TcpServer(const std::string& address, const std::string& port,
std::shared_ptr < MessageJsonHandler> json_handler,
@@ -238,7 +238,7 @@ namespace lsp {
{
try
{
- if(d_ptr->work)
+ if(d_ptr->work)
d_ptr->work.reset();
do_stop();
@@ -262,17 +262,17 @@ namespace lsp {
if (!ec)
{
- if(d_ptr->_connect_session)
- {
- if(d_ptr->_connect_session->socket_.is_open())
- {
+ if(d_ptr->_connect_session)
+ {
+ if(d_ptr->_connect_session->socket_.is_open())
+ {
std::string desc = "Disconnect previous client " + d_ptr->_connect_session->socket_.local_endpoint().address().to_string();
d_ptr->_log.log(lsp::Log::Level::INFO, desc);
d_ptr->_connect_session->socket_.close();
- }
+ }
- point.Stop();
- }
+ point.stop();
+ }
auto local_point = socket.local_endpoint();
std::string desc = ("New client " + local_point.address().to_string() + " connect.");
@@ -289,7 +289,7 @@ namespace lsp {
{
d_ptr->acceptor_.close();
- point.Stop();
+ point.stop();
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
index 127cf2a9f4..80806e848b 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/WebSocketServer.cpp
@@ -115,29 +115,29 @@ namespace lsp {
void close()
{
- if(ws_.is_open())
- {
- boost::system::error_code ec;
- ws_.close(websocket::close_code::normal, ec);
- }
+ if(ws_.is_open())
+ {
+ boost::system::error_code ec;
+ ws_.close(websocket::close_code::normal, ec);
+ }
}
};
//------------------------------------------------------------------------------
- struct WebSocketServer::Data
- {
+ struct WebSocketServer::Data
+ {
Data(const std::string& user_agent, lsp::Log& log) :
- acceptor_(io_context_), user_agent_(user_agent), _log(log)
+ acceptor_(io_context_), user_agent_(user_agent), _log(log)
- {
- }
+ {
+ }
- ~Data()
- {
+ ~Data()
+ {
- }
+ }
/// The io_context used to perform asynchronous operations.
boost::asio::io_context io_context_;
@@ -151,68 +151,68 @@ namespace lsp {
std::string user_agent_;
lsp::Log& _log;
- };
+ };
websocket_stream_wrapper::websocket_stream_wrapper(boost::beast::websocket::stream<boost::beast::tcp_stream>& _w):
- ws_(_w), request_waiter(new MultiQueueWaiter()),
- on_request(request_waiter)
+ ws_(_w), request_waiter(new MultiQueueWaiter()),
+ on_request(request_waiter)
{
}
bool websocket_stream_wrapper::fail()
{
- return bad();
+ return bad();
}
bool websocket_stream_wrapper::eof()
{
- return bad();
+ return bad();
}
bool websocket_stream_wrapper::good()
{
- return !bad();
+ return !bad();
}
websocket_stream_wrapper& websocket_stream_wrapper::read(char* str, std::streamsize count)
{
- auto some = on_request.TryDequeueSome(static_cast<size_t>(count));
+ auto some = on_request.TryDequeueSome(static_cast<size_t>(count));
memcpy(str,some.data(),some.size());
for (std::streamsize i = some.size(); i < count; ++i)
{
str[i] = static_cast<char>(get());
}
- return *this;
+ return *this;
}
int websocket_stream_wrapper::get()
{
- return on_request.Dequeue();
+ return on_request.Dequeue();
}
bool websocket_stream_wrapper::bad()
{
- return !ws_.next_layer().socket().is_open();
+ return !ws_.next_layer().socket().is_open();
}
websocket_stream_wrapper& websocket_stream_wrapper::write(const std::string& c)
{
- ws_.write(boost::asio::buffer(std::string(c)));
- return *this;
+ ws_.write(boost::asio::buffer(std::string(c)));
+ return *this;
}
websocket_stream_wrapper& websocket_stream_wrapper::write(std::streamsize _s)
{
- std::ostringstream temp;
- temp << _s;
- ws_.write(boost::asio::buffer(temp.str()));
- return *this;
+ std::ostringstream temp;
+ temp << _s;
+ ws_.write(boost::asio::buffer(temp.str()));
+ return *this;
}
websocket_stream_wrapper& websocket_stream_wrapper::flush()
{
- return *this;
+ return *this;
}
void websocket_stream_wrapper::clear()
@@ -224,17 +224,17 @@ namespace lsp {
if (!error_message.empty())
return error_message;
- if (!ws_.next_layer().socket().is_open())
- {
- return "Socket is not open.";
- }
- return {};
+ if (!ws_.next_layer().socket().is_open())
+ {
+ return "Socket is not open.";
+ }
+ return {};
}
WebSocketServer::~WebSocketServer()
- {
+ {
delete d_ptr;
- }
+ }
WebSocketServer::WebSocketServer(const std::string& user_agent, const std::string& address, const std::string& port,
std::shared_ptr < MessageJsonHandler> json_handler,
@@ -282,7 +282,7 @@ namespace lsp {
{
try
{
- if(d_ptr->work)
+ if(d_ptr->work)
d_ptr->work.reset();
do_stop();
@@ -305,17 +305,17 @@ namespace lsp {
}
if (!ec)
{
- if(d_ptr->_server_session)
- {
- try
- {
+ if(d_ptr->_server_session)
+ {
+ try
+ {
d_ptr->_server_session->close();
- point.Stop();
- }
- catch (...)
- {
- }
- }
+ point.stop();
+ }
+ catch (...)
+ {
+ }
+ }
d_ptr->_server_session = std::make_shared<server_session>(std::move(socket), d_ptr->user_agent_);
d_ptr->_server_session->run();
@@ -330,7 +330,7 @@ namespace lsp {
{
d_ptr->acceptor_.close();
- point.Stop();
+ point.stop();
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/message.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/message.cpp
index 4a23d2016a..a9e7736cd7 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/message.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/message.cpp
@@ -8,81 +8,81 @@
#include "LibLsp/JsonRpc/json.h"
void LspMessage::Write(std::ostream& out) {
- rapidjson::StringBuffer output;
- rapidjson::Writer<rapidjson::StringBuffer> writer(output);
- JsonWriter json_writer{ &writer };
- ReflectWriter(json_writer);
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> writer(output);
+ JsonWriter json_writer{ &writer };
+ ReflectWriter(json_writer);
- const auto value = std::string("Content-Length: ") + std::to_string(output.GetSize()) + "\r\n\r\n" + output.GetString();
- out << value;
- out.flush();
+ const auto value = std::string("Content-Length: ") + std::to_string(output.GetSize()) + "\r\n\r\n" + output.GetString();
+ out << value;
+ out.flush();
}
std::string LspMessage::ToJson() {
- rapidjson::StringBuffer output;
- rapidjson::Writer<rapidjson::StringBuffer> writer(output);
- JsonWriter json_writer{ &writer };
- this->ReflectWriter(json_writer);
- return output.GetString();
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> writer(output);
+ JsonWriter json_writer{ &writer };
+ this->ReflectWriter(json_writer);
+ return output.GetString();
}
void Reflect(Reader& visitor, lsRequestId& value) {
- if (visitor.IsInt()) {
- value.type = lsRequestId::kInt;
- value.value = visitor.GetInt();
- }
- else if (visitor.IsInt64()) {
- value.type = lsRequestId::kInt;
- // `lsRequestId.value` is an `int`, so we're forced to truncate.
- value.value = static_cast<int>(visitor.GetInt64());
- }
- else if (visitor.IsString()) {
- value.type = lsRequestId::kString;
- value.k_string = visitor.GetString();
- value.value = atoi(value.k_string.c_str());
-
- }
- else {
- value.type = lsRequestId::kNone;
- value.value = -1;
- }
+ if (visitor.IsInt()) {
+ value.type = lsRequestId::kInt;
+ value.value = visitor.GetInt();
+ }
+ else if (visitor.IsInt64()) {
+ value.type = lsRequestId::kInt;
+ // `lsRequestId.value` is an `int`, so we're forced to truncate.
+ value.value = static_cast<int>(visitor.GetInt64());
+ }
+ else if (visitor.IsString()) {
+ value.type = lsRequestId::kString;
+ value.k_string = visitor.GetString();
+ value.value = atoi(value.k_string.c_str());
+
+ }
+ else {
+ value.type = lsRequestId::kNone;
+ value.value = -1;
+ }
}
void Reflect(Writer& visitor, lsRequestId& value) {
- switch (value.type) {
- case lsRequestId::kNone:
- visitor.Null();
- break;
- case lsRequestId::kInt:
- visitor.Int(value.value);
- break;
- case lsRequestId::kString:
-
- if(value.k_string.empty())
- {
- std::string str = std::to_string(value.value);
- visitor.String(str.c_str(), str.length());
- }
- else
- {
- visitor.String(value.k_string.c_str(), value.k_string.length());
- }
- break;
- }
+ switch (value.type) {
+ case lsRequestId::kNone:
+ visitor.Null();
+ break;
+ case lsRequestId::kInt:
+ visitor.Int(value.value);
+ break;
+ case lsRequestId::kString:
+
+ if(value.k_string.empty())
+ {
+ std::string str = std::to_string(value.value);
+ visitor.String(str.c_str(), str.length());
+ }
+ else
+ {
+ visitor.String(value.k_string.c_str(), value.k_string.length());
+ }
+ break;
+ }
}
std::string ToString(const lsRequestId& id) {
- if (id.type != lsRequestId::kNone)
- {
- if(id.type == lsRequestId::kString)
- {
- if (!id.k_string.empty())
- return id.k_string;
- }
- return std::to_string(id.value);
- }
-
- return "";
+ if (id.type != lsRequestId::kNone)
+ {
+ if(id.type == lsRequestId::kString)
+ {
+ if (!id.k_string.empty())
+ return id.k_string;
+ }
+ return std::to_string(id.value);
+ }
+
+ return "";
}
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp b/graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp
deleted file mode 100644
index 86e3b407c6..0000000000
--- a/graphics/asymptote/LspCpp/src/jsonrpc/optional.hpp
+++ /dev/null
@@ -1,1846 +0,0 @@
-//
-// Copyright (c) 2014-2021 Martin Moene
-//
-// https://github.com/martinmoene/optional-lite
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#pragma once
-
-#ifndef NONSTD_OPTIONAL_LITE_HPP
-#define NONSTD_OPTIONAL_LITE_HPP
-
-#define optional_lite_MAJOR 3
-#define optional_lite_MINOR 5
-#define optional_lite_PATCH 0
-
-#define optional_lite_VERSION optional_STRINGIFY(optional_lite_MAJOR) "." optional_STRINGIFY(optional_lite_MINOR) "." optional_STRINGIFY(optional_lite_PATCH)
-
-#define optional_STRINGIFY( x ) optional_STRINGIFY_( x )
-#define optional_STRINGIFY_( x ) #x
-
-// optional-lite configuration:
-
-#define optional_OPTIONAL_DEFAULT 0
-#define optional_OPTIONAL_NONSTD 1
-#define optional_OPTIONAL_STD 2
-
-// tweak header support:
-
-#ifdef __has_include
-# if __has_include(<nonstd/optional.tweak.hpp>)
-# include <nonstd/optional.tweak.hpp>
-# endif
-#define optional_HAVE_TWEAK_HEADER 1
-#else
-#define optional_HAVE_TWEAK_HEADER 0
-//# pragma message("optional.hpp: Note: Tweak header not supported.")
-#endif
-
-// optional selection and configuration:
-
-#if !defined( optional_CONFIG_SELECT_OPTIONAL )
-# define optional_CONFIG_SELECT_OPTIONAL ( optional_HAVE_STD_OPTIONAL ? optional_OPTIONAL_STD : optional_OPTIONAL_NONSTD )
-#endif
-
-// Control presence of extensions:
-
-#ifndef optional_CONFIG_NO_EXTENSIONS
-#define optional_CONFIG_NO_EXTENSIONS 0
-#endif
-
-// Control presence of exception handling (try and auto discover):
-
-#ifndef optional_CONFIG_NO_EXCEPTIONS
-# if defined(_MSC_VER)
-# include <cstddef> // for _HAS_EXCEPTIONS
-# endif
-# if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || (_HAS_EXCEPTIONS)
-# define optional_CONFIG_NO_EXCEPTIONS 0
-# else
-# define optional_CONFIG_NO_EXCEPTIONS 1
-# endif
-#endif
-
-// C++ language version detection (C++20 is speculative):
-// Note: VC14.0/1900 (VS2015) lacks too much from C++14.
-
-#ifndef optional_CPLUSPLUS
-# if defined(_MSVC_LANG ) && !defined(__clang__)
-# define optional_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG )
-# else
-# define optional_CPLUSPLUS __cplusplus
-# endif
-#endif
-
-#define optional_CPP98_OR_GREATER ( optional_CPLUSPLUS >= 199711L )
-#define optional_CPP11_OR_GREATER ( optional_CPLUSPLUS >= 201103L )
-#define optional_CPP11_OR_GREATER_ ( optional_CPLUSPLUS >= 201103L )
-#define optional_CPP14_OR_GREATER ( optional_CPLUSPLUS >= 201402L )
-#define optional_CPP17_OR_GREATER ( optional_CPLUSPLUS >= 201703L )
-#define optional_CPP20_OR_GREATER ( optional_CPLUSPLUS >= 202000L )
-
-// C++ language version (represent 98 as 3):
-
-#define optional_CPLUSPLUS_V ( optional_CPLUSPLUS / 100 - (optional_CPLUSPLUS > 200000 ? 2000 : 1994) )
-
-// Use C++17 std::optional if available and requested:
-
-#if optional_CPP17_OR_GREATER && defined(__has_include )
-# if __has_include( <optional> )
-# define optional_HAVE_STD_OPTIONAL 1
-# else
-# define optional_HAVE_STD_OPTIONAL 0
-# endif
-#else
-# define optional_HAVE_STD_OPTIONAL 0
-#endif
-
-#define optional_USES_STD_OPTIONAL ( (optional_CONFIG_SELECT_OPTIONAL == optional_OPTIONAL_STD) || ((optional_CONFIG_SELECT_OPTIONAL == optional_OPTIONAL_DEFAULT) && optional_HAVE_STD_OPTIONAL) )
-
-//
-// in_place: code duplicated in any-lite, expected-lite, optional-lite, value-ptr-lite, variant-lite:
-//
-
-#ifndef nonstd_lite_HAVE_IN_PLACE_TYPES
-#define nonstd_lite_HAVE_IN_PLACE_TYPES 1
-
-// C++17 std::in_place in <utility>:
-
-#if optional_CPP17_OR_GREATER
-
-#include <utility>
-
-namespace nonstd {
-
-using std::in_place;
-using std::in_place_type;
-using std::in_place_index;
-using std::in_place_t;
-using std::in_place_type_t;
-using std::in_place_index_t;
-
-#define nonstd_lite_in_place_t( T) std::in_place_t
-#define nonstd_lite_in_place_type_t( T) std::in_place_type_t<T>
-#define nonstd_lite_in_place_index_t(K) std::in_place_index_t<K>
-
-#define nonstd_lite_in_place( T) std::in_place_t{}
-#define nonstd_lite_in_place_type( T) std::in_place_type_t<T>{}
-#define nonstd_lite_in_place_index(K) std::in_place_index_t<K>{}
-
-} // namespace nonstd
-
-#else // optional_CPP17_OR_GREATER
-
-#include <cstddef>
-
-namespace nonstd {
-namespace detail {
-
-template< class T >
-struct in_place_type_tag {};
-
-template< std::size_t K >
-struct in_place_index_tag {};
-
-} // namespace detail
-
-struct in_place_t {};
-
-template< class T >
-inline in_place_t in_place( detail::in_place_type_tag<T> /*unused*/ = detail::in_place_type_tag<T>() )
-{
- return in_place_t();
-}
-
-template< std::size_t K >
-inline in_place_t in_place( detail::in_place_index_tag<K> /*unused*/ = detail::in_place_index_tag<K>() )
-{
- return in_place_t();
-}
-
-template< class T >
-inline in_place_t in_place_type( detail::in_place_type_tag<T> /*unused*/ = detail::in_place_type_tag<T>() )
-{
- return in_place_t();
-}
-
-template< std::size_t K >
-inline in_place_t in_place_index( detail::in_place_index_tag<K> /*unused*/ = detail::in_place_index_tag<K>() )
-{
- return in_place_t();
-}
-
-// mimic templated typedef:
-
-#define nonstd_lite_in_place_t( T) nonstd::in_place_t(&)( nonstd::detail::in_place_type_tag<T> )
-#define nonstd_lite_in_place_type_t( T) nonstd::in_place_t(&)( nonstd::detail::in_place_type_tag<T> )
-#define nonstd_lite_in_place_index_t(K) nonstd::in_place_t(&)( nonstd::detail::in_place_index_tag<K> )
-
-#define nonstd_lite_in_place( T) nonstd::in_place_type<T>
-#define nonstd_lite_in_place_type( T) nonstd::in_place_type<T>
-#define nonstd_lite_in_place_index(K) nonstd::in_place_index<K>
-
-} // namespace nonstd
-
-#endif // optional_CPP17_OR_GREATER
-#endif // nonstd_lite_HAVE_IN_PLACE_TYPES
-
-//
-// Using std::optional:
-//
-
-#if optional_USES_STD_OPTIONAL
-
-#include <optional>
-
-namespace nonstd {
-
- using std::optional;
- using std::bad_optional_access;
- using std::hash;
-
- using std::nullopt;
- using std::nullopt_t;
-
- using std::operator==;
- using std::operator!=;
- using std::operator<;
- using std::operator<=;
- using std::operator>;
- using std::operator>=;
- using std::make_optional;
- using std::swap;
-}
-
-#else // optional_USES_STD_OPTIONAL
-
-#include <cassert>
-#include <utility>
-
-// optional-lite alignment configuration:
-
-#ifndef optional_CONFIG_MAX_ALIGN_HACK
-# define optional_CONFIG_MAX_ALIGN_HACK 0
-#endif
-
-#ifndef optional_CONFIG_ALIGN_AS
-// no default, used in #if defined()
-#endif
-
-#ifndef optional_CONFIG_ALIGN_AS_FALLBACK
-# define optional_CONFIG_ALIGN_AS_FALLBACK double
-#endif
-
-// Compiler warning suppression:
-
-#if defined(__clang__)
-# pragma clang diagnostic push
-# pragma clang diagnostic ignored "-Wundef"
-#elif defined(__GNUC__)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wundef"
-#elif defined(_MSC_VER )
-# pragma warning( push )
-#endif
-
-// half-open range [lo..hi):
-#define optional_BETWEEN( v, lo, hi ) ( (lo) <= (v) && (v) < (hi) )
-
-// Compiler versions:
-//
-// MSVC++ 6.0 _MSC_VER == 1200 optional_COMPILER_MSVC_VERSION == 60 (Visual Studio 6.0)
-// MSVC++ 7.0 _MSC_VER == 1300 optional_COMPILER_MSVC_VERSION == 70 (Visual Studio .NET 2002)
-// MSVC++ 7.1 _MSC_VER == 1310 optional_COMPILER_MSVC_VERSION == 71 (Visual Studio .NET 2003)
-// MSVC++ 8.0 _MSC_VER == 1400 optional_COMPILER_MSVC_VERSION == 80 (Visual Studio 2005)
-// MSVC++ 9.0 _MSC_VER == 1500 optional_COMPILER_MSVC_VERSION == 90 (Visual Studio 2008)
-// MSVC++ 10.0 _MSC_VER == 1600 optional_COMPILER_MSVC_VERSION == 100 (Visual Studio 2010)
-// MSVC++ 11.0 _MSC_VER == 1700 optional_COMPILER_MSVC_VERSION == 110 (Visual Studio 2012)
-// MSVC++ 12.0 _MSC_VER == 1800 optional_COMPILER_MSVC_VERSION == 120 (Visual Studio 2013)
-// MSVC++ 14.0 _MSC_VER == 1900 optional_COMPILER_MSVC_VERSION == 140 (Visual Studio 2015)
-// MSVC++ 14.1 _MSC_VER >= 1910 optional_COMPILER_MSVC_VERSION == 141 (Visual Studio 2017)
-// MSVC++ 14.2 _MSC_VER >= 1920 optional_COMPILER_MSVC_VERSION == 142 (Visual Studio 2019)
-
-#if defined(_MSC_VER ) && !defined(__clang__)
-# define optional_COMPILER_MSVC_VER (_MSC_VER )
-# define optional_COMPILER_MSVC_VERSION (_MSC_VER / 10 - 10 * ( 5 + (_MSC_VER < 1900 ) ) )
-#else
-# define optional_COMPILER_MSVC_VER 0
-# define optional_COMPILER_MSVC_VERSION 0
-#endif
-
-#define optional_COMPILER_VERSION( major, minor, patch ) ( 10 * (10 * (major) + (minor) ) + (patch) )
-
-#if defined(__GNUC__) && !defined(__clang__)
-# define optional_COMPILER_GNUC_VERSION optional_COMPILER_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
-#else
-# define optional_COMPILER_GNUC_VERSION 0
-#endif
-
-#if defined(__clang__)
-# define optional_COMPILER_CLANG_VERSION optional_COMPILER_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__)
-#else
-# define optional_COMPILER_CLANG_VERSION 0
-#endif
-
-#if optional_BETWEEN(optional_COMPILER_MSVC_VERSION, 70, 140 )
-# pragma warning( disable: 4345 ) // initialization behavior changed
-#endif
-
-#if optional_BETWEEN(optional_COMPILER_MSVC_VERSION, 70, 150 )
-# pragma warning( disable: 4814 ) // in C++14 'constexpr' will not imply 'const'
-#endif
-
-// Presence of language and library features:
-
-#define optional_HAVE(FEATURE) ( optional_HAVE_##FEATURE )
-
-#ifdef _HAS_CPP0X
-# define optional_HAS_CPP0X _HAS_CPP0X
-#else
-# define optional_HAS_CPP0X 0
-#endif
-
-// Unless defined otherwise below, consider VC14 as C++11 for optional-lite:
-
-#if optional_COMPILER_MSVC_VER >= 1900
-# undef optional_CPP11_OR_GREATER
-# define optional_CPP11_OR_GREATER 1
-#endif
-
-#define optional_CPP11_90 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1500)
-#define optional_CPP11_100 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1600)
-#define optional_CPP11_110 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1700)
-#define optional_CPP11_120 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1800)
-#define optional_CPP11_140 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1900)
-#define optional_CPP11_141 (optional_CPP11_OR_GREATER_ || optional_COMPILER_MSVC_VER >= 1910)
-
-#define optional_CPP14_000 (optional_CPP14_OR_GREATER)
-#define optional_CPP17_000 (optional_CPP17_OR_GREATER)
-
-// clang >= 2.9, gcc >= 4.9, msvc >= vc14.0/1900 (vs15):
-#define optional_CPP11_140_C290_G490 ((optional_CPP11_OR_GREATER_ && (optional_COMPILER_CLANG_VERSION >= 290 || optional_COMPILER_GNUC_VERSION >= 490)) || (optional_COMPILER_MSVC_VER >= 1900))
-
-// clang >= 3.5, msvc >= vc11 (vs12):
-#define optional_CPP11_110_C350 ( optional_CPP11_110 && !optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1, 350 ) )
-
-// clang >= 3.5, gcc >= 5.0, msvc >= vc11 (vs12):
-#define optional_CPP11_110_C350_G500 \
- ( optional_CPP11_110 && \
- !( optional_BETWEEN( optional_COMPILER_CLANG_VERSION, 1, 350 ) \
- || optional_BETWEEN( optional_COMPILER_GNUC_VERSION , 1, 500 ) ) )
-
-// Presence of C++11 language features:
-
-#define optional_HAVE_CONSTEXPR_11 optional_CPP11_140
-#define optional_HAVE_IS_DEFAULT optional_CPP11_140
-#define optional_HAVE_NOEXCEPT optional_CPP11_140
-#define optional_HAVE_NULLPTR optional_CPP11_100
-#define optional_HAVE_REF_QUALIFIER optional_CPP11_140_C290_G490
-#define optional_HAVE_STATIC_ASSERT optional_CPP11_110
-#define optional_HAVE_INITIALIZER_LIST optional_CPP11_140
-
-// Presence of C++14 language features:
-
-#define optional_HAVE_CONSTEXPR_14 optional_CPP14_000
-
-// Presence of C++17 language features:
-
-#define optional_HAVE_NODISCARD optional_CPP17_000
-
-// Presence of C++ library features:
-
-#define optional_HAVE_CONDITIONAL optional_CPP11_120
-#define optional_HAVE_REMOVE_CV optional_CPP11_120
-#define optional_HAVE_TYPE_TRAITS optional_CPP11_90
-
-#define optional_HAVE_TR1_TYPE_TRAITS (!! optional_COMPILER_GNUC_VERSION )
-#define optional_HAVE_TR1_ADD_POINTER (!! optional_COMPILER_GNUC_VERSION )
-
-#define optional_HAVE_IS_ASSIGNABLE optional_CPP11_110_C350
-#define optional_HAVE_IS_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350
-#define optional_HAVE_IS_NOTHROW_MOVE_ASSIGNABLE optional_CPP11_110_C350
-#define optional_HAVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350
-#define optional_HAVE_IS_TRIVIALLY_COPY_CONSTRUCTIBLE optional_CPP11_110_C350_G500
-#define optional_HAVE_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE optional_CPP11_110_C350_G500
-
-// C++ feature usage:
-
-#if optional_HAVE( CONSTEXPR_11 )
-# define optional_constexpr constexpr
-#else
-# define optional_constexpr /*constexpr*/
-#endif
-
-#if optional_HAVE( IS_DEFAULT )
-# define optional_is_default = default;
-#else
-# define optional_is_default {}
-#endif
-
-#if optional_HAVE( CONSTEXPR_14 )
-# define optional_constexpr14 constexpr
-#else
-# define optional_constexpr14 /*constexpr*/
-#endif
-
-#if optional_HAVE( NODISCARD )
-# define optional_nodiscard [[nodiscard]]
-#else
-# define optional_nodiscard /*[[nodiscard]]*/
-#endif
-
-#if optional_HAVE( NOEXCEPT )
-# define optional_noexcept noexcept
-#else
-# define optional_noexcept /*noexcept*/
-#endif
-
-#if optional_HAVE( NULLPTR )
-# define optional_nullptr nullptr
-#else
-# define optional_nullptr NULL
-#endif
-
-#if optional_HAVE( REF_QUALIFIER )
-// NOLINTNEXTLINE( bugprone-macro-parentheses )
-# define optional_ref_qual &
-# define optional_refref_qual &&
-#else
-# define optional_ref_qual /*&*/
-# define optional_refref_qual /*&&*/
-#endif
-
-#if optional_HAVE( STATIC_ASSERT )
-# define optional_static_assert(expr, text) static_assert(expr, text);
-#else
-# define optional_static_assert(expr, text) /*static_assert(expr, text);*/
-#endif
-
-// additional includes:
-
-#if optional_CONFIG_NO_EXCEPTIONS
-// already included: <cassert>
-#else
-# include <stdexcept>
-#endif
-
-#if optional_CPP11_OR_GREATER
-# include <functional>
-#endif
-
-#if optional_HAVE( INITIALIZER_LIST )
-# include <initializer_list>
-#endif
-
-#if optional_HAVE( TYPE_TRAITS )
-# include <type_traits>
-#elif optional_HAVE( TR1_TYPE_TRAITS )
-# include <tr1/type_traits>
-#endif
-
-// Method enabling
-
-#if optional_CPP11_OR_GREATER
-
-#define optional_REQUIRES_0(...) \
- template< bool B = (__VA_ARGS__), typename std::enable_if<B, int>::type = 0 >
-
-#define optional_REQUIRES_T(...) \
- , typename std::enable_if< (__VA_ARGS__), int >::type = 0
-
-#define optional_REQUIRES_R(R, ...) \
- typename std::enable_if< (__VA_ARGS__), R>::type
-
-#define optional_REQUIRES_A(...) \
- , typename std::enable_if< (__VA_ARGS__), void*>::type = nullptr
-
-#endif
-
-//
-// optional:
-//
-
-namespace nonstd { namespace optional_lite {
-
-namespace std11 {
-
-template< class T, T v > struct integral_constant { enum { value = v }; };
-template< bool B > struct bool_constant : integral_constant<bool, B>{};
-
-typedef bool_constant< true > true_type;
-typedef bool_constant< false > false_type;
-
-#if optional_CPP11_OR_GREATER
- using std::move;
-#else
- template< typename T > T & move( T & t ) { return t; }
-#endif
-
-#if optional_HAVE( CONDITIONAL )
- using std::conditional;
-#else
- template< bool B, typename T, typename F > struct conditional { typedef T type; };
- template< typename T, typename F > struct conditional<false, T, F> { typedef F type; };
-#endif // optional_HAVE_CONDITIONAL
-
-#if optional_HAVE( IS_ASSIGNABLE )
- using std::is_assignable;
-#else
- template< class T, class U > struct is_assignable : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_MOVE_CONSTRUCTIBLE )
- using std::is_move_constructible;
-#else
- template< class T > struct is_move_constructible : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_NOTHROW_MOVE_ASSIGNABLE )
- using std::is_nothrow_move_assignable;
-#else
- template< class T > struct is_nothrow_move_assignable : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_NOTHROW_MOVE_CONSTRUCTIBLE )
- using std::is_nothrow_move_constructible;
-#else
- template< class T > struct is_nothrow_move_constructible : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_TRIVIALLY_COPY_CONSTRUCTIBLE )
- using std::is_trivially_copy_constructible;
-#else
- template< class T > struct is_trivially_copy_constructible : std11::true_type{};
-#endif
-
-#if optional_HAVE( IS_TRIVIALLY_MOVE_CONSTRUCTIBLE )
- using std::is_trivially_move_constructible;
-#else
- template< class T > struct is_trivially_move_constructible : std11::true_type{};
-#endif
-
-} // namespace std11
-
-#if optional_CPP11_OR_GREATER
-
-/// type traits C++17:
-
-namespace std17 {
-
-#if optional_CPP17_OR_GREATER
-
-using std::is_swappable;
-using std::is_nothrow_swappable;
-
-#elif optional_CPP11_OR_GREATER
-
-namespace detail {
-
-using std::swap;
-
-struct is_swappable
-{
- template< typename T, typename = decltype( swap( std::declval<T&>(), std::declval<T&>() ) ) >
- static std11::true_type test( int /*unused*/ );
-
- template< typename >
- static std11::false_type test(...);
-};
-
-struct is_nothrow_swappable
-{
- // wrap noexcept(expr) in separate function as work-around for VC140 (VS2015):
-
- template< typename T >
- static constexpr bool satisfies()
- {
- return noexcept( swap( std::declval<T&>(), std::declval<T&>() ) );
- }
-
- template< typename T >
- static auto test( int /*unused*/ ) -> std11::integral_constant<bool, satisfies<T>()>{}
-
- template< typename >
- static auto test(...) -> std11::false_type;
-};
-
-} // namespace detail
-
-// is [nothow] swappable:
-
-template< typename T >
-struct is_swappable : decltype( detail::is_swappable::test<T>(0) ){};
-
-template< typename T >
-struct is_nothrow_swappable : decltype( detail::is_nothrow_swappable::test<T>(0) ){};
-
-#endif // optional_CPP17_OR_GREATER
-
-} // namespace std17
-
-/// type traits C++20:
-
-namespace std20 {
-
-template< typename T >
-struct remove_cvref
-{
- typedef typename std::remove_cv< typename std::remove_reference<T>::type >::type type;
-};
-
-} // namespace std20
-
-#endif // optional_CPP11_OR_GREATER
-
-/// class optional
-
-template< typename T >
-class optional;
-
-namespace detail {
-
-// C++11 emulation:
-
-struct nulltype{};
-
-template< typename Head, typename Tail >
-struct typelist
-{
- typedef Head head;
- typedef Tail tail;
-};
-
-#if optional_CONFIG_MAX_ALIGN_HACK
-
-// Max align, use most restricted type for alignment:
-
-#define optional_UNIQUE( name ) optional_UNIQUE2( name, __LINE__ )
-#define optional_UNIQUE2( name, line ) optional_UNIQUE3( name, line )
-#define optional_UNIQUE3( name, line ) name ## line
-
-#define optional_ALIGN_TYPE( type ) \
- type optional_UNIQUE( _t ); struct_t< type > optional_UNIQUE( _st )
-
-template< typename T >
-struct struct_t { T _; };
-
-union max_align_t
-{
- optional_ALIGN_TYPE( char );
- optional_ALIGN_TYPE( short int );
- optional_ALIGN_TYPE( int );
- optional_ALIGN_TYPE( long int );
- optional_ALIGN_TYPE( float );
- optional_ALIGN_TYPE( double );
- optional_ALIGN_TYPE( long double );
- optional_ALIGN_TYPE( char * );
- optional_ALIGN_TYPE( short int * );
- optional_ALIGN_TYPE( int * );
- optional_ALIGN_TYPE( long int * );
- optional_ALIGN_TYPE( float * );
- optional_ALIGN_TYPE( double * );
- optional_ALIGN_TYPE( long double * );
- optional_ALIGN_TYPE( void * );
-
-#ifdef HAVE_LONG_LONG
- optional_ALIGN_TYPE( long long );
-#endif
-
- struct Unknown;
-
- Unknown ( * optional_UNIQUE(_) )( Unknown );
- Unknown * Unknown::* optional_UNIQUE(_);
- Unknown ( Unknown::* optional_UNIQUE(_) )( Unknown );
-
- struct_t< Unknown ( * )( Unknown) > optional_UNIQUE(_);
- struct_t< Unknown * Unknown::* > optional_UNIQUE(_);
- struct_t< Unknown ( Unknown::* )(Unknown) > optional_UNIQUE(_);
-};
-
-#undef optional_UNIQUE
-#undef optional_UNIQUE2
-#undef optional_UNIQUE3
-
-#undef optional_ALIGN_TYPE
-
-#elif defined( optional_CONFIG_ALIGN_AS ) // optional_CONFIG_MAX_ALIGN_HACK
-
-// Use user-specified type for alignment:
-
-#define optional_ALIGN_AS( unused ) \
- optional_CONFIG_ALIGN_AS
-
-#else // optional_CONFIG_MAX_ALIGN_HACK
-
-// Determine POD type to use for alignment:
-
-#define optional_ALIGN_AS( to_align ) \
- typename type_of_size< alignment_types, alignment_of< to_align >::value >::type
-
-template< typename T >
-struct alignment_of;
-
-template< typename T >
-struct alignment_of_hack
-{
- char c;
- T t;
- alignment_of_hack();
-};
-
-template< size_t A, size_t S >
-struct alignment_logic
-{
- enum { value = A < S ? A : S };
-};
-
-template< typename T >
-struct alignment_of
-{
- enum { value = alignment_logic<
- sizeof( alignment_of_hack<T> ) - sizeof(T), sizeof(T) >::value };
-};
-
-template< typename List, size_t N >
-struct type_of_size
-{
- typedef typename std11::conditional<
- N == sizeof( typename List::head ),
- typename List::head,
- typename type_of_size<typename List::tail, N >::type >::type type;
-};
-
-template< size_t N >
-struct type_of_size< nulltype, N >
-{
- typedef optional_CONFIG_ALIGN_AS_FALLBACK type;
-};
-
-template< typename T>
-struct struct_t { T _; };
-
-#define optional_ALIGN_TYPE( type ) \
- typelist< type , typelist< struct_t< type >
-
-struct Unknown;
-
-typedef
- optional_ALIGN_TYPE( char ),
- optional_ALIGN_TYPE( short ),
- optional_ALIGN_TYPE( int ),
- optional_ALIGN_TYPE( long ),
- optional_ALIGN_TYPE( float ),
- optional_ALIGN_TYPE( double ),
- optional_ALIGN_TYPE( long double ),
-
- optional_ALIGN_TYPE( char *),
- optional_ALIGN_TYPE( short * ),
- optional_ALIGN_TYPE( int * ),
- optional_ALIGN_TYPE( long * ),
- optional_ALIGN_TYPE( float * ),
- optional_ALIGN_TYPE( double * ),
- optional_ALIGN_TYPE( long double * ),
-
- optional_ALIGN_TYPE( Unknown ( * )( Unknown ) ),
- optional_ALIGN_TYPE( Unknown * Unknown::* ),
- optional_ALIGN_TYPE( Unknown ( Unknown::* )( Unknown ) ),
-
- nulltype
- > > > > > > > > > > > > > >
- > > > > > > > > > > > > > >
- > > > > > >
- alignment_types;
-
-#undef optional_ALIGN_TYPE
-
-#endif // optional_CONFIG_MAX_ALIGN_HACK
-
-/// C++03 constructed union to hold value.
-
-template< typename T >
-union storage_t
-{
-//private:
-// template< typename > friend class optional;
-
- typedef T value_type;
-
- storage_t() optional_is_default
-
- explicit storage_t( value_type const & v )
- {
- construct_value( v );
- }
-
- void construct_value( value_type const & v )
- {
- ::new( value_ptr() ) value_type( v );
- }
-
-#if optional_CPP11_OR_GREATER
-
- explicit storage_t( value_type && v )
- {
- construct_value( std::move( v ) );
- }
-
- void construct_value( value_type && v )
- {
- ::new( value_ptr() ) value_type( std::move( v ) );
- }
-
- template< class... Args >
- storage_t( nonstd_lite_in_place_t(T), Args&&... args )
- {
- emplace( std::forward<Args>(args)... );
- }
-
- template< class... Args >
- void emplace( Args&&... args )
- {
- ::new( value_ptr() ) value_type( std::forward<Args>(args)... );
- }
-
- template< class U, class... Args >
- void emplace( std::initializer_list<U> il, Args&&... args )
- {
- ::new( value_ptr() ) value_type( il, std::forward<Args>(args)... );
- }
-
-#endif
-
- void destruct_value()
- {
- value_ptr()->~T();
- }
-
- optional_nodiscard value_type const * value_ptr() const
- {
- return as<value_type>();
- }
-
- value_type * value_ptr()
- {
- return as<value_type>();
- }
-
- optional_nodiscard value_type const & value() const optional_ref_qual
- {
- return * value_ptr();
- }
-
- value_type & value() optional_ref_qual
- {
- return * value_ptr();
- }
-
-#if optional_HAVE( REF_QUALIFIER )
-
- optional_nodiscard value_type const && value() const optional_refref_qual
- {
- return std::move( value() );
- }
-
- value_type && value() optional_refref_qual
- {
- return std::move( value() );
- }
-
-#endif
-
-#if optional_CPP11_OR_GREATER
-
- using aligned_storage_t = typename std::aligned_storage< sizeof(value_type), alignof(value_type) >::type;
- aligned_storage_t data;
-
-#elif optional_CONFIG_MAX_ALIGN_HACK
-
- typedef struct { unsigned char data[ sizeof(value_type) ]; } aligned_storage_t;
-
- max_align_t hack;
- aligned_storage_t data;
-
-#else
- typedef optional_ALIGN_AS(value_type) align_as_type;
-
- typedef struct { align_as_type data[ 1 + ( sizeof(value_type) - 1 ) / sizeof(align_as_type) ]; } aligned_storage_t;
- aligned_storage_t data;
-
-# undef optional_ALIGN_AS
-
-#endif // optional_CONFIG_MAX_ALIGN_HACK
-
- optional_nodiscard void * ptr() optional_noexcept
- {
- return &data;
- }
-
- optional_nodiscard void const * ptr() const optional_noexcept
- {
- return &data;
- }
-
- template <typename U>
- optional_nodiscard U * as()
- {
- return reinterpret_cast<U*>( ptr() );
- }
-
- template <typename U>
- optional_nodiscard U const * as() const
- {
- return reinterpret_cast<U const *>( ptr() );
- }
-};
-
-} // namespace detail
-
-/// disengaged state tag
-
-struct nullopt_t
-{
- struct init{};
- explicit optional_constexpr nullopt_t( init /*unused*/ ) optional_noexcept {}
-};
-
-#if optional_HAVE( CONSTEXPR_11 )
-constexpr nullopt_t nullopt{ nullopt_t::init{} };
-#else
-// extra parenthesis to prevent the most vexing parse:
-const nullopt_t nullopt(( nullopt_t::init() ));
-#endif
-
-/// optional access error
-
-#if ! optional_CONFIG_NO_EXCEPTIONS
-
-class bad_optional_access : public std::logic_error
-{
-public:
- explicit bad_optional_access()
- : logic_error( "bad optional access" ) {}
-};
-
-#endif //optional_CONFIG_NO_EXCEPTIONS
-
-/// optional
-
-template< typename T>
-class optional
-{
- optional_static_assert(( !std::is_same<typename std::remove_cv<T>::type, nullopt_t>::value ),
- "T in optional<T> must not be of type 'nullopt_t'.")
-
- optional_static_assert(( !std::is_same<typename std::remove_cv<T>::type, in_place_t>::value ),
- "T in optional<T> must not be of type 'in_place_t'.")
-
- optional_static_assert(( std::is_object<T>::value && std::is_destructible<T>::value && !std::is_array<T>::value ),
- "T in optional<T> must meet the Cpp17Destructible requirements.")
-
-private:
- template< typename > friend class optional;
-
- typedef void (optional::*safe_bool)() const;
-
-public:
- typedef T value_type;
-
- // x.x.3.1, constructors
-
- // 1a - default construct
- optional_constexpr optional() optional_noexcept
- : has_value_( false )
- , contained()
- {}
-
- // 1b - construct explicitly empty
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- optional_constexpr optional( nullopt_t /*unused*/ ) optional_noexcept
- : has_value_( false )
- , contained()
- {}
-
- // 2 - copy-construct
-#if optional_CPP11_OR_GREATER
- // template< typename U = T
- // optional_REQUIRES_T(
- // std::is_copy_constructible<U>::value
- // || std11::is_trivially_copy_constructible<U>::value
- // )
- // >
-#endif
- optional_constexpr14 optional( optional const & other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( other.contained.value() );
- }
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 3 (C++11) - move-construct from optional
- template< typename U = T
- optional_REQUIRES_T(
- std11::is_move_constructible<U>::value
- || std11::is_trivially_move_constructible<U>::value
- )
- >
- optional_constexpr14 optional( optional && other )
- // NOLINTNEXTLINE( performance-noexcept-move-constructor )
- noexcept( std11::is_nothrow_move_constructible<T>::value )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( std::move( other.contained.value() ) );
- }
- }
-
- // 4a (C++11) - explicit converting copy-construct from optional
- template< typename U
- optional_REQUIRES_T(
- std::is_constructible<T, U const &>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std::is_convertible< U const & , T>::value /*=> explicit */
- )
- >
- explicit optional( optional<U> const & other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( T{ other.contained.value() } );
- }
- }
-#endif // optional_CPP11_OR_GREATER
-
- // 4b (C++98 and later) - non-explicit converting copy-construct from optional
- template< typename U
-#if optional_CPP11_OR_GREATER
- optional_REQUIRES_T(
- std::is_constructible<T, U const &>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && std::is_convertible< U const & , T>::value /*=> non-explicit */
- )
-#endif // optional_CPP11_OR_GREATER
- >
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- /*non-explicit*/ optional( optional<U> const & other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( other.contained.value() );
- }
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 5a (C++11) - explicit converting move-construct from optional
- template< typename U
- optional_REQUIRES_T(
- std::is_constructible<T, U &&>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std::is_convertible< U &&, T>::value /*=> explicit */
- )
- >
- explicit optional( optional<U> && other
- )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( T{ std::move( other.contained.value() ) } );
- }
- }
-
- // 5a (C++11) - non-explicit converting move-construct from optional
- template< typename U
- optional_REQUIRES_T(
- std::is_constructible<T, U &&>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && std::is_convertible< U &&, T>::value /*=> non-explicit */
- )
- >
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- /*non-explicit*/ optional( optional<U> && other )
- : has_value_( other.has_value() )
- {
- if ( other.has_value() )
- {
- contained.construct_value( std::move( other.contained.value() ) );
- }
- }
-
- // 6 (C++11) - in-place construct
- template< typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, Args&&...>::value
- )
- >
- optional_constexpr explicit optional( nonstd_lite_in_place_t(T), Args&&... args )
- : has_value_( true )
- , contained( in_place, std::forward<Args>(args)... )
- {}
-
- // 7 (C++11) - in-place construct, initializer-list
- template< typename U, typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value
- )
- >
- optional_constexpr explicit optional( nonstd_lite_in_place_t(T), std::initializer_list<U> il, Args&&... args )
- : has_value_( true )
- , contained( T( il, std::forward<Args>(args)...) )
- {}
-
- // 8a (C++11) - explicit move construct from value
- template< typename U = T
- optional_REQUIRES_T(
- std::is_constructible<T, U&&>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, nonstd_lite_in_place_t(U)>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, optional<T>>::value
- && !std::is_convertible<U&&, T>::value /*=> explicit */
- )
- >
- optional_constexpr explicit optional( U && value )
- : has_value_( true )
- , contained( nonstd_lite_in_place(T), std::forward<U>( value ) )
- {}
-
- // 8b (C++11) - non-explicit move construct from value
- template< typename U = T
- optional_REQUIRES_T(
- std::is_constructible<T, U&&>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, nonstd_lite_in_place_t(U)>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, optional<T>>::value
- && std::is_convertible<U&&, T>::value /*=> non-explicit */
- )
- >
- // NOLINTNEXTLINE( google-explicit-constructor, hicpp-explicit-conversions )
- optional_constexpr /*non-explicit*/ optional( U && value )
- : has_value_( true )
- , contained( nonstd_lite_in_place(T), std::forward<U>( value ) )
- {}
-
-#else // optional_CPP11_OR_GREATER
-
- // 8 (C++98)
- optional( value_type const & value )
- : has_value_( true )
- , contained( value )
- {}
-
-#endif // optional_CPP11_OR_GREATER
-
- // x.x.3.2, destructor
-
- ~optional()
- {
- if ( has_value() )
- {
- contained.destruct_value();
- }
- }
-
- // x.x.3.3, assignment
-
- // 1 (C++98and later) - assign explicitly empty
- optional & operator=( nullopt_t /*unused*/) optional_noexcept
- {
- reset();
- return *this;
- }
-
- // 2 (C++98and later) - copy-assign from optional
-#if optional_CPP11_OR_GREATER
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional &,
- true
-// std::is_copy_constructible<T>::value
-// && std::is_copy_assignable<T>::value
- )
- operator=( optional const & other )
- noexcept(
- std11::is_nothrow_move_assignable<T>::value
- && std11::is_nothrow_move_constructible<T>::value
- )
-#else
- optional & operator=( optional const & other )
-#endif
- {
- if ( (has_value() == true ) && (other.has_value() == false) ) { reset(); }
- else if ( (has_value() == false) && (other.has_value() == true ) ) { initialize( *other ); }
- else if ( (has_value() == true ) && (other.has_value() == true ) ) { contained.value() = *other; }
- return *this;
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 3 (C++11) - move-assign from optional
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional &,
- true
-// std11::is_move_constructible<T>::value
-// && std::is_move_assignable<T>::value
- )
- operator=( optional && other ) noexcept
- {
- if ( (has_value() == true ) && (other.has_value() == false) ) { reset(); }
- else if ( (has_value() == false) && (other.has_value() == true ) ) { initialize( std::move( *other ) ); }
- else if ( (has_value() == true ) && (other.has_value() == true ) ) { contained.value() = std::move( *other ); }
- return *this;
- }
-
- // 4 (C++11) - move-assign from value
- template< typename U = T >
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional &,
- std::is_constructible<T , U>::value
- && std11::is_assignable<T&, U>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, nonstd_lite_in_place_t(U)>::value
- && !std::is_same<typename std20::remove_cvref<U>::type, optional<T>>::value
- && !(std::is_scalar<T>::value && std::is_same<T, typename std::decay<U>::type>::value)
- )
- operator=( U && value )
- {
- if ( has_value() )
- {
- contained.value() = std::forward<U>( value );
- }
- else
- {
- initialize( T( std::forward<U>( value ) ) );
- }
- return *this;
- }
-
-#else // optional_CPP11_OR_GREATER
-
- // 4 (C++98) - copy-assign from value
- template< typename U /*= T*/ >
- optional & operator=( U const & value )
- {
- if ( has_value() ) contained.value() = value;
- else initialize( T( value ) );
- return *this;
- }
-
-#endif // optional_CPP11_OR_GREATER
-
- // 5 (C++98 and later) - converting copy-assign from optional
- template< typename U >
-#if optional_CPP11_OR_GREATER
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional&,
- std::is_constructible< T , U const &>::value
- && std11::is_assignable< T&, U const &>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std11::is_assignable< T&, optional<U> & >::value
- && !std11::is_assignable< T&, optional<U> && >::value
- && !std11::is_assignable< T&, optional<U> const & >::value
- && !std11::is_assignable< T&, optional<U> const && >::value
- )
-#else
- optional&
-#endif // optional_CPP11_OR_GREATER
- operator=( optional<U> const & other )
- {
- return *this = optional( other );
- }
-
-#if optional_CPP11_OR_GREATER
-
- // 6 (C++11) - converting move-assign from optional
- template< typename U >
- // NOLINTNEXTLINE( cppcoreguidelines-c-copy-assignment-signature, misc-unconventional-assign-operator )
- optional_REQUIRES_R(
- optional&,
- std::is_constructible< T , U>::value
- && std11::is_assignable< T&, U>::value
- && !std::is_constructible<T, optional<U> & >::value
- && !std::is_constructible<T, optional<U> && >::value
- && !std::is_constructible<T, optional<U> const & >::value
- && !std::is_constructible<T, optional<U> const && >::value
- && !std::is_convertible< optional<U> & , T>::value
- && !std::is_convertible< optional<U> && , T>::value
- && !std::is_convertible< optional<U> const & , T>::value
- && !std::is_convertible< optional<U> const &&, T>::value
- && !std11::is_assignable< T&, optional<U> & >::value
- && !std11::is_assignable< T&, optional<U> && >::value
- && !std11::is_assignable< T&, optional<U> const & >::value
- && !std11::is_assignable< T&, optional<U> const && >::value
- )
- operator=( optional<U> && other )
- {
- return *this = optional( std::move( other ) );
- }
-
- // 7 (C++11) - emplace
- template< typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, Args&&...>::value
- )
- >
- T& emplace( Args&&... args )
- {
- *this = nullopt;
- contained.emplace( std::forward<Args>(args)... );
- has_value_ = true;
- return contained.value();
- }
-
- // 8 (C++11) - emplace, initializer-list
- template< typename U, typename... Args
- optional_REQUIRES_T(
- std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value
- )
- >
- T& emplace( std::initializer_list<U> il, Args&&... args )
- {
- *this = nullopt;
- contained.emplace( il, std::forward<Args>(args)... );
- has_value_ = true;
- return contained.value();
- }
-
-#endif // optional_CPP11_OR_GREATER
-
- // x.x.3.4, swap
-
- void swap( optional & other )
-#if optional_CPP11_OR_GREATER
- noexcept(
- std11::is_nothrow_move_constructible<T>::value
- && std17::is_nothrow_swappable<T>::value
- )
-#endif
- {
- using std::swap;
- if ( (has_value() == true ) && (other.has_value() == true ) ) { swap( **this, *other ); }
- else if ( (has_value() == false) && (other.has_value() == true ) ) { initialize( std11::move(*other) ); other.reset(); }
- else if ( (has_value() == true ) && (other.has_value() == false) ) { other.initialize( std11::move(**this) ); reset(); }
- }
-
- // x.x.3.5, observers
-
- optional_constexpr value_type const * operator ->() const
- {
- return assert( has_value() ),
- contained.value_ptr();
- }
-
- optional_constexpr14 value_type * operator ->()
- {
- return assert( has_value() ),
- contained.value_ptr();
- }
-
- optional_constexpr value_type const & operator *() const optional_ref_qual
- {
- return assert( has_value() ),
- contained.value();
- }
-
- optional_constexpr14 value_type & operator *() optional_ref_qual
- {
- return assert( has_value() ),
- contained.value();
- }
-
-#if optional_HAVE( REF_QUALIFIER )
-
- optional_constexpr value_type const && operator *() const optional_refref_qual
- {
- return std::move( **this );
- }
-
- optional_constexpr14 value_type && operator *() optional_refref_qual
- {
- return std::move( **this );
- }
-
-#endif
-
-#if optional_CPP11_OR_GREATER
- optional_constexpr explicit operator bool() const optional_noexcept
- {
- return has_value();
- }
-#else
- optional_constexpr operator safe_bool() const optional_noexcept
- {
- return has_value() ? &optional::this_type_does_not_support_comparisons : 0;
- }
-#endif
-
- // NOLINTNEXTLINE( modernize-use-nodiscard )
- /*optional_nodiscard*/ optional_constexpr bool has_value() const optional_noexcept
- {
- return has_value_;
- }
-
- // NOLINTNEXTLINE( modernize-use-nodiscard )
- /*optional_nodiscard*/ optional_constexpr14 value_type const & value() const optional_ref_qual
- {
-#if optional_CONFIG_NO_EXCEPTIONS
- assert( has_value() );
-#else
- if ( ! has_value() )
- {
- throw bad_optional_access();
- }
-#endif
- return contained.value();
- }
-
- optional_constexpr14 value_type & value() optional_ref_qual
- {
-#if optional_CONFIG_NO_EXCEPTIONS
- assert( has_value() );
-#else
- if ( ! has_value() )
- {
- throw bad_optional_access();
- }
-#endif
- return contained.value();
- }
-
-#if optional_HAVE( REF_QUALIFIER ) && ( !optional_COMPILER_GNUC_VERSION || optional_COMPILER_GNUC_VERSION >= 490 )
-
- // NOLINTNEXTLINE( modernize-use-nodiscard )
- /*optional_nodiscard*/ optional_constexpr value_type const && value() const optional_refref_qual
- {
- return std::move( value() );
- }
-
- optional_constexpr14 value_type && value() optional_refref_qual
- {
- return std::move( value() );
- }
-
-#endif
-
-#if optional_HAVE( REF_QUALIFIER )
-
- template< typename U >
- optional_constexpr value_type value_or( U && v ) const optional_ref_qual
- {
- return has_value() ? contained.value() : static_cast<T>(std::forward<U>( v ) );
- }
-
- template< typename U >
- optional_constexpr14 value_type value_or( U && v ) optional_refref_qual
- {
-#if optional_COMPILER_CLANG_VERSION
- return has_value() ? /*std::move*/( contained.value() ) : static_cast<T>(std::forward<U>( v ) );
-#else
- return has_value() ? std::move( contained.value() ) : static_cast<T>(std::forward<U>( v ) );
-#endif
- }
-
-#else
-
- template< typename U >
- optional_constexpr value_type value_or( U const & v ) const
- {
- return has_value() ? contained.value() : static_cast<value_type>( v );
- }
-
-#endif // optional_HAVE( REF_QUALIFIER )
-
-#if !optional_CONFIG_NO_EXTENSIONS
-#if optional_HAVE( REF_QUALIFIER )
-
- template< typename F >
- optional_constexpr value_type value_or_eval( F f ) const &
- {
- return has_value() ? contained.value() : f();
- }
-
- template< typename F >
- optional_constexpr14 value_type value_or_eval( F f ) &&
- {
- if ( has_value() )
- {
- return std::move( contained.value() );
- }
- else
- {
- return f();
- }
- }
-
-#else
-
- template< typename F >
- optional_constexpr value_type value_or_eval( F f ) const
- {
- return has_value() ? contained.value() : f();
- }
-
-#endif // optional_HAVE( REF_QUALIFIER )
-#endif // !optional_CONFIG_NO_EXTENSIONS
-
- // x.x.3.6, modifiers
-
- void reset() optional_noexcept
- {
- if ( has_value() )
- {
- contained.destruct_value();
- }
-
- has_value_ = false;
- }
-
-private:
- void this_type_does_not_support_comparisons() const {}
-
- template< typename V >
- void initialize( V const & value )
- {
- assert( ! has_value() );
- contained.construct_value( value );
- has_value_ = true;
- }
-
-#if optional_CPP11_OR_GREATER
- template< typename V >
- void initialize( V && value )
- {
- assert( ! has_value() );
- contained.construct_value( std::move( value ) );
- has_value_ = true;
- }
-
-#endif
-
-private:
- bool has_value_;
- detail::storage_t< value_type > contained;
-
-};
-
-// Relational operators
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator==( optional<T> const & x, optional<U> const & y )
-{
- return bool(x) != bool(y) ? false : !bool( x ) ? true : *x == *y;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator!=( optional<T> const & x, optional<U> const & y )
-{
- return !(x == y);
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<( optional<T> const & x, optional<U> const & y )
-{
- return (!y) ? false : (!x) ? true : *x < *y;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>( optional<T> const & x, optional<U> const & y )
-{
- return (y < x);
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<=( optional<T> const & x, optional<U> const & y )
-{
- return !(y < x);
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>=( optional<T> const & x, optional<U> const & y )
-{
- return !(x < y);
-}
-
-// Comparison with nullopt
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator==( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return (!x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator==( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return (!x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator!=( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator!=( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<( optional<T> const & /*unused*/, nullopt_t /*unused*/ ) optional_noexcept
-{
- return false;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<=( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return (!x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator<=( nullopt_t /*unused*/, optional<T> const & /*unused*/ ) optional_noexcept
-{
- return true;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>( optional<T> const & x, nullopt_t /*unused*/ ) optional_noexcept
-{
- return bool(x);
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>( nullopt_t /*unused*/, optional<T> const & /*unused*/ ) optional_noexcept
-{
- return false;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>=( optional<T> const & /*unused*/, nullopt_t /*unused*/ ) optional_noexcept
-{
- return true;
-}
-
-template< typename T >
-optional_nodiscard optional_constexpr bool operator>=( nullopt_t /*unused*/, optional<T> const & x ) optional_noexcept
-{
- return (!x);
-}
-
-// Comparison with T
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator==( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x == v : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator==( U const & v, optional<T> const & x )
-{
- return bool(x) ? v == *x : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator!=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x != v : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator!=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v != *x : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x < v : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<( U const & v, optional<T> const & x )
-{
- return bool(x) ? v < *x : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x <= v : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator<=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v <= *x : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x > v : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>( U const & v, optional<T> const & x )
-{
- return bool(x) ? v > *x : true;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x >= v : false;
-}
-
-template< typename T, typename U >
-optional_nodiscard optional_constexpr bool operator>=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v >= *x : true;
-}
-
-// Specialized algorithms
-
-template< typename T
-#if optional_CPP11_OR_GREATER
- optional_REQUIRES_T(
- std11::is_move_constructible<T>::value
- && std17::is_swappable<T>::value )
-#endif
->
-void swap( optional<T> & x, optional<T> & y )
-#if optional_CPP11_OR_GREATER
- noexcept( noexcept( x.swap(y) ) )
-#endif
-{
- x.swap( y );
-}
-
-#if optional_CPP11_OR_GREATER
-
-template< typename T >
-optional_constexpr optional< typename std::decay<T>::type > make_optional( T && value )
-{
- return optional< typename std::decay<T>::type >( std::forward<T>( value ) );
-}
-
-template< typename T, typename...Args >
-optional_constexpr optional<T> make_optional( Args&&... args )
-{
- return optional<T>( nonstd_lite_in_place(T), std::forward<Args>(args)...);
-}
-
-template< typename T, typename U, typename... Args >
-optional_constexpr optional<T> make_optional( std::initializer_list<U> il, Args&&... args )
-{
- return optional<T>( nonstd_lite_in_place(T), il, std::forward<Args>(args)...);
-}
-
-#else
-
-template< typename T >
-optional<T> make_optional( T const & value )
-{
- return optional<T>( value );
-}
-
-#endif // optional_CPP11_OR_GREATER
-
-} // namespace optional_lite
-
-using optional_lite::optional;
-using optional_lite::nullopt_t;
-using optional_lite::nullopt;
-
-#if ! optional_CONFIG_NO_EXCEPTIONS
-using optional_lite::bad_optional_access;
-#endif
-
-using optional_lite::make_optional;
-
-} // namespace nonstd
-
-#if optional_CPP11_OR_GREATER
-
-// specialize the std::hash algorithm:
-
-namespace std {
-
-template< class T >
-struct hash< nonstd::optional<T> >
-{
-public:
- std::size_t operator()( nonstd::optional<T> const & v ) const optional_noexcept
- {
- return bool( v ) ? std::hash<T>{}( *v ) : 0;
- }
-};
-
-} //namespace std
-
-#endif // optional_CPP11_OR_GREATER
-
-#if defined(__clang__)
-# pragma clang diagnostic pop
-#elif defined(__GNUC__)
-# pragma GCC diagnostic pop
-#elif defined(_MSC_VER )
-# pragma warning( pop )
-#endif
-
-#endif // optional_USES_STD_OPTIONAL
-
-#endif // NONSTD_OPTIONAL_LITE_HPP
diff --git a/graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp b/graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
index 526dcc8884..8c5beba83e 100644
--- a/graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
+++ b/graphics/asymptote/LspCpp/src/jsonrpc/serializer.cpp
@@ -148,67 +148,67 @@ void Reflect(Writer& visitor, SerializeFormat& value) {
std::string JsonReader::ToString() const
{
- rapidjson::StringBuffer strBuf;
- strBuf.Clear();
- rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);
- m_->Accept(writer);
- std::string strJson = strBuf.GetString();
- return strJson;
+ rapidjson::StringBuffer strBuf;
+ strBuf.Clear();
+ rapidjson::Writer<rapidjson::StringBuffer> writer(strBuf);
+ m_->Accept(writer);
+ std::string strJson = strBuf.GetString();
+ return strJson;
}
void JsonReader::IterMap(std::function<void(const char*, Reader&)> fn)
{
- path_.push_back("0");
- for (auto& entry : m_->GetObject())
- {
- auto saved = m_;
- m_ = &(entry.value);
+ path_.push_back("0");
+ for (auto& entry : m_->GetObject())
+ {
+ auto saved = m_;
+ m_ = &(entry.value);
- fn(entry.name.GetString(), *this);
- m_ = saved;
- }
- path_.pop_back();
+ fn(entry.name.GetString(), *this);
+ m_ = saved;
+ }
+ path_.pop_back();
}
void JsonReader::IterArray(std::function<void(Reader&)> fn)
{
- if (!m_->IsArray())
- throw std::invalid_argument("array");
- // Use "0" to indicate any element for now.
- path_.push_back("0");
- for (auto& entry : m_->GetArray())
- {
- auto saved = m_;
- m_ = &entry;
- fn(*this);
- m_ = saved;
- }
- path_.pop_back();
+ if (!m_->IsArray())
+ throw std::invalid_argument("array");
+ // Use "0" to indicate any element for now.
+ path_.push_back("0");
+ for (auto& entry : m_->GetArray())
+ {
+ auto saved = m_;
+ m_ = &entry;
+ fn(*this);
+ m_ = saved;
+ }
+ path_.pop_back();
}
void JsonReader::DoMember(const char* name, std::function<void(Reader&)> fn)
{
- path_.push_back(name);
- auto it = m_->FindMember(name);
- if (it != m_->MemberEnd())
- {
- auto saved = m_;
- m_ = &it->value;
- fn(*this);
- m_ = saved;
- }
- path_.pop_back();
+ path_.push_back(name);
+ auto it = m_->FindMember(name);
+ if (it != m_->MemberEnd())
+ {
+ auto saved = m_;
+ m_ = &it->value;
+ fn(*this);
+ m_ = saved;
+ }
+ path_.pop_back();
}
std::string JsonReader::GetPath() const
{
- std::string ret;
- for (auto& t : path_)
- {
- ret += '/';
- ret += t;
- }
- ret.pop_back();
- return ret;
+ std::string ret;
+ for (auto& t : path_)
+ {
+ ret += '/';
+ ret += t;
+ }
+ ret.pop_back();
+ return ret;
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/Markup.cpp b/graphics/asymptote/LspCpp/src/lsp/Markup.cpp
index 97860d969d..f22baac95d 100644
--- a/graphics/asymptote/LspCpp/src/lsp/Markup.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/Markup.cpp
@@ -17,7 +17,7 @@
#include <boost/algorithm/string.hpp>
namespace lsp {
-
+
/// hexdigit - Return the hexadecimal character for the
/// given number \p X (which should be less than 16).
inline char hexdigit(unsigned X, bool LowerCase = false) {
@@ -93,7 +93,7 @@ namespace lsp {
inline bool isASCII(std::string_ref S) {
for (char C : S)
{
- if(!isASCII(C))return true;
+ if(!isASCII(C))return true;
}
return true;
}
@@ -465,7 +465,7 @@ bool looksLikeTag(std::string_ref& Contents) {
// a markdown grammar construct.
bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
bool StartsLine) {
-
+
auto RulerLength = [&]() -> /*Length*/ unsigned {
if (!StartsLine || !Before.empty())
return false;
@@ -541,10 +541,10 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
{
return std::all_of(Content.begin(),Content.end(), lsp::isHexDigit);
}
-
+
return std::all_of(Content.begin(), Content.end(), [](char c)
{
- return lsp::isDigit(c);
+ return lsp::isDigit(c);
});
}
return std::all_of(Content.begin(), Content.end(), [](char c)
@@ -633,12 +633,12 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
boost::split(OutFragments, Source, boost::is_any_of(Delimiters));
}
-
+
// Trims the input and concatenates whitespace blocks into a single ` `.
std::string_ref canonicalizeSpaces(const std::string_ref& Input) {
std::vector<std::string_ref> Words;
SplitString(Input, Words);
-
+
return lsp::join(Words, " ");
}
@@ -649,13 +649,13 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
std::ostringstream OS(R);
std::vector<int> v{ 1, 2, 3 };
-
+
// Trim rulers.
Children.erase(std::remove_if(Children.begin(), Children.end(), [](const Block* C)
- {
- return C->isRuler();
- }), Children.end());
-
+ {
+ return C->isRuler();
+ }), Children.end());
+
bool LastBlockWasRuler = true;
for (const auto& C : Children) {
if (C->isRuler() && LastBlockWasRuler)
@@ -685,10 +685,10 @@ bool needsLeadingEscape(char C, std::string_ref Before, std::string_ref After,
void (Block::* renderFunc)(std::ostringstream&) const)
{
std::vector<Block*> temp(children.size(), nullptr);
- for(size_t i = 0 ; i < children.size() ; ++i)
- {
+ for(size_t i = 0 ; i < children.size() ; ++i)
+ {
temp[i]=(children[i].get());
- }
+ }
return renderBlocks(std::move(temp), renderFunc);
}
// Separates two blocks with extra spacing. Note that it might render strangely
@@ -729,7 +729,7 @@ public:
: Contents(std::move(Contents)), Language(std::move(Language)) {}
private:
-
+
std::string_ref Contents;
std::string_ref Language;
};
@@ -939,4 +939,4 @@ private:
Children.emplace_back(std::make_unique<Heading>(Level));
return *static_cast<Paragraph*>(Children.back().get());
}
- }; \ No newline at end of file
+ };
diff --git a/graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp b/graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
index 57adb7e497..02c61e67a5 100644
--- a/graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/ParentProcessWatcher.cpp
@@ -18,89 +18,89 @@ using namespace std;
struct ParentProcessWatcher::ParentProcessWatcherData : std::enable_shared_from_this<ParentProcessWatcherData>
{
- std::unique_ptr<SimpleTimer<boost::posix_time::seconds>> timer;
- lsp::Log& _log;
- std::function<void()> on_exit;
- lsp::ProcessIoService asio_io;
- std::shared_ptr < boost::process::opstream> write_to_service;
- std::shared_ptr< boost::process::ipstream > read_from_service;
- int pid;
- const int _poll_delay_secs /*= 10*/;
- std::string command;
- std::shared_ptr<boost::process::child> c;
+ std::unique_ptr<SimpleTimer<boost::posix_time::seconds>> timer;
+ lsp::Log& _log;
+ std::function<void()> on_exit;
+ lsp::ProcessIoService asio_io;
+ std::shared_ptr < boost::process::opstream> write_to_service;
+ std::shared_ptr< boost::process::ipstream > read_from_service;
+ int pid;
+ const int _poll_delay_secs /*= 10*/;
+ std::string command;
+ std::shared_ptr<boost::process::child> c;
- ParentProcessWatcherData(lsp::Log& log, int _pid,
- const std::function<void()>&& callback, uint32_t poll_delay_secs) :
- _log(log), on_exit(callback), pid(_pid), _poll_delay_secs(poll_delay_secs)
- {
+ ParentProcessWatcherData(lsp::Log& log, int _pid,
+ const std::function<void()>&& callback, uint32_t poll_delay_secs) :
+ _log(log), on_exit(callback), pid(_pid), _poll_delay_secs(poll_delay_secs)
+ {
#ifdef _WIN32
- command = "cmd /c \"tasklist /FI \"PID eq " + std::to_string(pid) + "\" | findstr " +
- std::to_string(pid) + "\"";
+ command = "cmd /c \"tasklist /FI \"PID eq " + std::to_string(pid) + "\" | findstr " +
+ std::to_string(pid) + "\"";
#else
- command = "ps -p " + std::to_string(pid);
+ command = "ps -p " + std::to_string(pid);
#endif
- }
+ }
- void run()
- {
- write_to_service = std::make_shared<boost::process::opstream>();
- read_from_service = std::make_shared<boost::process::ipstream>();
+ void run()
+ {
+ write_to_service = std::make_shared<boost::process::opstream>();
+ read_from_service = std::make_shared<boost::process::ipstream>();
-// const uint32_t POLL_DELAY_SECS = _poll_delay_secs;
- auto self(shared_from_this());
- std::error_code ec;
- namespace bp = boost::process;
- c = std::make_shared<bp::child>(asio_io.getIOService(), command,
- ec,
+// const uint32_t POLL_DELAY_SECS = _poll_delay_secs;
+ auto self(shared_from_this());
+ std::error_code ec;
+ namespace bp = boost::process;
+ c = std::make_shared<bp::child>(asio_io.getIOService(), command,
+ ec,
#ifdef _WIN32
- bp::windows::hide,
+ bp::windows::hide,
#endif
- bp::std_out > *read_from_service,
- bp::std_in < *write_to_service,
- bp::on_exit([self](int exit_code, const std::error_code& ec_in) {
- // the tasklist command should return 0 (parent process exists) or 1 (parent process doesn't exist)
- if (exit_code == 1)//
- {
- if (self->on_exit)
- {
+ bp::std_out > *read_from_service,
+ bp::std_in < *write_to_service,
+ bp::on_exit([self](int exit_code, const std::error_code& ec_in) {
+ // the tasklist command should return 0 (parent process exists) or 1 (parent process doesn't exist)
+ if (exit_code == 1)//
+ {
+ if (self->on_exit)
+ {
- std::thread([=]()
- {
- std::this_thread::sleep_for(std::chrono::seconds(3));
- self->on_exit();
- }).detach();
- }
- }
- else
- {
- if (exit_code > 1)
- {
- self->_log.log(lsp::Log::Level::WARNING, "The tasklist command: '" + self->command + "' returns " + std::to_string(exit_code));
- }
+ std::thread([=]()
+ {
+ std::this_thread::sleep_for(std::chrono::seconds(3));
+ self->on_exit();
+ }).detach();
+ }
+ }
+ else
+ {
+ if (exit_code > 1)
+ {
+ self->_log.log(lsp::Log::Level::WARNING, "The tasklist command: '" + self->command + "' returns " + std::to_string(exit_code));
+ }
- self->timer = std::make_unique<SimpleTimer<boost::posix_time::seconds>>(self->_poll_delay_secs, [=]() {
- self->run();
- });
- }
+ self->timer = std::make_unique<SimpleTimer<boost::posix_time::seconds>>(self->_poll_delay_secs, [=]() {
+ self->run();
+ });
+ }
- }));
- if (ec)
- {
- // fail
- _log.log(lsp::Log::Level::SEVERE, "Start parent process watcher failed.");
- }
- }
+ }));
+ if (ec)
+ {
+ // fail
+ _log.log(lsp::Log::Level::SEVERE, "Start parent process watcher failed.");
+ }
+ }
};
ParentProcessWatcher::ParentProcessWatcher(lsp::Log& log, int pid,
- const std::function<void()>&& callback, uint32_t poll_delay_secs) : d_ptr(new ParentProcessWatcherData(log, pid, std::move(callback), poll_delay_secs))
+ const std::function<void()>&& callback, uint32_t poll_delay_secs) : d_ptr(new ParentProcessWatcherData(log, pid, std::move(callback), poll_delay_secs))
{
- d_ptr->run();
+ d_ptr->run();
}
ParentProcessWatcher::~ParentProcessWatcher()
{
- if (d_ptr->timer)
- d_ptr->timer->Stop();
+ if (d_ptr->timer)
+ d_ptr->timer->Stop();
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp b/graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
index af008e9eb9..c860b555af 100644
--- a/graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/ProtocolJsonHandler.cpp
@@ -73,644 +73,644 @@
void AddStadardResponseJsonRpcMethod(MessageJsonHandler& handler)
{
-
- handler.method2response[td_initialize::request::kMethodInfo] = [](Reader& visitor)
- {
- if(visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_initialize::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_shutdown::response::ReflectReader(visitor);
- };
- handler.method2response[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_codeAction::response::ReflectReader(visitor);
- };
- handler.method2response[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_codeLens::response::ReflectReader(visitor);
- };
- handler.method2response[td_completion::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_completion::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_definition::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_definition::response::ReflectReader(visitor);
- };
- handler.method2response[td_declaration::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_declaration::response::ReflectReader(visitor);
- };
- handler.method2response[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_willSaveWaitUntil::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_highlight::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_highlight::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_links::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_links::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_linkResolve::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_symbol::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_symbol::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_formatting::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_formatting::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_hover::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_hover::response::ReflectReader(visitor);
-
- };
-
- handler.method2response[td_implementation::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_implementation::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_rangeFormatting::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_rangeFormatting::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_references::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_references::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_rename::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_rename::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[td_signatureHelp::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_signatureHelp::response::ReflectReader(visitor);
- };
-
- handler.method2response[td_typeDefinition::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_typeDefinition::response::ReflectReader(visitor);
- };
-
- handler.method2response[wp_executeCommand::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return wp_executeCommand::response::ReflectReader(visitor);
- };
-
- handler.method2response[wp_symbol::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return wp_symbol::response::ReflectReader(visitor);
- };
- handler.method2response[td_typeHierarchy::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_typeHierarchy::response::ReflectReader(visitor);
- };
- handler.method2response[completionItem_resolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return completionItem_resolve::response::ReflectReader(visitor);
- };
-
- handler.method2response[codeLens_resolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return codeLens_resolve::response::ReflectReader(visitor);
-
- };
-
- handler.method2response[td_colorPresentation::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_colorPresentation::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_documentColor::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_documentColor::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_foldingRange::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_foldingRange::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_prepareRename::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_prepareRename::response::ReflectReader(visitor);
-
- };
- handler.method2response[typeHierarchy_resolve::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return typeHierarchy_resolve::response::ReflectReader(visitor);
-
- };
-
- handler.method2response[td_selectionRange::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_selectionRange::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_didRenameFiles::response::ReflectReader(visitor);
-
- };
- handler.method2response[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return td_willRenameFiles::response::ReflectReader(visitor);
-
- };
-
+
+ handler.method2response[td_initialize::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if(visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_initialize::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_shutdown::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_codeAction::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_codeLens::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_completion::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_completion::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_definition::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_definition::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_declaration::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_declaration::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_willSaveWaitUntil::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_highlight::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_highlight::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_links::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_links::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_linkResolve::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_symbol::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_symbol::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_formatting::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_formatting::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_hover::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_hover::response::ReflectReader(visitor);
+
+ };
+
+ handler.method2response[td_implementation::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_implementation::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_rangeFormatting::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_rangeFormatting::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_references::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_references::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_rename::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_rename::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[td_signatureHelp::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_signatureHelp::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[td_typeDefinition::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_typeDefinition::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[wp_executeCommand::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return wp_executeCommand::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[wp_symbol::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return wp_symbol::response::ReflectReader(visitor);
+ };
+ handler.method2response[td_typeHierarchy::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_typeHierarchy::response::ReflectReader(visitor);
+ };
+ handler.method2response[completionItem_resolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return completionItem_resolve::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[codeLens_resolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return codeLens_resolve::response::ReflectReader(visitor);
+
+ };
+
+ handler.method2response[td_colorPresentation::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_colorPresentation::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_documentColor::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_documentColor::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_foldingRange::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_foldingRange::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_prepareRename::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_prepareRename::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[typeHierarchy_resolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return typeHierarchy_resolve::response::ReflectReader(visitor);
+
+ };
+
+ handler.method2response[td_selectionRange::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_selectionRange::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_didRenameFiles::response::ReflectReader(visitor);
+
+ };
+ handler.method2response[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return td_willRenameFiles::response::ReflectReader(visitor);
+
+ };
+
}
void AddJavaExtentionResponseJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2response[java_classFileContents::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_classFileContents::response::ReflectReader(visitor);
- };
- handler.method2response[java_buildWorkspace::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_buildWorkspace::response::ReflectReader(visitor);
- };
- handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_listOverridableMethods::response::ReflectReader(visitor);
- };
- handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_listOverridableMethods::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_checkHashCodeEqualsStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkHashCodeEqualsStatus::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[java_addOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_addOverridableMethods::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_checkConstructorsStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkConstructorsStatus::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[java_checkDelegateMethodsStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkDelegateMethodsStatus::response::ReflectReader(visitor);
- };
- handler.method2response[java_checkToStringStatus::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_checkToStringStatus::response::ReflectReader(visitor);
- };
-
-
- handler.method2response[java_generateAccessors::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateAccessors::response::ReflectReader(visitor);
- };
- handler.method2response[java_generateConstructors::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateConstructors::response::ReflectReader(visitor);
- };
- handler.method2response[java_generateDelegateMethods::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateDelegateMethods::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_generateHashCodeEquals::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateHashCodeEquals::response::ReflectReader(visitor);
- };
- handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateToString::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_generateToString::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_getMoveDestinations::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_getMoveDestinations::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_getRefactorEdit::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_getRefactorEdit::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_move::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_move::response ::ReflectReader(visitor);
- };
-
- handler.method2response[java_organizeImports::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_organizeImports::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_resolveUnimplementedAccessors::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_resolveUnimplementedAccessors::response::ReflectReader(visitor);
- };
-
- handler.method2response[java_searchSymbols::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
-
- return java_searchSymbols::response::ReflectReader(visitor);
- };
-
- handler.method2request[WorkspaceConfiguration::request::kMethodInfo] = [](Reader& visitor)
- {
- return WorkspaceConfiguration::request::ReflectReader(visitor);
- };
- handler.method2request[WorkspaceFolders::request::kMethodInfo] = [](Reader& visitor)
- {
- return WorkspaceFolders::request::ReflectReader(visitor);
- };
-
+ handler.method2response[java_classFileContents::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_classFileContents::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_buildWorkspace::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_buildWorkspace::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_listOverridableMethods::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_listOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_listOverridableMethods::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_checkHashCodeEqualsStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkHashCodeEqualsStatus::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[java_addOverridableMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_addOverridableMethods::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_checkConstructorsStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkConstructorsStatus::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[java_checkDelegateMethodsStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkDelegateMethodsStatus::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_checkToStringStatus::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_checkToStringStatus::response::ReflectReader(visitor);
+ };
+
+
+ handler.method2response[java_generateAccessors::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateAccessors::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_generateConstructors::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateConstructors::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_generateDelegateMethods::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateDelegateMethods::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_generateHashCodeEquals::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateHashCodeEquals::response::ReflectReader(visitor);
+ };
+ handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateToString::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_generateToString::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_generateToString::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_getMoveDestinations::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_getMoveDestinations::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_getRefactorEdit::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_getRefactorEdit::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_move::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_move::response ::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_organizeImports::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_organizeImports::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_resolveUnimplementedAccessors::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_resolveUnimplementedAccessors::response::ReflectReader(visitor);
+ };
+
+ handler.method2response[java_searchSymbols::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+
+ return java_searchSymbols::response::ReflectReader(visitor);
+ };
+
+ handler.method2request[WorkspaceConfiguration::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return WorkspaceConfiguration::request::ReflectReader(visitor);
+ };
+ handler.method2request[WorkspaceFolders::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return WorkspaceFolders::request::ReflectReader(visitor);
+ };
+
}
void AddNotifyJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2notification[Notify_Exit::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_Exit::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_InitializedNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_InitializedNotification::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[java_projectConfigurationUpdate::notify::kMethodInfo] = [](Reader& visitor)
- {
- return java_projectConfigurationUpdate::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentDidChange::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidChange::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentDidClose::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidClose::notify::ReflectReader(visitor);
- };
-
-
- handler.method2notification[Notify_TextDocumentDidOpen::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidOpen::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentDidSave::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentDidSave::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_TextDocumentPublishDiagnostics::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_TextDocumentPublishDiagnostics::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_semanticHighlighting::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_semanticHighlighting::notify::ReflectReader(visitor);
- };
- handler.method2notification[td_willSave::notify::kMethodInfo] = [](Reader& visitor)
- {
- return td_willSave::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_LogMessage::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_LogMessage::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_ShowMessage::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_ShowMessage::notify::ReflectReader(visitor);
- };
- handler.method2notification[Notify_WorkspaceDidChangeWorkspaceFolders::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_WorkspaceDidChangeWorkspaceFolders::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_WorkspaceDidChangeConfiguration::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_WorkspaceDidChangeConfiguration::notify::ReflectReader(visitor);
- };
-
-
- handler.method2notification[Notify_WorkspaceDidChangeWatchedFiles::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_WorkspaceDidChangeWatchedFiles::notify::ReflectReader(visitor);
- };
-
- handler.method2notification[Notify_sendNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return Notify_sendNotification::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_status::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_status::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_actionableNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_actionableNotification::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_progressReport::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_progressReport::notify::ReflectReader(visitor);
- };
- handler.method2notification[lang_eventNotification::notify::kMethodInfo] = [](Reader& visitor)
- {
- return lang_eventNotification::notify::ReflectReader(visitor);
- };
+ handler.method2notification[Notify_Exit::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_Exit::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_InitializedNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_InitializedNotification::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[java_projectConfigurationUpdate::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return java_projectConfigurationUpdate::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentDidChange::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidChange::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentDidClose::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidClose::notify::ReflectReader(visitor);
+ };
+
+
+ handler.method2notification[Notify_TextDocumentDidOpen::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidOpen::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentDidSave::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentDidSave::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_TextDocumentPublishDiagnostics::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_TextDocumentPublishDiagnostics::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_semanticHighlighting::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_semanticHighlighting::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[td_willSave::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return td_willSave::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_LogMessage::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_LogMessage::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_ShowMessage::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_ShowMessage::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[Notify_WorkspaceDidChangeWorkspaceFolders::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_WorkspaceDidChangeWorkspaceFolders::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_WorkspaceDidChangeConfiguration::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_WorkspaceDidChangeConfiguration::notify::ReflectReader(visitor);
+ };
+
+
+ handler.method2notification[Notify_WorkspaceDidChangeWatchedFiles::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_WorkspaceDidChangeWatchedFiles::notify::ReflectReader(visitor);
+ };
+
+ handler.method2notification[Notify_sendNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return Notify_sendNotification::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_status::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_status::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_actionableNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_actionableNotification::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_progressReport::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_progressReport::notify::ReflectReader(visitor);
+ };
+ handler.method2notification[lang_eventNotification::notify::kMethodInfo] = [](Reader& visitor)
+ {
+ return lang_eventNotification::notify::ReflectReader(visitor);
+ };
}
void AddRequstJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2request[Req_ClientRegisterCapability::request::kMethodInfo]= [](Reader& visitor)
- {
+ handler.method2request[Req_ClientRegisterCapability::request::kMethodInfo]= [](Reader& visitor)
+ {
- return Req_ClientRegisterCapability::request::ReflectReader(visitor);
- };
- handler.method2request[Req_ClientUnregisterCapability::request::kMethodInfo] = [](Reader& visitor)
- {
+ return Req_ClientRegisterCapability::request::ReflectReader(visitor);
+ };
+ handler.method2request[Req_ClientUnregisterCapability::request::kMethodInfo] = [](Reader& visitor)
+ {
- return Req_ClientUnregisterCapability::request::ReflectReader(visitor);
- };
+ return Req_ClientUnregisterCapability::request::ReflectReader(visitor);
+ };
}
void AddStandardRequestJsonRpcMethod(MessageJsonHandler& handler)
{
- handler.method2request[td_initialize::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_initialize::request::ReflectReader(visitor);
- };
- handler.method2request[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_shutdown::request::ReflectReader(visitor);
- };
- handler.method2request[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
- {
-
-
- return td_codeAction::request::ReflectReader(visitor);
- };
- handler.method2request[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_codeLens::request::ReflectReader(visitor);
- };
- handler.method2request[td_completion::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_completion::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_definition::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_definition::request::ReflectReader(visitor);
- };
- handler.method2request[td_declaration::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_declaration::request::ReflectReader(visitor);
- };
- handler.method2request[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
- {
- if (visitor.HasMember("error"))
- return Rsp_Error::ReflectReader(visitor);
- return td_willSaveWaitUntil::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_highlight::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_highlight::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_links::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_links::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_linkResolve::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_symbol::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_symbol::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_formatting::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_formatting::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_hover::request::kMethodInfo] = [](Reader& visitor)
- {
- return td_hover::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_implementation::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_implementation::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
-
- return td_didRenameFiles::request::ReflectReader(visitor);
- };
-
- handler.method2request[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
- {
- return td_willRenameFiles::request::ReflectReader(visitor);
- };
+ handler.method2request[td_initialize::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_initialize::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_shutdown::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_shutdown::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_codeAction::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+
+ return td_codeAction::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_codeLens::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_codeLens::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_completion::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_completion::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_definition::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_definition::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_declaration::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_declaration::request::ReflectReader(visitor);
+ };
+ handler.method2request[td_willSaveWaitUntil::request::kMethodInfo] = [](Reader& visitor)
+ {
+ if (visitor.HasMember("error"))
+ return Rsp_Error::ReflectReader(visitor);
+ return td_willSaveWaitUntil::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_highlight::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_highlight::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_links::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_links::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_linkResolve::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_linkResolve::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_symbol::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_symbol::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_formatting::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_formatting::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_hover::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return td_hover::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_implementation::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_implementation::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_didRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+
+ return td_didRenameFiles::request::ReflectReader(visitor);
+ };
+
+ handler.method2request[td_willRenameFiles::request::kMethodInfo] = [](Reader& visitor)
+ {
+ return td_willRenameFiles::request::ReflectReader(visitor);
+ };
}
lsp::ProtocolJsonHandler::ProtocolJsonHandler()
{
- AddStadardResponseJsonRpcMethod(*this);
- AddJavaExtentionResponseJsonRpcMethod(*this);
- AddNotifyJsonRpcMethod(*this);
- AddStandardRequestJsonRpcMethod(*this);
- AddRequstJsonRpcMethod(*this);
+ AddStadardResponseJsonRpcMethod(*this);
+ AddJavaExtentionResponseJsonRpcMethod(*this);
+ AddNotifyJsonRpcMethod(*this);
+ AddStandardRequestJsonRpcMethod(*this);
+ AddRequstJsonRpcMethod(*this);
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/initialize.cpp b/graphics/asymptote/LspCpp/src/lsp/initialize.cpp
index ebe3e334d0..7348cbd0df 100644
--- a/graphics/asymptote/LspCpp/src/lsp/initialize.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/initialize.cpp
@@ -3,43 +3,43 @@
void Reflect(Reader& reader, lsInitializeParams::lsTrace& value)
{
- if (!reader.IsString())
- {
- value = lsInitializeParams::lsTrace::Off;
- return;
- }
- std::string v = reader.GetString();
- if (v == "off")
- value = lsInitializeParams::lsTrace::Off;
- else if (v == "messages")
- value = lsInitializeParams::lsTrace::Messages;
- else if (v == "verbose")
- value = lsInitializeParams::lsTrace::Verbose;
+ if (!reader.IsString())
+ {
+ value = lsInitializeParams::lsTrace::Off;
+ return;
+ }
+ std::string v = reader.GetString();
+ if (v == "off")
+ value = lsInitializeParams::lsTrace::Off;
+ else if (v == "messages")
+ value = lsInitializeParams::lsTrace::Messages;
+ else if (v == "verbose")
+ value = lsInitializeParams::lsTrace::Verbose;
}
void Reflect(Writer& writer, lsInitializeParams::lsTrace& value)
{
- switch (value)
- {
- case lsInitializeParams::lsTrace::Off:
- writer.String("off");
- break;
- case lsInitializeParams::lsTrace::Messages:
- writer.String("messages");
- break;
- case lsInitializeParams::lsTrace::Verbose:
- writer.String("verbose");
- break;
- }
+ switch (value)
+ {
+ case lsInitializeParams::lsTrace::Off:
+ writer.String("off");
+ break;
+ case lsInitializeParams::lsTrace::Messages:
+ writer.String("messages");
+ break;
+ case lsInitializeParams::lsTrace::Verbose:
+ writer.String("verbose");
+ break;
+ }
}
void Reflect(Reader& visitor, std::pair<boost::optional<lsTextDocumentSyncKind>, boost::optional<lsTextDocumentSyncOptions> >& value)
{
- if(((JsonReader&)visitor).m_->IsObject())
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
-} \ No newline at end of file
+ if(((JsonReader&)visitor).m_->IsObject())
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
+}
diff --git a/graphics/asymptote/LspCpp/src/lsp/lsp.cpp b/graphics/asymptote/LspCpp/src/lsp/lsp.cpp
index bf39b9383a..792995c8fb 100644
--- a/graphics/asymptote/LspCpp/src/lsp/lsp.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/lsp.cpp
@@ -86,10 +86,10 @@ bool lsRange::operator<(const lsRange& o) const {
std::string lsRange::ToString() const
{
- std::stringstream ss;
- ss << "start:" << start.ToString() << std::endl;
- ss << "end" << end.ToString() << std::endl;
- return ss.str();
+ std::stringstream ss;
+ ss << "start:" << start.ToString() << std::endl;
+ ss << "end" << end.ToString() << std::endl;
+ return ss.str();
}
lsLocation::lsLocation() {}
@@ -111,10 +111,10 @@ bool lsTextEdit::operator==(const lsTextEdit& that) {
std::string lsTextEdit::ToString() const
{
- std::stringstream ss;
- ss << "Range:" << range.ToString() << std::endl;
- ss << "newText:" << newText << std::endl;
- return ss.str();
+ std::stringstream ss;
+ ss << "Range:" << range.ToString() << std::endl;
+ ss << "newText:" << newText << std::endl;
+ return ss.str();
}
void Reflect(Writer& visitor, lsMarkedString& value) {
@@ -132,39 +132,39 @@ void Reflect(Writer& visitor, lsMarkedString& value) {
void Reflect(Reader& visitor, lsMarkedString& value)
{
- REFLECT_MEMBER_START();
- REFLECT_MEMBER(language);
- REFLECT_MEMBER(value);
- REFLECT_MEMBER_END();
+ REFLECT_MEMBER_START();
+ REFLECT_MEMBER(language);
+ REFLECT_MEMBER(value);
+ REFLECT_MEMBER_END();
}
void Reflect(Reader& visitor, LocationListEither::Either& value)
{
- if(!visitor.IsArray())
- {
- throw std::invalid_argument("Rsp_LocationListEither::Either& value is not array");
- }
- auto data = ((JsonReader&)visitor).m_->GetArray();
- if (data.Size() && data[0].HasMember("originSelectionRange"))
- {
- Reflect(visitor, value.second);
- }
- else {
- Reflect(visitor, value.first);
- }
+ if(!visitor.IsArray())
+ {
+ throw std::invalid_argument("Rsp_LocationListEither::Either& value is not array");
+ }
+ auto data = ((JsonReader&)visitor).m_->GetArray();
+ if (data.Size() && data[0].HasMember("originSelectionRange"))
+ {
+ Reflect(visitor, value.second);
+ }
+ else {
+ Reflect(visitor, value.first);
+ }
}
void Reflect(Writer& visitor, LocationListEither::Either& value)
{
- if (value.first)
- {
- Reflect(visitor, value.first.value());
- }
- else if (value.second)
- {
- Reflect(visitor, value.second.value());
- }
+ if (value.first)
+ {
+ Reflect(visitor, value.first.value());
+ }
+ else if (value.second)
+ {
+ Reflect(visitor, value.second.value());
+ }
}
@@ -172,28 +172,28 @@ void Reflect(Reader& visitor, TextDocumentCodeAction::Either& value)
{
- if(visitor.HasMember("command"))
- {
- if(visitor["command"]->IsString())
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
- }
- else
- {
- if (visitor.HasMember("diagnostics") || visitor.HasMember("edit"))
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
- }
+ if(visitor.HasMember("command"))
+ {
+ if(visitor["command"]->IsString())
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
+ }
+ else
+ {
+ if (visitor.HasMember("diagnostics") || visitor.HasMember("edit"))
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
+ }
}
@@ -202,410 +202,410 @@ void Reflect(Reader& visitor, lsWorkspaceEdit::Either& value)
{
- if(visitor.HasMember("textDocument"))
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
+ if(visitor.HasMember("textDocument"))
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
}
ResourceOperation* GetResourceOperation(lsp::Any& lspAny)
{
- rapidjson::Document document;
- auto& data = lspAny.Data();
- document.Parse(data.c_str(), data.length());
- if (document.HasParseError()) {
- // ��ʾ
- return nullptr;
- }
- auto find = document.FindMember("kind");
-
- JsonReader visitor{ &document };
- try
- {
- if (find->value == "create")
- {
- auto ptr = std::make_unique<lsCreateFile>();
- auto temp = ptr.get();
- Reflect(visitor, *temp);
- return ptr.release();
- }
- else if (find->value == "rename")
- {
- auto ptr = std::make_unique<lsRenameFile>();
- auto temp = ptr.get();
- Reflect(visitor, *temp);
- return ptr.release();
- }
- else if (find->value == "delete")
- {
-
- auto ptr = std::make_unique<lsDeleteFile>();
- auto temp = ptr.get();
- Reflect(visitor, *temp);
- return ptr.release();
- }
- }
- catch (std::exception&)
- {
-
- }
- return nullptr;
+ rapidjson::Document document;
+ auto& data = lspAny.Data();
+ document.Parse(data.c_str(), data.length());
+ if (document.HasParseError()) {
+ // ��ʾ
+ return nullptr;
+ }
+ auto find = document.FindMember("kind");
+
+ JsonReader visitor{ &document };
+ try
+ {
+ if (find->value == "create")
+ {
+ auto ptr = std::make_unique<lsCreateFile>();
+ auto temp = ptr.get();
+ Reflect(visitor, *temp);
+ return ptr.release();
+ }
+ else if (find->value == "rename")
+ {
+ auto ptr = std::make_unique<lsRenameFile>();
+ auto temp = ptr.get();
+ Reflect(visitor, *temp);
+ return ptr.release();
+ }
+ else if (find->value == "delete")
+ {
+
+ auto ptr = std::make_unique<lsDeleteFile>();
+ auto temp = ptr.get();
+ Reflect(visitor, *temp);
+ return ptr.release();
+ }
+ }
+ catch (std::exception&)
+ {
+
+ }
+ return nullptr;
}
void Reflect(Writer& visitor, ResourceOperation* value)
{
- if(!value)
- {
- throw std::invalid_argument("ResourceOperation value is nullptr");
- }
- if (value->kind == "create")
- {
- auto temp = (lsCreateFile*)value;
- Reflect(visitor, *temp);
- }
- else if (value->kind == "rename")
- {
- auto temp = (lsRenameFile*)value;
- Reflect(visitor, *temp);
- }
- else if (value->kind == "delete")
- {
-
- auto temp = (lsDeleteFile*)value;
- Reflect(visitor, *temp);
- }
+ if(!value)
+ {
+ throw std::invalid_argument("ResourceOperation value is nullptr");
+ }
+ if (value->kind == "create")
+ {
+ auto temp = (lsCreateFile*)value;
+ Reflect(visitor, *temp);
+ }
+ else if (value->kind == "rename")
+ {
+ auto temp = (lsRenameFile*)value;
+ Reflect(visitor, *temp);
+ }
+ else if (value->kind == "delete")
+ {
+
+ auto temp = (lsDeleteFile*)value;
+ Reflect(visitor, *temp);
+ }
}
int lsp::Any::GuessType()
{
- if (!data.empty())
- {
- if (data == "null")
- {
- jsonType = rapidjson::kNullType;
- }
- else if (data == "true")
- {
- jsonType = rapidjson::kTrueType;
- }
- else if(data == "false")
- {
- jsonType = rapidjson::kFalseType;
- }
- else if (data[0] == '{')
- {
- jsonType = rapidjson::kObjectType;
- }
- else if (data[0] == '[')
- {
- if (data.size() >= 2 && data[1] == '{')
- jsonType = rapidjson::kStringType;
- else
- jsonType = rapidjson::kArrayType;
- }
- else if (data[0] == '"')
- {
- jsonType = rapidjson::kStringType;
- }
- else
- {
- jsonType = rapidjson::kNumberType;
- }
- }
- else
- {
- if (jsonType != kUnKnown)
- return jsonType;
- jsonType = rapidjson::kNullType;
- }
- return jsonType;
+ if (!data.empty())
+ {
+ if (data == "null")
+ {
+ jsonType = rapidjson::kNullType;
+ }
+ else if (data == "true")
+ {
+ jsonType = rapidjson::kTrueType;
+ }
+ else if(data == "false")
+ {
+ jsonType = rapidjson::kFalseType;
+ }
+ else if (data[0] == '{')
+ {
+ jsonType = rapidjson::kObjectType;
+ }
+ else if (data[0] == '[')
+ {
+ if (data.size() >= 2 && data[1] == '{')
+ jsonType = rapidjson::kStringType;
+ else
+ jsonType = rapidjson::kArrayType;
+ }
+ else if (data[0] == '"')
+ {
+ jsonType = rapidjson::kStringType;
+ }
+ else
+ {
+ jsonType = rapidjson::kNumberType;
+ }
+ }
+ else
+ {
+ if (jsonType != kUnKnown)
+ return jsonType;
+ jsonType = rapidjson::kNullType;
+ }
+ return jsonType;
}
int lsp::Any::GetType()
{
- if (jsonType == Type::kUnKnown)
- {
- if (data.empty())
- {
- jsonType = rapidjson::kNullType;
- return jsonType;
- }
- rapidjson::Document document;
- document.Parse(data.c_str(), data.length());
- if (document.HasParseError())
- {
- // ��ʾ
- return jsonType;
- }
- jsonType = document.GetType();
- }
- return jsonType;
+ if (jsonType == Type::kUnKnown)
+ {
+ if (data.empty())
+ {
+ jsonType = rapidjson::kNullType;
+ return jsonType;
+ }
+ rapidjson::Document document;
+ document.Parse(data.c_str(), data.length());
+ if (document.HasParseError())
+ {
+ // ��ʾ
+ return jsonType;
+ }
+ jsonType = document.GetType();
+ }
+ return jsonType;
}
void lsp::Any::Set(std::unique_ptr<LspMessage> value)
{
- if (value)
- {
- jsonType = rapidjson::Type::kObjectType;
- data = value->ToJson();
- }
- else
- {
- assert(false);
- }
+ if (value)
+ {
+ jsonType = rapidjson::Type::kObjectType;
+ data = value->ToJson();
+ }
+ else
+ {
+ assert(false);
+ }
}
void lsp::Any::SetJsonString(std::string&& _data, Type _type)
{
- jsonType = _type;
- data.swap(_data);
- GetType();
+ jsonType = _type;
+ data.swap(_data);
+ GetType();
}
void lsp::Any::SetJsonString(const std::string& _data, Type _type)
{
- jsonType = _type;
- data = (_data);
- GetType();
+ jsonType = _type;
+ data = (_data);
+ GetType();
}
void lsp::Any::swap(Any& arg) noexcept
{
- data.swap(arg.data);
- const int temp = jsonType;
- jsonType = arg.jsonType;
- arg.jsonType = temp;
+ data.swap(arg.data);
+ const int temp = jsonType;
+ jsonType = arg.jsonType;
+ arg.jsonType = temp;
}
class JsonReaderForAny : public JsonReader
{
public:
- JsonReaderForAny()
- : JsonReader(&document)
- {
- }
- rapidjson::Document document;
+ JsonReaderForAny()
+ : JsonReader(&document)
+ {
+ }
+ rapidjson::Document document;
};
bool lsp::Any::GetForMapHelper(std::string& value)
{
- return Get(value);
+ return Get(value);
}
bool lsp::Any::GetForMapHelper(boost::optional<std::string>& value)
{
- return Get(value);
+ return Get(value);
}
std::unique_ptr<Reader> lsp::Any::GetReader()
{
- auto reader = new JsonReaderForAny();
- std::unique_ptr<Reader> ret(reader);
- reader->document.Parse(data.c_str(), data.length());
- if (reader->document.HasParseError())
- {
- return {};
- }
- if (jsonType == kUnKnown)
- {
- jsonType = reader->document.GetType();
- }
- return (ret);
+ auto reader = new JsonReaderForAny();
+ std::unique_ptr<Reader> ret(reader);
+ reader->document.Parse(data.c_str(), data.length());
+ if (reader->document.HasParseError())
+ {
+ return {};
+ }
+ if (jsonType == kUnKnown)
+ {
+ jsonType = reader->document.GetType();
+ }
+ return (ret);
}
class JsonWriterForAny : public JsonWriter
{
public:
- rapidjson::StringBuffer output;
- rapidjson::Writer<rapidjson::StringBuffer> writer;
- JsonWriterForAny():JsonWriter(&writer), writer(output)
- {
+ rapidjson::StringBuffer output;
+ rapidjson::Writer<rapidjson::StringBuffer> writer;
+ JsonWriterForAny():JsonWriter(&writer), writer(output)
+ {
- }
+ }
};
std::unique_ptr<Writer> lsp::Any::GetWriter() const
{
- return std::make_unique<JsonWriterForAny>();
+ return std::make_unique<JsonWriterForAny>();
}
void lsp::Any::SetData(std::unique_ptr<Writer>& writer)
{
- auto _temp = static_cast<JsonWriterForAny*>(writer.get());
- data = _temp->output.GetString();
- GuessType();
+ auto _temp = static_cast<JsonWriterForAny*>(writer.get());
+ data = _temp->output.GetString();
+ GuessType();
}
namespace
{
#if 0
- rapidjson::Type convert(lsp::Any::Type type)
- {
- switch (type)
- {
- case lsp::Any::Type::kNullType:
- return rapidjson::Type::kNullType;
- case lsp::Any::Type::kFalseType:
- return rapidjson::Type::kFalseType;
- case lsp::Any::Type::kTrueType:
- return rapidjson::Type::kTrueType;
- case lsp::Any::Type::kObjectType:
- return rapidjson::Type::kObjectType;
- case lsp::Any::Type::kArrayType:
- return rapidjson::Type::kArrayType;
- case lsp::Any::Type::kStringType:
- return rapidjson::Type::kStringType;
- case lsp::Any::Type::kNumberType:
- return rapidjson::Type::kNumberType;
- default:
- return rapidjson::Type::kNullType;
- }
- }
+ rapidjson::Type convert(lsp::Any::Type type)
+ {
+ switch (type)
+ {
+ case lsp::Any::Type::kNullType:
+ return rapidjson::Type::kNullType;
+ case lsp::Any::Type::kFalseType:
+ return rapidjson::Type::kFalseType;
+ case lsp::Any::Type::kTrueType:
+ return rapidjson::Type::kTrueType;
+ case lsp::Any::Type::kObjectType:
+ return rapidjson::Type::kObjectType;
+ case lsp::Any::Type::kArrayType:
+ return rapidjson::Type::kArrayType;
+ case lsp::Any::Type::kStringType:
+ return rapidjson::Type::kStringType;
+ case lsp::Any::Type::kNumberType:
+ return rapidjson::Type::kNumberType;
+ default:
+ return rapidjson::Type::kNullType;
+ }
+ }
#endif
- lsp::Any::Type convert(rapidjson::Type type)
- {
- switch (type)
- {
- case rapidjson::Type::kNullType:
- return lsp::Any::Type::kNullType;
- case rapidjson::Type::kFalseType:
- return lsp::Any::Type::kFalseType;
- case rapidjson::Type::kTrueType:
- return lsp::Any::Type::kTrueType;
- case rapidjson::Type::kObjectType:
- return lsp::Any::Type::kObjectType;
- case rapidjson::Type::kArrayType:
- return lsp::Any::Type::kArrayType;
- case rapidjson::Type::kStringType:
- return lsp::Any::Type::kStringType;
- case rapidjson::Type::kNumberType:
- return lsp::Any::Type::kNumberType;
- default:
- return lsp::Any::Type::kNullType;
- }
- }
+ lsp::Any::Type convert(rapidjson::Type type)
+ {
+ switch (type)
+ {
+ case rapidjson::Type::kNullType:
+ return lsp::Any::Type::kNullType;
+ case rapidjson::Type::kFalseType:
+ return lsp::Any::Type::kFalseType;
+ case rapidjson::Type::kTrueType:
+ return lsp::Any::Type::kTrueType;
+ case rapidjson::Type::kObjectType:
+ return lsp::Any::Type::kObjectType;
+ case rapidjson::Type::kArrayType:
+ return lsp::Any::Type::kArrayType;
+ case rapidjson::Type::kStringType:
+ return lsp::Any::Type::kStringType;
+ case rapidjson::Type::kNumberType:
+ return lsp::Any::Type::kNumberType;
+ default:
+ return lsp::Any::Type::kNullType;
+ }
+ }
}
void Reflect(Reader& visitor, lsp::Any& value)
{
- //if (visitor.IsNull()) {
- // visitor.GetNull();
- // value.SetJsonString("", rapidjson::Type::kNullType);
- // return;
- //}else
- //{
- //
- //}
- JsonReader& json_reader = reinterpret_cast<JsonReader&>(visitor);
- value.SetJsonString(visitor.ToString(), convert(json_reader.m_->GetType()));
+ //if (visitor.IsNull()) {
+ // visitor.GetNull();
+ // value.SetJsonString("", rapidjson::Type::kNullType);
+ // return;
+ //}else
+ //{
+ //
+ //}
+ JsonReader& json_reader = reinterpret_cast<JsonReader&>(visitor);
+ value.SetJsonString(visitor.ToString(), convert(json_reader.m_->GetType()));
}
void Reflect(Writer& visitor, lsp::Any& value)
{
- JsonWriter& json_writer = reinterpret_cast<JsonWriter&>(visitor);
- json_writer.m_->RawValue( value.Data().data(),value.Data().size(),static_cast<rapidjson::Type>(value.GetType()));
+ JsonWriter& json_writer = reinterpret_cast<JsonWriter&>(visitor);
+ json_writer.m_->RawValue( value.Data().data(),value.Data().size(),static_cast<rapidjson::Type>(value.GetType()));
}
void Reflect(Reader& visitor, lsFormattingOptions::KeyData& value)
{
- if (visitor.IsBool())
- {
- Reflect(visitor, value._boolean);
- }
- else if (visitor.IsInt() || visitor.IsInt64() || visitor.IsUint64())
- {
- Reflect(visitor, value._integer);
- }
- else if(visitor.IsString())
- {
- Reflect(visitor, value._string);
- }
+ if (visitor.IsBool())
+ {
+ Reflect(visitor, value._boolean);
+ }
+ else if (visitor.IsInt() || visitor.IsInt64() || visitor.IsUint64())
+ {
+ Reflect(visitor, value._integer);
+ }
+ else if(visitor.IsString())
+ {
+ Reflect(visitor, value._string);
+ }
}
void Reflect(Writer& visitor, lsFormattingOptions::KeyData& value)
{
- if (value._boolean.has_value())
- {
- Reflect(visitor, value._boolean);
- }
- else if (value._integer.has_value())
- {
- Reflect(visitor, value._integer);
- }
- else if (value._string.has_value())
- {
- Reflect(visitor, value._string);
- }
+ if (value._boolean.has_value())
+ {
+ Reflect(visitor, value._boolean);
+ }
+ else if (value._integer.has_value())
+ {
+ Reflect(visitor, value._integer);
+ }
+ else if (value._string.has_value())
+ {
+ Reflect(visitor, value._string);
+ }
}
lsCreateFile::lsCreateFile()
{
- kind = "create";
+ kind = "create";
}
lsDeleteFile::lsDeleteFile()
{
- kind = "delete";
+ kind = "delete";
}
lsRenameFile::lsRenameFile()
{
- kind = "rename";
+ kind = "rename";
}
void Reflect(Reader& visitor, boost::optional< SelectionRange* >& value)
{
- if (visitor.IsNull()) {
- visitor.GetNull();
- return;
- }
+ if (visitor.IsNull()) {
+ visitor.GetNull();
+ return;
+ }
- SelectionRange* entry_value = nullptr;
+ SelectionRange* entry_value = nullptr;
- std::unique_ptr<SelectionRange> ptr = std::make_unique<SelectionRange>();
- SelectionRange* temp = ptr.get();
- Reflect(visitor, *temp);
+ std::unique_ptr<SelectionRange> ptr = std::make_unique<SelectionRange>();
+ SelectionRange* temp = ptr.get();
+ Reflect(visitor, *temp);
- entry_value = ptr.release();
- value = (entry_value);
+ entry_value = ptr.release();
+ value = (entry_value);
}
void Reflect(Writer& visitor, SelectionRange* value)
{
- if (!value)
- {
- throw std::invalid_argument("ResourceOperation value is nullptr");
- }
+ if (!value)
+ {
+ throw std::invalid_argument("ResourceOperation value is nullptr");
+ }
- Reflect(visitor, *value);
+ Reflect(visitor, *value);
}
std::string make_file_scheme_uri(const std::string& absolute_path)
{
- network::uri_builder builder;
- builder.scheme("file");
- builder.host("");
- builder.path(absolute_path);
- return builder.uri().string();
- //// lsDocumentUri uri;
- //// uri.SetPath(absolute_path);
- /// return uri.raw_uri_;
+ network::uri_builder builder;
+ builder.scheme("file");
+ builder.host("");
+ builder.path(absolute_path);
+ return builder.uri().string();
+ //// lsDocumentUri uri;
+ //// uri.SetPath(absolute_path);
+ /// return uri.raw_uri_;
}
// static
AbsolutePath AbsolutePath::BuildDoNotUse(const std::string& path) {
- AbsolutePath p;
- p.path = std::string(path);
- return p;
+ AbsolutePath p;
+ p.path = std::string(path);
+ return p;
}
@@ -614,116 +614,116 @@ AbsolutePath::AbsolutePath() {}
AbsolutePath::operator std::string() const {
- return path;
+ return path;
}
bool AbsolutePath::operator==(const AbsolutePath& rhs) const {
- return path == rhs.path;
+ return path == rhs.path;
}
bool AbsolutePath::operator!=(const AbsolutePath& rhs) const {
- return path != rhs.path;
+ return path != rhs.path;
}
bool AbsolutePath::operator<(const AbsolutePath& rhs) const
{
- return path < rhs.path;
+ return path < rhs.path;
}
bool AbsolutePath::operator>(const AbsolutePath& rhs) const
{
- return path > rhs.path;
+ return path > rhs.path;
}
void Reflect(Reader& visitor, AbsolutePath& value) {
- value.path = visitor.GetString();
+ value.path = visitor.GetString();
}
void Reflect(Writer& visitor, AbsolutePath& value) {
- visitor.String(value.path.c_str(), value.path.length());
+ visitor.String(value.path.c_str(), value.path.length());
}
std::ostream& operator<<(std::ostream& out, const AbsolutePath& path) {
- out << path.path;
- return out;
+ out << path.path;
+ return out;
}
lsDocumentUri lsDocumentUri::FromPath(const AbsolutePath& path) {
- lsDocumentUri result;
- result.SetPath(path);
- return result;
+ lsDocumentUri result;
+ result.SetPath(path);
+ return result;
}
//void lsDocumentUri::SetPath(const AbsolutePath& path)
//{
-// raw_uri_ = make_file_scheme_uri(path.path);
+// raw_uri_ = make_file_scheme_uri(path.path);
//}
//
void lsDocumentUri::SetPath(const AbsolutePath& path) {
- // file:///c%3A/Users/jacob/Desktop/superindex/indexer/full_tests
- raw_uri_ = path;
+ // file:///c%3A/Users/jacob/Desktop/superindex/indexer/full_tests
+ raw_uri_ = path;
- size_t index = raw_uri_.find(":");
- if (index == 1) { // widows drive letters must always be 1 char
- raw_uri_.replace(raw_uri_.begin() + index, raw_uri_.begin() + index + 1,
- "%3A");
- }
+ size_t index = raw_uri_.find(":");
+ if (index == 1) { // widows drive letters must always be 1 char
+ raw_uri_.replace(raw_uri_.begin() + index, raw_uri_.begin() + index + 1,
+ "%3A");
+ }
- // subset of reserved characters from the URI standard
- // http://www.ecma-international.org/ecma-262/6.0/#sec-uri-syntax-and-semantics
- std::string t;
- t.reserve(8 + raw_uri_.size());
+ // subset of reserved characters from the URI standard
+ // http://www.ecma-international.org/ecma-262/6.0/#sec-uri-syntax-and-semantics
+ std::string t;
+ t.reserve(8 + raw_uri_.size());
- // TODO: proper fix
+ // TODO: proper fix
#if defined(_WIN32)
- t += "file:///";
+ t += "file:///";
#else
- t += "file://";
+ t += "file://";
#endif
- // clang-format off
- for (char c : raw_uri_)
- switch (c) {
- case ' ': t += "%20"; break;
- case '#': t += "%23"; break;
- case '$': t += "%24"; break;
- case '&': t += "%26"; break;
- case '(': t += "%28"; break;
- case ')': t += "%29"; break;
- case '+': t += "%2B"; break;
- case ',': t += "%2C"; break;
- case ';': t += "%3B"; break;
- case '?': t += "%3F"; break;
- case '@': t += "%40"; break;
- default: t += c; break;
- }
- // clang-format on
- raw_uri_ = std::move(t);
+ // clang-format off
+ for (char c : raw_uri_)
+ switch (c) {
+ case ' ': t += "%20"; break;
+ case '#': t += "%23"; break;
+ case '$': t += "%24"; break;
+ case '&': t += "%26"; break;
+ case '(': t += "%28"; break;
+ case ')': t += "%29"; break;
+ case '+': t += "%2B"; break;
+ case ',': t += "%2C"; break;
+ case ';': t += "%3B"; break;
+ case '?': t += "%3F"; break;
+ case '@': t += "%40"; break;
+ default: t += c; break;
+ }
+ // clang-format on
+ raw_uri_ = std::move(t);
}
std::string lsDocumentUri::GetRawPath() const {
- if (raw_uri_.compare(0, 8, "file:///"))
- return raw_uri_;
+ if (raw_uri_.compare(0, 8, "file:///"))
+ return raw_uri_;
- std::string ret;
+ std::string ret;
#if defined(_WIN32)
- size_t i = 8;
+ size_t i = 8;
#else
- size_t i = 7;
+ size_t i = 7;
#endif
- auto from_hex = [](unsigned char c) {
- return c - '0' < 10 ? c - '0' : (c | 32) - 'a' + 10;
- };
- for (; i < raw_uri_.size(); i++) {
- if (i + 3 <= raw_uri_.size() && raw_uri_[i] == '%') {
- ret.push_back(from_hex(raw_uri_[i + 1]) * 16 + from_hex(raw_uri_[i + 2]));
- i += 2;
- }
- else
- ret.push_back(raw_uri_[i] == '\\' ? '/' : raw_uri_[i]);
- }
- return ret;
+ auto from_hex = [](unsigned char c) {
+ return c - '0' < 10 ? c - '0' : (c | 32) - 'a' + 10;
+ };
+ for (; i < raw_uri_.size(); i++) {
+ if (i + 3 <= raw_uri_.size() && raw_uri_[i] == '%') {
+ ret.push_back(from_hex(raw_uri_[i + 1]) * 16 + from_hex(raw_uri_[i + 2]));
+ i += 2;
+ }
+ else
+ ret.push_back(raw_uri_[i] == '\\' ? '/' : raw_uri_[i]);
+ }
+ return ret;
}
lsDocumentUri::lsDocumentUri() {}
@@ -731,7 +731,7 @@ lsDocumentUri::lsDocumentUri() {}
lsDocumentUri::lsDocumentUri(const AbsolutePath& path)
{
- SetPath(path);
+ SetPath(path);
}
lsDocumentUri::lsDocumentUri(const lsDocumentUri& other): raw_uri_(other.raw_uri_)
@@ -739,351 +739,351 @@ lsDocumentUri::lsDocumentUri(const lsDocumentUri& other): raw_uri_(other.raw_uri
}
bool lsDocumentUri::operator==(const lsDocumentUri& other) const {
- return raw_uri_ == other.raw_uri_;
+ return raw_uri_ == other.raw_uri_;
}
bool lsDocumentUri::operator==(const std::string& other) const
{
- return raw_uri_ == other;
+ return raw_uri_ == other;
}
AbsolutePath lsDocumentUri::GetAbsolutePath() const {
- if (raw_uri_.find("file://") != std::string::npos){
- try
- {
- return lsp::NormalizePath(GetRawPath(), false /*ensure_exists*/, false);
- }
- catch (std::exception&)
- {
- return AbsolutePath("", false);
- }
- }
+ if (raw_uri_.find("file://") != std::string::npos){
+ try
+ {
+ return lsp::NormalizePath(GetRawPath(), false /*ensure_exists*/, false);
+ }
+ catch (std::exception&)
+ {
+ return AbsolutePath("", false);
+ }
+ }
- return AbsolutePath(raw_uri_,false);
+ return AbsolutePath(raw_uri_,false);
}
AbsolutePath::AbsolutePath(const std::string& path, bool validate)
- : path(path) {
- // TODO: enable validation after fixing tests.
- if (validate && !lsp::IsAbsolutePath(path)) {
- qualify = false;
- auto temp = lsp::NormalizePath(path,false);
- if(!temp.path.empty())
- {
- this->path = temp.path;
- }
- }
+ : path(path) {
+ // TODO: enable validation after fixing tests.
+ if (validate && !lsp::IsAbsolutePath(path)) {
+ qualify = false;
+ auto temp = lsp::NormalizePath(path,false);
+ if(!temp.path.empty())
+ {
+ this->path = temp.path;
+ }
+ }
}
void Reflect(Writer& visitor, lsDocumentUri& value) {
- Reflect(visitor, value.raw_uri_);
+ Reflect(visitor, value.raw_uri_);
}
void Reflect(Reader& visitor, lsDocumentUri& value) {
- Reflect(visitor, value.raw_uri_);
- // Only record the path when we deserialize a URI, since it most likely came
- // from the client.
+ Reflect(visitor, value.raw_uri_);
+ // Only record the path when we deserialize a URI, since it most likely came
+ // from the client.
}
std::string ProgressReport::ToString() const
{
- std::string info;
- info += "id:" + id + "\n";
- info += "task:" + task + "\n";
- info += "subTask:" + subTask + "\n";
- info += "status:" + status + "\n";
- {
- std::stringstream ss;
- ss << "totalWork:" << totalWork << std::endl;
- info += ss.str();
- }
- {
- std::stringstream ss;
- ss << "workDone:" << workDone << std::endl;
- info += ss.str();
- }
-
- {
- std::stringstream ss;
- ss << "complete:" << complete << std::endl;
- info += ss.str();
- }
-
- return info;
+ std::string info;
+ info += "id:" + id + "\n";
+ info += "task:" + task + "\n";
+ info += "subTask:" + subTask + "\n";
+ info += "status:" + status + "\n";
+ {
+ std::stringstream ss;
+ ss << "totalWork:" << totalWork << std::endl;
+ info += ss.str();
+ }
+ {
+ std::stringstream ss;
+ ss << "workDone:" << workDone << std::endl;
+ info += ss.str();
+ }
+
+ {
+ std::stringstream ss;
+ ss << "complete:" << complete << std::endl;
+ info += ss.str();
+ }
+
+ return info;
}
std::string EventNotification::ToString() const
{
- std::string info;
- if (ClasspathUpdated == eventType)
- {
- info += "eventType:ClasspathUpdated\n";
- }
- else if (ProjectsImported == eventType)
- {
- info += "eventType:ProjectsImported\n";
- }
- else
- {
- std::ostringstream oss;
- oss << std::hex << eventType << std::endl;
-
- info += "eventType:";
- info += oss.str();
- }
- info += "data:" + data.Data() + "\n";
- return info;
+ std::string info;
+ if (ClasspathUpdated == eventType)
+ {
+ info += "eventType:ClasspathUpdated\n";
+ }
+ else if (ProjectsImported == eventType)
+ {
+ info += "eventType:ProjectsImported\n";
+ }
+ else
+ {
+ std::ostringstream oss;
+ oss << std::hex << eventType << std::endl;
+
+ info += "eventType:";
+ info += oss.str();
+ }
+ info += "data:" + data.Data() + "\n";
+ return info;
}
std::string lsp::ToString(lsCompletionItemKind _kind)
{
- switch (_kind) {
- case lsCompletionItemKind::Text:
- return "Text";
- case lsCompletionItemKind::Method:
- return "Method";
- case lsCompletionItemKind::Function:
- return "";
- case lsCompletionItemKind::Constructor:
- return "Function";
- case lsCompletionItemKind::Field:
- return "Field";
- case lsCompletionItemKind::Variable:
- return "";
- case lsCompletionItemKind::Class:
- return "Variable";
- case lsCompletionItemKind::Interface:
- return "Interface";
- case lsCompletionItemKind::Module:
- return "Module";
- case lsCompletionItemKind::Property:
- return "Property";
- case lsCompletionItemKind::Unit:
- return "Unit";
- case lsCompletionItemKind::Value:
- return "Value";
- case lsCompletionItemKind::Enum:
- return "Enum";
- case lsCompletionItemKind::Keyword:
- return "Keyword";
- case lsCompletionItemKind::Snippet:
- return "Snippet";
- case lsCompletionItemKind::Color:
- return "Color";
- case lsCompletionItemKind::File:
- return "File";
- case lsCompletionItemKind::Reference:
- return "Reference";
- case lsCompletionItemKind::Folder:
- return "Folder";
- case lsCompletionItemKind::EnumMember:
- return "EnumMember";
- case lsCompletionItemKind::Constant:
- return "Constant";
- case lsCompletionItemKind::Struct:
- return "Struct";
- case lsCompletionItemKind::Event:
- return "Event";
- case lsCompletionItemKind::Operator:
- return "Operator";
- case lsCompletionItemKind::TypeParameter:
- return "TypeParameter";
- default:
- return "Unknown";
- }
+ switch (_kind) {
+ case lsCompletionItemKind::Text:
+ return "Text";
+ case lsCompletionItemKind::Method:
+ return "Method";
+ case lsCompletionItemKind::Function:
+ return "";
+ case lsCompletionItemKind::Constructor:
+ return "Function";
+ case lsCompletionItemKind::Field:
+ return "Field";
+ case lsCompletionItemKind::Variable:
+ return "";
+ case lsCompletionItemKind::Class:
+ return "Variable";
+ case lsCompletionItemKind::Interface:
+ return "Interface";
+ case lsCompletionItemKind::Module:
+ return "Module";
+ case lsCompletionItemKind::Property:
+ return "Property";
+ case lsCompletionItemKind::Unit:
+ return "Unit";
+ case lsCompletionItemKind::Value:
+ return "Value";
+ case lsCompletionItemKind::Enum:
+ return "Enum";
+ case lsCompletionItemKind::Keyword:
+ return "Keyword";
+ case lsCompletionItemKind::Snippet:
+ return "Snippet";
+ case lsCompletionItemKind::Color:
+ return "Color";
+ case lsCompletionItemKind::File:
+ return "File";
+ case lsCompletionItemKind::Reference:
+ return "Reference";
+ case lsCompletionItemKind::Folder:
+ return "Folder";
+ case lsCompletionItemKind::EnumMember:
+ return "EnumMember";
+ case lsCompletionItemKind::Constant:
+ return "Constant";
+ case lsCompletionItemKind::Struct:
+ return "Struct";
+ case lsCompletionItemKind::Event:
+ return "Event";
+ case lsCompletionItemKind::Operator:
+ return "Operator";
+ case lsCompletionItemKind::TypeParameter:
+ return "TypeParameter";
+ default:
+ return "Unknown";
+ }
}
std::string lsp::ToString(lsInsertTextFormat _kind)
{
- if (_kind == lsInsertTextFormat::PlainText)
- {
- return "PlainText";
- }
- else if (_kind == lsInsertTextFormat::Snippet)
- {
- return "Snippet";
- }else
- {
- return "Unknown";
- }
+ if (_kind == lsInsertTextFormat::PlainText)
+ {
+ return "PlainText";
+ }
+ else if (_kind == lsInsertTextFormat::Snippet)
+ {
+ return "Snippet";
+ }else
+ {
+ return "Unknown";
+ }
}
const std::string& lsCompletionItem::InsertedContent() const
{
- if (textEdit)
- return textEdit->newText;
- if (insertText.has_value() && !insertText->empty())
- return insertText.value();
- return label;
+ if (textEdit)
+ return textEdit->newText;
+ if (insertText.has_value() && !insertText->empty())
+ return insertText.value();
+ return label;
}
std::string lsCompletionItem::DisplayText()
{
- if (detail)
- {
+ if (detail)
+ {
- return label + " in " + detail.value();
- }
- return label;
+ return label + " in " + detail.value();
+ }
+ return label;
}
std::string lsCompletionItem::ToString()
{
- std::stringstream info;
- info << "label : " << label << std::endl;
- if(kind)
- info << "kind : " << lsp::ToString(kind.value()) << std::endl;
- else
- info << "kind : no exist." << std::endl;
-
- if (detail)
- info << "detail : " << detail.value() << std::endl;
- else
- info << "detail : no exist." << std::endl;
-
- if (documentation)
- {
- info << "documentation : " << std::endl;
- if(documentation.value().first)
- {
- info << documentation.value().first.value();
- }
- else if(documentation.value().second)
- {
- info << documentation.value().second.value().value;
- }
- }
- else
- info << "documentation : no exist." << std::endl;
-
- if (deprecated)
- info << "deprecated : " << deprecated.value() << std::endl;
- else
- info << "deprecated : no exist." << std::endl;
-
- if (preselect)
- info << "preselect : " << preselect.value() << std::endl;
- else
- info << "preselect : no exist." << std::endl;
-
- if (sortText)
- info << "sortText : " << sortText.value() << std::endl;
- else
- info << "sortText : no exist." << std::endl;
-
- if (filterText)
- info << "filterText : " << filterText.value() << std::endl;
- else
- info << "filterText : no exist." << std::endl;
-
-
- if (insertText)
- info << "insertText : " << insertText.value() << std::endl;
- else
- info << "insertText : no exist." << std::endl;
-
-
- if (insertTextFormat)
- info << "insertText : " << lsp::ToString(insertTextFormat.value()) << std::endl;
- else
- info << "insertTextFormat : no exist." << std::endl;
-
- if (textEdit)
- info << "textEdit : " << textEdit.value().ToString() << std::endl;
- else
- info << "textEdit : no exist." << std::endl;
-
-
-
- return info.str();
+ std::stringstream info;
+ info << "label : " << label << std::endl;
+ if(kind)
+ info << "kind : " << lsp::ToString(kind.value()) << std::endl;
+ else
+ info << "kind : no exist." << std::endl;
+
+ if (detail)
+ info << "detail : " << detail.value() << std::endl;
+ else
+ info << "detail : no exist." << std::endl;
+
+ if (documentation)
+ {
+ info << "documentation : " << std::endl;
+ if(documentation.value().first)
+ {
+ info << documentation.value().first.value();
+ }
+ else if(documentation.value().second)
+ {
+ info << documentation.value().second.value().value;
+ }
+ }
+ else
+ info << "documentation : no exist." << std::endl;
+
+ if (deprecated)
+ info << "deprecated : " << deprecated.value() << std::endl;
+ else
+ info << "deprecated : no exist." << std::endl;
+
+ if (preselect)
+ info << "preselect : " << preselect.value() << std::endl;
+ else
+ info << "preselect : no exist." << std::endl;
+
+ if (sortText)
+ info << "sortText : " << sortText.value() << std::endl;
+ else
+ info << "sortText : no exist." << std::endl;
+
+ if (filterText)
+ info << "filterText : " << filterText.value() << std::endl;
+ else
+ info << "filterText : no exist." << std::endl;
+
+
+ if (insertText)
+ info << "insertText : " << insertText.value() << std::endl;
+ else
+ info << "insertText : no exist." << std::endl;
+
+
+ if (insertTextFormat)
+ info << "insertText : " << lsp::ToString(insertTextFormat.value()) << std::endl;
+ else
+ info << "insertTextFormat : no exist." << std::endl;
+
+ if (textEdit)
+ info << "textEdit : " << textEdit.value().ToString() << std::endl;
+ else
+ info << "textEdit : no exist." << std::endl;
+
+
+
+ return info.str();
}
namespace JDT
{
- namespace CodeActionKind {
-
-
- /**
- * Base kind for quickfix actions: 'quickfix'
- */
- const char* QuickFix = "quickfix";
-
- /**
- * Base kind for refactoring actions: 'refactor'
- */
- const char* Refactor = "refactor";
-
- /**
- * Base kind for refactoring extraction actions: 'refactor.extract'
- *
- * Example extract actions:
- *
- * - Extract method - Extract function - Extract variable - Extract interface
- * from class - ...
- */
- const char* RefactorExtract = "refactor.extract";
-
- /**
- * Base kind for refactoring inline actions: 'refactor.inline'
- *
- * Example inline actions:
- *
- * - Inline function - Inline variable - Inline constant - ...
- */
- const char* RefactorInline = "refactor.inline";
-
- /**
- * Base kind for refactoring rewrite actions: 'refactor.rewrite'
- *
- * Example rewrite actions:
- *
- * - Convert JavaScript function to class - Add or remove parameter -
- * Encapsulate field - Make method static - Move method to base class - ...
- */
- const char* RefactorRewrite = "refactor.rewrite";
-
- /**
- * Base kind for source actions: `source`
- *
- * Source code actions apply to the entire file.
- */
- const char* Source = "source";
-
- /**
- * Base kind for an organize imports source action: `source.organizeImports`
- */
- const char* SourceOrganizeImports = "source.organizeImports";
-
- const char* COMMAND_ID_APPLY_EDIT = "java.apply.workspaceEdit";
-
- };
+ namespace CodeActionKind {
+
+
+ /**
+ * Base kind for quickfix actions: 'quickfix'
+ */
+ const char* QuickFix = "quickfix";
+
+ /**
+ * Base kind for refactoring actions: 'refactor'
+ */
+ const char* Refactor = "refactor";
+
+ /**
+ * Base kind for refactoring extraction actions: 'refactor.extract'
+ *
+ * Example extract actions:
+ *
+ * - Extract method - Extract function - Extract variable - Extract interface
+ * from class - ...
+ */
+ const char* RefactorExtract = "refactor.extract";
+
+ /**
+ * Base kind for refactoring inline actions: 'refactor.inline'
+ *
+ * Example inline actions:
+ *
+ * - Inline function - Inline variable - Inline constant - ...
+ */
+ const char* RefactorInline = "refactor.inline";
+
+ /**
+ * Base kind for refactoring rewrite actions: 'refactor.rewrite'
+ *
+ * Example rewrite actions:
+ *
+ * - Convert JavaScript function to class - Add or remove parameter -
+ * Encapsulate field - Make method static - Move method to base class - ...
+ */
+ const char* RefactorRewrite = "refactor.rewrite";
+
+ /**
+ * Base kind for source actions: `source`
+ *
+ * Source code actions apply to the entire file.
+ */
+ const char* Source = "source";
+
+ /**
+ * Base kind for an organize imports source action: `source.organizeImports`
+ */
+ const char* SourceOrganizeImports = "source.organizeImports";
+
+ const char* COMMAND_ID_APPLY_EDIT = "java.apply.workspaceEdit";
+
+ };
}
Directory::Directory(const AbsolutePath& path) : path(path.path) {
- lsp::EnsureEndsInSlash(this->path);
+ lsp::EnsureEndsInSlash(this->path);
}
bool Directory::operator==(const Directory& rhs) const {
- return path == rhs.path;
+ return path == rhs.path;
}
bool Directory::operator!=(const Directory& rhs) const {
- return path != rhs.path;
+ return path != rhs.path;
}
Registration Registration::Create(const std::string& method)
{
- Registration reg;
- reg.method = method;
- const boost::uuids::uuid a_uuid = boost::uuids::random_generator()();
- reg.id = to_string(a_uuid);
- return reg;
+ Registration reg;
+ reg.method = method;
+ const boost::uuids::uuid a_uuid = boost::uuids::random_generator()();
+ reg.id = to_string(a_uuid);
+ return reg;
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp b/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
index 79d9a6fc63..fba0edc30c 100644
--- a/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
@@ -10,66 +10,66 @@ bool lsDiagnostic::operator!=(const lsDiagnostic& rhs) const {
std::string lsResponseError::ToString()
{
- std::string info = "code:";
- switch (code)
- {
- case lsErrorCodes::ParseError:
- info += "ParseError\n";
- break;
- case lsErrorCodes::InvalidRequest:
- info += "InvalidRequest\n";
- break;
- case lsErrorCodes::MethodNotFound:
- info += "MethodNotFound\n";
- break;
- case lsErrorCodes::InvalidParams:
- info += "InvalidParams\n";
- break;
- case lsErrorCodes::InternalError:
- info += "InternalError\n";
- break;
- case lsErrorCodes::serverErrorStart:
- info += "serverErrorStart\n";
- break;
- case lsErrorCodes::serverErrorEnd:
- info += "serverErrorEnd\n";
- break;
- case lsErrorCodes::ServerNotInitialized:
- info += "ServerNotInitialized\n";
- break;
- case lsErrorCodes::UnknownErrorCode:
- info += "UnknownErrorCode\n";
- break;
- // Defined by the protocol.
- case lsErrorCodes::RequestCancelled:
- info += "RequestCancelled\n";
- break;
- default:
- {
- std::stringstream ss;
- ss << "unknown code:" << (int32_t)code << std::endl;
- info += ss.str();
- }
- break;
- }
- info += "message:" + message;
- info += "\n";
+ std::string info = "code:";
+ switch (code)
+ {
+ case lsErrorCodes::ParseError:
+ info += "ParseError\n";
+ break;
+ case lsErrorCodes::InvalidRequest:
+ info += "InvalidRequest\n";
+ break;
+ case lsErrorCodes::MethodNotFound:
+ info += "MethodNotFound\n";
+ break;
+ case lsErrorCodes::InvalidParams:
+ info += "InvalidParams\n";
+ break;
+ case lsErrorCodes::InternalError:
+ info += "InternalError\n";
+ break;
+ case lsErrorCodes::serverErrorStart:
+ info += "serverErrorStart\n";
+ break;
+ case lsErrorCodes::serverErrorEnd:
+ info += "serverErrorEnd\n";
+ break;
+ case lsErrorCodes::ServerNotInitialized:
+ info += "ServerNotInitialized\n";
+ break;
+ case lsErrorCodes::UnknownErrorCode:
+ info += "UnknownErrorCode\n";
+ break;
+ // Defined by the protocol.
+ case lsErrorCodes::RequestCancelled:
+ info += "RequestCancelled\n";
+ break;
+ default:
+ {
+ std::stringstream ss;
+ ss << "unknown code:" << (int32_t)code << std::endl;
+ info += ss.str();
+ }
+ break;
+ }
+ info += "message:" + message;
+ info += "\n";
- if(data.has_value())
- {
+ if(data.has_value())
+ {
- info += "data:" + data.value().Data();
- info += "\n";
- }
- return info;
+ info += "data:" + data.value().Data();
+ info += "\n";
+ }
+ return info;
}
void lsResponseError::Write(Writer& visitor) {
- auto& value = *this;
- int code2 = static_cast<int>(this->code);
+ auto& value = *this;
+ int code2 = static_cast<int>(this->code);
- visitor.StartObject();
- REFLECT_MEMBER2("code", code2);
- REFLECT_MEMBER(message);
- visitor.EndObject();
+ visitor.StartObject();
+ REFLECT_MEMBER2("code", code2);
+ REFLECT_MEMBER(message);
+ visitor.EndObject();
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/textDocument.cpp b/graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
index 4d0b6b8713..a95c2b1ea8 100644
--- a/graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/textDocument.cpp
@@ -14,336 +14,336 @@ constexpr unsigned SemanticTokenEncodingSize = 5;
std::string to_string(SemanticTokenType _type)
{
- switch (_type) {
+ switch (_type) {
- case ls_namespace: return "namespace";
- /**
- * Represents a generic type. Acts as a fallback for types which
- * can"t be mapped to a specific type like class or enum.
- */
- case ls_type: return "type";
- case ls_class: return "class";
- case ls_enum: return "enum";
- case ls_interface: return "interface";
- case ls_struct: return "struct";
- case ls_typeParameter: return "typeParameter";
- case ls_parameter: return "parameter";
- case ls_variable: return "variable";
- case ls_property: return "property";
- case ls_enumMember: return "enumMember";
- case ls_event: return "event";
- case ls_function: return "function";
- case ls_method: return "method";
- case ls_macro: return "macro";
- case ls_keyword: return "keyword";
- case ls_modifier: return "modifier";
- case ls_comment: return "comment";
- case ls_string: return "string";
- case ls_number: return "number";
- case ls_regexp: return "regexp";
- case ls_operator: return "operator";
- default:
- return "unknown";
- }
+ case ls_namespace: return "namespace";
+ /**
+ * Represents a generic type. Acts as a fallback for types which
+ * can"t be mapped to a specific type like class or enum.
+ */
+ case ls_type: return "type";
+ case ls_class: return "class";
+ case ls_enum: return "enum";
+ case ls_interface: return "interface";
+ case ls_struct: return "struct";
+ case ls_typeParameter: return "typeParameter";
+ case ls_parameter: return "parameter";
+ case ls_variable: return "variable";
+ case ls_property: return "property";
+ case ls_enumMember: return "enumMember";
+ case ls_event: return "event";
+ case ls_function: return "function";
+ case ls_method: return "method";
+ case ls_macro: return "macro";
+ case ls_keyword: return "keyword";
+ case ls_modifier: return "modifier";
+ case ls_comment: return "comment";
+ case ls_string: return "string";
+ case ls_number: return "number";
+ case ls_regexp: return "regexp";
+ case ls_operator: return "operator";
+ default:
+ return "unknown";
+ }
}
unsigned toSemanticTokenType(std::vector<SemanticTokenType>& modifiers)
{
- unsigned encode_type = 0;
- for (auto bit : modifiers) {
- encode_type = encode_type | (0b00000001 << bit);
- }
- return encode_type;
+ unsigned encode_type = 0;
+ for (auto bit : modifiers) {
+ encode_type = encode_type | (0b00000001 << bit);
+ }
+ return encode_type;
}
std::string to_string(TokenType_JDT _type)
{
- switch (_type)
- {
- case PACKAGE_JDT:return "namespace";
- case CLASS_JDT:return "class";
- case INTERFACE_JDT:return "interface";
- case ENUM_JDT:return "enum";
- case ENUM_MEMBER_JDT:return "enumMember";
- case TYPE_JDT:return "type";
- case TYPE_PARAMETER_JDT:return "typeParameter";
- case ANNOTATION_JDT:return "annotation";
- case ANNOTATION_MEMBER_JDT:return "annotationMember";
- case METHOD_JDT:return "function";
- case PROPERTY_JDT:return "property";
- case VARIABLE_JDT:return "variable";
- case PARAMETER_JDT:return "parameter";
- }
- return "unknown";
+ switch (_type)
+ {
+ case PACKAGE_JDT:return "namespace";
+ case CLASS_JDT:return "class";
+ case INTERFACE_JDT:return "interface";
+ case ENUM_JDT:return "enum";
+ case ENUM_MEMBER_JDT:return "enumMember";
+ case TYPE_JDT:return "type";
+ case TYPE_PARAMETER_JDT:return "typeParameter";
+ case ANNOTATION_JDT:return "annotation";
+ case ANNOTATION_MEMBER_JDT:return "annotationMember";
+ case METHOD_JDT:return "function";
+ case PROPERTY_JDT:return "property";
+ case VARIABLE_JDT:return "variable";
+ case PARAMETER_JDT:return "parameter";
+ }
+ return "unknown";
}
std::string to_string(SemanticTokenModifier modifier)
{
- switch (modifier) {
- case ls_declaration: return "declaration";
- case ls_definition: return "definition";
- case ls_readonly: return "readonly";
- case ls_static: return "static";
- case ls_deprecated: return "deprecated";
- case ls_abstract: return "abstract";
- case ls_async: return "async";
- case ls_modification: return "modification";
- case ls_documentation: return "documentation";
- case ls_defaultLibrary: return "defaultLibrary";
- default:
- return "unknown";
- }
+ switch (modifier) {
+ case ls_declaration: return "declaration";
+ case ls_definition: return "definition";
+ case ls_readonly: return "readonly";
+ case ls_static: return "static";
+ case ls_deprecated: return "deprecated";
+ case ls_abstract: return "abstract";
+ case ls_async: return "async";
+ case ls_modification: return "modification";
+ case ls_documentation: return "documentation";
+ case ls_defaultLibrary: return "defaultLibrary";
+ default:
+ return "unknown";
+ }
}
unsigned toSemanticTokenModifiers(std::vector<SemanticTokenModifier>& modifiers)
{
- unsigned encodedModifiers = 0;
- for (auto bit : modifiers) {
- encodedModifiers = encodedModifiers | (0b00000001 << bit);
- }
- return encodedModifiers;
+ unsigned encodedModifiers = 0;
+ for (auto bit : modifiers) {
+ encodedModifiers = encodedModifiers | (0b00000001 << bit);
+ }
+ return encodedModifiers;
}
std::string toSemanticTokenType(HighlightingKind_clangD kind) {
- switch (kind) {
- case HighlightingKind_clangD::Variable:
- case HighlightingKind_clangD::LocalVariable:
- case HighlightingKind_clangD::StaticField:
- return "variable";
- case HighlightingKind_clangD::Parameter:
- return "parameter";
- case HighlightingKind_clangD::Function:
- return "function";
- case HighlightingKind_clangD::Method:
- return "method";
- case HighlightingKind_clangD::StaticMethod:
- // FIXME: better method with static modifier?
- return "function";
- case HighlightingKind_clangD::Field:
- return "property";
- case HighlightingKind_clangD::Class:
- return "class";
- case HighlightingKind_clangD::Interface:
- return "interface";
- case HighlightingKind_clangD::Enum:
- return "enum";
- case HighlightingKind_clangD::EnumConstant:
- return "enumMember";
- case HighlightingKind_clangD::Typedef:
- case HighlightingKind_clangD::Type:
- return "type";
- case HighlightingKind_clangD::Unknown:
- return "unknown"; // nonstandard
- case HighlightingKind_clangD::Namespace:
- return "namespace";
- case HighlightingKind_clangD::TemplateParameter:
- return "typeParameter";
- case HighlightingKind_clangD::Concept:
- return "concept"; // nonstandard
- case HighlightingKind_clangD::Primitive:
- return "type";
- case HighlightingKind_clangD::Macro:
- return "macro";
- case HighlightingKind_clangD::InactiveCode:
- return "comment";
- }
- return ("unhandled HighlightingKind_clangD");
+ switch (kind) {
+ case HighlightingKind_clangD::Variable:
+ case HighlightingKind_clangD::LocalVariable:
+ case HighlightingKind_clangD::StaticField:
+ return "variable";
+ case HighlightingKind_clangD::Parameter:
+ return "parameter";
+ case HighlightingKind_clangD::Function:
+ return "function";
+ case HighlightingKind_clangD::Method:
+ return "method";
+ case HighlightingKind_clangD::StaticMethod:
+ // FIXME: better method with static modifier?
+ return "function";
+ case HighlightingKind_clangD::Field:
+ return "property";
+ case HighlightingKind_clangD::Class:
+ return "class";
+ case HighlightingKind_clangD::Interface:
+ return "interface";
+ case HighlightingKind_clangD::Enum:
+ return "enum";
+ case HighlightingKind_clangD::EnumConstant:
+ return "enumMember";
+ case HighlightingKind_clangD::Typedef:
+ case HighlightingKind_clangD::Type:
+ return "type";
+ case HighlightingKind_clangD::Unknown:
+ return "unknown"; // nonstandard
+ case HighlightingKind_clangD::Namespace:
+ return "namespace";
+ case HighlightingKind_clangD::TemplateParameter:
+ return "typeParameter";
+ case HighlightingKind_clangD::Concept:
+ return "concept"; // nonstandard
+ case HighlightingKind_clangD::Primitive:
+ return "type";
+ case HighlightingKind_clangD::Macro:
+ return "macro";
+ case HighlightingKind_clangD::InactiveCode:
+ return "comment";
+ }
+ return ("unhandled HighlightingKind_clangD");
}
std::string toSemanticTokenModifier(HighlightingModifier_clangD modifier) {
- switch (modifier) {
- case HighlightingModifier_clangD::Declaration:
- return "declaration";
- case HighlightingModifier_clangD::Deprecated:
- return "deprecated";
- case HighlightingModifier_clangD::Readonly:
- return "readonly";
- case HighlightingModifier_clangD::Static:
- return "static";
- case HighlightingModifier_clangD::Deduced:
- return "deduced"; // nonstandard
- case HighlightingModifier_clangD::Abstract:
- return "abstract";
- case HighlightingModifier_clangD::DependentName:
- return "dependentName"; // nonstandard
- case HighlightingModifier_clangD::DefaultLibrary:
- return "defaultLibrary";
- case HighlightingModifier_clangD::FunctionScope:
- return "functionScope"; // nonstandard
- case HighlightingModifier_clangD::ClassScope:
- return "classScope"; // nonstandard
- case HighlightingModifier_clangD::FileScope:
- return "fileScope"; // nonstandard
- case HighlightingModifier_clangD::GlobalScope:
- return "globalScope"; // nonstandard
- }
- return ("unhandled HighlightingModifier_clangD");
+ switch (modifier) {
+ case HighlightingModifier_clangD::Declaration:
+ return "declaration";
+ case HighlightingModifier_clangD::Deprecated:
+ return "deprecated";
+ case HighlightingModifier_clangD::Readonly:
+ return "readonly";
+ case HighlightingModifier_clangD::Static:
+ return "static";
+ case HighlightingModifier_clangD::Deduced:
+ return "deduced"; // nonstandard
+ case HighlightingModifier_clangD::Abstract:
+ return "abstract";
+ case HighlightingModifier_clangD::DependentName:
+ return "dependentName"; // nonstandard
+ case HighlightingModifier_clangD::DefaultLibrary:
+ return "defaultLibrary";
+ case HighlightingModifier_clangD::FunctionScope:
+ return "functionScope"; // nonstandard
+ case HighlightingModifier_clangD::ClassScope:
+ return "classScope"; // nonstandard
+ case HighlightingModifier_clangD::FileScope:
+ return "fileScope"; // nonstandard
+ case HighlightingModifier_clangD::GlobalScope:
+ return "globalScope"; // nonstandard
+ }
+ return ("unhandled HighlightingModifier_clangD");
}
bool operator==(const SemanticToken& l, const SemanticToken& r) {
- return std::tie(l.deltaLine, l.deltaStart, l.length, l.tokenType,
- l.tokenModifiers) == std::tie(r.deltaLine, r.deltaStart,
- r.length, r.tokenType,
- r.tokenModifiers);
+ return std::tie(l.deltaLine, l.deltaStart, l.length, l.tokenType,
+ l.tokenModifiers) == std::tie(r.deltaLine, r.deltaStart,
+ r.length, r.tokenType,
+ r.tokenModifiers);
}
std::vector<int32_t> SemanticTokens::encodeTokens(std::vector<SemanticToken>& tokens)
{
- std::vector<int32_t> result;
- result.reserve(SemanticTokenEncodingSize * tokens.size());
- for (const auto& tok : tokens)
- {
- result.push_back(tok.deltaLine);
- result.push_back(tok.deltaStart);
- result.push_back(tok.length);
- result.push_back(tok.tokenType);
- result.push_back(tok.tokenModifiers);
- }
- assert(result.size() == SemanticTokenEncodingSize * tokens.size());
- return result;
+ std::vector<int32_t> result;
+ result.reserve(SemanticTokenEncodingSize * tokens.size());
+ for (const auto& tok : tokens)
+ {
+ result.push_back(tok.deltaLine);
+ result.push_back(tok.deltaStart);
+ result.push_back(tok.length);
+ result.push_back(tok.tokenType);
+ result.push_back(tok.tokenModifiers);
+ }
+ assert(result.size() == SemanticTokenEncodingSize * tokens.size());
+ return result;
}
void Reflect(Reader& visitor, TextDocumentComplete::Either& value)
{
- if(visitor.IsArray())
- {
- Reflect(visitor, value.first);
- }
- else
- {
+ if(visitor.IsArray())
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
- Reflect(visitor, value.second);
- }
+ Reflect(visitor, value.second);
+ }
}
void Reflect(Reader& visitor, TextDocumentDocumentSymbol::Either& value)
{
- if (visitor.HasMember("location"))
- {
- Reflect(visitor, value.first);
- }
- else
- {
- Reflect(visitor, value.second);
- }
+ if (visitor.HasMember("location"))
+ {
+ Reflect(visitor, value.first);
+ }
+ else
+ {
+ Reflect(visitor, value.second);
+ }
}
void Reflect(Reader& visitor, std::pair<boost::optional<std::string>, boost::optional<lsMarkedString>>& value)
{
- if (!visitor.IsString())
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
+ if (!visitor.IsString())
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
}
void Reflect(Reader& visitor, std::pair<boost::optional<std::string>, boost::optional<MarkupContent>>& value)
{
- if (!visitor.IsString())
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
+ if (!visitor.IsString())
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
}
void Reflect(Reader& visitor, TextDocumentHover::Either& value)
{
- JsonReader& reader = dynamic_cast<JsonReader&>(visitor);
- if (reader.IsArray())
- {
- Reflect(visitor, value.first);
- }
- else if(reader.m_->IsObject())
- {
- Reflect(visitor, value.second);
- }
+ JsonReader& reader = dynamic_cast<JsonReader&>(visitor);
+ if (reader.IsArray())
+ {
+ Reflect(visitor, value.first);
+ }
+ else if(reader.m_->IsObject())
+ {
+ Reflect(visitor, value.second);
+ }
}
void Reflect(Reader& visitor, TextDocumentPrepareRenameResult& value)
{
- if (visitor.HasMember("placeholder"))
- {
- Reflect(visitor, value.second);
- }
- else
- {
- Reflect(visitor, value.first);
- }
+ if (visitor.HasMember("placeholder"))
+ {
+ Reflect(visitor, value.second);
+ }
+ else
+ {
+ Reflect(visitor, value.first);
+ }
}
namespace
- RefactorProposalUtility
+ RefactorProposalUtility
{
- const char* APPLY_REFACTORING_COMMAND_ID = "java.action.applyRefactoringCommand";
- const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND = "extractVariableAllOccurrence";
- const char* EXTRACT_VARIABLE_COMMAND = "extractVariable";
- const char* EXTRACT_CONSTANT_COMMAND = "extractConstant";
- const char* EXTRACT_METHOD_COMMAND = "extractMethod";
- const char* EXTRACT_FIELD_COMMAND = "extractField";
- const char* CONVERT_VARIABLE_TO_FIELD_COMMAND = "convertVariableToField";
- const char* MOVE_FILE_COMMAND = "moveFile";
- const char* MOVE_INSTANCE_METHOD_COMMAND = "moveInstanceMethod";
- const char* MOVE_STATIC_MEMBER_COMMAND = "moveStaticMember";
- const char* MOVE_TYPE_COMMAND = "moveType";
+ const char* APPLY_REFACTORING_COMMAND_ID = "java.action.applyRefactoringCommand";
+ const char* EXTRACT_VARIABLE_ALL_OCCURRENCE_COMMAND = "extractVariableAllOccurrence";
+ const char* EXTRACT_VARIABLE_COMMAND = "extractVariable";
+ const char* EXTRACT_CONSTANT_COMMAND = "extractConstant";
+ const char* EXTRACT_METHOD_COMMAND = "extractMethod";
+ const char* EXTRACT_FIELD_COMMAND = "extractField";
+ const char* CONVERT_VARIABLE_TO_FIELD_COMMAND = "convertVariableToField";
+ const char* MOVE_FILE_COMMAND = "moveFile";
+ const char* MOVE_INSTANCE_METHOD_COMMAND = "moveInstanceMethod";
+ const char* MOVE_STATIC_MEMBER_COMMAND = "moveStaticMember";
+ const char* MOVE_TYPE_COMMAND = "moveType";
};
namespace QuickAssistProcessor {
- const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID = "org.eclipse.jdt.ls.correction.splitJoinVariableDeclaration.assist"; //$NON-NLS-1$
- const char* CONVERT_FOR_LOOP_ID = "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
- const char* ASSIGN_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
- const char* ASSIGN_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
- const char* ASSIGN_PARAM_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
- const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID = "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
- const char* ADD_BLOCK_ID = "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
- const char* EXTRACT_LOCAL_ID = "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
- const char* EXTRACT_LOCAL_NOT_REPLACE_ID = "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
- const char* EXTRACT_CONSTANT_ID = "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
- const char* INLINE_LOCAL_ID = "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
- const char* CONVERT_LOCAL_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
- const char* CONVERT_ANONYMOUS_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
- const char* CONVERT_TO_STRING_BUFFER_ID = "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
- const char* CONVERT_TO_MESSAGE_FORMAT_ID = "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
- const char* EXTRACT_METHOD_INPLACE_ID = "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
+ const char* SPLIT_JOIN_VARIABLE_DECLARATION_ID = "org.eclipse.jdt.ls.correction.splitJoinVariableDeclaration.assist"; //$NON-NLS-1$
+ const char* CONVERT_FOR_LOOP_ID = "org.eclipse.jdt.ls.correction.convertForLoop.assist"; //$NON-NLS-1$
+ const char* ASSIGN_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.assignToLocal.assist"; //$NON-NLS-1$
+ const char* ASSIGN_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignToField.assist"; //$NON-NLS-1$
+ const char* ASSIGN_PARAM_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.assignParamToField.assist"; //$NON-NLS-1$
+ const char* ASSIGN_ALL_PARAMS_TO_NEW_FIELDS_ID = "org.eclipse.jdt.ls.correction.assignAllParamsToNewFields.assist"; //$NON-NLS-1$
+ const char* ADD_BLOCK_ID = "org.eclipse.jdt.ls.correction.addBlock.assist"; //$NON-NLS-1$
+ const char* EXTRACT_LOCAL_ID = "org.eclipse.jdt.ls.correction.extractLocal.assist"; //$NON-NLS-1$
+ const char* EXTRACT_LOCAL_NOT_REPLACE_ID = "org.eclipse.jdt.ls.correction.extractLocalNotReplaceOccurrences.assist"; //$NON-NLS-1$
+ const char* EXTRACT_CONSTANT_ID = "org.eclipse.jdt.ls.correction.extractConstant.assist"; //$NON-NLS-1$
+ const char* INLINE_LOCAL_ID = "org.eclipse.jdt.ls.correction.inlineLocal.assist"; //$NON-NLS-1$
+ const char* CONVERT_LOCAL_TO_FIELD_ID = "org.eclipse.jdt.ls.correction.convertLocalToField.assist"; //$NON-NLS-1$
+ const char* CONVERT_ANONYMOUS_TO_LOCAL_ID = "org.eclipse.jdt.ls.correction.convertAnonymousToLocal.assist"; //$NON-NLS-1$
+ const char* CONVERT_TO_STRING_BUFFER_ID = "org.eclipse.jdt.ls.correction.convertToStringBuffer.assist"; //$NON-NLS-1$
+ const char* CONVERT_TO_MESSAGE_FORMAT_ID = "org.eclipse.jdt.ls.correction.convertToMessageFormat.assist"; //$NON-NLS-1$;
+ const char* EXTRACT_METHOD_INPLACE_ID = "org.eclipse.jdt.ls.correction.extractMethodInplace.assist"; //$NON-NLS-1$;
- const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND = "convertAnonymousClassToNestedCommand";
+ const char* CONVERT_ANONYMOUS_CLASS_TO_NESTED_COMMAND = "convertAnonymousClassToNestedCommand";
};
void Reflect(Reader& reader, TypeHierarchyDirection& value) {
- if (!reader.IsString())
- {
- value = TypeHierarchyDirection::Both;
- return;
- }
- std::string v = reader.GetString();
- if (v == "Children")
- value = TypeHierarchyDirection::Both;
- else if (v == "Parents")
- value = TypeHierarchyDirection::Parents;
- else if (v == "Both")
- value = TypeHierarchyDirection::Both;
+ if (!reader.IsString())
+ {
+ value = TypeHierarchyDirection::Both;
+ return;
+ }
+ std::string v = reader.GetString();
+ if (v == "Children")
+ value = TypeHierarchyDirection::Both;
+ else if (v == "Parents")
+ value = TypeHierarchyDirection::Parents;
+ else if (v == "Both")
+ value = TypeHierarchyDirection::Both;
}
void Reflect(Writer& writer, TypeHierarchyDirection& value) {
- switch (value)
- {
- case TypeHierarchyDirection::Children:
- writer.String("Children");
- break;
- case TypeHierarchyDirection::Parents:
- writer.String("Parents");
- break;
- case TypeHierarchyDirection::Both:
- writer.String("Both");
- break;
- }
+ switch (value)
+ {
+ case TypeHierarchyDirection::Children:
+ writer.String("Children");
+ break;
+ case TypeHierarchyDirection::Parents:
+ writer.String("Parents");
+ break;
+ case TypeHierarchyDirection::Both:
+ writer.String("Both");
+ break;
+ }
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/utils.cpp b/graphics/asymptote/LspCpp/src/lsp/utils.cpp
index 32c70f517a..445f4a72cf 100644
--- a/graphics/asymptote/LspCpp/src/lsp/utils.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/utils.cpp
@@ -322,118 +322,118 @@ bool IsDirectory(const std::string& path) {
// links. This is a variant of realpath(2), C++ rewrite of
// https://github.com/freebsd/freebsd/blob/master/lib/libc/stdlib/realpath.c
AbsolutePath RealPathNotExpandSymlink(std::string path,
- bool ensure_exists) {
- if (path.empty()) {
- errno = EINVAL;
- return {};
- }
- if (path[0] == '\0') {
- errno = ENOENT;
- return {};
- }
-
- // Do not use PATH_MAX because it is tricky on Linux.
- // See https://eklitzke.org/path-max-is-tricky
- char tmp[1024];
- std::string resolved;
- size_t i = 0;
- struct stat sb;
- if (path[0] == '/') {
- resolved = "/";
- i = 1;
- }
- else {
- if (!getcwd(tmp, sizeof tmp) && ensure_exists)
- return {};
- resolved = tmp;
- }
-
- while (i < path.size()) {
- auto j = path.find('/', i);
- if (j == std::string::npos)
- j = path.size();
- auto next_token = path.substr(i, j - i);
- i = j + 1;
- if (resolved.back() != '/')
- resolved += '/';
- if (next_token.empty() || next_token == ".") {
- // Handle consequential slashes and "."
- continue;
- }
- else if (next_token == "..") {
- // Strip the last path component except when it is single "/"
- if (resolved.size() > 1)
- resolved.resize(resolved.rfind('/', resolved.size() - 2) + 1);
- continue;
- }
- // Append the next path component.
- // Here we differ from realpath(3), we use stat(2) instead of
- // lstat(2) because we do not want to resolve symlinks.
- resolved += next_token;
- if (stat(resolved.c_str(), &sb) != 0 && ensure_exists)
- return {};
- if (!S_ISDIR(sb.st_mode) && j < path.size() && ensure_exists) {
- errno = ENOTDIR;
- return {};
- }
- }
-
- // Remove trailing slash except when a single "/".
- if (resolved.size() > 1 && resolved.back() == '/')
- resolved.pop_back();
- return AbsolutePath(resolved, true /*validate*/);
+ bool ensure_exists) {
+ if (path.empty()) {
+ errno = EINVAL;
+ return {};
+ }
+ if (path[0] == '\0') {
+ errno = ENOENT;
+ return {};
+ }
+
+ // Do not use PATH_MAX because it is tricky on Linux.
+ // See https://eklitzke.org/path-max-is-tricky
+ char tmp[1024];
+ std::string resolved;
+ size_t i = 0;
+ struct stat sb;
+ if (path[0] == '/') {
+ resolved = "/";
+ i = 1;
+ }
+ else {
+ if (!getcwd(tmp, sizeof tmp) && ensure_exists)
+ return {};
+ resolved = tmp;
+ }
+
+ while (i < path.size()) {
+ auto j = path.find('/', i);
+ if (j == std::string::npos)
+ j = path.size();
+ auto next_token = path.substr(i, j - i);
+ i = j + 1;
+ if (resolved.back() != '/')
+ resolved += '/';
+ if (next_token.empty() || next_token == ".") {
+ // Handle consequential slashes and "."
+ continue;
+ }
+ else if (next_token == "..") {
+ // Strip the last path component except when it is single "/"
+ if (resolved.size() > 1)
+ resolved.resize(resolved.rfind('/', resolved.size() - 2) + 1);
+ continue;
+ }
+ // Append the next path component.
+ // Here we differ from realpath(3), we use stat(2) instead of
+ // lstat(2) because we do not want to resolve symlinks.
+ resolved += next_token;
+ if (stat(resolved.c_str(), &sb) != 0 && ensure_exists)
+ return {};
+ if (!S_ISDIR(sb.st_mode) && j < path.size() && ensure_exists) {
+ errno = ENOTDIR;
+ return {};
+ }
+ }
+
+ // Remove trailing slash except when a single "/".
+ if (resolved.size() > 1 && resolved.back() == '/')
+ resolved.pop_back();
+ return AbsolutePath(resolved, true /*validate*/);
}
#endif
AbsolutePath NormalizePath(const std::string& path0,
- bool ensure_exists ,
- bool force_lower_on_windows) {
+ bool ensure_exists ,
+ bool force_lower_on_windows) {
#ifdef _WIN32
- std::wstring path = lsp::s2ws(path0);
-
- wchar_t buffer[MAX_PATH] = (L"");
-
- // Normalize the path name, ie, resolve `..`.
- unsigned long len = GetFullPathNameW(path.c_str(), MAX_PATH, buffer, nullptr);
- if (!len)
- return {};
- path = std::wstring(buffer, len);
-
- // Get the actual casing of the path, ie, if the file on disk is `C:\FooBar`
- // and this function is called with `c:\fooBar` this will return `c:\FooBar`.
- // (drive casing is lowercase).
- if (ensure_exists) {
- len = GetLongPathNameW(path.c_str(), buffer, MAX_PATH);
- if (!len)
- return {};
- path = std::wstring(buffer, len);
- }
-
- // Empty paths have no meaning.
- if (path.empty())
- return {};
-
- // We may need to normalize the drive name to upper-case; at the moment
- // vscode sends lower-case path names.
- /*
- path[0] = toupper(path[0]);
- */
- // Make the path all lower-case, since windows is case-insensitive.
- if (force_lower_on_windows) {
- for (size_t i = 0; i < path.size(); ++i)
- path[i] = (wchar_t)tolower(path[i]);
- }
-
- // cquery assumes forward-slashes.
- std::replace(path.begin(), path.end(), '\\', '/');
-
-
- return AbsolutePath(lsp::ws2s(path), false /*validate*/);
+ std::wstring path = lsp::s2ws(path0);
+
+ wchar_t buffer[MAX_PATH] = (L"");
+
+ // Normalize the path name, ie, resolve `..`.
+ unsigned long len = GetFullPathNameW(path.c_str(), MAX_PATH, buffer, nullptr);
+ if (!len)
+ return {};
+ path = std::wstring(buffer, len);
+
+ // Get the actual casing of the path, ie, if the file on disk is `C:\FooBar`
+ // and this function is called with `c:\fooBar` this will return `c:\FooBar`.
+ // (drive casing is lowercase).
+ if (ensure_exists) {
+ len = GetLongPathNameW(path.c_str(), buffer, MAX_PATH);
+ if (!len)
+ return {};
+ path = std::wstring(buffer, len);
+ }
+
+ // Empty paths have no meaning.
+ if (path.empty())
+ return {};
+
+ // We may need to normalize the drive name to upper-case; at the moment
+ // vscode sends lower-case path names.
+ /*
+ path[0] = toupper(path[0]);
+ */
+ // Make the path all lower-case, since windows is case-insensitive.
+ if (force_lower_on_windows) {
+ for (size_t i = 0; i < path.size(); ++i)
+ path[i] = (wchar_t)tolower(path[i]);
+ }
+
+ // cquery assumes forward-slashes.
+ std::replace(path.begin(), path.end(), '\\', '/');
+
+
+ return AbsolutePath(lsp::ws2s(path), false /*validate*/);
#else
- return RealPathNotExpandSymlink(path0, ensure_exists);
+ return RealPathNotExpandSymlink(path0, ensure_exists);
#endif
@@ -445,166 +445,166 @@ AbsolutePath NormalizePath(const std::string& path0,
// We use a UTF-8 iterator to approximate UTF-16 in the specification (weird).
// This is good enough and fails only for UTF-16 surrogate pairs.
int GetOffsetForPosition(lsPosition position, const std::string& content) {
- size_t i = 0;
- // Iterate lines until we have found the correct line.
- while (position.line > 0 && i < content.size()) {
- if (content[i] == '\n')
- position.line--;
- i++;
- }
- // Iterate characters on the target line.
- while (position.character > 0 && i < content.size()) {
- if (uint8_t(content[i++]) >= 128) {
- // Skip 0b10xxxxxx
- while (i < content.size() && uint8_t(content[i]) >= 128 &&
- uint8_t(content[i]) < 192)
- i++;
- }
- position.character--;
- }
- return int(i);
+ size_t i = 0;
+ // Iterate lines until we have found the correct line.
+ while (position.line > 0 && i < content.size()) {
+ if (content[i] == '\n')
+ position.line--;
+ i++;
+ }
+ // Iterate characters on the target line.
+ while (position.character > 0 && i < content.size()) {
+ if (uint8_t(content[i++]) >= 128) {
+ // Skip 0b10xxxxxx
+ while (i < content.size() && uint8_t(content[i]) >= 128 &&
+ uint8_t(content[i]) < 192)
+ i++;
+ }
+ position.character--;
+ }
+ return int(i);
}
lsPosition GetPositionForOffset(size_t offset,const std::string& content) {
- lsPosition result;
- for (size_t i = 0; i < offset && i < content.length(); ++i) {
- if (content[i] == '\n') {
- result.line++;
- result.character = 0;
- }
- else {
- result.character++;
- }
- }
- return result;
+ lsPosition result;
+ for (size_t i = 0; i < offset && i < content.length(); ++i) {
+ if (content[i] == '\n') {
+ result.line++;
+ result.character = 0;
+ }
+ else {
+ result.character++;
+ }
+ }
+ return result;
}
lsPosition CharPos(const std::string& search,
- char character,
- int character_offset) {
- lsPosition result;
- size_t index = 0;
- while (index < search.size()) {
- char c = search[index];
- if (c == character)
- break;
- if (c == '\n') {
- result.line += 1;
- result.character = 0;
- }
- else {
- result.character += 1;
- }
- ++index;
- }
- assert(index < search.size());
- result.character += character_offset;
- return result;
+ char character,
+ int character_offset) {
+ lsPosition result;
+ size_t index = 0;
+ while (index < search.size()) {
+ char c = search[index];
+ if (c == character)
+ break;
+ if (c == '\n') {
+ result.line += 1;
+ result.character = 0;
+ }
+ else {
+ result.character += 1;
+ }
+ ++index;
+ }
+ assert(index < search.size());
+ result.character += character_offset;
+ return result;
}
void scanDirsUseRecursive(const std::wstring& rootPath, std::vector<std::wstring>& ret)
{
- namespace fs = boost::filesystem;
- fs::path fullpath(rootPath);
- if (!fs::exists(fullpath)) { return; }
- fs::recursive_directory_iterator end_iter;
- for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
- try {
- if (fs::is_directory(*iter)) {
- ret.push_back(iter->path().wstring());
- }
- }
- catch (const std::exception& ex) {
- continue;
- }
- }
+ namespace fs = boost::filesystem;
+ fs::path fullpath(rootPath);
+ if (!fs::exists(fullpath)) { return; }
+ fs::recursive_directory_iterator end_iter;
+ for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
+ try {
+ if (fs::is_directory(*iter)) {
+ ret.push_back(iter->path().wstring());
+ }
+ }
+ catch (const std::exception& ex) {
+ continue;
+ }
+ }
}
void scanDirsNoRecursive(const std::wstring& rootPath, std::vector<std::wstring>& ret)
{
- namespace fs = boost::filesystem;
- boost::filesystem::path myPath(rootPath);
- if (!fs::exists(rootPath)) { return; }
- boost::filesystem::directory_iterator endIter;
- for (boost::filesystem::directory_iterator iter(myPath); iter != endIter; iter++) {
- if (boost::filesystem::is_directory(*iter)) {
- ret.push_back(iter->path().wstring());
- }
- }
+ namespace fs = boost::filesystem;
+ boost::filesystem::path myPath(rootPath);
+ if (!fs::exists(rootPath)) { return; }
+ boost::filesystem::directory_iterator endIter;
+ for (boost::filesystem::directory_iterator iter(myPath); iter != endIter; iter++) {
+ if (boost::filesystem::is_directory(*iter)) {
+ ret.push_back(iter->path().wstring());
+ }
+ }
}
void scanFilesUseRecursive(
- const std::wstring& rootPath,
- std::vector<std::wstring>& ret,
- std::wstring suf) {
- namespace fs = boost::filesystem;
- boost::to_lower(suf);
-
- fs::path fullpath(rootPath);
- if (!fs::exists(fullpath)) { return; }
- fs::recursive_directory_iterator end_iter;
- for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
- try {
- if (!fs::is_directory(*iter) && fs::is_regular_file(*iter)) {
- auto temp_path = iter->path().wstring();
- auto size = suf.size();
- if (!size)
- {
- ret.push_back(std::move(temp_path));
- }
- else
- {
-
- if (temp_path.size() < size) continue;
- auto suf_temp = temp_path.substr(temp_path.size() - size);
- boost::to_lower(suf_temp);
- if (suf_temp == suf)
- {
- ret.push_back(std::move(temp_path));
- }
- }
- }
- }
- catch (const std::exception&) {
- continue;
- }
- }
+ const std::wstring& rootPath,
+ std::vector<std::wstring>& ret,
+ std::wstring suf) {
+ namespace fs = boost::filesystem;
+ boost::to_lower(suf);
+
+ fs::path fullpath(rootPath);
+ if (!fs::exists(fullpath)) { return; }
+ fs::recursive_directory_iterator end_iter;
+ for (fs::recursive_directory_iterator iter(fullpath); iter != end_iter; iter++) {
+ try {
+ if (!fs::is_directory(*iter) && fs::is_regular_file(*iter)) {
+ auto temp_path = iter->path().wstring();
+ auto size = suf.size();
+ if (!size)
+ {
+ ret.push_back(std::move(temp_path));
+ }
+ else
+ {
+
+ if (temp_path.size() < size) continue;
+ auto suf_temp = temp_path.substr(temp_path.size() - size);
+ boost::to_lower(suf_temp);
+ if (suf_temp == suf)
+ {
+ ret.push_back(std::move(temp_path));
+ }
+ }
+ }
+ }
+ catch (const std::exception&) {
+ continue;
+ }
+ }
}
void scanFileNamesUseRecursive(const std::wstring& rootPath, std::vector<std::wstring>& ret,
- std::wstring strSuf)
+ std::wstring strSuf)
{
- scanFilesUseRecursive(rootPath, ret, strSuf);
- std::vector<std::wstring> names;
- for (auto& it : ret)
- {
- if (it.size() >= rootPath.size())
- {
- names.push_back(it.substr(rootPath.size()));
- }
- }
- ret.swap(names);
+ scanFilesUseRecursive(rootPath, ret, strSuf);
+ std::vector<std::wstring> names;
+ for (auto& it : ret)
+ {
+ if (it.size() >= rootPath.size())
+ {
+ names.push_back(it.substr(rootPath.size()));
+ }
+ }
+ ret.swap(names);
}
void scanFileNamesUseRecursive(const std::string& rootPath, std::vector<std::string>& ret, std::string strSuf)
{
- std::vector<std::wstring> out;
- scanFileNamesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
- for (auto& it : out)
- {
- ret.push_back(ws2s(it));
- }
+ std::vector<std::wstring> out;
+ scanFileNamesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
+ for (auto& it : out)
+ {
+ ret.push_back(ws2s(it));
+ }
}
void scanFilesUseRecursive(const std::string& rootPath, std::vector<std::string>& ret, std::string strSuf)
{
- std::vector<std::wstring> out;
- scanFilesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
- for (auto& it : out)
- {
- ret.push_back(ws2s(it));
- }
+ std::vector<std::wstring> out;
+ scanFilesUseRecursive(s2ws(rootPath), out, s2ws(strSuf));
+ for (auto& it : out)
+ {
+ ret.push_back(ws2s(it));
+ }
}
diff --git a/graphics/asymptote/LspCpp/src/lsp/working_files.cpp b/graphics/asymptote/LspCpp/src/lsp/working_files.cpp
index 0900021037..4eb4b29053 100644
--- a/graphics/asymptote/LspCpp/src/lsp/working_files.cpp
+++ b/graphics/asymptote/LspCpp/src/lsp/working_files.cpp
@@ -139,7 +139,7 @@ bool WorkingFiles::OnClose(const lsTextDocumentIdentifier& close) {
if( findIt != d_ptr->files.end())
{
d_ptr->files.erase(findIt);
- return true;
+ return true;
}
return false;
}
@@ -183,4 +183,4 @@ bool WorkingFiles::GetFileBufferContent(std::shared_ptr<WorkingFile>& file, std:
void WorkingFiles::Clear() {
std::lock_guard<std::mutex> lock(d_ptr->files_mutex);
d_ptr->files.clear();
-} \ No newline at end of file
+}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
index 59ae4c4101..2d32ea3539 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.cpp
@@ -69,7 +69,7 @@ JsonReader& JsonReader::Member(const char* name) {
if (!mError) {
if (CURRENT.IsObject() && TOP.state == JsonReaderStackItem::Started) {
Value::ConstMemberIterator memberItr = CURRENT.FindMember(name);
- if (memberItr != CURRENT.MemberEnd())
+ if (memberItr != CURRENT.MemberEnd())
STACK->push(JsonReaderStackItem(&memberItr->value, JsonReaderStackItem::BeforeStart));
else
mError = true;
@@ -218,7 +218,7 @@ JsonWriter::JsonWriter() : mWriter(), mStream() {
mWriter = new PrettyWriter<StringBuffer>(*STREAM);
}
-JsonWriter::~JsonWriter() {
+JsonWriter::~JsonWriter() {
delete WRITER;
delete STREAM;
}
@@ -249,7 +249,7 @@ bool JsonWriter::HasMember(const char*) const {
}
JsonWriter& JsonWriter::StartArray(size_t*) {
- WRITER->StartArray();
+ WRITER->StartArray();
return *this;
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h b/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
index 285ca73d6a..72d0cdd65c 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archiver.h
@@ -17,7 +17,7 @@ public:
/// Starts an object
Archiver& StartObject();
-
+
/// After calling StartObject(), assign a member with a name
Archiver& Member(const char* name);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
index 417a421a31..3b84e358b7 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/archiver/archivertest.cpp
@@ -55,7 +55,7 @@ void test1() {
//////////////////////////////////////////////////////////////////////////////
// Test2: std::vector <=> JSON array
-//
+//
// You can map a JSON array to other data structures as well
struct Group {
@@ -67,7 +67,7 @@ struct Group {
template <typename Archiver>
Archiver& operator&(Archiver& ar, Group& g) {
ar.StartObject();
-
+
ar.Member("groupName");
ar & g.groupName;
@@ -203,14 +203,14 @@ class Canvas {
public:
Canvas() : shapes_() {}
~Canvas() { Clear(); }
-
+
void Clear() {
for (std::vector<Shape*>::iterator itr = shapes_.begin(); itr != shapes_.end(); ++itr)
delete *itr;
}
void AddShape(Shape* shape) { shapes_.push_back(shape); }
-
+
void Print(std::ostream& os) {
for (std::vector<Shape*>::iterator itr = shapes_.begin(); itr != shapes_.end(); ++itr) {
(*itr)->Print(os);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
index 7da37e9c50..c56640bc50 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/capitalize/capitalize.cpp
@@ -1,6 +1,6 @@
// JSON condenser example
-// This example parses JSON from stdin with validation,
+// This example parses JSON from stdin with validation,
// and re-output the JSON content to stdout with all string capitalized, and without whitespace.
#include "rapidjson/reader.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
index 46dc350439..f2d05ca694 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/condense/condense.cpp
@@ -1,6 +1,6 @@
// JSON condenser example
-// This example parses JSON text from stdin with validation,
+// This example parses JSON text from stdin with validation,
// and re-output the JSON content to stdout without whitespace.
#include "rapidjson/reader.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
index c34a050dc8..3ef72314ef 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkey/filterkey.cpp
@@ -19,7 +19,7 @@ class FilterKeyHandler {
public:
typedef char Ch;
- FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
+ FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
outputHandler_(outputHandler), keyString_(keyString), keyLength_(keyLength), filterValueDepth_(), filteredKeyCount_()
{}
@@ -32,8 +32,8 @@ public:
bool Double(double d) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.Double(d) && EndValue(); }
bool RawNumber(const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.RawNumber(str, len, copy) && EndValue(); }
bool String (const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.String (str, len, copy) && EndValue(); }
-
- bool StartObject() {
+
+ bool StartObject() {
if (filterValueDepth_ > 0) {
filterValueDepth_++;
return true;
@@ -43,9 +43,9 @@ public:
return outputHandler_.StartObject();
}
}
-
- bool Key(const Ch* str, SizeType len, bool copy) {
- if (filterValueDepth_ > 0)
+
+ bool Key(const Ch* str, SizeType len, bool copy) {
+ if (filterValueDepth_ > 0)
return true;
else if (len == keyLength_ && std::memcmp(str, keyString_, len) == 0) {
filterValueDepth_ = 1;
@@ -97,7 +97,7 @@ private:
filterValueDepth_ = 0;
return true;
}
-
+
OutputHandler& outputHandler_;
const char* keyString_;
const SizeType keyLength_;
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
index 732cc81f13..b8cfdf0c80 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/filterkeydom/filterkeydom.cpp
@@ -20,7 +20,7 @@ class FilterKeyHandler {
public:
typedef char Ch;
- FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
+ FilterKeyHandler(OutputHandler& outputHandler, const Ch* keyString, SizeType keyLength) :
outputHandler_(outputHandler), keyString_(keyString), keyLength_(keyLength), filterValueDepth_(), filteredKeyCount_()
{}
@@ -33,8 +33,8 @@ public:
bool Double(double d) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.Double(d) && EndValue(); }
bool RawNumber(const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.RawNumber(str, len, copy) && EndValue(); }
bool String (const Ch* str, SizeType len, bool copy) { return filterValueDepth_ > 0 ? EndValue() : outputHandler_.String (str, len, copy) && EndValue(); }
-
- bool StartObject() {
+
+ bool StartObject() {
if (filterValueDepth_ > 0) {
filterValueDepth_++;
return true;
@@ -44,9 +44,9 @@ public:
return outputHandler_.StartObject();
}
}
-
- bool Key(const Ch* str, SizeType len, bool copy) {
- if (filterValueDepth_ > 0)
+
+ bool Key(const Ch* str, SizeType len, bool copy) {
+ if (filterValueDepth_ > 0)
return true;
else if (len == keyLength_ && std::memcmp(str, keyString_, len) == 0) {
filterValueDepth_ = 1;
@@ -112,7 +112,7 @@ class FilterKeyReader {
public:
typedef char Ch;
- FilterKeyReader(InputStream& is, const Ch* keyString, SizeType keyLength) :
+ FilterKeyReader(InputStream& is, const Ch* keyString, SizeType keyLength) :
is_(is), keyString_(keyString), keyLength_(keyLength), parseResult_()
{}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
index 954aa2b907..b08efc6087 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/jsonx/jsonx.cpp
@@ -1,7 +1,7 @@
// JSON to JSONx conversion example, using SAX API.
// JSONx is an IBM standard format to represent JSON as XML.
// https://www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/json_jsonx.html
-// This example parses JSON text from stdin with validation,
+// This example parses JSON text from stdin with validation,
// and convert to JSONx format to stdout.
// Need compile with -D__STDC_FORMAT_MACROS for defining PRId64 and PRIu64 macros.
@@ -24,34 +24,34 @@ public:
bool Null() {
return WriteStartElement("null", true);
}
-
+
bool Bool(bool b) {
- return
+ return
WriteStartElement("boolean") &&
WriteString(b ? "true" : "false") &&
WriteEndElement("boolean");
}
-
+
bool Int(int i) {
char buffer[12];
return WriteNumberElement(buffer, sprintf(buffer, "%d", i));
}
-
+
bool Uint(unsigned i) {
char buffer[11];
return WriteNumberElement(buffer, sprintf(buffer, "%u", i));
}
-
+
bool Int64(int64_t i) {
char buffer[21];
return WriteNumberElement(buffer, sprintf(buffer, "%" PRId64, i));
}
-
+
bool Uint64(uint64_t i) {
char buffer[21];
return WriteNumberElement(buffer, sprintf(buffer, "%" PRIu64, i));
}
-
+
bool Double(double d) {
char buffer[30];
return WriteNumberElement(buffer, sprintf(buffer, "%.17g", d));
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
index f627f4d863..8824ef7867 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/lookaheadparser/lookaheadparser.cpp
@@ -75,12 +75,12 @@ protected:
kEnteringArray,
kExitingArray
};
-
+
Value v_;
LookaheadParsingState st_;
Reader r_;
InsituStringStream ss_;
-
+
static const int parseFlags = kParseDefaultFlags | kParseInsituFlag;
};
@@ -94,14 +94,14 @@ void LookaheadParserHandler::ParseNext() {
st_ = kError;
return;
}
-
+
r_.IterativeParseNext<parseFlags>(ss_, *this);
}
class LookaheadParser : protected LookaheadParserHandler {
public:
LookaheadParser(char* str) : LookaheadParserHandler(str) {}
-
+
bool EnterObject();
bool EnterArray();
const char* NextObjectKey();
@@ -117,9 +117,9 @@ public:
void SkipValue();
Value* PeekValue();
int PeekType(); // returns a rapidjson::Type, or -1 for no value (at end of object/array)
-
+
bool IsValid() { return st_ != kError; }
-
+
protected:
void SkipOut(int depth);
};
@@ -129,7 +129,7 @@ bool LookaheadParser::EnterObject() {
st_ = kError;
return false;
}
-
+
ParseNext();
return true;
}
@@ -139,7 +139,7 @@ bool LookaheadParser::EnterArray() {
st_ = kError;
return false;
}
-
+
ParseNext();
return true;
}
@@ -150,12 +150,12 @@ const char* LookaheadParser::NextObjectKey() {
ParseNext();
return result;
}
-
+
if (st_ != kExitingObject) {
st_ = kError;
return 0;
}
-
+
ParseNext();
return 0;
}
@@ -165,7 +165,7 @@ bool LookaheadParser::NextArrayValue() {
ParseNext();
return false;
}
-
+
if (st_ == kError || st_ == kExitingObject || st_ == kHasKey) {
st_ = kError;
return false;
@@ -190,7 +190,7 @@ double LookaheadParser::GetDouble() {
st_ = kError;
return 0.;
}
-
+
double result = v_.GetDouble();
ParseNext();
return result;
@@ -201,7 +201,7 @@ bool LookaheadParser::GetBool() {
st_ = kError;
return false;
}
-
+
bool result = v_.GetBool();
ParseNext();
return result;
@@ -221,7 +221,7 @@ const char* LookaheadParser::GetString() {
st_ = kError;
return 0;
}
-
+
const char* result = v_.GetString();
ParseNext();
return result;
@@ -260,7 +260,7 @@ Value* LookaheadParser::PeekValue() {
if (st_ >= kHasNull && st_ <= kHasKey) {
return &v_;
}
-
+
return 0;
}
@@ -268,11 +268,11 @@ int LookaheadParser::PeekType() {
if (st_ >= kHasNull && st_ <= kHasKey) {
return v_.GetType();
}
-
+
if (st_ == kEnteringArray) {
return kArrayType;
}
-
+
if (st_ == kEnteringObject) {
return kObjectType;
}
@@ -292,7 +292,7 @@ int main() {
"\"skipString\":\"zzz\", \"reachedEnd\":null, \"t\":true }";
LookaheadParser r(json);
-
+
RAPIDJSON_ASSERT(r.PeekType() == kObjectType);
r.EnterObject();
@@ -319,9 +319,9 @@ int main() {
}
else if (0 == strcmp(key, "a")) {
RAPIDJSON_ASSERT(r.PeekType() == kArrayType);
-
+
r.EnterArray();
-
+
cout << key << ":[ ";
while (r.NextArrayValue()) {
if (r.PeekType() == kNumberType) {
@@ -335,7 +335,7 @@ int main() {
break;
}
}
-
+
cout << "]" << endl;
}
else {
@@ -343,7 +343,7 @@ int main() {
r.SkipValue();
}
}
-
+
return 0;
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
index ff735394ec..3d8b494221 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/parsebyparts/parsebyparts.cpp
@@ -35,7 +35,7 @@ public:
if (!parseThread_.joinable())
return;
- {
+ {
std::unique_lock<std::mutex> lock(mutex_);
// Wait until the buffer is read up (or parsing is completed)
@@ -54,7 +54,7 @@ public:
void ParsePart(const char* buffer, size_t length) {
std::unique_lock<std::mutex> lock(mutex_);
-
+
// Wait until the buffer is read up (or parsing is completed)
while (!stream_.Empty() && !completed_)
finish_.wait(lock);
@@ -156,7 +156,7 @@ int main() {
std::cout << "Error at offset " << d.GetErrorOffset() << ": " << GetParseError_En(d.GetParseError()) << std::endl;
return EXIT_FAILURE;
}
-
+
// Stringify the JSON to cout
OStreamWrapper os(std::cout);
Writer<OStreamWrapper> writer(os);
@@ -166,7 +166,7 @@ int main() {
return EXIT_SUCCESS;
}
-#else // Not supporting C++11
+#else // Not supporting C++11
#include <iostream>
int main() {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
index 8c7e26c795..9fa1bb10a1 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/schemavalidator/schemavalidator.cpp
@@ -155,7 +155,7 @@ int main(int argc, char *argv[]) {
}
fclose(fp);
}
-
+
// Then convert the Document into SchemaDocument
SchemaDocument sd(d);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
index 12d87151e6..f1be5c4183 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/serialize/serialize.cpp
@@ -50,7 +50,7 @@ public:
template <typename Writer>
void Serialize(Writer& writer) const {
writer.StartObject();
-
+
writer.String("school");
#if RAPIDJSON_HAS_STDSTRING
writer.String(school_);
@@ -104,7 +104,7 @@ private:
};
Dependent::~Dependent() {
- delete education_;
+ delete education_;
}
class Employee : public Person {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
index a4fb1161a4..42c45ff1f6 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplepullreader/simplepullreader.cpp
@@ -15,7 +15,7 @@ template <typename T> std::string stringify(T x) {
struct MyHandler {
const char* type;
std::string data;
-
+
MyHandler() : type(), data() {}
bool Null() { type = "Null"; data.clear(); return true; }
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
index 5aae8a1c0a..f86182dfb7 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplereader/simplereader.cpp
@@ -12,11 +12,11 @@ struct MyHandler {
bool Int64(int64_t i) { cout << "Int64(" << i << ")" << endl; return true; }
bool Uint64(uint64_t u) { cout << "Uint64(" << u << ")" << endl; return true; }
bool Double(double d) { cout << "Double(" << d << ")" << endl; return true; }
- bool RawNumber(const char* str, SizeType length, bool copy) {
+ bool RawNumber(const char* str, SizeType length, bool copy) {
cout << "Number(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
return true;
}
- bool String(const char* str, SizeType length, bool copy) {
+ bool String(const char* str, SizeType length, bool copy) {
cout << "String(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
return true;
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
index 8d1275c292..2f4d83ad29 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/simplewriter/simplewriter.cpp
@@ -8,8 +8,8 @@ using namespace std;
int main() {
StringBuffer s;
Writer<StringBuffer> writer(s);
-
- writer.StartObject(); // Between StartObject()/EndObject(),
+
+ writer.StartObject(); // Between StartObject()/EndObject(),
writer.Key("hello"); // output a key,
writer.String("world"); // follow by a value.
writer.Key("t");
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
index 7e0c89923e..cf80f7acc6 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/traverseaspointer.cpp
@@ -17,7 +17,7 @@ void traverse(const Value& v, const Pointer& p) {
traverse(v[i], p.Append(i));
break;
case kObjectType:
- for (Value::ConstMemberIterator m = v.MemberBegin(); m != v.MemberEnd(); ++m)
+ for (Value::ConstMemberIterator m = v.MemberBegin(); m != v.MemberEnd(); ++m)
traverse(m->value, p.Append(m->name.GetString(), m->name.GetStringLength()));
break;
default:
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
index d6021c6689..f97b0be86e 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/example/tutorial/tutorial.cpp
@@ -32,7 +32,7 @@ int main(int, char*[]) {
printf("\nParsing to document succeeded.\n");
////////////////////////////////////////////////////////////////////////////
- // 2. Access values in document.
+ // 2. Access values in document.
printf("\nAccess values in document:\n");
assert(document.IsObject()); // Document is a JSON value represents the root of DOM. Root can be either an object or array.
@@ -69,7 +69,7 @@ int main(int, char*[]) {
assert(a.IsArray());
for (SizeType i = 0; i < a.Size(); i++) // rapidjson uses SizeType instead of size_t.
printf("a[%d] = %d\n", i, a[i].GetInt());
-
+
int y = a[0].GetInt();
(void)y;
@@ -128,7 +128,7 @@ int main(int, char*[]) {
// Shorter but slower version:
// document["hello"].SetString(buffer, document.GetAllocator());
- // Constructor version:
+ // Constructor version:
// Value author(buffer, len, document.GetAllocator());
// Value author(buffer, document.GetAllocator());
memset(buffer2, 0, sizeof(buffer2)); // For demonstration purpose.
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
index 12bc5bafcb..8918cf76fe 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/allocators.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ALLOCATORS_H_
@@ -31,10 +31,10 @@ RAPIDJSON_NAMESPACE_BEGIN
/*! \class rapidjson::Allocator
\brief Concept for allocating, resizing and freeing memory block.
-
+
Note that Malloc() and Realloc() are non-static but Free() is static.
-
- So if an allocator need to support Free(), it needs to put its pointer in
+
+ So if an allocator need to support Free(), it needs to put its pointer in
the header of memory block.
\code
@@ -82,7 +82,7 @@ concept Allocator {
class CrtAllocator {
public:
static const bool kNeedFree = true;
- void* Malloc(size_t size) {
+ void* Malloc(size_t size) {
if (size) // behavior of malloc(0) is implementation defined.
return RAPIDJSON_MALLOC(size);
else
@@ -110,7 +110,7 @@ public:
// MemoryPoolAllocator
//! Default memory allocator used by the parser and DOM.
-/*! This allocator allocate memory blocks from pre-allocated memory chunks.
+/*! This allocator allocate memory blocks from pre-allocated memory chunks.
It does not free memory blocks. And Realloc() only allocate new memory.
@@ -166,7 +166,7 @@ public:
\param baseAllocator The allocator for allocating memory chunks.
*/
explicit
- MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) :
+ MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) :
chunk_capacity_(chunkSize),
baseAllocator_(baseAllocator ? baseAllocator : RAPIDJSON_NEW(BaseAllocator)()),
shared_(static_cast<SharedData*>(baseAllocator_ ? baseAllocator_->Malloc(SIZEOF_SHARED_DATA + SIZEOF_CHUNK_HEADER) : 0))
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
index e2cc600064..660e14eb53 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/document.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_DOCUMENT_H_
@@ -116,7 +116,7 @@ class GenericDocument;
But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct.
https://code.google.com/p/rapidjson/issues/detail?id=64
*/
-template <typename Encoding, typename Allocator>
+template <typename Encoding, typename Allocator>
class GenericMember {
public:
GenericValue<Encoding, Allocator> name; //!< name of member (must be a string)
@@ -518,7 +518,7 @@ namespace internal {
template <typename ValueType, typename T>
struct TypeHelper {};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, bool> {
static bool Is(const ValueType& v) { return v.IsBool(); }
static bool Get(const ValueType& v) { return v.GetBool(); }
@@ -526,7 +526,7 @@ struct TypeHelper<ValueType, bool> {
static ValueType& Set(ValueType& v, bool data, typename ValueType::AllocatorType&) { return v.SetBool(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, int> {
static bool Is(const ValueType& v) { return v.IsInt(); }
static int Get(const ValueType& v) { return v.GetInt(); }
@@ -534,7 +534,7 @@ struct TypeHelper<ValueType, int> {
static ValueType& Set(ValueType& v, int data, typename ValueType::AllocatorType&) { return v.SetInt(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, unsigned> {
static bool Is(const ValueType& v) { return v.IsUint(); }
static unsigned Get(const ValueType& v) { return v.GetUint(); }
@@ -562,7 +562,7 @@ struct TypeHelper<ValueType, unsigned long> {
};
#endif
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, int64_t> {
static bool Is(const ValueType& v) { return v.IsInt64(); }
static int64_t Get(const ValueType& v) { return v.GetInt64(); }
@@ -570,7 +570,7 @@ struct TypeHelper<ValueType, int64_t> {
static ValueType& Set(ValueType& v, int64_t data, typename ValueType::AllocatorType&) { return v.SetInt64(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, uint64_t> {
static bool Is(const ValueType& v) { return v.IsUint64(); }
static uint64_t Get(const ValueType& v) { return v.GetUint64(); }
@@ -578,7 +578,7 @@ struct TypeHelper<ValueType, uint64_t> {
static ValueType& Set(ValueType& v, uint64_t data, typename ValueType::AllocatorType&) { return v.SetUint64(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, double> {
static bool Is(const ValueType& v) { return v.IsDouble(); }
static double Get(const ValueType& v) { return v.GetDouble(); }
@@ -586,7 +586,7 @@ struct TypeHelper<ValueType, double> {
static ValueType& Set(ValueType& v, double data, typename ValueType::AllocatorType&) { return v.SetDouble(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, float> {
static bool Is(const ValueType& v) { return v.IsFloat(); }
static float Get(const ValueType& v) { return v.GetFloat(); }
@@ -594,7 +594,7 @@ struct TypeHelper<ValueType, float> {
static ValueType& Set(ValueType& v, float data, typename ValueType::AllocatorType&) { return v.SetFloat(data); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, const typename ValueType::Ch*> {
typedef const typename ValueType::Ch* StringType;
static bool Is(const ValueType& v) { return v.IsString(); }
@@ -604,7 +604,7 @@ struct TypeHelper<ValueType, const typename ValueType::Ch*> {
};
#if RAPIDJSON_HAS_STDSTRING
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
typedef std::basic_string<typename ValueType::Ch> StringType;
static bool Is(const ValueType& v) { return v.IsString(); }
@@ -613,7 +613,7 @@ struct TypeHelper<ValueType, std::basic_string<typename ValueType::Ch> > {
};
#endif
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::Array> {
typedef typename ValueType::Array ArrayType;
static bool Is(const ValueType& v) { return v.IsArray(); }
@@ -622,14 +622,14 @@ struct TypeHelper<ValueType, typename ValueType::Array> {
static ValueType& Set(ValueType& v, ArrayType data, typename ValueType::AllocatorType&) { return v = data; }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::ConstArray> {
typedef typename ValueType::ConstArray ArrayType;
static bool Is(const ValueType& v) { return v.IsArray(); }
static ArrayType Get(const ValueType& v) { return v.GetArray(); }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::Object> {
typedef typename ValueType::Object ObjectType;
static bool Is(const ValueType& v) { return v.IsObject(); }
@@ -638,7 +638,7 @@ struct TypeHelper<ValueType, typename ValueType::Object> {
static ValueType& Set(ValueType& v, ObjectType data, typename ValueType::AllocatorType&) { return v = data; }
};
-template<typename ValueType>
+template<typename ValueType>
struct TypeHelper<ValueType, typename ValueType::ConstObject> {
typedef typename ValueType::ConstObject ObjectType;
static bool Is(const ValueType& v) { return v.IsObject(); }
@@ -796,7 +796,7 @@ public:
//! Constructor for unsigned value.
explicit GenericValue(unsigned u) RAPIDJSON_NOEXCEPT : data_() {
- data_.n.u64 = u;
+ data_.n.u64 = u;
data_.f.flags = (u & 0x80000000) ? kNumberUintFlag : (kNumberUintFlag | kIntFlag | kInt64Flag);
}
@@ -1030,14 +1030,14 @@ public:
switch (GetType()) {
case kObjectType: // Warning: O(n^2) inner-loop
if (data_.o.size != rhs.data_.o.size)
- return false;
+ return false;
for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) {
typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name);
if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value)
return false;
}
return true;
-
+
case kArrayType:
if (data_.a.size != rhs.data_.a.size)
return false;
@@ -1505,7 +1505,7 @@ public:
\note Linear time complexity.
*/
void RemoveAllMembers() {
- RAPIDJSON_ASSERT(IsObject());
+ RAPIDJSON_ASSERT(IsObject());
DoClearMembers();
}
@@ -1638,7 +1638,7 @@ public:
\note Linear time complexity.
*/
void Clear() {
- RAPIDJSON_ASSERT(IsArray());
+ RAPIDJSON_ASSERT(IsArray());
GenericValue* e = GetElementsPointer();
for (GenericValue* v = e; v != e + data_.a.size; ++v)
v->~GenericValue();
@@ -1844,7 +1844,7 @@ public:
//! Set this value as a string without copying source string.
/*! This version has better performance with supplied length, and also support string containing null character.
- \param s source string pointer.
+ \param s source string pointer.
\param length The length of source string, excluding the trailing null terminator.
\return The value itself for fluent API.
\post IsString() == true && GetString() == s && GetStringLength() == length
@@ -1861,7 +1861,7 @@ public:
//! Set this value as a string by copying from source string.
/*! This version has better performance with supplied length, and also support string containing null character.
- \param s source string.
+ \param s source string.
\param length The length of source string, excluding the trailing null terminator.
\param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
\return The value itself for fluent API.
@@ -1870,7 +1870,7 @@ public:
GenericValue& SetString(const Ch* s, SizeType length, Allocator& allocator) { return SetString(StringRef(s, length), allocator); }
//! Set this value as a string by copying from source string.
- /*! \param s source string.
+ /*! \param s source string.
\param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator().
\return The value itself for fluent API.
\post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length
@@ -1955,10 +1955,10 @@ public:
if (RAPIDJSON_UNLIKELY(!v->Accept(handler)))
return false;
return handler.EndArray(data_.a.size);
-
+
case kStringType:
return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0);
-
+
default:
RAPIDJSON_ASSERT(GetType() == kNumberType);
if (IsDouble()) return handler.Double(data_.n.d);
@@ -2470,7 +2470,7 @@ private:
typedef GenericValue<UTF8<> > Value;
///////////////////////////////////////////////////////////////////////////////
-// GenericDocument
+// GenericDocument
//! A document for parsing JSON text as DOM.
/*!
@@ -2502,12 +2502,12 @@ public:
}
//! Constructor
- /*! Creates an empty document which type is Null.
+ /*! Creates an empty document which type is Null.
\param allocator Optional allocator for allocating memory.
\param stackCapacity Optional initial capacity of stack in bytes.
\param stackAllocator Optional allocator for allocating memory for stack.
*/
- GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
+ GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) :
allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_()
{
if (!allocator_)
@@ -2724,7 +2724,7 @@ public:
GenericDocument& Parse(const Ch* str, size_t length) {
return Parse<parseFlags, Encoding>(str, length);
}
-
+
GenericDocument& Parse(const Ch* str, size_t length) {
return Parse<kParseDefaultFlags>(str, length);
}
@@ -2744,7 +2744,7 @@ public:
GenericDocument& Parse(const std::basic_string<Ch>& str) {
return Parse<kParseDefaultFlags>(str);
}
-#endif // RAPIDJSON_HAS_STDSTRING
+#endif // RAPIDJSON_HAS_STDSTRING
//!@}
@@ -2809,16 +2809,16 @@ public:
bool Uint64(uint64_t i) { new (stack_.template Push<ValueType>()) ValueType(i); return true; }
bool Double(double d) { new (stack_.template Push<ValueType>()) ValueType(d); return true; }
- bool RawNumber(const Ch* str, SizeType length, bool copy) {
- if (copy)
+ bool RawNumber(const Ch* str, SizeType length, bool copy) {
+ if (copy)
new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
else
new (stack_.template Push<ValueType>()) ValueType(str, length);
return true;
}
- bool String(const Ch* str, SizeType length, bool copy) {
- if (copy)
+ bool String(const Ch* str, SizeType length, bool copy) {
+ if (copy)
new (stack_.template Push<ValueType>()) ValueType(str, length, GetAllocator());
else
new (stack_.template Push<ValueType>()) ValueType(str, length);
@@ -2826,7 +2826,7 @@ public:
}
bool StartObject() { new (stack_.template Push<ValueType>()) ValueType(kObjectType); return true; }
-
+
bool Key(const Ch* str, SizeType length, bool copy) { return String(str, length, copy); }
bool EndObject(SizeType memberCount) {
@@ -2836,7 +2836,7 @@ public:
}
bool StartArray() { new (stack_.template Push<ValueType>()) ValueType(kArrayType); return true; }
-
+
bool EndArray(SizeType elementCount) {
ValueType* elements = stack_.template Pop<ValueType>(elementCount);
stack_.template Top<ValueType>()->SetArrayRaw(elements, elementCount, GetAllocator());
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
index cf046b8923..309499dc6b 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodedstream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ENCODEDSTREAM_H_
@@ -41,7 +41,7 @@ class EncodedInputStream {
public:
typedef typename Encoding::Ch Ch;
- EncodedInputStream(InputByteStream& is) : is_(is) {
+ EncodedInputStream(InputByteStream& is) : is_(is) {
current_ = Encoding::TakeBOM(is_);
}
@@ -51,7 +51,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
@@ -80,7 +80,7 @@ public:
// Not implemented
void Put(Ch) {}
- void Flush() {}
+ void Flush() {}
Ch* PutBegin() { return 0; }
size_t PutEnd(Ch*) { return 0; }
@@ -102,7 +102,7 @@ class EncodedOutputStream {
public:
typedef typename Encoding::Ch Ch;
- EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) {
+ EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) {
if (putBOM)
Encoding::PutBOM(os_);
}
@@ -143,7 +143,7 @@ public:
\param type UTF encoding type if it is not detected from the stream.
*/
AutoUTFInputStream(InputByteStream& is, UTFType type = kUTF8) : is_(&is), type_(type), hasBOM_(false) {
- RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
+ RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE);
DetectType();
static const TakeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Take) };
takeFunc_ = f[type_];
@@ -159,7 +159,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
@@ -258,7 +258,7 @@ public:
UTFType GetType() const { return type_; }
void Put(Ch c) { putFunc_(*os_, c); }
- void Flush() { os_->Flush(); }
+ void Flush() { os_->Flush(); }
// Not implemented
Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;}
@@ -271,7 +271,7 @@ private:
AutoUTFOutputStream(const AutoUTFOutputStream&);
AutoUTFOutputStream& operator=(const AutoUTFOutputStream&);
- void PutBOM() {
+ void PutBOM() {
typedef void (*PutBOMFunc)(OutputByteStream&);
static const PutBOMFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(PutBOM) };
f[type_](*os_);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
index 50ad18bdc0..f9f1ed181e 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/encodings.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ENCODINGS_H_
@@ -100,7 +100,7 @@ struct UTF8 {
template<typename OutputStream>
static void Encode(OutputStream& os, unsigned codepoint) {
- if (codepoint <= 0x7F)
+ if (codepoint <= 0x7F)
os.Put(static_cast<Ch>(codepoint & 0xFF));
else if (codepoint <= 0x7FF) {
os.Put(static_cast<Ch>(0xC0 | ((codepoint >> 6) & 0xFF)));
@@ -122,7 +122,7 @@ struct UTF8 {
template<typename OutputStream>
static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
- if (codepoint <= 0x7F)
+ if (codepoint <= 0x7F)
PutUnsafe(os, static_cast<Ch>(codepoint & 0xFF));
else if (codepoint <= 0x7FF) {
PutUnsafe(os, static_cast<Ch>(0xC0 | ((codepoint >> 6) & 0xFF)));
@@ -276,7 +276,7 @@ struct UTF16 {
static void Encode(OutputStream& os, unsigned codepoint) {
RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
if (codepoint <= 0xFFFF) {
- RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
+ RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
os.Put(static_cast<typename OutputStream::Ch>(codepoint));
}
else {
@@ -292,7 +292,7 @@ struct UTF16 {
static void EncodeUnsafe(OutputStream& os, unsigned codepoint) {
RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2);
if (codepoint <= 0xFFFF) {
- RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
+ RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair
PutUnsafe(os, static_cast<typename OutputStream::Ch>(codepoint));
}
else {
@@ -406,7 +406,7 @@ struct UTF16BE : UTF16<CharType> {
///////////////////////////////////////////////////////////////////////////////
// UTF32
-//! UTF-32 encoding.
+//! UTF-32 encoding.
/*! http://en.wikipedia.org/wiki/UTF-32
\tparam CharType Type for storing 32-bit UTF-32 data. Default is unsigned. C++11 may use char32_t instead.
\note implements Encoding concept
@@ -498,7 +498,7 @@ struct UTF32BE : UTF32<CharType> {
static CharType TakeBOM(InputByteStream& is) {
RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1);
CharType c = Take(is);
- return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
+ return static_cast<uint32_t>(c) == 0x0000FEFFu ? Take(is) : c;
}
template <typename InputByteStream>
@@ -694,13 +694,13 @@ struct Transcoder<Encoding, Encoding> {
os.Put(is.Take()); // Just copy one code unit. This semantic is different from primary template class.
return true;
}
-
+
template<typename InputStream, typename OutputStream>
static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) {
PutUnsafe(os, is.Take()); // Just copy one code unit. This semantic is different from primary template class.
return true;
}
-
+
template<typename InputStream, typename OutputStream>
static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) {
return Encoding::Validate(is, os); // source/target encoding are the same
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
index 5d2e57b7fd..7c620a2e6b 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/en.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ERROR_EN_H_
@@ -39,13 +39,13 @@ inline const RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErro
case kParseErrorDocumentEmpty: return RAPIDJSON_ERROR_STRING("The document is empty.");
case kParseErrorDocumentRootNotSingular: return RAPIDJSON_ERROR_STRING("The document root must not be followed by other values.");
-
+
case kParseErrorValueInvalid: return RAPIDJSON_ERROR_STRING("Invalid value.");
-
+
case kParseErrorObjectMissName: return RAPIDJSON_ERROR_STRING("Missing a name for object member.");
case kParseErrorObjectMissColon: return RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member.");
case kParseErrorObjectMissCommaOrCurlyBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member.");
-
+
case kParseErrorArrayMissCommaOrSquareBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element.");
case kParseErrorStringUnicodeEscapeInvalidHex: return RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string.");
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
index 6270da11a5..5c890ba0ea 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/error/error.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ERROR_ERROR_H_
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
index f8bb43cb0c..3daff09279 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filereadstream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FILEREADSTREAM_H_
@@ -41,7 +41,7 @@ public:
\param buffer user-supplied buffer.
\param bufferSize size of buffer in bytes. Must >=4 bytes.
*/
- FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
+ FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
RAPIDJSON_ASSERT(fp_ != 0);
RAPIDJSON_ASSERT(bufferSize >= 4);
Read();
@@ -53,7 +53,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
index 5d89588c21..8a78ef7f09 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/filewritestream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FILEWRITESTREAM_H_
@@ -33,11 +33,11 @@ class FileWriteStream {
public:
typedef char Ch; //!< Character type. Only support char.
- FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) {
+ FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) {
RAPIDJSON_ASSERT(fp_ != 0);
}
- void Put(char c) {
+ void Put(char c) {
if (current_ >= bufferEnd_)
Flush();
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
index d62f77f0ec..07358d8cc9 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/fwd.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_FWD_H_
@@ -101,7 +101,7 @@ class PrettyWriter;
// document.h
-template <typename Encoding, typename Allocator>
+template <typename Encoding, typename Allocator>
class GenericMember;
template <bool Const, typename Encoding, typename Allocator>
@@ -110,7 +110,7 @@ class GenericMemberIterator;
template<typename CharType>
struct GenericStringRef;
-template <typename Encoding, typename Allocator>
+template <typename Encoding, typename Allocator>
class GenericValue;
typedef GenericValue<UTF8<char>, MemoryPoolAllocator<CrtAllocator> > Value;
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
index af48738038..6c58fc87bb 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/biginteger.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_BIGINTEGER_H_
@@ -56,7 +56,7 @@ public:
if (length > 0)
AppendDecimal64(decimals + i, decimals + i + length);
}
-
+
BigInteger& operator=(const BigInteger &rhs)
{
if (this != &rhs) {
@@ -65,9 +65,9 @@ public:
}
return *this;
}
-
+
BigInteger& operator=(uint64_t u) {
- digits_[0] = u;
+ digits_[0] = u;
count_ = 1;
return *this;
}
@@ -100,7 +100,7 @@ public:
digits_[i] = MulAdd64(digits_[i], u, k, &hi);
k = hi;
}
-
+
if (k > 0)
PushBack(k);
@@ -123,7 +123,7 @@ public:
digits_[i] = (p0 & 0xFFFFFFFF) | (p1 << 32);
k = p1 >> 32;
}
-
+
if (k > 0)
PushBack(k);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
index 9f6ae3b3f0..aa27f7b673 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/dtoa.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
// This is a C++ header-only implementation of Grisu2 algorithm from the publication:
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
index 68c9e96649..f887d1b27c 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/ieee754.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_IEEE754_
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
index 27092dc0d6..76a1d5be46 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/meta.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_META_H_
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
index eae1a43ed1..04ee1f6b44 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/pow10.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_POW10_
@@ -27,8 +27,8 @@ namespace internal {
*/
inline double Pow10(int n) {
static const double e[] = { // 1e-0...1e308: 309 * 8 bytes = 2472 bytes
- 1e+0,
- 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20,
+ 1e+0,
+ 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20,
1e+21, 1e+22, 1e+23, 1e+24, 1e+25, 1e+26, 1e+27, 1e+28, 1e+29, 1e+30, 1e+31, 1e+32, 1e+33, 1e+34, 1e+35, 1e+36, 1e+37, 1e+38, 1e+39, 1e+40,
1e+41, 1e+42, 1e+43, 1e+44, 1e+45, 1e+46, 1e+47, 1e+48, 1e+49, 1e+50, 1e+51, 1e+52, 1e+53, 1e+54, 1e+55, 1e+56, 1e+57, 1e+58, 1e+59, 1e+60,
1e+61, 1e+62, 1e+63, 1e+64, 1e+65, 1e+66, 1e+67, 1e+68, 1e+69, 1e+70, 1e+71, 1e+72, 1e+73, 1e+74, 1e+75, 1e+76, 1e+77, 1e+78, 1e+79, 1e+80,
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
index 6446c403af..e37126109f 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/regex.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_REGEX_H_
@@ -102,9 +102,9 @@ class GenericRegexSearch;
- \c \\t Tab (U+0009)
- \c \\v Vertical tab (U+000B)
- \note This is a Thompson NFA engine, implemented with reference to
- Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).",
- https://swtch.com/~rsc/regexp/regexp1.html
+ \note This is a Thompson NFA engine, implemented with reference to
+ Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).",
+ https://swtch.com/~rsc/regexp/regexp1.html
*/
template <typename Encoding, typename Allocator = CrtAllocator>
class GenericRegex {
@@ -113,9 +113,9 @@ public:
typedef typename Encoding::Ch Ch;
template <typename, typename> friend class GenericRegexSearch;
- GenericRegex(const Ch* source, Allocator* allocator = 0) :
- ownAllocator_(allocator ? 0 : RAPIDJSON_NEW(Allocator)()), allocator_(allocator ? allocator : ownAllocator_),
- states_(allocator_, 256), ranges_(allocator_, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(),
+ GenericRegex(const Ch* source, Allocator* allocator = 0) :
+ ownAllocator_(allocator ? 0 : RAPIDJSON_NEW(Allocator)()), allocator_(allocator ? allocator : ownAllocator_),
+ states_(allocator_, 256), ranges_(allocator_, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(),
anchorBegin_(), anchorEnd_()
{
GenericStringStream<Encoding> ss(source);
@@ -147,7 +147,7 @@ private:
static const unsigned kRangeNegationFlag = 0x80000000;
struct Range {
- unsigned start; //
+ unsigned start; //
unsigned end;
SizeType next;
};
@@ -402,7 +402,7 @@ private:
}
return false;
- default:
+ default:
// syntax error (e.g. unclosed kLeftParenthesis)
return false;
}
@@ -550,7 +550,7 @@ private:
}
return false;
}
-
+
SizeType NewRange(unsigned codepoint) {
Range* r = ranges_.template Push<Range>();
r->start = r->end = codepoint;
@@ -608,7 +608,7 @@ public:
typedef typename RegexType::EncodingType Encoding;
typedef typename Encoding::Ch Ch;
- GenericRegexSearch(const RegexType& regex, Allocator* allocator = 0) :
+ GenericRegexSearch(const RegexType& regex, Allocator* allocator = 0) :
regex_(regex), allocator_(allocator), ownAllocator_(0),
state0_(allocator, 0), state1_(allocator, 0), stateSet_()
{
@@ -667,7 +667,7 @@ private:
for (const SizeType* s = current->template Bottom<SizeType>(); s != current->template End<SizeType>(); ++s) {
const State& sr = regex_.GetState(*s);
if (sr.codepoint == codepoint ||
- sr.codepoint == RegexType::kAnyCharacterClass ||
+ sr.codepoint == RegexType::kAnyCharacterClass ||
(sr.codepoint == RegexType::kRangeCharacterClass && MatchRange(sr.rangeStart, codepoint)))
{
matched = AddState(*next, sr.out) || matched;
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
index 73abd706e9..ceead44907 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/stack.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_STACK_H_
@@ -98,7 +98,7 @@ public:
void Clear() { stackTop_ = stack_; }
- void ShrinkToFit() {
+ void ShrinkToFit() {
if (Empty()) {
// If the stack is empty, completely deallocate the memory.
Allocator::Free(stack_); // NOLINT (+clang-analyzer-unix.Malloc)
@@ -142,7 +142,7 @@ public:
}
template<typename T>
- T* Top() {
+ T* Top() {
RAPIDJSON_ASSERT(GetSize() >= sizeof(T));
return reinterpret_cast<T*>(stackTop_ - sizeof(T));
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
index b698a8f43f..1a88f49bba 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strfunc.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_
@@ -24,7 +24,7 @@ namespace internal {
//! Custom strlen() which works on different character types.
/*! \tparam Ch Character type (e.g. char, wchar_t, short)
\param s Null-terminated input string.
- \return Number of characters in the string.
+ \return Number of characters in the string.
\note This has the same semantics as strlen(), the return value is not number of Unicode codepoints.
*/
template <typename Ch>
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
index 55f0e380bf..62a42c69d8 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/internal/strtod.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_STRTOD_
@@ -131,14 +131,14 @@ inline bool StrtodFast(double d, int p, double* result) {
template<typename Ch>
inline bool StrtodDiyFp(const Ch* decimals, int dLen, int dExp, double* result) {
uint64_t significand = 0;
- int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999
+ int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999
for (; i < dLen; i++) {
if (significand > RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) ||
(significand == RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) && decimals[i] > Ch('5')))
break;
significand = significand * 10u + static_cast<unsigned>(decimals[i] - Ch('0'));
}
-
+
if (i < dLen && decimals[i] >= Ch('5')) // Rounding
significand++;
@@ -185,7 +185,7 @@ inline bool StrtodDiyFp(const Ch* decimals, int dLen, int dExp, double* result)
if (precisionSize + kUlpShift >= 64) {
int scaleExp = (precisionSize + kUlpShift) - 63;
v.f >>= scaleExp;
- v.e += scaleExp;
+ v.e += scaleExp;
error = (error >> scaleExp) + 1 + kUlp;
precisionSize -= scaleExp;
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
index 01437ec012..23dd83e96c 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/istreamwrapper.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_ISTREAMWRAPPER_H_
@@ -44,7 +44,7 @@ RAPIDJSON_NAMESPACE_BEGIN
\tparam StreamType Class derived from \c std::basic_istream.
*/
-
+
template <typename StreamType>
class BasicIStreamWrapper {
public:
@@ -54,7 +54,7 @@ public:
/*!
\param stream stream opened for read.
*/
- BasicIStreamWrapper(StreamType &stream) : stream_(stream), buffer_(peekBuffer_), bufferSize_(4), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
+ BasicIStreamWrapper(StreamType &stream) : stream_(stream), buffer_(peekBuffer_), bufferSize_(4), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
Read();
}
@@ -64,7 +64,7 @@ public:
\param buffer user-supplied buffer.
\param bufferSize size of buffer in bytes. Must >=4 bytes.
*/
- BasicIStreamWrapper(StreamType &stream, char* buffer, size_t bufferSize) : stream_(stream), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
+ BasicIStreamWrapper(StreamType &stream, char* buffer, size_t bufferSize) : stream_(stream), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) {
RAPIDJSON_ASSERT(bufferSize >= 4);
Read();
}
@@ -75,7 +75,7 @@ public:
// Not implemented
void Put(Ch) { RAPIDJSON_ASSERT(false); }
- void Flush() { RAPIDJSON_ASSERT(false); }
+ void Flush() { RAPIDJSON_ASSERT(false); }
Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; }
size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; }
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
index ffbc41ed1f..14aad68636 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorybuffer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_MEMORYBUFFER_H_
@@ -27,7 +27,7 @@ RAPIDJSON_NAMESPACE_BEGIN
It is similar to FileWriteBuffer but the destination is an in-memory buffer instead of a file.
Differences between MemoryBuffer and StringBuffer:
- 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer.
+ 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer.
2. StringBuffer::GetString() returns a null-terminated string. MemoryBuffer::GetBuffer() returns a buffer without terminator.
\tparam Allocator type for allocating memory buffer.
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
index 77af6c999e..1bc393f282 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/memorystream.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_MEMORYSTREAM_H_
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
index 18111286bf..1620402e01 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/inttypes.h
@@ -1,37 +1,37 @@
// ISO C9x compliant inttypes.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
// Copyright (c) 2006-2013 Alexander Chemeris
-//
+//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
-//
+//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
-//
+//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
-//
+//
// 3. Neither the name of the product nor the names of its contributors may
// be used to endorse or promote products derived from this software
// without specific prior written permission.
-//
+//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+//
///////////////////////////////////////////////////////////////////////////////
-// The above software in this distribution may have been modified by
-// THL A29 Limited ("Tencent Modifications").
+// The above software in this distribution may have been modified by
+// THL A29 Limited ("Tencent Modifications").
// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited.
#ifndef _MSC_VER // [
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
index 3d4477b9a0..1c266ecfe6 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/msinttypes/stdint.h
@@ -1,37 +1,37 @@
// ISO C9x compliant stdint.h for Microsoft Visual Studio
-// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
-//
+// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
+//
// Copyright (c) 2006-2013 Alexander Chemeris
-//
+//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
-//
+//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
-//
+//
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
-//
+//
// 3. Neither the name of the product nor the names of its contributors may
// be used to endorse or promote products derived from this software
// without specific prior written permission.
-//
+//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
+//
///////////////////////////////////////////////////////////////////////////////
-// The above software in this distribution may have been modified by
-// THL A29 Limited ("Tencent Modifications").
+// The above software in this distribution may have been modified by
+// THL A29 Limited ("Tencent Modifications").
// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited.
#ifndef _MSC_VER // [
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
index 11ed4d33f9..bfd4d6dab0 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/ostreamwrapper.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_OSTREAMWRAPPER_H_
@@ -40,7 +40,7 @@ RAPIDJSON_NAMESPACE_BEGIN
\tparam StreamType Class derived from \c std::basic_ostream.
*/
-
+
template <typename StreamType>
class BasicOStreamWrapper {
public:
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
index 67a9cb0768..d89f943c91 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/pointer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_POINTER_H_
@@ -49,16 +49,16 @@ enum PointerParseErrorCode {
//! Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator.
/*!
- This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer"
+ This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer"
(https://tools.ietf.org/html/rfc6901).
A JSON pointer is for identifying a specific value in a JSON document
(GenericDocument). It can simplify coding of DOM tree manipulation, because it
can access multiple-level depth of DOM tree with single API call.
- After it parses a string representation (e.g. "/foo/0" or URI fragment
+ After it parses a string representation (e.g. "/foo/0" or URI fragment
representation (e.g. "#/foo/0") into its internal representation (tokens),
- it can be used to resolve a specific value in multiple documents, or sub-tree
+ it can be used to resolve a specific value in multiple documents, or sub-tree
of documents.
Contrary to GenericValue, Pointer can be copy constructed and copy assigned.
@@ -69,10 +69,10 @@ enum PointerParseErrorCode {
supplied tokens eliminates these.
GenericPointer depends on GenericDocument and GenericValue.
-
+
\tparam ValueType The value type of the DOM tree. E.g. GenericValue<UTF8<> >
\tparam Allocator The allocator type for allocating memory for internal representation.
-
+
\note GenericPointer uses same encoding of ValueType.
However, Allocator of GenericPointer is independent of Allocator of Value.
*/
@@ -86,7 +86,7 @@ public:
//! A token is the basic units of internal representation.
/*!
- A JSON pointer string representation "/foo/123" is parsed to two tokens:
+ A JSON pointer string representation "/foo/123" is parsed to two tokens:
"foo" and 123. 123 will be represented in both numeric form and string form.
They are resolved according to the actual value type (object or array).
@@ -94,7 +94,7 @@ public:
(greater than limits of SizeType), they are only treated as string form
(i.e. the token's index will be equal to kPointerInvalidIndex).
- This struct is public so that user can create a Pointer without parsing and
+ This struct is public so that user can create a Pointer without parsing and
allocation, using a special constructor.
*/
struct Token {
@@ -373,7 +373,7 @@ public:
for (size_t i = 0; i < tokenCount_; i++) {
if (tokens_[i].index != rhs.tokens_[i].index ||
- tokens_[i].length != rhs.tokens_[i].length ||
+ tokens_[i].length != rhs.tokens_[i].length ||
(tokens_[i].length != 0 && std::memcmp(tokens_[i].name, rhs.tokens_[i].name, sizeof(Ch)* tokens_[i].length) != 0))
{
return false;
@@ -451,9 +451,9 @@ public:
If the value is not exist, it creates all parent values and a JSON Null value.
So it always succeed and return the newly created or existing value.
- Remind that it may change types of parents according to tokens, so it
- potentially removes previously stored values. For example, if a document
- was an array, and "/foo" is used to create a value, then the document
+ Remind that it may change types of parents according to tokens, so it
+ potentially removes previously stored values. For example, if a document
+ was an array, and "/foo" is used to create a value, then the document
will be changed to an object, and all existing array elements are lost.
\param root Root value of a DOM subtree to be resolved. It can be any value other than document root.
@@ -639,7 +639,7 @@ public:
\param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root.
\return Pointer to the value if it can be resolved. Otherwise null.
*/
- const ValueType* Get(const ValueType& root, size_t* unresolvedTokenIndex = 0) const {
+ const ValueType* Get(const ValueType& root, size_t* unresolvedTokenIndex = 0) const {
return Get(const_cast<ValueType&>(root), unresolvedTokenIndex);
}
@@ -701,7 +701,7 @@ public:
ValueType& GetWithDefault(GenericDocument<EncodingType, typename ValueType::AllocatorType, stackAllocator>& document, const Ch* defaultValue) const {
return GetWithDefault(document, defaultValue, document.GetAllocator());
}
-
+
#if RAPIDJSON_HAS_STDSTRING
//! Query a value in a document with default std::basic_string.
template <typename stackAllocator>
@@ -938,7 +938,7 @@ private:
// Count number of '/' as tokenCount
tokenCount_ = 0;
- for (const Ch* s = source; s != source + length; s++)
+ for (const Ch* s = source; s != source + length; s++)
if (*s == '/')
tokenCount_++;
@@ -995,7 +995,7 @@ private:
}
i++;
-
+
// Escaping "~0" -> '~', "~1" -> '/'
if (c == '~') {
if (i < length) {
@@ -1084,7 +1084,7 @@ private:
os.Put('~');
os.Put('1');
}
- else if (uriFragment && NeedPercentEncode(c)) {
+ else if (uriFragment && NeedPercentEncode(c)) {
// Transcode to UTF8 sequence
GenericStringStream<typename ValueType::EncodingType> source(&t->name[j]);
PercentEncodeStream<OutputStream> target(os);
@@ -1102,7 +1102,7 @@ private:
//! A helper stream for decoding a percent-encoded sequence into code unit.
/*!
This stream decodes %XY triplet into code unit (0-255).
- If it encounters invalid characters, it sets output code unit as 0 and
+ If it encounters invalid characters, it sets output code unit as 0 and
mark invalid, and to be checked by IsValid().
*/
class PercentDecodeStream {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
index fe45df1d10..cea596ef58 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/prettywriter.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_PRETTYWRITER_H_
@@ -55,11 +55,11 @@ public:
\param allocator User supplied allocator. If it is null, it will create a private one.
\param levelDepth Initial capacity of stack.
*/
- explicit PrettyWriter(OutputStream& os, StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
+ explicit PrettyWriter(OutputStream& os, StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
Base(os, allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {}
- explicit PrettyWriter(StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
+ explicit PrettyWriter(StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) :
Base(allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {}
#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
@@ -133,13 +133,13 @@ public:
return Key(str.data(), SizeType(str.size()));
}
#endif
-
+
bool EndObject(SizeType memberCount = 0) {
(void)memberCount;
RAPIDJSON_ASSERT(Base::level_stack_.GetSize() >= sizeof(typename Base::Level)); // not inside an Object
RAPIDJSON_ASSERT(!Base::level_stack_.template Top<typename Base::Level>()->inArray); // currently inside an Array, not Object
RAPIDJSON_ASSERT(0 == Base::level_stack_.template Top<typename Base::Level>()->valueCount % 2); // Object has a Key without a Value
-
+
bool empty = Base::level_stack_.template Pop<typename Base::Level>(1)->valueCount == 0;
if (!empty) {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
index a4e8953244..77cede6067 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/rapidjson.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_RAPIDJSON_H_
@@ -17,7 +17,7 @@
/*!\file rapidjson.h
\brief common definitions and configuration
-
+
\see RAPIDJSON_CONFIG
*/
@@ -195,7 +195,7 @@
*/
#ifndef RAPIDJSON_NO_INT64DEFINE
//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN
-#if defined(_MSC_VER) && (_MSC_VER < 1800) // Visual Studio 2013
+#if defined(_MSC_VER) && (_MSC_VER < 1800) // Visual Studio 2013
#include "msinttypes/stdint.h"
#include "msinttypes/inttypes.h"
#else
@@ -277,7 +277,7 @@
# elif defined(RAPIDJSON_DOXYGEN_RUNNING)
# define RAPIDJSON_ENDIAN
# else
-# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN.
+# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN.
# endif
#endif // RAPIDJSON_ENDIAN
@@ -462,7 +462,7 @@ RAPIDJSON_NAMESPACE_END
#if defined(__GNUC__) || defined(__clang__)
#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
#else
-#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE
+#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE
#endif
#ifndef __clang__
//!@endcond
@@ -513,7 +513,7 @@ RAPIDJSON_NAMESPACE_END
//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN
-#define RAPIDJSON_MULTILINEMACRO_BEGIN do {
+#define RAPIDJSON_MULTILINEMACRO_BEGIN do {
#define RAPIDJSON_MULTILINEMACRO_END \
} while((void)0, 0)
@@ -731,7 +731,7 @@ enum Type {
kFalseType = 1, //!< false
kTrueType = 2, //!< true
kObjectType = 3, //!< object
- kArrayType = 4, //!< array
+ kArrayType = 4, //!< array
kStringType = 5, //!< string
kNumberType = 6 //!< number
};
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
index f0759ffcf5..1db4b57cbf 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/schema.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available->
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip-> All rights reserved->
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource->org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied-> See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied-> See the License for the
// specific language governing permissions and limitations under the License->
#ifndef RAPIDJSON_SCHEMA_H_
@@ -256,10 +256,10 @@ public:
bool Uint(unsigned u) { Number n; n.u.u = u; n.d = static_cast<double>(u); return WriteNumber(n); }
bool Int64(int64_t i) { Number n; n.u.i = i; n.d = static_cast<double>(i); return WriteNumber(n); }
bool Uint64(uint64_t u) { Number n; n.u.u = u; n.d = static_cast<double>(u); return WriteNumber(n); }
- bool Double(double d) {
- Number n;
+ bool Double(double d) {
+ Number n;
if (d < 0) n.u.i = static_cast<int64_t>(d);
- else n.u.u = static_cast<uint64_t>(d);
+ else n.u.u = static_cast<uint64_t>(d);
n.d = d;
return WriteNumber(n);
}
@@ -276,7 +276,7 @@ public:
bool StartObject() { return true; }
bool Key(const Ch* str, SizeType len, bool copy) { return String(str, len, copy); }
- bool EndObject(SizeType memberCount) {
+ bool EndObject(SizeType memberCount) {
uint64_t h = Hash(0, kObjectType);
uint64_t* kv = stack_.template Pop<uint64_t>(memberCount * 2);
for (SizeType i = 0; i < memberCount; i++)
@@ -284,9 +284,9 @@ public:
*stack_.template Push<uint64_t>() = h;
return true;
}
-
+
bool StartArray() { return true; }
- bool EndArray(SizeType elementCount) {
+ bool EndArray(SizeType elementCount) {
uint64_t h = Hash(0, kArrayType);
uint64_t* e = stack_.template Pop<uint64_t>(elementCount);
for (SizeType i = 0; i < elementCount; i++)
@@ -313,9 +313,9 @@ private:
};
bool WriteType(Type type) { return WriteBuffer(type, 0, 0); }
-
+
bool WriteNumber(const Number& n) { return WriteBuffer(kNumberType, &n, sizeof(n)); }
-
+
bool WriteBuffer(Type type, const void* data, size_t len) {
// FNV-1a from http://isthe.com/chongo/tech/comp/fnv/
uint64_t h = Hash(RAPIDJSON_UINT64_C2(0x84222325, 0xcbf29ce4), type);
@@ -1987,7 +1987,7 @@ template <
typename OutputHandler = BaseReaderHandler<typename SchemaDocumentType::SchemaType::EncodingType>,
typename StateAllocator = CrtAllocator>
class GenericSchemaValidator :
- public internal::ISchemaStateFactory<typename SchemaDocumentType::SchemaType>,
+ public internal::ISchemaStateFactory<typename SchemaDocumentType::SchemaType>,
public internal::ISchemaValidator,
public internal::IValidationErrorHandler<typename SchemaDocumentType::SchemaType> {
public:
@@ -2008,7 +2008,7 @@ public:
*/
GenericSchemaValidator(
const SchemaDocumentType& schemaDocument,
- StateAllocator* allocator = 0,
+ StateAllocator* allocator = 0,
size_t schemaStackCapacity = kDefaultSchemaStackCapacity,
size_t documentStackCapacity = kDefaultDocumentStackCapacity)
:
@@ -2040,7 +2040,7 @@ public:
GenericSchemaValidator(
const SchemaDocumentType& schemaDocument,
OutputHandler& outputHandler,
- StateAllocator* allocator = 0,
+ StateAllocator* allocator = 0,
size_t schemaStackCapacity = kDefaultSchemaStackCapacity,
size_t documentStackCapacity = kDefaultDocumentStackCapacity)
:
@@ -2390,7 +2390,7 @@ RAPIDJSON_MULTILINEMACRO_END
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartObject, ());
return valid_ = !outputHandler_ || outputHandler_->StartObject();
}
-
+
bool Key(const Ch* str, SizeType len, bool copy) {
if (!valid_) return false;
AppendToken(str, len);
@@ -2398,7 +2398,7 @@ RAPIDJSON_MULTILINEMACRO_END
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(Key, (str, len, copy));
return valid_ = !outputHandler_ || outputHandler_->Key(str, len, copy);
}
-
+
bool EndObject(SizeType memberCount) {
if (!valid_) return false;
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndObject, (memberCount));
@@ -2411,7 +2411,7 @@ RAPIDJSON_MULTILINEMACRO_END
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartArray, ());
return valid_ = !outputHandler_ || outputHandler_->StartArray();
}
-
+
bool EndArray(SizeType elementCount) {
if (!valid_) return false;
RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndArray, (elementCount));
@@ -2468,7 +2468,7 @@ private:
typedef GenericValue<UTF8<>, StateAllocator> HashCodeArray;
typedef internal::Hasher<EncodingType, StateAllocator> HasherType;
- GenericSchemaValidator(
+ GenericSchemaValidator(
const SchemaDocumentType& schemaDocument,
const SchemaType& root,
const char* basePath, size_t basePathSize,
@@ -2554,7 +2554,7 @@ private:
#endif
void* hasher = CurrentContext().hasher;
uint64_t h = hasher && CurrentContext().arrayUniqueness ? static_cast<HasherType*>(hasher)->GetHashCode() : 0;
-
+
PopSchema();
if (!schemaStack_.Empty()) {
@@ -2603,7 +2603,7 @@ private:
}
RAPIDJSON_FORCEINLINE void PushSchema(const SchemaType& schema) { new (schemaStack_.template Push<Context>()) Context(*this, *this, &schema); }
-
+
RAPIDJSON_FORCEINLINE void PopSchema() {
Context* c = schemaStack_.template Pop<Context>(1);
if (HashCodeArray* a = static_cast<HashCodeArray*>(c->arrayElementHashCodes)) {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
index 82ad3ca6bb..17bfeac9f3 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/stringbuffer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_STRINGBUFFER_H_
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
index 8b389219ab..81f34fc80d 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/include/rapidjson/writer.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef RAPIDJSON_WRITER_H_
@@ -52,7 +52,7 @@ RAPIDJSON_NAMESPACE_BEGIN
///////////////////////////////////////////////////////////////////////////////
// WriteFlag
-/*! \def RAPIDJSON_WRITE_DEFAULT_FLAGS
+/*! \def RAPIDJSON_WRITE_DEFAULT_FLAGS
\ingroup RAPIDJSON_CONFIG
\brief User-defined kWriteDefaultFlags definition.
@@ -76,7 +76,7 @@ enum WriteFlag {
User may programmatically calls the functions of a writer to generate JSON text.
- On the other side, a writer can also be passed to objects that generates events,
+ On the other side, a writer can also be passed to objects that generates events,
for example Reader::Parse() and Document::Accept().
@@ -99,7 +99,7 @@ public:
\param levelDepth Initial capacity of stack.
*/
explicit
- Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) :
+ Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) :
os_(&os), level_stack_(stackAllocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {}
explicit
@@ -153,7 +153,7 @@ public:
/*!
This setting truncates the output with specified number of decimal places.
- For example,
+ For example,
\code
writer.SetMaxDecimalPlaces(3);
@@ -258,7 +258,7 @@ public:
//! Simpler but slower overload.
bool String(const Ch* const& str) { return String(str, internal::StrLen(str)); }
bool Key(const Ch* const& str) { return Key(str, internal::StrLen(str)); }
-
+
//@}
//! Write a raw JSON value.
@@ -425,7 +425,7 @@ protected:
PutUnsafe(*os_, hexDigits[(trail >> 12) & 15]);
PutUnsafe(*os_, hexDigits[(trail >> 8) & 15]);
PutUnsafe(*os_, hexDigits[(trail >> 4) & 15]);
- PutUnsafe(*os_, hexDigits[(trail ) & 15]);
+ PutUnsafe(*os_, hexDigits[(trail ) & 15]);
}
}
else if ((sizeof(Ch) == 1 || static_cast<unsigned>(c) < 256) && RAPIDJSON_UNLIKELY(escape[static_cast<unsigned char>(c)])) {
@@ -439,7 +439,7 @@ protected:
PutUnsafe(*os_, hexDigits[static_cast<unsigned char>(c) & 0xF]);
}
}
- else if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
+ else if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
Transcoder<SourceEncoding, TargetEncoding>::Validate(is, *os_) :
Transcoder<SourceEncoding, TargetEncoding>::TranscodeUnsafe(is, *os_))))
return false;
@@ -462,7 +462,7 @@ protected:
GenericStringStream<SourceEncoding> is(json);
while (RAPIDJSON_LIKELY(is.Tell() < length)) {
RAPIDJSON_ASSERT(is.Peek() != '\0');
- if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
+ if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ?
Transcoder<SourceEncoding, TargetEncoding>::Validate(is, *os_) :
Transcoder<SourceEncoding, TargetEncoding>::TranscodeUnsafe(is, *os_))))
return false;
@@ -475,7 +475,7 @@ protected:
if (RAPIDJSON_LIKELY(level_stack_.GetSize() != 0)) { // this value is not at root
Level* level = level_stack_.template Top<Level>();
if (level->valueCount > 0) {
- if (level->inArray)
+ if (level->inArray)
os_->Put(','); // add comma if it is not the first element in array
else // in object
os_->Put((level->valueCount % 2 == 0) ? ',' : ':');
@@ -563,7 +563,7 @@ inline bool Writer<StringBuffer>::WriteDouble(double d) {
PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y');
return true;
}
-
+
char *buffer = os_->Push(25);
char* end = internal::dtoa(d, buffer, maxDecimalPlaces_);
os_->Pop(static_cast<size_t>(25 - (end - buffer)));
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
index f43b050181..f7bf8a985f 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/misctest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
@@ -50,7 +50,7 @@ static const unsigned char utf8d[] = {
12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
- 12,36,12,12,12,12,12,12,12,12,12,12,
+ 12,36,12,12,12,12,12,12,12,12,12,12,
};
static unsigned inline decode(unsigned* state, unsigned* codep, unsigned byte) {
@@ -890,7 +890,7 @@ void itoa64_Writer_InsituStringStream() {
OUTPUT_LENGTH(length);
};
-// Full specialization for InsituStringStream to prevent memory copying
+// Full specialization for InsituStringStream to prevent memory copying
// (normally we will not use InsituStringStream for writing, just for testing)
namespace rapidjson {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
index b149a4c12c..13d7b8a3e4 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
index 31e3ca6337..01fc1eb5e2 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/perftest.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef PERFTEST_H_
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
index c490da7a85..ff7bf4fea9 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/platformtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
@@ -91,14 +91,14 @@ TEST_F(Platform, Whitespace_strlen) {
for (int i = 0; i < kTrialCount; i++) {
size_t l = strlen(whitespace_);
EXPECT_GT(l, whitespace_length_);
- }
+ }
}
TEST_F(Platform, Whitespace_strspn) {
for (int i = 0; i < kTrialCount; i++) {
size_t l = strspn(whitespace_, " \n\r\t");
EXPECT_EQ(whitespace_length_, l);
- }
+ }
}
TEST_F(Platform, fread) {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
index ce41c109ab..5afefcbecb 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/perftest/rapidjsontest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "perftest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
index 2ffc325426..4f08cad48e 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/allocatorstest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
index fad54382ca..b448b4dce2 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/bigintegertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
index ad465e1f31..3e9cfc2415 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/clzlltest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
index c3d1e484dc..74432ba39a 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/documenttest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -176,7 +176,7 @@ TEST(Document, Parse_Encoding) {
typedef GenericDocument<UTF16<> > DocumentType;
DocumentType doc;
-
+
// Parse<unsigned, SourceEncoding>(const SourceEncoding::Ch*)
// doc.Parse<kParseDefaultFlags, UTF8<> >(json);
// EXPECT_FALSE(doc.HasParseError());
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
index 3ec8982898..69e2256b6c 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/dtoatest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
index d9b87e94cd..52e5040bb0 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodedstreamtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -39,7 +39,7 @@ public:
private:
EncodedStreamTest(const EncodedStreamTest&);
EncodedStreamTest& operator=(const EncodedStreamTest&);
-
+
protected:
static FILE* Open(const char* filename) {
const char *paths[] = {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
index 455881e7e8..ab0175a780 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/encodingstest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -259,7 +259,7 @@ static const unsigned char utf8d[] = {
12, 0,12,12,12,12,12, 0,12, 0,12,12, 12,24,12,12,12,12,12,24,12,24,12,12,
12,12,12,12,12,12,12,24,12,12,12,12, 12,24,12,12,12,12,12,12,12,24,12,12,
12,12,12,12,12,12,12,36,12,36,12,12, 12,36,12,12,12,12,12,36,12,36,12,12,
- 12,36,12,12,12,12,12,12,12,12,12,12,
+ 12,36,12,12,12,12,12,12,12,12,12,12,
};
static unsigned inline decode(unsigned* state, unsigned* codep, unsigned byte) {
@@ -377,7 +377,7 @@ TEST(EncodingsTest, UTF16) {
unsigned decodedCodepoint;
bool result = UTF16<>::Decode(is, &decodedCodepoint);
EXPECT_TRUE(result);
- EXPECT_EQ(codepoint, decodedCodepoint);
+ EXPECT_EQ(codepoint, decodedCodepoint);
if (!result || codepoint != decodedCodepoint)
std::cout << std::hex << codepoint << " " << decodedCodepoint << std::endl;
}
@@ -408,7 +408,7 @@ TEST(EncodingsTest, UTF32) {
unsigned decodedCodepoint;
bool result = UTF32<>::Decode(is, &decodedCodepoint);
EXPECT_TRUE(result);
- EXPECT_EQ(codepoint, decodedCodepoint);
+ EXPECT_EQ(codepoint, decodedCodepoint);
if (!result || codepoint != decodedCodepoint)
std::cout << std::hex << codepoint << " " << decodedCodepoint << std::endl;
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
index de0b4d1a4a..34da56cef8 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/filestreamtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -77,7 +77,7 @@ public:
private:
FileStreamTest(const FileStreamTest&);
FileStreamTest& operator=(const FileStreamTest&);
-
+
protected:
const char* filename_;
char *json_;
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
index e9c707805a..62ab5a0344 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/fwdtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -103,7 +103,7 @@ struct Foo {
typedef Transcoder<UTF8<>, UTF8<> > TranscoderUtf8ToUtf8;
typedef BaseReaderHandler<UTF8<>, void> BaseReaderHandlerUtf8Void;
-Foo::Foo() :
+Foo::Foo() :
// encodings.h
utf8(RAPIDJSON_NEW(UTF8<>)),
utf16(RAPIDJSON_NEW(UTF16<>)),
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
index f0cdb2d38c..57634caf4d 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/istreamwrappertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
index 19e1f1c47a..aadce0a060 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/jsoncheckertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -104,7 +104,7 @@ TEST(JsonChecker, Reader) {
break;
}
EXPECT_TRUE(reader.HasParseError()) << filename;
-
+
free(json);
}
@@ -126,7 +126,7 @@ TEST(JsonChecker, Reader) {
// Test iterative parsing.
document.Parse<kParseIterativeFlag>(json);
EXPECT_FALSE(document.HasParseError()) << filename;
-
+
// Test iterative pull-parsing.
Reader reader;
StringStream ss(json);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
index e33e6d5f54..2755d6f16f 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/namespacetest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,14 +7,14 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
-// test another instantiation of RapidJSON in a different namespace
+// test another instantiation of RapidJSON in a different namespace
#define RAPIDJSON_NAMESPACE my::rapid::json
#define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapid { namespace json {
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
index c9bc5f4bfb..ec809e2edc 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/ostreamwrappertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -77,7 +77,7 @@ static void TestFileStream() {
}
fp = fopen(filename, "r");
- ASSERT_TRUE( fp != NULL );
+ ASSERT_TRUE( fp != NULL );
for (const char* p = s; *p; p++)
EXPECT_EQ(*p, static_cast<char>(fgetc(fp)));
fclose(fp);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
index 05eba3f5bd..e03fe8f099 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/platformtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2021 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,15 +7,15 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
// see https://github.com/Tencent/rapidjson/issues/1448
-// including windows.h on purpose to provoke a compile time problem as GetObject is a
+// including windows.h on purpose to provoke a compile time problem as GetObject is a
// macro that gets defined when windows.h is included
#ifdef _WIN32
#include <windows.h>
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
index 342086dd10..4173f15e7e 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/pointertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -475,7 +475,7 @@ TEST(Pointer, CopyConstructor) {
EXPECT_EQ(1u, q.GetTokens()[1].length);
EXPECT_STREQ("0", q.GetTokens()[1].name);
EXPECT_EQ(0u, q.GetTokens()[1].index);
-
+
// Copied pointer needs to have its own allocator
EXPECT_NE(&p.GetAllocator(), &q.GetAllocator());
}
@@ -837,7 +837,7 @@ TEST(Pointer, Set) {
Document d;
d.Parse(kJson);
Document::AllocatorType& a = d.GetAllocator();
-
+
// Value version
Pointer("/foo/0").Set(d, Value(123).Move(), a);
EXPECT_EQ(123, d["foo"][0].GetInt());
@@ -896,7 +896,7 @@ TEST(Pointer, Set) {
TEST(Pointer, Set_NoAllocator) {
Document d;
d.Parse(kJson);
-
+
// Value version
Pointer("/foo/0").Set(d, Value(123).Move());
EXPECT_EQ(123, d["foo"][0].GetInt());
@@ -1727,4 +1727,4 @@ TEST(Pointer, Issue1899) {
EXPECT_TRUE(PointerType("/foo/1234") == q);
q = q.Append("");
EXPECT_TRUE(PointerType("/foo/1234/") == q);
-} \ No newline at end of file
+}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
index 0b7feef3b2..3b3608097c 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/prettywritertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -150,15 +150,15 @@ private:
// For covering PutN() generic version
TEST(PrettyWriter, OStreamWrapper) {
StringStream s(kJson);
-
+
std::stringstream ss;
OStreamWrapper os(ss);
-
+
PrettyWriter<OStreamWrapper> writer(os);
Reader reader;
reader.Parse(s, writer);
-
+
std::string actual = ss.str();
EXPECT_STREQ(kPrettyJson, actual.c_str());
}
@@ -217,7 +217,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.EndArray(), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// [}
{
StringBuffer buffer;
@@ -226,7 +226,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.EndObject(), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// { 1:
{
StringBuffer buffer;
@@ -235,7 +235,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.Int(1), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// { 'a' }
{
StringBuffer buffer;
@@ -245,7 +245,7 @@ TEST(PrettyWriter, InvalidEventSequence) {
EXPECT_THROW(writer.EndObject(), AssertException);
EXPECT_FALSE(writer.IsComplete());
}
-
+
// { 'a':'b','c' }
{
StringBuffer buffer;
@@ -304,13 +304,13 @@ TEST(PrettyWriter, Inf) {
TEST(PrettyWriter, Issue_889) {
char buf[100] = "Hello";
-
+
StringBuffer buffer;
PrettyWriter<StringBuffer> writer(buffer);
writer.StartArray();
writer.String(buf);
writer.EndArray();
-
+
EXPECT_STREQ("[\n \"Hello\"\n]", buffer.GetString());
EXPECT_TRUE(writer.IsComplete()); \
}
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
index a288622bc7..2296ba2980 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/regextest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -404,7 +404,7 @@ TEST(Regex, QuantifierMinMax5) {
#define EURO "\xE2\x82\xAC" // "\xE2\x82\xAC" is UTF-8 rsquence of Euro sign U+20AC
TEST(Regex, Unicode) {
- Regex re("a" EURO "+b");
+ Regex re("a" EURO "+b");
ASSERT_TRUE(re.IsValid());
RegexSearch rs(re);
EXPECT_TRUE(rs.Match("a" EURO "b"));
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
index 1b25e2f44e..92c1b72384 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/schematest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#define RAPIDJSON_SCHEMA_VERBOSE 0
@@ -192,7 +192,7 @@ TEST(SchemaValidator, Typeless) {
Document sd;
sd.Parse("{}");
SchemaDocument s(sd);
-
+
VALIDATE(s, "42", true);
VALIDATE(s, "\"I'm a string\"", true);
VALIDATE(s, "{ \"an\": [ \"arbitrarily\", \"nested\" ], \"data\": \"structure\" }", true);
@@ -1030,7 +1030,7 @@ TEST(SchemaValidator, Object) {
SchemaDocument s(sd);
VALIDATE(s, "{\"key\":\"value\",\"another_key\":\"another_value\"}", true);
- VALIDATE(s, "{\"Sun\":1.9891e30,\"Jupiter\":1.8986e27,\"Saturn\":5.6846e26,\"Neptune\":10.243e25,\"Uranus\":8.6810e25,\"Earth\":5.9736e24,\"Venus\":4.8685e24,\"Mars\":6.4185e23,\"Mercury\":3.3022e23,\"Moon\":7.349e22,\"Pluto\":1.25e22}", true);
+ VALIDATE(s, "{\"Sun\":1.9891e30,\"Jupiter\":1.8986e27,\"Saturn\":5.6846e26,\"Neptune\":10.243e25,\"Uranus\":8.6810e25,\"Earth\":5.9736e24,\"Venus\":4.8685e24,\"Mars\":6.4185e23,\"Mercury\":3.3022e23,\"Moon\":7.349e22,\"Pluto\":1.25e22}", true);
INVALIDATE(s, "[\"An\", \"array\", \"not\", \"an\", \"object\"]", "", "type", "",
"{ \"type\": {"
" \"errorCode\": 20,"
@@ -2089,9 +2089,9 @@ TEST(SchemaValidator, ValidateMetaSchema_UTF16) {
template <typename SchemaDocumentType = SchemaDocument>
class RemoteSchemaDocumentProvider : public IGenericRemoteSchemaDocumentProvider<SchemaDocumentType> {
public:
- RemoteSchemaDocumentProvider() :
- documentAllocator_(documentBuffer_, sizeof(documentBuffer_)),
- schemaAllocator_(schemaBuffer_, sizeof(schemaBuffer_))
+ RemoteSchemaDocumentProvider() :
+ documentAllocator_(documentBuffer_, sizeof(documentBuffer_)),
+ schemaAllocator_(schemaBuffer_, sizeof(schemaBuffer_))
{
const char* filenames[kCount] = {
"jsonschema/remotes/integer.json",
@@ -2402,11 +2402,11 @@ TEST(SchemaValidator, Issue1017_allOfHandler) {
GenericSchemaValidator<SchemaDocument, Writer<StringBuffer> > validator(s, writer);
EXPECT_TRUE(validator.StartObject());
EXPECT_TRUE(validator.Key("cyanArray2", 10, false));
- EXPECT_TRUE(validator.StartArray());
- EXPECT_TRUE(validator.EndArray(0));
+ EXPECT_TRUE(validator.StartArray());
+ EXPECT_TRUE(validator.EndArray(0));
EXPECT_TRUE(validator.Key("blackArray", 10, false));
- EXPECT_TRUE(validator.StartArray());
- EXPECT_TRUE(validator.EndArray(0));
+ EXPECT_TRUE(validator.StartArray());
+ EXPECT_TRUE(validator.EndArray(0));
EXPECT_TRUE(validator.EndObject(0));
EXPECT_TRUE(validator.IsValid());
EXPECT_STREQ("{\"cyanArray2\":[],\"blackArray\":[]}", sb.GetString());
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
index 649505fab2..924fd5c1b3 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/simdtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
// Since Travis CI installs old Valgrind 3.7.0, which fails with some SSE4.2
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
index 411269396a..a8d0aad158 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strfunctest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
index eaa29e715e..a7ec2b6af6 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/stringbuffertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
index 66167a4a35..2fcb63524f 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/strtodtest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -117,7 +117,7 @@ TEST(Strtod, CheckApproximationCase) {
EXPECT_TRUE(BIGINTEGER_LITERAL("17763568394002504646778106689453125") == hS);
EXPECT_EQ(1, dS.Compare(bS));
-
+
BigInteger delta(0);
EXPECT_FALSE(dS.Difference(bS, &delta));
EXPECT_TRUE(BIGINTEGER_LITERAL("16216586195252933526457586554279088") == delta);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
index 879976a782..c5b6f2710a 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
index 0e64d3970b..567389a17a 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/unittest.h
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#ifndef UNITTEST_H_
@@ -85,7 +85,7 @@ inline FILE* TempFile(char *filename) {
if (filename[0] == '\\')
for (int i = 0; filename[i] != '\0'; i++)
filename[i] = filename[i + 1];
-
+
return fopen(filename, "wb");
#else
strcpy(filename, "/tmp/fileXXXXXX");
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
index 0a6b325f4b..6ef22b7260 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/valuetest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -161,7 +161,7 @@ TEST(Value, AssignmentOperator) {
#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS
}
-template <typename A, typename B>
+template <typename A, typename B>
void TestEqual(const A& a, const B& b) {
EXPECT_TRUE (a == b);
EXPECT_FALSE(a != b);
@@ -169,7 +169,7 @@ void TestEqual(const A& a, const B& b) {
EXPECT_FALSE(b != a);
}
-template <typename A, typename B>
+template <typename A, typename B>
void TestUnequal(const A& a, const B& b) {
EXPECT_FALSE(a == b);
EXPECT_TRUE (a != b);
@@ -1060,7 +1060,7 @@ static void TestArray(T& x, Allocator& allocator) {
x.Clear();
for (unsigned i = 0; i < n; i++)
x.PushBack(Value(kArrayType).PushBack(i, allocator).Move(), allocator);
-
+
itr = x.Erase(x.Begin() + first, x.Begin() + last);
if (last == n)
EXPECT_EQ(x.End(), itr);
@@ -1345,7 +1345,7 @@ static void TestObject(T& x, Allocator& allocator) {
#endif
// member iterator
- Value::MemberIterator itr = x.MemberBegin();
+ Value::MemberIterator itr = x.MemberBegin();
EXPECT_TRUE(itr != x.MemberEnd());
EXPECT_STREQ("A", itr->name.GetString());
EXPECT_STREQ("Apple", itr->value.GetString());
@@ -1361,7 +1361,7 @@ static void TestObject(T& x, Allocator& allocator) {
EXPECT_FALSE(itr != x.MemberEnd());
// const member iterator
- Value::ConstMemberIterator citr = y.MemberBegin();
+ Value::ConstMemberIterator citr = y.MemberBegin();
EXPECT_TRUE(citr != y.MemberEnd());
EXPECT_STREQ("A", citr->name.GetString());
EXPECT_STREQ("Apple", citr->value.GetString());
@@ -1556,7 +1556,7 @@ TEST(Value, ObjectHelper) {
EXPECT_STREQ("apple", y["a"].GetString());
EXPECT_TRUE(x.IsObject()); // Invariant
}
-
+
{
Value x(kObjectType);
x.AddMember("a", "apple", allocator);
@@ -1674,7 +1674,7 @@ TEST(Value, BigNestedObject) {
for (SizeType i = 0; i < n; i++) {
char name1[10];
sprintf(name1, "%d", i);
-
+
for (SizeType j = 0; j < n; j++) {
char name2[10];
sprintf(name2, "%d", j);
@@ -1689,8 +1689,8 @@ TEST(Value, BigNestedObject) {
TEST(Value, RemoveLastElement) {
rapidjson::Document doc;
rapidjson::Document::AllocatorType& allocator = doc.GetAllocator();
- rapidjson::Value objVal(rapidjson::kObjectType);
- objVal.AddMember("var1", 123, allocator);
+ rapidjson::Value objVal(rapidjson::kObjectType);
+ objVal.AddMember("var1", 123, allocator);
objVal.AddMember("var2", "444", allocator);
objVal.AddMember("var3", 555, allocator);
EXPECT_TRUE(objVal.HasMember("var3"));
@@ -1712,22 +1712,22 @@ TEST(Document, CrtAllocator) {
static void TestShortStringOptimization(const char* str) {
const rapidjson::SizeType len = static_cast<rapidjson::SizeType>(strlen(str));
-
+
rapidjson::Document doc;
rapidjson::Value val;
val.SetString(str, len, doc.GetAllocator());
-
- EXPECT_EQ(val.GetStringLength(), len);
- EXPECT_STREQ(val.GetString(), str);
+
+ EXPECT_EQ(val.GetStringLength(), len);
+ EXPECT_STREQ(val.GetString(), str);
}
TEST(Value, AllocateShortString) {
- TestShortStringOptimization(""); // edge case: empty string
- TestShortStringOptimization("12345678"); // regular case for short strings: 8 chars
- TestShortStringOptimization("12345678901"); // edge case: 11 chars in 32-bit mode (=> short string)
- TestShortStringOptimization("123456789012"); // edge case: 12 chars in 32-bit mode (=> regular string)
- TestShortStringOptimization("123456789012345"); // edge case: 15 chars in 64-bit mode (=> short string)
- TestShortStringOptimization("1234567890123456"); // edge case: 16 chars in 64-bit mode (=> regular string)
+ TestShortStringOptimization(""); // edge case: empty string
+ TestShortStringOptimization("12345678"); // regular case for short strings: 8 chars
+ TestShortStringOptimization("12345678901"); // edge case: 11 chars in 32-bit mode (=> short string)
+ TestShortStringOptimization("123456789012"); // edge case: 12 chars in 32-bit mode (=> regular string)
+ TestShortStringOptimization("123456789012345"); // edge case: 15 chars in 64-bit mode (=> short string)
+ TestShortStringOptimization("1234567890123456"); // edge case: 16 chars in 64-bit mode (=> regular string)
}
template <int e>
@@ -1802,7 +1802,7 @@ static void MergeDuplicateKey(Value& v, Value::AllocatorType& a) {
// Convert all key:value into key:[value]
for (Value::MemberIterator itr = v.MemberBegin(); itr != v.MemberEnd(); ++itr)
itr->value = Value(kArrayType).Move().PushBack(itr->value, a);
-
+
// Merge arrays if key is duplicated
for (Value::MemberIterator itr = v.MemberBegin(); itr != v.MemberEnd();) {
Value::MemberIterator itr2 = v.FindMember(itr->name);
diff --git a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
index ac9ad899e1..bfbd71c4c9 100644
--- a/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
+++ b/graphics/asymptote/LspCpp/third_party/rapidjson/test/unittest/writertest.cpp
@@ -1,5 +1,5 @@
// Tencent is pleased to support the open source community by making RapidJSON available.
-//
+//
// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip.
//
// Licensed under the MIT License (the "License"); you may not use this file except
@@ -7,9 +7,9 @@
//
// http://opensource.org/licenses/MIT
//
-// Unless required by applicable law or agreed to in writing, software distributed
-// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
-// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// Unless required by applicable law or agreed to in writing, software distributed
+// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
#include "unittest.h"
@@ -102,13 +102,13 @@ TEST(Writer, String) {
TEST(Writer, Issue_889) {
char buf[100] = "Hello";
-
+
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
writer.StartArray();
writer.String(buf);
writer.EndArray();
-
+
EXPECT_STREQ("[\"Hello\"]", buffer.GetString());
EXPECT_TRUE(writer.IsComplete()); \
}
@@ -220,15 +220,15 @@ private:
TEST(Writer, OStreamWrapper) {
StringStream s("{ \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3], \"u64\": 1234567890123456789, \"i64\":-1234567890123456789 } ");
-
+
std::stringstream ss;
OStreamWrapper os(ss);
-
+
Writer<OStreamWrapper> writer(os);
Reader reader;
reader.Parse<0>(s, writer);
-
+
std::string actual = ss.str();
EXPECT_STREQ("{\"hello\":\"world\",\"t\":true,\"f\":false,\"n\":null,\"i\":123,\"pi\":3.1416,\"a\":[1,2,3],\"u64\":1234567890123456789,\"i64\":-1234567890123456789}", actual.c_str());
}
@@ -449,7 +449,7 @@ TEST(Writer, InvalidEventSequence) {
EXPECT_FALSE(writer.IsComplete());
}
- // { 1:
+ // { 1:
{
StringBuffer buffer;
Writer<StringBuffer> writer(buffer);
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG b/graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG
deleted file mode 100644
index 635fbcfde5..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/CHANGE_LOG
+++ /dev/null
@@ -1,88 +0,0 @@
-Change Log
-
-0.2.5
- - Made threadpool compatible to boost::thread 1.37
- - Fixed hang problem in shutdown method (Thanks to Sohail Somani)
- - Adapted repository layout to boost (Thanks to Alex Ott)
-
-0.2.4 (Stable)
- - Made threadpool compatible to boost::thread 1.35.x code base
- - Fixed compiler warning in scope_guard.hpp
-
-0.2.3 (Development)
- - Implemented workaround for Sun C++ Pro compiler bug in pool_core
- - Removed subtask implementation (there was no demand for this feature)
- - Improved shutdown policies
-
-0.2.2 (Development)
- - Refactored SizePolicy and added SizePolicyController
- - Moved policies into separate files
- - Fixed some compiler problems (GCC)
- - Implemented size_controller handling
- - Implemented two size policies: static_size and fixed_size
- - Refactored worker_thread handling, moved policies from pool_core to pool
- - Specialized schedule function for usage with futures
- - Added compile test project
- - Improved constness in pool core class
- - Fixed timed wait
- - Implemented futures (in progress)
- - Added result_type to all functors
-
-0.2.1 (Development)
- - Pool base class (thread_pool) has now reference semantics
- - Large refactorings: Removed scoped_pool, reimplemented worker (now worker_thread)
- - Fixed odd resize behaviour. Now resize changes the number of threads immediately
- - Apply pimpl idiom on pool core class (to make the ugly scoped_pool class needless)
- - Introduced scheduling policies
- - Switched to policy-based design (PBD), inspired by Scott Meyers C++ workshop
- - Cosmetic code change: Replaced keyword 'class' with 'typename' in template definitions
- - Revised tutorials
- - New requirements: tasks functions should not and schedulers shall not throw exceptions
-
-
-0.2.0 (Development)
- - Moved threadpool into the boost namespace: boost::threadpool
- - Used keyword volatile to indicate thread-safe member functions
- - Used volatile on primitve types were appropriate
- - Moved worker to detail directory
- - Fixed thread deletion
- - Extended wait functionality (waiting for idle threads was implemented)
- - Renamed 'join()' to 'wait()' as 'join' indicates the termination of thread. That was not the case in pool::join.
- - Changed internal container of lifo and fifo schedulers to improve efficiency.
- - Improved code reference documentation (source code browser)
- - Renamed thread_func into task_func
- - Added += operator to scoped_pool to ease scheduling of tasks
- - Refactored file structures and class names
- - Added a new task concept (named subtask) which allows the combination of sequential and parallel execution
- - Added new task adaptor for looped or timed tasks: looped_task_func
- - Introduced function clear() which can be used to remove all tasks from the pool and schedulers
- - New function pool::active() which returns the number of active tasks
-
-0.1.8 (Development)
- - Fixed some compile errors which were reported by gcc
- - Wrote tutorial "Prioritized Tasks"
-
-0.1.7 (Development)
- - Added Visual Studio 2005 project files for tutorial and examples
-
-0.1.6 (Development)
- - Replaced task adaptor 'task' with boost::bind
- - Workers are unregistered from thread_group when they are terminated
- - Working on example boost::iostreams packet_filter
-
-0.1.5 (Development)
- - Finished threadpool reference
- - Class pool_adaptor was replaced by smart_pool
- - Minor pool improvements
- - First tutorial page online
-
-0.1.4 (Development)
- - Created the pool's homepage: http://threadpool.sourceforge.net
- - Improved documentation
- - Added build scripts
-
-0.1.3 (Development)
- - First public release
- - Added mergesort example
- - Added tutorial
- - Implementation of threadpool core and related classes \ No newline at end of file
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/COPYING b/graphics/asymptote/LspCpp/third_party/threadpool/COPYING
deleted file mode 100644
index 06bdc4605a..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/COPYING
+++ /dev/null
@@ -1,5 +0,0 @@
-Copyright (c) 2005-2007 Philipp Henkel
-
-Use, modification, and distribution are subject to the
-Boost Software License, Version 1.0. (See accompanying file
-LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) \ No newline at end of file
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/Jamfile.v2 b/graphics/asymptote/LspCpp/third_party/threadpool/Jamfile.v2
deleted file mode 100644
index 56c8549755..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/Jamfile.v2
+++ /dev/null
@@ -1,13 +0,0 @@
-use-project /boost
- : $(BOOST_ROOT)
- ;
-
-project threadpool
- : requirements <include>.&&$(BOOST_ROOT)
- # disable auto-linking for all targets here,
- # primarily because it caused troubles with V2
- <define>BOOST_ALL_NO_LIB=1
- : usage-requirements <include>.&&$(BOOST_ROOT)
- : build-dir bin.v2
- ;
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/Jamrules b/graphics/asymptote/LspCpp/third_party/threadpool/Jamrules
deleted file mode 100644
index 8571a1461c..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/Jamrules
+++ /dev/null
@@ -1 +0,0 @@
-project boost : $(BOOST_ROOT) ;
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt b/graphics/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt
deleted file mode 100644
index 36b7cd93cd..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/LICENSE_1_0.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Boost Software License - Version 1.0 - August 17th, 2003
-
-Permission is hereby granted, free of charge, to any person or organization
-obtaining a copy of the software and accompanying documentation covered by
-this license (the "Software") to use, reproduce, display, distribute,
-execute, and transmit the Software, and to prepare derivative works of the
-Software, and to permit third-parties to whom the Software is furnished to
-do so, all subject to the following:
-
-The copyright notices in the Software and this entire statement, including
-the above license grant, this restriction and the following disclaimer,
-must be included in all copies of the Software, in whole or in part, and
-all derivative works of the Software, unless such copies or derivative
-works are solely in the form of machine-executable object code generated by
-a source language processor.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/Makefile b/graphics/asymptote/LspCpp/third_party/threadpool/Makefile
deleted file mode 100644
index 9acf23b272..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-export RELEASE_MANAGER=philipphenkel
-export RELEASE_VERSION=0_2_5
-
-doc: clean
- make --directory=./libs/threadpool/doc --print-directory doc
-
-release_doc:
- make --directory=./libs/threadpool/doc --print-directory release_doc
-
-release_src: clean fetch_clean_src
- mv clean_src threadpool-$(RELEASE_VERSION)-src
- zip -r9 threadpool-$(RELEASE_VERSION)-src.zip threadpool-$(RELEASE_VERSION)-src
- rm -rf threadpool-$(RELEASE_VERSION)-src
-
-deploy_website:
- make --directory=./libs/threadpool/doc --print-directory deploy_sf
-
-clean:
- rm -rf clean_src
- rm -rf threadpool-$(RELEASE_VERSION)-src.zip
- rm -rf threadpool-$(RELEASE_VERSION)-doc.zip
- make --directory=./libs/threadpool/doc --print-directory clean
-
-fetch_clean_src:
- rm -rf clean_src
- mkdir clean_src
-# cvs -d:pserver:anonymous@threadpool.cvs.sourceforge.net:/cvsroot/threadpool login
- cd clean_src; cvs -z3 -d:pserver:anonymous@threadpool.cvs.sourceforge.net:/cvsroot/threadpool export -r RELEASE_$(RELEASE_VERSION) threadpool
-# cd clean_src; cvs -z3 -d:ext:$(RELEASE_MANAGER)@cvs.sourceforge.net:/cvsroot/threadpool export -r RELEASE_$(RELEASE_VERSION) threadpool
-
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/README b/graphics/asymptote/LspCpp/third_party/threadpool/README
deleted file mode 100644
index c6f1a83d81..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/README
+++ /dev/null
@@ -1,10 +0,0 @@
-threadpool
-
-Copyright (c) 2005-2007 Philipp Henkel
-
-threadpool is a cross-platform C++ thread pool library and released under the Boost Software License.
-
-See doc/index.html for information on:
- - API documentation and a tutorial
- - External dependencies
- - Using threadpool
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/TODO b/graphics/asymptote/LspCpp/third_party/threadpool/TODO
deleted file mode 100644
index 1c5e6e26d6..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/TODO
+++ /dev/null
@@ -1,36 +0,0 @@
-threadpool to-do items
-======================
-
-Documentation
---------------------------------------------
-- Source code documentation
-- Design rationale
-- Tutorial
-- Finish Quickstart Tutorial/Example
-
-Functionality
---------------------------------------------
-- Implement a size policy which dynamically
- increase/decrease the pool's size:
- - init with min/max threads
- - auto increase
- - auto decrease (using timed cleanup tasks)
-- Add some kind of deadline scheduler
-- Add futures to pool
-
-
-Examples
---------------------------------------------
-- Buffering Client Requests: Handle 'bursty' client traffic
- Some applications need more buffering than is provided by OS I/O subsystem
-
- Working on 'active' buffer for boost::iostreams
- buffer_filter which provides a dynamic amount of buffer objects.
- buffer_filter uses a threadpool with one thread which provides the buffers to
- consumer. (TODO Philipp)
-
- 2nd implemention step:
- Flexbile configuration: Buffer capacities can be configured according to
- - maximum number of requests
- - maximum number of bytes
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp
deleted file mode 100644
index 7d9ee48010..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*! \file
-* \brief Main include.
-*
-* This is the only file you have to include in order to use the
-* complete threadpool library.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-#ifndef THREADPOOL_HPP_INCLUDED
-#define THREADPOOL_HPP_INCLUDED
-
-#include "./threadpool/future.hpp"
-#include "./threadpool/pool.hpp"
-
-#include "./threadpool/pool_adaptors.hpp"
-#include "./threadpool/task_adaptors.hpp"
-
-
-#endif // THREADPOOL_HPP_INCLUDED
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp
deleted file mode 100644
index 4e4b35bebe..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/future.hpp
+++ /dev/null
@@ -1,215 +0,0 @@
-/*! \file
-* \brief TODO.
-*
-* TODO.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_DETAIL_FUTURE_IMPL_HPP_INCLUDED
-#define THREADPOOL_DETAIL_FUTURE_IMPL_HPP_INCLUDED
-
-
-#include "locking_ptr.hpp"
-
-#include <boost/smart_ptr.hpp>
-#include <boost/optional.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/condition.hpp>
-#include <boost/thread/xtime.hpp>
-#include <boost/utility/result_of.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits.hpp>
-
-namespace boost { namespace threadpool { namespace detail
-{
-
-template<class Result>
-class future_impl
-{
-public:
- typedef Result const & result_type; //!< Indicates the functor's result type.
-
- typedef Result future_result_type; //!< Indicates the future's result type.
- typedef future_impl<future_result_type> future_type;
-
-private:
- volatile bool m_ready;
- volatile future_result_type m_result;
-
- mutable mutex m_monitor;
- mutable condition m_condition_ready;
-
- volatile bool m_is_cancelled;
- volatile bool m_executing;
-
-public:
-
-
-public:
-
- future_impl()
- : m_ready(false)
- , m_is_cancelled(false)
- {
- }
-
- bool ready() const volatile
- {
- return m_ready;
- }
-
- void wait() const volatile
- {
- const future_type* self = const_cast<const future_type*>(this);
- mutex::scoped_lock lock(self->m_monitor);
-
- while(!m_ready)
- {
- self->m_condition_ready.wait(lock);
- }
- }
-
-
- bool timed_wait(boost::xtime const & timestamp) const
- {
- const future_type* self = const_cast<const future_type*>(this);
- mutex::scoped_lock lock(self->m_monitor);
-
- while(!m_ready)
- {
- if(!self->m_condition_ready.timed_wait(lock, timestamp)) return false;
- }
-
- return true;
- }
-
-
- result_type operator()() const volatile
- {
- wait();
-/*
- if( throw_exception_ != 0 )
- {
- throw_exception_( this );
- }
-*/
-
- return *(const_cast<const future_result_type*>(&m_result));
- }
-
-
- void set_value(future_result_type const & r) volatile
- {
- locking_ptr<future_type, mutex> lockedThis(*this, m_monitor);
- if(!m_ready && !m_is_cancelled)
- {
- lockedThis->m_result = r;
- lockedThis->m_ready = true;
- lockedThis->m_condition_ready.notify_all();
- }
- }
-/*
- template<class E> void set_exception() // throw()
- {
- m_impl->template set_exception<E>();
- }
-
- template<class E> void set_exception( char const * what ) // throw()
- {
- m_impl->template set_exception<E>( what );
- }
- */
-
-
- bool cancel() volatile
- {
- if(!m_ready || m_executing)
- {
- m_is_cancelled = true;
- return true;
- }
- else
- {
- return false;
- }
- }
-
-
- bool is_cancelled() const volatile
- {
- return m_is_cancelled;
- }
-
-
- void set_execution_status(bool executing) volatile
- {
- m_executing = executing;
- }
-};
-
-
-template<
- template <typename> class Future,
- typename Function
->
-class future_impl_task_func
-{
-
-public:
- typedef void result_type; //!< Indicates the functor's result type.
-
- typedef Function function_type; //!< Indicates the function's type.
- typedef typename result_of<function_type()>::type future_result_type; //!< Indicates the future's result type.
- typedef Future<future_result_type> future_type; //!< Indicates the future's type.
-
- // The task is required to be a nullary function.
- BOOST_STATIC_ASSERT(function_traits<function_type()>::arity == 0);
-
- // The task function's result type is required not to be void.
- BOOST_STATIC_ASSERT(!is_void<future_result_type>::value);
-
-private:
- function_type m_function;
- shared_ptr<future_type> m_future;
-
-public:
- future_impl_task_func(function_type const & function, shared_ptr<future_type> const & future)
- : m_function(function)
- , m_future(future)
- {
- }
-
- void operator()()
- {
- if(m_function)
- {
- m_future->set_execution_status(true);
- if(!m_future->is_cancelled())
- {
- // TODO future exeception handling
- m_future->set_value(m_function());
- }
- m_future->set_execution_status(false); // TODO consider exceptions
- }
- }
-
-};
-
-
-
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_DETAIL_FUTURE_IMPL_HPP_INCLUDED
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp
deleted file mode 100644
index 57ba560b5a..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/locking_ptr.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*! \file
-* \brief The locking_ptr is smart pointer with a scoped locking mechanism.
-*
-* The class is a wrapper for a volatile pointer. It enables synchronized access to the
-* internal pointer by locking the passed mutex.
-* locking_ptr is based on Andrei Alexandrescu's LockingPtr. For more information
-* see article "volatile - Multithreaded Programmer's Best Friend" by A. Alexandrescu.
-*
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_DETAIL_LOCKING_PTR_HPP_INCLUDED
-#define THREADPOOL_DETAIL_LOCKING_PTR_HPP_INCLUDED
-
-#include <boost/utility.hpp>
-#include <boost/thread/mutex.hpp>
-
-
-namespace boost { namespace threadpool { namespace detail
-{
-
-/*! \brief Smart pointer with a scoped locking mechanism.
- *
- * This class is a wrapper for a volatile pointer. It enables synchronized access to the
- * internal pointer by locking the passed mutex.
- */
- template <typename T, typename Mutex>
- class locking_ptr
- : private noncopyable
- {
- T* m_obj; //!< The instance pointer.
- Mutex & m_mutex; //!< Mutex is used for scoped locking.
-
- public:
- /// Constructor.
- locking_ptr(volatile T& obj, const volatile Mutex& mtx)
- : m_obj(const_cast<T*>(&obj))
- , m_mutex(*const_cast<Mutex*>(&mtx))
- {
- // Lock mutex
- m_mutex.lock();
- }
-
-
- /// Destructor.
- ~locking_ptr()
- {
- // Unlock mutex
- m_mutex.unlock();
- }
-
-
- /*! Returns a reference to the stored instance.
- * \return The instance's reference.
- */
- T& operator*() const
- {
- return *m_obj;
- }
-
-
- /*! Returns a pointer to the stored instance.
- * \return The instance's pointer.
- */
- T* operator->() const
- {
- return m_obj;
- }
- };
-
-
-} } } // namespace boost::threadpool::detail
-
-
-#endif // THREADPOOL_DETAIL_LOCKING_PTR_HPP_INCLUDED
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp
deleted file mode 100644
index a81df87763..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/pool_core.hpp
+++ /dev/null
@@ -1,453 +0,0 @@
-/*! \file
-* \brief Thread pool core.
-*
-* This file contains the threadpool's core class: pool<Task, SchedulingPolicy>.
-*
-* Thread pools are a mechanism for asynchronous and parallel processing
-* within the same process. The pool class provides a convenient way
-* for dispatching asynchronous tasks as functions objects. The scheduling
-* of these tasks can be easily controlled by using customized schedulers.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_POOL_CORE_HPP_INCLUDED
-#define THREADPOOL_POOL_CORE_HPP_INCLUDED
-
-
-
-
-#include "locking_ptr.hpp"
-#include "worker_thread.hpp"
-
-#include "../task_adaptors.hpp"
-
-#include <boost/thread.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/thread/condition.hpp>
-#include <boost/smart_ptr.hpp>
-#include <boost/bind.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits.hpp>
-
-#include <vector>
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool { namespace detail
-{
-
- /*! \brief Thread pool.
- *
- * Thread pools are a mechanism for asynchronous and parallel processing
- * within the same process. The pool class provides a convenient way
- * for dispatching asynchronous tasks as functions objects. The scheduling
- * of these tasks can be easily controlled by using customized schedulers.
- * A task must not throw an exception.
- *
- * A pool_impl is DefaultConstructible and NonCopyable.
- *
- * \param Task A function object which implements the operator 'void operator() (void) const'. The operator () is called by the pool to execute the task. Exceptions are ignored.
- * \param Scheduler A task container which determines how tasks are scheduled. It is guaranteed that this container is accessed only by one thread at a time. The scheduler shall not throw exceptions.
- *
- * \remarks The pool class is thread-safe.
- *
- * \see Tasks: task_func, prio_task_func
- * \see Scheduling policies: fifo_scheduler, lifo_scheduler, prio_scheduler
- */
- template <
- typename Task,
-
- template <typename> class SchedulingPolicy,
- template <typename> class SizePolicy,
- template <typename> class SizePolicyController,
- template <typename> class ShutdownPolicy
- >
- class pool_core
- : public enable_shared_from_this< pool_core<Task, SchedulingPolicy, SizePolicy, SizePolicyController, ShutdownPolicy > >
- , private noncopyable
- {
-
- public: // Type definitions
- typedef Task task_type; //!< Indicates the task's type.
- typedef SchedulingPolicy<task_type> scheduler_type; //!< Indicates the scheduler's type.
- typedef pool_core<Task,
- SchedulingPolicy,
- SizePolicy,
- SizePolicyController,
- ShutdownPolicy > pool_type; //!< Indicates the thread pool's type.
- typedef SizePolicy<pool_type> size_policy_type; //!< Indicates the sizer's type.
- //typedef typename size_policy_type::size_controller size_controller_type;
-
- typedef SizePolicyController<pool_type> size_controller_type;
-
-// typedef SizePolicy<pool_type>::size_controller size_controller_type;
- typedef ShutdownPolicy<pool_type> shutdown_policy_type;//!< Indicates the shutdown policy's type.
-
- typedef worker_thread<pool_type> worker_type;
-
- // The task is required to be a nullary function.
- BOOST_STATIC_ASSERT(function_traits<task_type()>::arity == 0);
-
- // The task function's result type is required to be void.
- BOOST_STATIC_ASSERT(is_void<typename result_of<task_type()>::type >::value);
-
-
- private: // Friends
- friend class worker_thread<pool_type>;
-
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x580) // Tested with CC: Sun C++ 5.8 Patch 121018-08 2006/12/06
- friend class SizePolicy;
- friend class ShutdownPolicy;
-#else
- friend class SizePolicy<pool_type>;
- friend class ShutdownPolicy<pool_type>;
-#endif
-
- private: // The following members may be accessed by _multiple_ threads at the same time:
- volatile size_t m_worker_count;
- volatile size_t m_target_worker_count;
- volatile size_t m_active_worker_count;
-
-
-
- private: // The following members are accessed only by _one_ thread at the same time:
- scheduler_type m_scheduler;
- scoped_ptr<size_policy_type> m_size_policy; // is never null
-
- bool m_terminate_all_workers; // Indicates if termination of all workers was triggered.
- std::vector<shared_ptr<worker_type> > m_terminated_workers; // List of workers which are terminated but not fully destructed.
-
- private: // The following members are implemented thread-safe:
- mutable recursive_mutex m_monitor;
- mutable condition m_worker_idle_or_terminated_event; // A worker is idle or was terminated.
- mutable condition m_task_or_terminate_workers_event; // Task is available OR total worker count should be reduced.
-
- public:
- /// Constructor.
- pool_core()
- : m_worker_count(0)
- , m_target_worker_count(0)
- , m_active_worker_count(0)
- , m_terminate_all_workers(false)
- {
- pool_type volatile & self_ref = *this;
- m_size_policy.reset(new size_policy_type(self_ref));
-
- m_scheduler.clear();
- }
-
-
- /// Destructor.
- ~pool_core()
- {
- }
-
- /*! Gets the size controller which manages the number of threads in the pool.
- * \return The size controller.
- * \see SizePolicy
- */
- size_controller_type size_controller()
- {
- return size_controller_type(*m_size_policy, this->shared_from_this());
- }
-
- /*! Gets the number of threads in the pool.
- * \return The number of threads.
- */
- size_t size() const volatile
- {
- return m_worker_count;
- }
-
-// TODO is only called once
- void shutdown()
- {
- ShutdownPolicy<pool_type>::shutdown(*this);
- }
-
- /*! Schedules a task for asynchronous execution. The task will be executed once only.
- * \param task The task function object. It should not throw execeptions.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool schedule(task_type const & task) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
-
- if(lockedThis->m_scheduler.push(task))
- {
- lockedThis->m_task_or_terminate_workers_event.notify_one();
- return true;
- }
- else
- {
- return false;
- }
- }
-
-
- /*! Returns the number of tasks which are currently executed.
- * \return The number of active tasks.
- */
- size_t active() const volatile
- {
- return m_active_worker_count;
- }
-
-
- /*! Returns the number of tasks which are ready for execution.
- * \return The number of pending tasks.
- */
- size_t pending() const volatile
- {
- locking_ptr<const pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- return lockedThis->m_scheduler.size();
- }
-
-
- /*! Removes all pending tasks from the pool's scheduler.
- */
- void clear() volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- lockedThis->m_scheduler.clear();
- }
-
-
- /*! Indicates that there are no tasks pending.
- * \return true if there are no tasks ready for execution.
- * \remarks This function is more efficient that the check 'pending() == 0'.
- */
- bool empty() const volatile
- {
- locking_ptr<const pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- return lockedThis->m_scheduler.empty();
- }
-
-
- /*! The current thread of execution is blocked until the sum of all active
- * and pending tasks is equal or less than a given threshold.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- */
- void wait(size_t const task_threshold = 0) const volatile
- {
- const pool_type* self = const_cast<const pool_type*>(this);
- recursive_mutex::scoped_lock lock(self->m_monitor);
-
- if(0 == task_threshold)
- {
- while(0 != self->m_active_worker_count || !self->m_scheduler.empty())
- {
- self->m_worker_idle_or_terminated_event.wait(lock);
- }
- }
- else
- {
- while(task_threshold < self->m_active_worker_count + self->m_scheduler.size())
- {
- self->m_worker_idle_or_terminated_event.wait(lock);
- }
- }
- }
-
- /*! The current thread of execution is blocked until the timestamp is met
- * or the sum of all active and pending tasks is equal or less
- * than a given threshold.
- * \param timestamp The time when function returns at the latest.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- * \return true if the task sum is equal or less than the threshold, false otherwise.
- */
- bool wait(xtime const & timestamp, size_t const task_threshold = 0) const volatile
- {
- const pool_type* self = const_cast<const pool_type*>(this);
- recursive_mutex::scoped_lock lock(self->m_monitor);
-
- if(0 == task_threshold)
- {
- while(0 != self->m_active_worker_count || !self->m_scheduler.empty())
- {
- if(!self->m_worker_idle_or_terminated_event.timed_wait(lock, timestamp)) return false;
- }
- }
- else
- {
- while(task_threshold < self->m_active_worker_count + self->m_scheduler.size())
- {
- if(!self->m_worker_idle_or_terminated_event.timed_wait(lock, timestamp)) return false;
- }
- }
-
- return true;
- }
-
-
- private:
-
-
- void terminate_all_workers(bool const wait) volatile
- {
- pool_type* self = const_cast<pool_type*>(this);
- recursive_mutex::scoped_lock lock(self->m_monitor);
-
- self->m_terminate_all_workers = true;
-
- m_target_worker_count = 0;
- self->m_task_or_terminate_workers_event.notify_all();
-
- if(wait)
- {
- while(m_active_worker_count > 0)
- {
- self->m_worker_idle_or_terminated_event.wait(lock);
- }
-
- for(typename std::vector<shared_ptr<worker_type> >::iterator it = self->m_terminated_workers.begin();
- it != self->m_terminated_workers.end();
- ++it)
- {
- (*it)->join();
- }
- self->m_terminated_workers.clear();
- }
- }
-
-
- /*! Changes the number of worker threads in the pool. The resizing
- * is handled by the SizePolicy.
- * \param threads The new number of worker threads.
- * \return true, if pool will be resized and false if not.
- */
- bool resize(size_t const worker_count) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
-
- if(!m_terminate_all_workers)
- {
- m_target_worker_count = worker_count;
- }
- else
- {
- return false;
- }
-
-
- if(m_worker_count <= m_target_worker_count)
- { // increase worker count
- while(m_worker_count < m_target_worker_count)
- {
- try
- {
- worker_thread<pool_type>::create_and_attach(lockedThis->shared_from_this());
- m_worker_count++;
- m_active_worker_count++;
- }
- catch(thread_resource_error&)
- {
- return false;
- }
- }
- }
- else
- { // decrease worker count
- lockedThis->m_task_or_terminate_workers_event.notify_all(); // TODO: Optimize number of notified workers
- }
-
- return true;
- }
-
-
- // worker died with unhandled exception
- void worker_died_unexpectedly(shared_ptr<worker_type> worker) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
-
- m_worker_count--;
- m_active_worker_count--;
- lockedThis->m_worker_idle_or_terminated_event.notify_all();
-
- if(m_terminate_all_workers)
- {
- lockedThis->m_terminated_workers.push_back(worker);
- }
- else
- {
- lockedThis->m_size_policy->worker_died_unexpectedly(m_worker_count);
- }
- }
-
- void worker_destructed(shared_ptr<worker_type> worker) volatile
- {
- locking_ptr<pool_type, recursive_mutex> lockedThis(*this, m_monitor);
- m_worker_count--;
- m_active_worker_count--;
- lockedThis->m_worker_idle_or_terminated_event.notify_all();
-
- if(m_terminate_all_workers)
- {
- lockedThis->m_terminated_workers.push_back(worker);
- }
- }
-
-
- bool execute_task() volatile
- {
- function0<void> task;
-
- { // fetch task
- pool_type* lockedThis = const_cast<pool_type*>(this);
- recursive_mutex::scoped_lock lock(lockedThis->m_monitor);
-
- // decrease number of threads if necessary
- if(m_worker_count > m_target_worker_count)
- {
- return false; // terminate worker
- }
-
-
- // wait for tasks
- while(lockedThis->m_scheduler.empty())
- {
- // decrease number of workers if necessary
- if(m_worker_count > m_target_worker_count)
- {
- return false; // terminate worker
- }
- else
- {
- m_active_worker_count--;
- lockedThis->m_worker_idle_or_terminated_event.notify_all();
- lockedThis->m_task_or_terminate_workers_event.wait(lock);
- m_active_worker_count++;
- }
- }
-
- task = lockedThis->m_scheduler.top();
- lockedThis->m_scheduler.pop();
- }
-
- // call task function
- if(task)
- {
- task();
- }
-
- //guard->disable();
- return true;
- }
- };
-
-
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_POOL_CORE_HPP_INCLUDED
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp
deleted file mode 100644
index 68634654ba..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/scope_guard.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*! \file
-* \brief TODO.
-*
-* TODO.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_DETAIL_SCOPE_GUARD_HPP_INCLUDED
-#define THREADPOOL_DETAIL_SCOPE_GUARD_HPP_INCLUDED
-
-
-
-#include <boost/function.hpp>
-
-
-namespace boost { namespace threadpool { namespace detail
-{
-
-// TODO documentation
-class scope_guard
-: private boost::noncopyable
-{
- function0<void> const m_function;
- bool m_is_active;
-
-public:
- scope_guard(function0<void> const & call_on_exit)
- : m_function(call_on_exit)
- , m_is_active(true)
- {
- }
-
- ~scope_guard()
- {
- if(m_is_active && m_function)
- {
- m_function();
- }
- }
-
- void disable()
- {
- m_is_active = false;
- }
-};
-
-
-
-
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_DETAIL_SCOPE_GUARD_HPP_INCLUDED
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp
deleted file mode 100644
index d33467a527..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/detail/worker_thread.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-/*! \file
-* \brief Thread pool worker.
-*
-* The worker thread instance is attached to a pool
-* and executes tasks of this pool.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-#ifndef THREADPOOL_DETAIL_WORKER_THREAD_HPP_INCLUDED
-#define THREADPOOL_DETAIL_WORKER_THREAD_HPP_INCLUDED
-
-
-#include "scope_guard.hpp"
-
-#include <boost/smart_ptr.hpp>
-#include <boost/thread.hpp>
-#include <boost/thread/exceptions.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/bind.hpp>
-
-
-namespace boost { namespace threadpool { namespace detail
-{
-
- /*! \brief Thread pool worker.
- *
- * A worker_thread represents a thread of execution. The worker is attached to a
- * thread pool and processes tasks of that pool. The lifetime of the worker and its
- * internal boost::thread is managed automatically.
- *
- * This class is a helper class and cannot be constructed or accessed directly.
- *
- * \see pool_core
- */
- template <typename Pool>
- class worker_thread
- : public enable_shared_from_this< worker_thread<Pool> >
- , private noncopyable
- {
- public:
- typedef Pool pool_type; //!< Indicates the pool's type.
-
- private:
- shared_ptr<pool_type> m_pool; //!< Pointer to the pool which created the worker.
- shared_ptr<boost::thread> m_thread; //!< Pointer to the thread which executes the run loop.
-
-
- /*! Constructs a new worker.
- * \param pool Pointer to it's parent pool.
- * \see function create_and_attach
- */
- worker_thread(shared_ptr<pool_type> const & pool)
- : m_pool(pool)
- {
- assert(pool);
- }
-
-
- /*! Notifies that an exception occurred in the run loop.
- */
- void died_unexpectedly()
- {
- m_pool->worker_died_unexpectedly(this->shared_from_this());
- }
-
-
- public:
- /*! Executes pool's tasks sequentially.
- */
- void run()
- {
- scope_guard notify_exception(bind(&worker_thread::died_unexpectedly, this));
-
- while(m_pool->execute_task()) {}
-
- notify_exception.disable();
- m_pool->worker_destructed(this->shared_from_this());
- }
-
-
- /*! Joins the worker's thread.
- */
- void join()
- {
- m_thread->join();
- }
-
-
- /*! Constructs a new worker thread and attaches it to the pool.
- * \param pool Pointer to the pool.
- */
- static void create_and_attach(shared_ptr<pool_type> const & pool)
- {
- shared_ptr<worker_thread> worker(new worker_thread(pool));
- if(worker)
- {
- worker->m_thread.reset(new boost::thread(bind(&worker_thread::run, worker)));
- }
- }
-
- };
-
-
-} } } // namespace boost::threadpool::detail
-
-#endif // THREADPOOL_DETAIL_WORKER_THREAD_HPP_INCLUDED
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp
deleted file mode 100644
index f4a6e12244..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/future.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*! \file
-* \brief TODO.
-*
-* TODO.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-#ifndef THREADPOOL_FUTURE_HPP_INCLUDED
-#define THREADPOOL_FUTURE_HPP_INCLUDED
-
-
-
-#include "./detail/future.hpp"
-#include <boost/utility/enable_if.hpp>
-
-//#include "pool.hpp"
-//#include <boost/utility.hpp>
-
-//#include <boost/thread/mutex.hpp>
-
-
-namespace boost { namespace threadpool
-{
-
- /*! \brief Experimental. Do not use in production code. TODO.
- *
- * TODO Future
- *
- * \see TODO
- *
- */
-
-
-template<class Result>
-class future
-{
-private:
- shared_ptr<detail::future_impl<Result> > m_impl;
-
-public:
- typedef Result const & result_type; //!< Indicates the functor's result type.
- typedef Result future_result_type; //!< Indicates the future's result type.
-
-
-public:
-
- future()
- : m_impl(new detail::future_impl<future_result_type>()) // TODO remove this
- {
- }
-
- // only for internal usage
- future(shared_ptr<detail::future_impl<Result> > const & impl)
- : m_impl(impl)
- {
- }
-
- bool ready() const
- {
- return m_impl->ready();
- }
-
- void wait() const
- {
- m_impl->wait();
- }
-
- bool timed_wait(boost::xtime const & timestamp) const
- {
- return m_impl->timed_wait(timestamp);
- }
-
- result_type operator()() // throw( thread::cancelation_exception, ... )
- {
- return (*m_impl)();
- }
-
- result_type get() // throw( thread::cancelation_exception, ... )
- {
- return (*m_impl)();
- }
-
- bool cancel()
- {
- return m_impl->cancel();
- }
-
- bool is_cancelled() const
- {
- return m_impl->is_cancelled();
- }
-};
-
-
-
-
-
-template<class Pool, class Function>
-typename disable_if <
- is_void< typename result_of< Function() >::type >,
- future< typename result_of< Function() >::type >
->::type
-schedule(Pool& pool, const Function& task)
-{
- typedef typename result_of< Function() >::type future_result_type;
-
- // create future impl and future
- shared_ptr<detail::future_impl<future_result_type> > impl(new detail::future_impl<future_result_type>);
- future <future_result_type> res(impl);
-
- // schedule future impl
- pool.schedule(detail::future_impl_task_func<detail::future_impl, Function>(task, impl));
-
- // return future
- return res;
-
-/*
- TODO
- if(pool->schedule(bind(&Future::run, future)))
- {
- return future;
- }
- else
- {
- // construct empty future
- return error_future;
- }
- */
-}
-
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_FUTURE_HPP_INCLUDED
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp
deleted file mode 100644
index a4b6676ea9..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool.hpp
+++ /dev/null
@@ -1,232 +0,0 @@
-/*! \file
-* \brief Thread pool core.
-*
-* This file contains the threadpool's core class: pool<Task, SchedulingPolicy>.
-*
-* Thread pools are a mechanism for asynchronous and parallel processing
-* within the same process. The pool class provides a convenient way
-* for dispatching asynchronous tasks as functions objects. The scheduling
-* of these tasks can be easily controlled by using customized schedulers.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_POOL_HPP_INCLUDED
-#define THREADPOOL_POOL_HPP_INCLUDED
-
-#include <boost/ref.hpp>
-
-#include "./detail/pool_core.hpp"
-
-#include "task_adaptors.hpp"
-
-#include "./detail/locking_ptr.hpp"
-
-#include "scheduling_policies.hpp"
-#include "size_policies.hpp"
-#include "shutdown_policies.hpp"
-
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool
-{
-
-
-
- /*! \brief Thread pool.
- *
- * Thread pools are a mechanism for asynchronous and parallel processing
- * within the same process. The pool class provides a convenient way
- * for dispatching asynchronous tasks as functions objects. The scheduling
- * of these tasks can be easily controlled by using customized schedulers.
- * A task must not throw an exception.
- *
- * A pool is DefaultConstructible, CopyConstructible and Assignable.
- * It has reference semantics; all copies of the same pool are equivalent and interchangeable.
- * All operations on a pool except assignment are strongly thread safe or sequentially consistent;
- * that is, the behavior of concurrent calls is as if the calls have been issued sequentially in an unspecified order.
- *
- * \param Task A function object which implements the operator 'void operator() (void) const'. The operator () is called by the pool to execute the task. Exceptions are ignored.
- * \param SchedulingPolicy A task container which determines how tasks are scheduled. It is guaranteed that this container is accessed only by one thread at a time. The scheduler shall not throw exceptions.
- *
- * \remarks The pool class is thread-safe.
- *
- * \see Tasks: task_func, prio_task_func
- * \see Scheduling policies: fifo_scheduler, lifo_scheduler, prio_scheduler
- */
- template <
- typename Task = task_func,
- template <typename> class SchedulingPolicy = fifo_scheduler,
- template <typename> class SizePolicy = static_size,
- template <typename> class SizePolicyController = resize_controller,
- template <typename> class ShutdownPolicy = wait_for_all_tasks
- >
- class thread_pool
- {
- typedef detail::pool_core<Task,
- SchedulingPolicy,
- SizePolicy,
- SizePolicyController,
- ShutdownPolicy> pool_core_type;
- shared_ptr<pool_core_type> m_core; // pimpl idiom
- shared_ptr<void> m_shutdown_controller; // If the last pool holding a pointer to the core is deleted the controller shuts the pool down.
-
- public: // Type definitions
- typedef Task task_type; //!< Indicates the task's type.
- typedef SchedulingPolicy<task_type> scheduler_type; //!< Indicates the scheduler's type.
- /* typedef thread_pool<Task,
- SchedulingPolicy,
- SizePolicy,
- ShutdownPolicy > pool_type; //!< Indicates the thread pool's type.
- */
- typedef SizePolicy<pool_core_type> size_policy_type;
- typedef SizePolicyController<pool_core_type> size_controller_type;
-
-
- public:
- /*! Constructor.
- * \param initial_threads The pool is immediately resized to set the specified number of threads. The pool's actual number threads depends on the SizePolicy.
- */
- thread_pool(size_t initial_threads = 0)
- : m_core(new pool_core_type)
- , m_shutdown_controller(static_cast<void*>(0), bind(&pool_core_type::shutdown, m_core))
- {
- size_policy_type::init(*m_core, initial_threads);
- }
-
-
- /*! Gets the size controller which manages the number of threads in the pool.
- * \return The size controller.
- * \see SizePolicy
- */
- size_controller_type size_controller()
- {
- return m_core->size_controller();
- }
-
-
- /*! Gets the number of threads in the pool.
- * \return The number of threads.
- */
- size_t size() const
- {
- return m_core->size();
- }
-
-
- /*! Schedules a task for asynchronous execution. The task will be executed once only.
- * \param task The task function object. It should not throw execeptions.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool schedule(task_type const & task)
- {
- return m_core->schedule(task);
- }
-
-
- /*! Returns the number of tasks which are currently executed.
- * \return The number of active tasks.
- */
- size_t active() const
- {
- return m_core->active();
- }
-
-
- /*! Returns the number of tasks which are ready for execution.
- * \return The number of pending tasks.
- */
- size_t pending() const
- {
- return m_core->pending();
- }
-
-
- /*! Removes all pending tasks from the pool's scheduler.
- */
- void clear()
- {
- m_core->clear();
- }
-
-
- /*! Indicates that there are no tasks pending.
- * \return true if there are no tasks ready for execution.
- * \remarks This function is more efficient that the check 'pending() == 0'.
- */
- bool empty() const
- {
- return m_core->empty();
- }
-
-
- /*! The current thread of execution is blocked until the sum of all active
- * and pending tasks is equal or less than a given threshold.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- */
- void wait(size_t task_threshold = 0) const
- {
- m_core->wait(task_threshold);
- }
-
-
- /*! The current thread of execution is blocked until the timestamp is met
- * or the sum of all active and pending tasks is equal or less
- * than a given threshold.
- * \param timestamp The time when function returns at the latest.
- * \param task_threshold The maximum number of tasks in pool and scheduler.
- * \return true if the task sum is equal or less than the threshold, false otherwise.
- */
- bool wait(xtime const & timestamp, size_t task_threshold = 0) const
- {
- return m_core->wait(timestamp, task_threshold);
- }
- };
-
-
-
- /*! \brief Fifo pool.
- *
- * The pool's tasks are fifo scheduled task_func functors.
- *
- */
- typedef thread_pool<task_func, fifo_scheduler, static_size, resize_controller, wait_for_all_tasks> fifo_pool;
-
-
- /*! \brief Lifo pool.
- *
- * The pool's tasks are lifo scheduled task_func functors.
- *
- */
- typedef thread_pool<task_func, lifo_scheduler, static_size, resize_controller, wait_for_all_tasks> lifo_pool;
-
-
- /*! \brief Pool for prioritized task.
- *
- * The pool's tasks are prioritized prio_task_func functors.
- *
- */
- typedef thread_pool<prio_task_func, prio_scheduler, static_size, resize_controller, wait_for_all_tasks> prio_pool;
-
-
- /*! \brief A standard pool.
- *
- * The pool's tasks are fifo scheduled task_func functors.
- *
- */
- typedef fifo_pool pool;
-
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_POOL_HPP_INCLUDED
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp
deleted file mode 100644
index 6cde152d2a..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/pool_adaptors.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*! \file
-* \brief Pool adaptors.
-*
-* This file contains an easy-to-use adaptor similar to a smart
-* pointer for the pool class.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
-#define THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
-
-#include <boost/smart_ptr.hpp>
-
-
-namespace boost { namespace threadpool
-{
-
-
-// TODO convenience scheduling function
- /*! Schedules a Runnable for asynchronous execution. A Runnable is an arbitrary class with a run()
- * member function. This a convenience shorthand for pool->schedule(bind(&Runnable::run, task_object)).
- * \param
- * \param obj The Runnable object. The member function run() will be exectued and should not throw execeptions.
- * \return true, if the task could be scheduled and false otherwise.
- */
- template<typename Pool, typename Runnable>
- bool schedule(Pool& pool, shared_ptr<Runnable> const & obj)
- {
- return pool->schedule(bind(&Runnable::run, obj));
- }
-
- /*! Schedules a task for asynchronous execution. The task will be executed once only.
- * \param task The task function object.
- */
- template<typename Pool>
- typename enable_if <
- is_void< typename result_of< typename Pool::task_type() >::type >,
- bool
- >::type
- schedule(Pool& pool, typename Pool::task_type const & task)
- {
- return pool.schedule(task);
- }
-
-
- template<typename Pool>
- typename enable_if <
- is_void< typename result_of< typename Pool::task_type() >::type >,
- bool
- >::type
- schedule(shared_ptr<Pool> const pool, typename Pool::task_type const & task)
- {
- return pool->schedule(task);
- }
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_POOL_ADAPTORS_HPP_INCLUDED
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp
deleted file mode 100644
index 2d6c7c1bae..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/scheduling_policies.hpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/*! \file
-* \brief Task scheduling policies.
-*
-* This file contains some fundamental scheduling policies for the pool class.
-* A scheduling policy is realized by a task container which controls the access to
-* the tasks. Fundamentally the container determines the order the tasks are processed
-* by the thread pool.
-* The task containers need not to be thread-safe because they are used by the pool
-* in thread-safe way.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_SCHEDULING_POLICIES_HPP_INCLUDED
-#define THREADPOOL_SCHEDULING_POLICIES_HPP_INCLUDED
-
-
-#include <queue>
-#include <deque>
-
-#include "task_adaptors.hpp"
-
-namespace boost { namespace threadpool
-{
-
- /*! \brief SchedulingPolicy which implements FIFO ordering.
- *
- * This container implements a FIFO scheduling policy.
- * The first task to be added to the scheduler will be the first to be removed.
- * The processing proceeds sequentially in the same order.
- * FIFO stands for "first in, first out".
- *
- * \param Task A function object which implements the operator()(void).
- *
- */
- template <typename Task = task_func>
- class fifo_scheduler
- {
- public:
- typedef Task task_type; //!< Indicates the scheduler's task type.
-
- protected:
- std::deque<task_type> m_container; //!< Internal task container.
-
-
- public:
- /*! Adds a new task to the scheduler.
- * \param task The task object.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool push(task_type const & task)
- {
- m_container.push_back(task);
- return true;
- }
-
- /*! Removes the task which should be executed next.
- */
- void pop()
- {
- m_container.pop_front();
- }
-
- /*! Gets the task which should be executed next.
- * \return The task object to be executed.
- */
- task_type const & top() const
- {
- return m_container.front();
- }
-
- /*! Gets the current number of tasks in the scheduler.
- * \return The number of tasks.
- * \remarks Prefer empty() to size() == 0 to check if the scheduler is empty.
- */
- size_t size() const
- {
- return m_container.size();
- }
-
- /*! Checks if the scheduler is empty.
- * \return true if the scheduler contains no tasks, false otherwise.
- * \remarks Is more efficient than size() == 0.
- */
- bool empty() const
- {
- return m_container.empty();
- }
-
- /*! Removes all tasks from the scheduler.
- */
- void clear()
- {
- m_container.clear();
- }
- };
-
-
-
- /*! \brief SchedulingPolicy which implements LIFO ordering.
- *
- * This container implements a LIFO scheduling policy.
- * The last task to be added to the scheduler will be the first to be removed.
- * LIFO stands for "last in, first out".
- *
- * \param Task A function object which implements the operator()(void).
- *
- */
- template <typename Task = task_func>
- class lifo_scheduler
- {
- public:
- typedef Task task_type; //!< Indicates the scheduler's task type.
-
- protected:
- std::deque<task_type> m_container; //!< Internal task container.
-
- public:
- /*! Adds a new task to the scheduler.
- * \param task The task object.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool push(task_type const & task)
- {
- m_container.push_front(task);
- return true;
- }
-
- /*! Removes the task which should be executed next.
- */
- void pop()
- {
- m_container.pop_front();
- }
-
- /*! Gets the task which should be executed next.
- * \return The task object to be executed.
- */
- task_type const & top() const
- {
- return m_container.front();
- }
-
- /*! Gets the current number of tasks in the scheduler.
- * \return The number of tasks.
- * \remarks Prefer empty() to size() == 0 to check if the scheduler is empty.
- */
- size_t size() const
- {
- return m_container.size();
- }
-
- /*! Checks if the scheduler is empty.
- * \return true if the scheduler contains no tasks, false otherwise.
- * \remarks Is more efficient than size() == 0.
- */
- bool empty() const
- {
- return m_container.empty();
- }
-
- /*! Removes all tasks from the scheduler.
- */
- void clear()
- {
- m_container.clear();
- }
-
- };
-
-
-
- /*! \brief SchedulingPolicy which implements prioritized ordering.
- *
- * This container implements a scheduling policy based on task priorities.
- * The task with highest priority will be the first to be removed.
- * It must be possible to compare two tasks using operator<.
- *
- * \param Task A function object which implements the operator() and operator<. operator< must be a partial ordering.
- *
- * \see prio_thread_func
- *
- */
- template <typename Task = prio_task_func>
- class prio_scheduler
- {
- public:
- typedef Task task_type; //!< Indicates the scheduler's task type.
-
- protected:
- std::priority_queue<task_type> m_container; //!< Internal task container.
-
-
- public:
- /*! Adds a new task to the scheduler.
- * \param task The task object.
- * \return true, if the task could be scheduled and false otherwise.
- */
- bool push(task_type const & task)
- {
- m_container.push(task);
- return true;
- }
-
- /*! Removes the task which should be executed next.
- */
- void pop()
- {
- m_container.pop();
- }
-
- /*! Gets the task which should be executed next.
- * \return The task object to be executed.
- */
- task_type const & top() const
- {
- return m_container.top();
- }
-
- /*! Gets the current number of tasks in the scheduler.
- * \return The number of tasks.
- * \remarks Prefer empty() to size() == 0 to check if the scheduler is empty.
- */
- size_t size() const
- {
- return m_container.size();
- }
-
- /*! Checks if the scheduler is empty.
- * \return true if the scheduler contains no tasks, false otherwise.
- * \remarks Is more efficient than size() == 0.
- */
- bool empty() const
- {
- return m_container.empty();
- }
-
- /*! Removes all tasks from the scheduler.
- */
- void clear()
- {
- while(!m_container.empty())
- {
- m_container.pop();
- }
- }
- };
-
-
-} } // namespace boost::threadpool
-
-
-#endif // THREADPOOL_SCHEDULING_POLICIES_HPP_INCLUDED
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp
deleted file mode 100644
index 047a6eb516..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/shutdown_policies.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*! \file
-* \brief Shutdown policies.
-*
-* This file contains shutdown policies for thread_pool.
-* A shutdown policy controls the pool's behavior from the time
-* when the pool is not referenced any longer.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_SHUTDOWN_POLICIES_HPP_INCLUDED
-#define THREADPOOL_SHUTDOWN_POLICIES_HPP_INCLUDED
-
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool
-{
-
-
-/*! \brief ShutdownPolicy which waits for the completion of all tasks
- * and the worker termination afterwards.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class wait_for_all_tasks
- {
- public:
- static void shutdown(Pool& pool)
- {
- pool.wait();
- pool.terminate_all_workers(true);
- }
- };
-
-
- /*! \brief ShutdownPolicy which waits for the completion of all active tasks
- * and the worker termination afterwards.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class wait_for_active_tasks
- {
- public:
- static void shutdown(Pool& pool)
- {
- pool.clear();
- pool.wait();
- pool.terminate_all_workers(true);
- }
- };
-
-
- /*! \brief ShutdownPolicy which does not wait for any tasks or worker termination.
- *
- * This policy does not wait for any tasks. Nevertheless all active tasks will be processed completely.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class immediately
- {
- public:
- static void shutdown(Pool& pool)
- {
- pool.clear();
- pool.terminate_all_workers(false);
- }
- };
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_SHUTDOWN_POLICIES_HPP_INCLUDED
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp
deleted file mode 100644
index e3c08038db..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/size_policies.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*! \file
-* \brief Size policies.
-*
-* This file contains size policies for thread_pool. A size
-* policy controls the number of worker threads in the pool.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_SIZE_POLICIES_HPP_INCLUDED
-#define THREADPOOL_SIZE_POLICIES_HPP_INCLUDED
-
-
-
-/// The namespace threadpool contains a thread pool and related utility classes.
-namespace boost { namespace threadpool
-{
-
- /*! \brief SizePolicyController which provides no functionality.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- struct empty_controller
- {
- empty_controller(typename Pool::size_policy_type&, shared_ptr<Pool>) {}
- };
-
-
- /*! \brief SizePolicyController which allows resizing.
- *
- * \param Pool The pool's core type.
- */
- template< typename Pool >
- class resize_controller
- {
- typedef typename Pool::size_policy_type size_policy_type;
- reference_wrapper<size_policy_type> m_policy;
- shared_ptr<Pool> m_pool; //!< to make sure that the pool is alive (the policy pointer is valid) as long as the controller exists
-
- public:
- resize_controller(size_policy_type& policy, shared_ptr<Pool> pool)
- : m_policy(policy)
- , m_pool(pool)
- {
- }
-
- bool resize(size_t worker_count)
- {
- return m_policy.get().resize(worker_count);
- }
- };
-
-
- /*! \brief SizePolicy which preserves the thread count.
- *
- * \param Pool The pool's core type.
- */
- template<typename Pool>
- class static_size
- {
- reference_wrapper<Pool volatile> m_pool;
-
- public:
- static void init(Pool& pool, size_t const worker_count)
- {
- pool.resize(worker_count);
- }
-
- static_size(Pool volatile & pool)
- : m_pool(pool)
- {}
-
- bool resize(size_t const worker_count)
- {
- return m_pool.get().resize(worker_count);
- }
-
- void worker_died_unexpectedly(size_t const new_worker_count)
- {
- m_pool.get().resize(new_worker_count + 1);
- }
-
- // TODO this functions are not called yet
- void task_scheduled() {}
- void task_finished() {}
- };
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_SIZE_POLICIES_HPP_INCLUDED
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp b/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp
deleted file mode 100644
index 6b874e3358..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/boost/threadpool/task_adaptors.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*! \file
-* \brief Task adaptors.
-*
-* This file contains adaptors for task function objects.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Use, modification, and distribution are subject to the
-* Boost Software License, Version 1.0. (See accompanying file
-* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-#ifndef THREADPOOL_TASK_ADAPTERS_HPP_INCLUDED
-#define THREADPOOL_TASK_ADAPTERS_HPP_INCLUDED
-
-
-#include <boost/smart_ptr.hpp>
-#include <boost/function.hpp>
-#include <boost/thread.hpp>
-
-
-namespace boost { namespace threadpool
-{
-
- /*! \brief Standard task function object.
- *
- * This function object wraps a nullary function which returns void.
- * The wrapped function is invoked by calling the operator ().
- *
- * \see boost function library
- *
- */
- typedef function0<void> task_func;
-
-
-
-
- /*! \brief Prioritized task function object.
- *
- * This function object wraps a task_func object and binds a priority to it.
- * prio_task_funcs can be compared using the operator < which realises a partial ordering.
- * The wrapped task function is invoked by calling the operator ().
- *
- * \see prio_scheduler
- *
- */
- class prio_task_func
- {
- private:
- unsigned int m_priority; //!< The priority of the task's function.
- task_func m_function; //!< The task's function.
-
- public:
- typedef void result_type; //!< Indicates the functor's result type.
-
- public:
- /*! Constructor.
- * \param priority The priority of the task.
- * \param function The task's function object.
- */
- prio_task_func(unsigned int const priority, task_func const & function)
- : m_priority(priority)
- , m_function(function)
- {
- }
-
- /*! Executes the task function.
- */
- void operator() (void) const
- {
- if(m_function)
- {
- m_function();
- }
- }
-
- /*! Comparison operator which realises a partial ordering based on priorities.
- * \param rhs The object to compare with.
- * \return true if the priority of *this is less than right hand side's priority, false otherwise.
- */
- bool operator< (const prio_task_func& rhs) const
- {
- return m_priority < rhs.m_priority;
- }
-
- }; // prio_task_func
-
-
-
-
-
-
-
-
- /*! \brief Looped task function object.
- *
- * This function object wraps a boolean thread function object.
- * The wrapped task function is invoked by calling the operator () and it is executed in regular
- * time intervals until false is returned. The interval length may be zero.
- * Please note that a pool's thread is engaged as long as the task is looped.
- *
- */
- class looped_task_func
- {
- private:
- function0<bool> m_function; //!< The task's function.
- unsigned int m_break_s; //!< Duration of breaks in seconds.
- unsigned int m_break_ns; //!< Duration of breaks in nano seconds.
-
- public:
- typedef void result_type; //!< Indicates the functor's result type.
-
- public:
- /*! Constructor.
- * \param function The task's function object which is looped until false is returned.
- * \param interval The minimum break time in milli seconds before the first execution of the task function and between the following ones.
- */
- looped_task_func(function0<bool> const & function, unsigned int const interval = 0)
- : m_function(function)
- {
- m_break_s = interval / 1000;
- m_break_ns = (interval - m_break_s * 1000) * 1000 * 1000;
- }
-
- /*! Executes the task function.
- */
- void operator() (void) const
- {
- if(m_function)
- {
- if(m_break_s > 0 || m_break_ns > 0)
- { // Sleep some time before first execution
- xtime xt;
- xtime_get(&xt, TIME_UTC);
- xt.nsec += m_break_ns;
- xt.sec += m_break_s;
- thread::sleep(xt);
- }
-
- while(m_function())
- {
- if(m_break_s > 0 || m_break_ns > 0)
- {
- xtime xt;
- xtime_get(&xt, TIME_UTC);
- xt.nsec += m_break_ns;
- xt.sec += m_break_s;
- thread::sleep(xt);
- }
- else
- {
- thread::yield(); // Be fair to other threads
- }
- }
- }
- }
-
- }; // looped_task_func
-
-
-} } // namespace boost::threadpool
-
-#endif // THREADPOOL_TASK_ADAPTERS_HPP_INCLUDED
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile
deleted file mode 100644
index 578ff7e0ba..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-DOXYGEN=doxygen
-
-doc: clean copy_footer generate_doc
-
-copy_footer:
- cp footer/*.htm .
-
-copy_footer_sf:
- cp footer_sf/*.htm .
-
-generate_doc:
- $(DOXYGEN) overview.dox
- $(DOXYGEN) reference.dox
- $(DOXYGEN) tutorial.dox
- $(DOXYGEN) examples.dox
- $(DOXYGEN) design.dox
-
-clean:
- rm -rf ../../../doc
- rm -rf ../../../threadpool-$(RELEASE_VERSION)-doc
- rm -rf ../../../threadpool-$(RELEASE_VERSION)-doc.zip
-
-release_doc: clean doc
- cd ../../..; mv doc threadpool-$(RELEASE_VERSION)-doc
- cd ../../..; zip -r9 threadpool-$(RELEASE_VERSION)-doc.zip threadpool-$(RELEASE_VERSION)-doc
- cd ../../..; mv threadpool-$(RELEASE_VERSION)-doc doc
-
-doc_sf: clean copy_footer_sf generate_doc
-
-deploy_sf: doc_sf
- scp -vr ../../../doc/* $(RELEASE_MANAGER)@shell.sourceforge.net:/home/groups/t/th/threadpool/htdocs
-
-
-
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox
deleted file mode 100644
index 06b287c7e4..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/design
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../include/
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = design.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = design_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt
deleted file mode 100644
index 05cf85e8ac..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-/*! \page intro TODO5
-
-
-A thread pool manages a homogeneous pool of worker threads. In general worker threads are created once and are used to
-process a sequence of tasks. The re-use of threads reduces the thread creation and teardown overhead. The resource
-consumption is limited as the number of threads can be restricted. This leads to an improved system stability.
-
-Thread-per-task
-
-TODO5
-
-light-weight, no administration/management thread, synchronized scheduler, e.g. queue
-
-
- */
-
-
-/*! \page pattern Thread Pool Pattern
-
-
-In the thread pool pattern in programming, a number of N threads are created to perform a number of M tasks, usually organized in a queue. Typically, N << M. As soon as a thread completes its task, it will request the next task from the queue until all tasks have been completed. The thread can then terminate, or sleep until there are new tasks available.
-
-The number of threads used (N) is a parameter that can be tuned to provide the best performance.
-
-The advantage of using a Thread Pool over creating a new thread for each task, is that thread creation and destruction overhead is negated, which may result in better performance and better system stability.
-
-<BR>
-<B>From <A HREF="http://en.wikipedia.org/wiki/Thread_pool_pattern"> Wikipedia </A>, the free encyclopedia.</B>
-
-
-
- */
-
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm
deleted file mode 100644
index 006ce09490..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/design_header.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Design</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="intro.html">TODO5</A> |
- <A CLASS="qindex" HREF="pattern.html">Thread Pool Pattern</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox
deleted file mode 100644
index 128a4089ad..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/examples
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../include
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = examples.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = examples_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt
deleted file mode 100644
index fbb29f4d33..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-
-/*! \page intro TODO3
-
-See src/examples/mergesort/mergesort.cpp
-<BR>
-
- */
-
-
-/*! \page pattern TODO4
-TODO4
-
- */
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm
deleted file mode 100644
index d35512cf52..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/examples_header.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Examples</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="intro.html">TODO3</A> |
- <A CLASS="qindex" HREF="pattern.html">TODO4</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm
deleted file mode 100644
index 1debd97adf..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/common_footer.htm
+++ /dev/null
@@ -1,17 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
- </BODY>
-</HTML>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm
deleted file mode 100644
index 75ef22b181..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer/overview_footer.htm
+++ /dev/null
@@ -1,17 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Overview</A> |
- <A CLASS="qindex" HREF="reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
- </BODY>
-</HTML>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm
deleted file mode 100644
index 7c177c9f33..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/common_footer.htm
+++ /dev/null
@@ -1,30 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
-
- <P align="right" valign="top">
- Hosted by
- <A HREF="http://sourceforge.net">
- <IMG src="http://sflogo.sourceforge.net/sflogo.php?group_id=158064&type=2"
- width="125"
- height="37"
- border="0"
- align="top"
- alt="SourceForge.net Logo"/>
- </A>
- </P>
-
- </BODY>
-</HTML>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm
deleted file mode 100644
index 4a6f80c53b..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/footer_sf/overview_footer.htm
+++ /dev/null
@@ -1,29 +0,0 @@
- <BR>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD CLASS="tiny" ALIGN="LEFT">Copyright &copy 2005-2008 Philipp Henkel</TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Overview</A> |
- <A CLASS="qindex" HREF="reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
-
- <P align="right" valign="top">
- Hosted by
- <A HREF="http://sourceforge.net">
- <IMG src="http://sflogo.sourceforge.net/sflogo.php?group_id=158064&type=2"
- width="125"
- height="37"
- border="0"
- align="top"
- alt="SourceForge.net Logo"/>
- </A>
- </P>
- </BODY>
-</HTML>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html
deleted file mode 100644
index f36e87310d..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/index.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <meta http-equiv="refresh" content="2;url=overview/index.html">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- </BODY>
-</HTML>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox
deleted file mode 100644
index 3021c3972d..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER = 0.2.5
-OUTPUT_DIRECTORY = ../../../doc
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../../boost/threadpool
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = overview.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH = ../../..
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = overview_header.htm
-HTML_FOOTER = overview_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt
deleted file mode 100644
index 3a995fffb9..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview.txt
+++ /dev/null
@@ -1,205 +0,0 @@
-/*! \mainpage threadpool
-
-
-\section intro_sec threadpool
-threadpool is a cross-platform C++ thread pool library. In general terms thread pools
-are an efficient mechanism for asynchronous task processing within the same process.
-They realise the <A HREF="design/pattern.html"> thread pool pattern</A>.
-
-A thread pool manages a group of threads in order to process a large number of tasks.
-Since multiple threads can be executed in parallel this approach may be very efficient regarding the overall program performance on many computer systems. By restricting the number of threads and by reusing them resources are saved
-and additionally the system stability is increased.
-
-The threadpool library provides a convenient way for dispatching asynchronous tasks. Pools can be customized, managed dynamically and easily integrated into your software.
-
-
-\section dev_status_sec Development Status & Future Work
-The threadpool core classes are completed and the implemenation can be considered ready for production code. The library is used by several commercial server applications and can handle high workload without problems. I'm currently working on helper and service classes which make the
-usage of the pool more comfortable. A small tutorial introduces the thread pool and
-more example code will be added in the future. The documentation is far away from being finished.
-<BR>
-<BR><A HREF="http://threadpool.cvs.sourceforge.net/threadpool/threadpool">Browse CVS Repository</A>
-<BR>
-
-<P>
-Features
-- Policy-based thread pool implementation<BR>
-- Scheduling policies: fifo, lifo and priority<BR>
-- Size policies: static_size<BR>
-- Size policy controller: empty_controller, resize_controller<BR>
-- Shutdown policies: wait_for_all_tasks, wait_for_active_tasks, immediately<BR>
-- Smooth integration into STL and boost<BR>
-</P>
-
-<P>
-Future Work
-- More policies: deadline_scheduler, ...<BR>
-- Possibility of limiting the number of pending tasks<BR>
-- Futures (handles to results of scheduled functions)<BR>
-- More examples to illustrate the usage of the library<BR>
-- Provide Unit tests<BR>
-</P>
-
-
-
-
-\section down_sec Download Section
-<P>
-threadpool 0.2.5 (Development Snapshot)
-- <A HREF="http://prdownloads.sourceforge.net/threadpool/threadpool-0_2_5-src.zip?download">threadpool-0_2_5-src.zip</A><BR>
-- <A HREF="http://prdownloads.sourceforge.net/threadpool/threadpool-0_2_5-doc.zip?download">threadpool-0_2_5-doc.zip</A><BR>
-</P>
-
-For more information on the revisions see \ref changelog.
-
-
-\section platforms_sec Supported Platforms
-threadpool is highly portable. It runs on any platform on which Boost threads are available: Linux, Windows, Mac OS 9/X, Solaris, etc.
-
-
-\section boost_sec Boost Libraries
-Boost is a collection of high-quality C++ libraries and works on almost any
-modern operating system, including UNIX and Windows variants.
-In fact threadpool is only a small extension to the portable Boost source libraries.
-It incorporates the thread pool concept by using the thread library from William Kempf.
-For more information on this excellent library visit <A HREF="http://www.boost.org">Boost.org</A>.
-
-
-\section installation_sec Installing & Using threadpool
-threadpool consists only of header files, and so there is no need to build the library itself
-before using it in your own applications. You simply need to add the
-following directories to your compiler include path:<BR>
- - threadpool's include directory<BR>
- - the boost directory (e.g. the one called boost_1_37_0)<BR>
-
-Furthermore you have to compile boost's thread library and link against it (libboost_thread-*.lib under Windows).
-
-
-
-\section license_sec Software License
-threadpool is released under the \ref license "Boost Software License".
-This license encourages both commercial and non-commercial use.
-
-
-\section acknowledgments_sec Acknowledgments
-This library was written by Philipp Henkel.
-<P>
-I appreciate your suggestions, and would love to know if you
-use threadpool. Hopefully you will enjoy it and find it useful.
-Please post questions, comments, bugs, or contact me at:
-
-</P>
-
-threadpool@googlemail.com<BR>
-or<BR>
-<A HREF="http://www.sourceforge.net/projects/threadpool">www.sourceforge.net/projects/threadpool</A>
-<BR>
-<BR>
-*/
-
-
-
-/*! \page license Software License
-
-\verbinclude LICENSE_1_0.txt
-
-*/
-
-
-
- /*! \page changelog Change Log
-
- <B>0.2.5 (Stable)</B>
- - Made threadpool compatible to boost::thread 1.37
- - Fixed hang problem in shutdown method (Thanks to Sohail Somani)
- - Adapted repository layout to boost (Thanks to Alex Ott)
-
-<B>0.2.4 (Stable)</B>
- - Made threadpool compatible to boost::thread 1.35.x code base
- - Fixed compiler warning in scope_guard.hpp
-
-<B>0.2.4 (Stable)</B>
- - Made threadpool compatible to boost::thread 1.35.x code base
- - Fixed compiler warning in scope_guard.hpp
-
-<B>0.2.3 (Development)</B>
- - Implemented workaround for Sun C++ Pro compiler bug in pool_core
- - Removed subtask implementation (there was no demand for this feature)
- - Improved shutdown policies
-
-<B>0.2.2 (Development)</B>
- - Refactored SizePolicy and added SizePolicyController
- - Moved policies into separate files
- - Fixed some compiler problems (GCC)
- - Implemented size_controller handling
- - Implemented two size policies: static_size and fixed_size
- - Refactored worker_thread handling, moved policies from pool_core to pool
- - Specialized schedule function for usage with futures
- - Added compile test project
- - Improved constness in pool core class
- - Fixed timed wait
- - Implemented futures (in progress)
- - Added result_type to all functors
-
-<B>0.2.1 (Development)</B>
- - Pool base class (thread_pool) has now reference semantics.
- - Large refactorings: Removed scoped_pool, reimplemented worker (now worker_thread)
- - Fixed odd resize behaviour. Now resize changes the number of threads immediately.
- - Apply pimpl idiom on pool core class (to make the ugly scoped_pool class needless)
- - Introduced scheduling policies
- - Switched to policy-based design (PBD), inspired by Scott Meyers C++ workshop
- - Cosmetic code change: Replaced keyword 'class' with 'typename' in template definitions
- - Revised tutorials
- - New requirements: tasks functions should not and schedulers shall not throw exceptions
-
-<B>0.2.0 (Development)</B>
- - Moved threadpool into the boost namespace: boost::threadpool
- - Used keyword volatile to indicate thread-safe member functions
- - Used volatile on primitve types were appropriate
- - Moved worker to detail directory
- - Fixed thread deletion
- - Extended wait functionality (waiting for idle threads was implemented)
- - Renamed 'join()' to 'wait()' as 'join' indicates the termination of thread. That was not the case in pool::join.
- - Changed internal container of lifo and fifo schedulers to improve efficiency.
- - Improved code reference documentation (source code browser)
- - Renamed thread_func into task_func
- - Added += operator to scoped_pool to ease scheduling of tasks
- - Refactored file structures and class names
- - Added a new task concept (named subtask) which allows the combination of sequential and parallel execution
- - Added new task adaptor for looped or timed tasks: looped_task_func
- - Introduced function clear() which can be used to remove all tasks from the pool and schedulers
- - New function pool::active() which returns the number of active tasks
-
-<B>0.1.8 (Development)</B>
- - Fixed some compile errors which were reported by gcc
- - Wrote tutorial "Prioritized Tasks"
-
-<B>0.1.7 (Development)</B>
- - Added Visual Studio 2005 project files for tutorial and examples
-
-<B>0.1.6 (Development)</B>
- - Replaced task adaptor 'task' with boost::bind
- - Workers are unregistered from thread_group when they are terminated
- - Working on example boost::iostreams packet_filter
-
-<B>0.1.5 (Development)</B>
- - Finished threadpool reference
- - Class pool_adaptor was replaced by smart_pool
- - Minor pool improvements
- - First tutorial page online
-
-<B>0.1.4 (Development)</B>
- - Created the pool's homepage: http://threadpool.sourceforge.net
- - Improved documentation
- - Added build scripts
-
-<B>0.1.3 (Development)</B>
- - First public release
- - Added mergesort example
- - Added tutorial
- - Implementation of threadpool core and related classes
-
- */
-
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm
deleted file mode 100644
index dc6e9f6c18..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/overview_header.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Overview</A> |
- <A CLASS="qindex" HREF="reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="design/intro.html">Design</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Overview</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="index.html">Main Page</A> |
- <A CLASS="qindex" HREF="changelog.html">Change Log</A> |
- <A CLASS="qindex" HREF="license.html">Software License</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox
deleted file mode 100644
index d0fb398834..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference.dox
+++ /dev/null
@@ -1,220 +0,0 @@
-# Doxyfile 1.4.2
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/reference
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../../boost/threadpool
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = YES
-SORT_BRIEF_DOCS = YES
-SORT_BY_SCOPE_NAME = YES
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = ../../../boost ../../../boost/threadpool
-FILE_PATTERNS = *.hpp
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH = /../examples
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = YES
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = reference_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-USE_PDFLATEX = NO
-LATEX_BATCHMODE = NO
-LATEX_HIDE_INDICES = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
-XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
-XML_PROGRAMLISTING = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED =
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = NO
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = NO
-GROUP_GRAPHS = YES
-UML_LOOK = NO
-TEMPLATE_RELATIONS = YES
-INCLUDE_GRAPH = NO
-INCLUDED_BY_GRAPH = NO
-CALL_GRAPH = NO
-GRAPHICAL_HIERARCHY = NO
-DIRECTORY_GRAPH = YES
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-MAX_DOT_GRAPH_DEPTH = 0
-DOT_TRANSPARENT = NO
-DOT_MULTI_TARGETS = NO
-GENERATE_LEGEND = NO
-DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm
deleted file mode 100644
index 40fd7423aa..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/reference_header.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Reference</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="annotated.html">Class List</A> |
- <A CLASS="qindex" HREF="functions.html">Member Functions</A> |
- <A CLASS="qindex" HREF="namespacemembers.html">Typedefs</A> |
- <A CLASS="qindex" HREF="files.html">File List</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css
deleted file mode 100644
index 8593700905..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/threadpool.css
+++ /dev/null
@@ -1,331 +0,0 @@
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
- font-family: Geneva, Arial, Helvetica, sans-serif;
-}
-BODY,TD {
- font-size: 90%;
-}
-H1 {
- text-align: center;
- font-size: 160%;
-}
-H2 {
- font-size: 120%;
-}
-H3 {
- font-size: 100%;
-}
-CAPTION { font-weight: bold }
-DIV.sidebar {
- width: 210px;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-bottom: 20px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.sidebar TABLE TR TD {
- font-size: 80%;
-}
-DIV.sidebar UL {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-DIV.qindex {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.nav {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.navtab {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-TD.navtab {
- font-size: 70%;
-}
-A.qindex {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D;
-}
-A.qindex:visited {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D
-}
-A.qindex:hover {
- text-decoration: none;
- background-color: #ddddff;
-}
-A.qindexHL {
- text-decoration: none;
- font-weight: bold;
- background-color: #6666cc;
- color: #ffffff;
- border: 1px double #9295C2;
-}
-A.qindexHL:hover {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff;
-}
-A.anchor {
- text-decoration: none;
- color: #000000;
-}
-A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { text-decoration: none; font-weight: bold }
-A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A:hover { text-decoration: none; background-color: #f2f2ff }
-DL.el { margin-left: -1cm }
-.fragment {
- font-family: Fixed, monospace;
- font-size: 95%;
-}
-PRE.fragment {
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
- margin-top: 4px;
- margin-bottom: 4px;
- margin-left: 2px;
- margin-right: 8px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
-}
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-TD.md { background-color: #F4F4FB; font-weight: bold; }
-TD.mdPrefix {
- background-color: #F4F4FB;
- color: #606060;
- font-size: 80%;
-}
-TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; }
-TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; }
-DIV.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold;
-}
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
-BODY {
- background: white;
- color: black;
- margin-right: 20px;
- margin-left: 20px;
-}
-TD.indexkey {
- background-color: #e8eef2;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TD.indexvalue {
- background-color: #e8eef2;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TR.memlist {
- background-color: #f0f0f0;
-}
-P.formulaDsp { text-align: center; }
-IMG.formulaDsp { }
-IMG.formulaInl { vertical-align: middle; }
-SPAN.keyword { color: #008000 }
-SPAN.keywordtype { color: #604020 }
-SPAN.keywordflow { color: #e08000 }
-SPAN.comment { color: #800000 }
-SPAN.preprocessor { color: #806020 }
-SPAN.stringliteral { color: #002080 }
-SPAN.charliteral { color: #008080 }
-.mdTable {
- border: 1px solid #868686;
- background-color: #F4F4FB;
-}
-.mdRow {
- padding: 8px 10px;
-}
-.mdescLeft {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.mdescRight {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplParams {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- color: #606060;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.search { color: #003399;
- font-weight: bold;
-}
-FORM.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-INPUT.search { font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #e8eef2;
-}
-TD.tiny { font-size: 75%;
-}
-a {
- color: #1A41A8;
-}
-a:visited {
- color: #2A3798;
-}
-.dirtab { padding: 4px;
- border-collapse: collapse;
- border: 1px solid #84b0c7;
-}
-TH.dirtab { background: #e8eef2;
- font-weight: bold;
-}
-HR { height: 1px;
- border: none;
- border-top: 1px solid black;
-}
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox
deleted file mode 100644
index 66a39edf23..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.dox
+++ /dev/null
@@ -1,145 +0,0 @@
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "threadpool"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = ../../../doc/tutorial
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = NO
-REPEAT_BRIEF = NO
-ALWAYS_DETAILED_SEC = YES
-INLINE_INHERITED_MEMB = YES
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = /../../include/
-STRIP_FROM_INC_PATH =
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = NO
-MULTILINE_CPP_IS_BRIEF = YES
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-SEPARATE_MEMBER_PAGES = NO
-TAB_SIZE = 2
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = NO
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = NO
-INLINE_INFO = NO
-SORT_MEMBER_DOCS = NO
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = NO
-GENERATE_TESTLIST = NO
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = NO
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = YES
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = tutorial.txt
-FILE_PATTERNS =
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = YES
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = YES
-REFERENCED_BY_RELATION = NO
-REFERENCES_RELATION = NO
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = NO
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = .
-HTML_FILE_EXTENSION = .html
-HTML_HEADER = tutorial_header.htm
-HTML_FOOTER = common_footer.htm
-HTML_STYLESHEET = threadpool.css
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = NO
-BINARY_TOC = NO
-TOC_EXPAND = NO
-DISABLE_INDEX = YES
-ENUM_VALUES_PER_LINE = 1
-GENERATE_TREEVIEW = NO
-TREEVIEW_WIDTH = 250
-
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt
deleted file mode 100644
index e89c96d9af..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial.txt
+++ /dev/null
@@ -1,207 +0,0 @@
-/*! \page intro Quick Start
-
-This tutorial introduces the threadpool library by discussing an easy to understand source listing:
-
-\code
-01
-02 #include "threadpool.hpp"
-03
-04 using namespace boost::threadpool;
-05
-06 // Some example tasks
-07 void first_task()
-08 {
-09 ...
-10 }
-11
-13 void second_task()
-14 {
-15 ...
-16 }
-17
-19 void third_task()
-20 {
-21 ...
-22 }
-23
-24 void execute_with_threadpool()
-25 {
-26 // Create a thread pool.
-27 pool tp(2);
-28
-29 // Add some tasks to the pool.
-30 tp.schedule(&first_task);
-31 tp.schedule(&second_task);
-32 tp.schedule(&third_task);
-33
-34 // Leave this function and wait until all tasks are finished.
-35 }
-36
-\endcode
-
-We start by including the necessary header files. The complete threadpool functionality can be used by simply including
-the "threadpool.hpp" header file at line 2.
-
-The three functions first_task(), second_task and third_task() are placeholders
-for tasks that should be executed by our pool.
-
-The thread pool is created at line 27. The argument indicates the number of initial threads.
-The new pool contains two threads that is two tasks can be processed in parallel. The pool's threads
-are sleeping until tasks are added.
-By default it uses a Fifo scheduling strategy.
-Fifo is an abbreviation of "first in, first out"
-and means in this case that the first task which is added is the
-first that will be executed. Generally this is the expected default behaviour
-since the tasks are executed in the order they are added to the pool.
-
-In line 30 to 32 the task functions are scheduled asynchronously using the pool's schedule function.
-A task is registered and it will be executed as soon as one of the pool's threads is idle.
-It is very important to understand that the task is only scheduled for execution.
-Schedule returns immediately and there are no guarantees about when the tasks are executed and how long
-the processing will take. As they are added to a fifo pool with two threads the following is true:
-- the execution of first_task begins first
-- second_task is started after first_task
-- third_task is begun at last
-- a maximum of two tasks may are processed in parallel
-- each scheduled task will be executed once only
-
-
-The pool reference tp is created in the scope of the function execute_with_threadpool(). When this
-function returns at line 35 tp goes out of scope and the pool will be destructed. As the default ShutdownPolicy
-is wait_for_all_tasks it is ensured that all tasks are processed before the pool is destroyed.
-
-\code
-101
-102 ...
-103 execute_with_threadpool(); // execute first_task, second_task and third_task
-104 // When this line is reached all tasks are finished and the pool is destructed.
-105
-\endcode
-
-The small code example clarifies the issue. When the function leaves the pool is shut down
-and waits for the tasks. That means the current thread of execution is blocked
-at the end of the execute_with_threadpool as long as
-the processing of tasks is in progress.
-
-<BR>
-*/
-
-
-/*! \page prioritized Prioritized Tasks
-
-TODO This tutorial is out dated.
-
-It's easy to prioritize asynchronous tasks by using the task adaptor prio_task_func.
-The following source listing illustrates how to setup the pool and add the tasks:
-
-\code
-01
-02 #include "threadpool.hpp"
-03
-04 using namespace boost::threadpool;
-05
-06 // Some example tasks
-07 void normal_task()
-08 {
-09 ...
-10 }
-11
-13 void important_task()
-14 {
-15 ...
-16 }
-17
-18 void execute_prioritized()
-19 {
-20 // Create prioritized thread pool container without any threads.
-21 scoped_pool<prio_pool, 0> tp;
-22
-23 // Add some tasks to the pool.
-24 tp += prio_task_func(5, &normal_task);
-25 tp += prio_task_func(100, &important_task);
-26 tp += prio_task_func(7, &normal_task);
-27
-28 // Add the some threads to the pool. This will start the execution of the tasks.
-29 tp->resize(2);
-30
-31 // The tasks are processed according to their priority: important_task(100), nonrelevant_task(7), nonrelevant_task(5).
-32
-33 tp->wait();
-34
-35 // Now all tasks are finished and the pool will be destroyed safely when tp goes out of scope.
-36 }
-37
-\endcode
-
-Like in the first tutorial we start including the main header file and defining some tasks.
-
-At line 21 a prioritized thread pool is created. That means that the pool's tasks are arranged
-according to their priority before they get executed. Therefore the tasks themselves have to realize a partial ordering based
-on operator<.
-
-The adaptor prio_thread_func satisfies our requirements regarding the order and is just a small wrapper object for
-the task functions. In line 24 to 26 some prioritized tasks are scheduled. This time the pool's schedule function is used and like smart pool's += operator
-this function returns immediately.
-
-At line 29 the first thread is added to the pool and the execution of important_task begins. As we have only one thread
-the tasks are processed sequentially.
-
-Finally wait() is called to ensure that all tasks are finished before our example function returns
-and the pool is destroyed. This is very important since the behavior is undefined if pool's lifetime ends while tasks are executed.
-
-*/
-
-
-/*! \page task_adaptor Arbitrary Task Functions
-
-TODO This tutorial is out dated.
-
-
-\section member_task Member Task Functions
-
-using namespace boost::threadpool;
-
-TODO <BR>
-boost::bind(member_function, shared_ptr)
-26 tp->schedule(boost::bind(task_with_parameter, 42));
-12 // Second example task
-13 void task_with_parameter(int value)
-14 {
-15 ...
-16 }
-
-\section member_task Functions With Arguments
-
-*/
-
-
-/*! \page instantiation Advanced Instantiation
-
-TODO This tutorial is out dated.
-
-TODO <BR>
-Pool instantiation
-\code
-
- boost::shared_ptr<fifo_pool> tp = fifo_pool::create_pool(5);
-
- print(" Add tasks ...\n");
- tp->schedule(&task_1);
- tp->schedule(&task_2);
- tp->schedule(&task_3);
-
- tp->schedule(looped_task_func(&looped_task, 1500));
-
- print(" Wait until all tasks are finished ...\n");
- tp->wait();
- print(" Tasks finished!\n");
-
-\endcode
-
-
-\code
- typedef threadpool::pool<boost::function0<void>, threadpool::fifo_scheduler<boost::function0<void> > > pool_type;
- boost::shared_ptr< pool_type > tp = pool_type::create_pool(5);
-\endcode
-
-*/ \ No newline at end of file
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm
deleted file mode 100644
index b087ec0f9f..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/doc/tutorial_header.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<HTML>
- <HEAD>
- <TITLE>threadpool Documentation</TITLE>
- <LINK HREF="threadpool.css" REL="stylesheet" TYPE="text/css">
- </HEAD>
- <BODY BGCOLOR="#FFFFFF">
-
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
-
- <TD ALIGN="LEFT">
- <B>$projectname</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="../index.html">Overview</A> |
- <A CLASS="qindex" HREF="../reference/annotated.html">Reference</A> |
- <A CLASS="qindex" HREF="../tutorial/intro.html">Tutorial</A> |
- <A CLASS="qindex" HREF="../examples/intro.html">Examples</A> |
- <A CLASS="qindex" HREF="../design/intro.html">Design</A>
- </TD>
-
- </TR>
- </TABLE>
- </DIV>
- <DIV CLASS="qindex">
- <TABLE BORDER="0" WIDTH="100%">
- <TR>
- <TD ALIGN="LEFT">
- <B>Tutorial</B>
- </TD>
- <TD ALIGN="RIGHT">
- <A CLASS="qindex" HREF="intro.html">Quick Start</A> |
- <A CLASS="qindex" HREF="prioritized.html">Prioritized Tasks</A> |
- <A CLASS="qindex" HREF="task_adaptor.html">Arbitrary Task Functions</A> |
- <A CLASS="qindex" HREF="instantiation.html">Advanced Pool Instantiation</A>
- </TD>
- </TR>
- </TABLE>
- </DIV>
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2 b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2
deleted file mode 100644
index 8ff7fe2dbb..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe mergesort : mergesort.cpp ;
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp
deleted file mode 100644
index 338153453b..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/example/mergesort/mergesort.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*! \file
- * \brief Mergesort example.
- *
- * This example shows how to use the threadpool library.
- *
- * Copyright (c) 2005-2006 Philipp Henkel
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * http://threadpool.sourceforge.net
- *
- */
-
-
-#include <boost/threadpool.hpp>
-#include <boost/thread/mutex.hpp>
-#include <boost/smart_ptr.hpp>
-#include <iostream>
-#include <sstream>
-#include <algorithm>
-
-
-
-using namespace std;
-using namespace boost::threadpool;
-
-//
-// Helpers
-boost::mutex m_io_monitor;
-
-void print(string text)
-{
- boost::mutex::scoped_lock lock(m_io_monitor);
- cout << text;
-}
-
-template<class T>
-string to_string(const T& value)
-{
- ostringstream ost;
- ost << value;
- ost.flush();
- return ost.str();
-}
-
-unsigned long get_ms_diff(boost::xtime& start, boost::xtime& end)
-{
- boost::xtime::xtime_sec_t start_ms = start.sec * 1000 + start.nsec/1000000;
- boost::xtime::xtime_sec_t end_ms = end.sec * 1000 + end.nsec/1000000;
- return static_cast<unsigned long>(end_ms - start_ms);
-}
-
-class image
-{
-public:
- image() : m_content(0) {}
- image(int content) : m_content(content) {}
-
- image(const image& src)
- {
- m_content = src.m_content;
- }
-
- bool operator<(const image& l) const
- {
- { // simulate time needed for image comparision
- boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
- int duration = 1+(m_content % 4);
- xt.nsec += 250 * 1000 * duration;
- boost::thread::sleep(xt);
- print(".");
- }
- return m_content < l.m_content;
- }
-
-protected:
- int m_content; // represents image data in this example
-};
-
-
-template<class T>
-class merge_job
-{
-public:
- merge_job(boost::shared_array<T> data, unsigned int position, unsigned int length)
- : m_data(data)
- , m_position(position)
- , m_length(length)
- {
- print("merge job created : " + to_string(m_position) +", "+ to_string(m_length) +"\n");
- }
-
- void run()
- {
- print("merge job running : " + to_string(m_position) +", "+ to_string(m_length) +"\n");
-
- T* begin = m_data.get();
- std::advance(begin, m_position);
-
- T* mid = m_data.get();
- std::advance(mid, m_position + m_length/2);
-
- T* end = m_data.get();
- std::advance(end, m_position + m_length);
-
- std::inplace_merge(begin, mid, end);
-
- print("\nmerge job finished: " + to_string(m_position) +", "+ to_string(m_length) +"\n");
- }
-
-protected:
- boost::shared_array<T> m_data;
- unsigned int m_position;
- unsigned int m_length;
-};
-
-
-
-
-//
-// A demonstration of the thread_pool class
-int main (int argc, char * const argv[])
-{
- print("MAIN: construct thread pool\n");
-
-
-
- boost::xtime start;
- boost::xtime_get(&start, boost::TIME_UTC);
-
- int exponent = 7;
- int data_len = 1 << exponent; // = pow(2, exponent)
-
- print("MAIN: sort array with "+ to_string(data_len) + " elements.\n");
-
- boost::shared_array<image> data(new image[data_len]);
-
- // fill array with arbitrary values (not sorted ascendingly)
- for(int i = 0; i < data_len; i++)
- {
- data[i] = image((data_len - i - 1) % 23);
- }
-
-
- /***************************/
- /* Standard implementation */
- /***************************/
-
- pool tp;
- tp.size_controller().resize(5);
-
-// merge data array
- for(int step = 1; step <= exponent; step++)
- {
- print("\nMAIN: merge step "+ to_string(step)+"\n");
-
- // divide array into partitions
- int partition_size = 1 << step;
- for(int partition = 0; partition < data_len/partition_size; partition++)
- {
- // sort partition
- boost::shared_ptr<merge_job<image> > job(new merge_job<image>(data, partition*partition_size, partition_size));
- //tp->schedule(prio_task_func(5, boost::bind(&merge_job<image>::run, job)));
- schedule(tp, boost::bind(&merge_job<image>::run, job));
- // schedule(tp, job);
- }
- tp.wait(); // wait until all partitions are sorted
- }
-
- boost::xtime end;
- boost::xtime_get(&end, boost::TIME_UTC);
-
- print("\nMAIN: duration " + to_string(get_ms_diff(start, end)) + " ms \n");
-
- print("\nMAIN: check if array is sorted... \n");
-
- // check if array is sorted ascendingly
- bool ascending = true;
- for(int i = 0; i < data_len-1; i++)
- {
- if(data[i+1] < data[i])
- {
- ascending = false;
- }
- }
-
- if(ascending)
- {
- print("\nMAIN: array is sorted\n");
- }
- else
- {
- print("\nMAIN: array is NOT sorted!\n");
- }
-
- return 0;
-}
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2 b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2
deleted file mode 100644
index 85b2bcb0fd..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe quickstart : quickstart.cpp ;
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README
deleted file mode 100644
index 4f97ce51d7..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/README
+++ /dev/null
@@ -1,7 +0,0 @@
-Supposing the boost directory is in /usr/local/lib, it is also worth to mention that they need to
-set LD_LIBRARY_PATH as follows:
-export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):/usr/local/lib
-
-Please adapt threadpool.makefile to your system.
-
-Special thanks to Rudy Prabowo who contributed this example to help linux users.
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp
deleted file mode 100644
index 858573a0a8..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/quickstart/quickstart.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*! \file
- * \brief Quick start example.
- *
- * This is a very simple example which can be used to configure the threadpool environment on your system.
- *
- * Copyright (c) 2005-2006 Philipp Henkel
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * http://threadpool.sourceforge.net
- *
- */
-
-#include <iostream>
-
-#include <boost/threadpool.hpp>
-
-using namespace std;
-using namespace boost::threadpool;
-
-// Some example tasks
-void first_task()
-{
- cout << "first task is running\n" ;
-}
-
-void second_task()
-{
- cout << "second task is running\n" ;
-}
-
-int main(int argc,char *argv[])
-{
- // Create fifo thread pool container with two threads.
- pool tp(2);
-
- // Add some tasks to the pool.
- tp.schedule(&first_task);
- tp.schedule(&second_task);
-
- // Wait until all tasks are finished.
- tp.wait();
-
- // Now all tasks are finished!
- return(0);
-}
-
-
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2 b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2
deleted file mode 100644
index e14c124a8d..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe compile_all : compile_all.cpp ;
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp
deleted file mode 100644
index 1c349d4406..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/test/compile_all/compile_all.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/*! \file
-* \brief threadpool tutorial.
-*
-* This file contains a tutorial for the threadpool library.
-*
-* Copyright (c) 2005-2006 Philipp Henkel
-*
-* Distributed under the Boost Software License, Version 1.0. (See
-* accompanying file LICENSE_1_0.txt or copy at
-* http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-
-
-
-#include <iostream>
-#include <sstream>
-#include <boost/thread/mutex.hpp>
-#include <boost/bind.hpp>
-
-#include <boost/threadpool.hpp>
-
-using namespace std;
-using namespace boost::threadpool;
-
-
-//
-// Helpers
-boost::mutex m_io_monitor;
-
-void print(string text)
-{
- boost::mutex::scoped_lock lock(m_io_monitor);
- cout << text;
-}
-
-template<typename T>
-string to_string(T const & value)
-{
- ostringstream ost;
- ost << value;
- ost.flush();
- return ost.str();
-}
-
-
-
-//
-// An example task functions
-void task_1()
-{
- print(" task_1()\n");
-}
-
-void task_2()
-{
- print(" task_2()\n");
-}
-
-void task_3()
-{
- print(" task_3()\n");
-}
-
-int task_4()
-{
- print(" task_4()\n");
- return 4;
-}
-
-void task_with_parameter(int value)
-{
- print(" task_with_parameter(" + to_string(value) + ")\n");
-}
-
-int loops = 0;
-bool looped_task()
-{
- print(" looped_task()\n");
- return ++loops < 5;
-}
-
-
-int task_int()
-{
- print(" task_int()\n");
- return 23;
-}
-
-
-void fifo_pool_test()
-{
- pool tp;
-
- tp.schedule(&task_1);
- tp.schedule(boost::bind(task_with_parameter, 4));
-
- if(!tp.empty())
- {
- tp.clear(); // remove all tasks -> no output in this test
- }
-
- size_t active_threads = tp.active();
- size_t pending_threads = tp.pending();
- size_t total_threads = tp.size();
-
- size_t dummy = active_threads + pending_threads + total_threads;
- dummy++;
-
- tp.size_controller().resize(5);
- tp.wait();
-}
-
-void lifo_pool_test()
-{
- lifo_pool tp;
- tp.size_controller().resize(0);
- schedule(tp, &task_1);
- tp.size_controller().resize(10);
- tp.wait();
-}
-
-void prio_pool_test()
-{
- prio_pool tp(2);
- schedule(tp, prio_task_func(1, &task_1));
- schedule(tp, prio_task_func(10,&task_2));
-}
-
-
-void future_test()
-{
- fifo_pool tp(5);
- future<int> fut = schedule(tp, &task_4);
- int res = fut();
-}
-
-
-int main (int , char * const [])
-{
- fifo_pool_test();
- lifo_pool_test();
- prio_pool_test();
- future_test();
- return 0;
-}
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2 b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2
deleted file mode 100644
index 5b9d02b459..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/Jamfile.v2
+++ /dev/null
@@ -1,11 +0,0 @@
-
-project
- : requirements
- <include>../../..
- <library>/boost/thread//boost_thread
- <define>BOOST_ALL_NO_LIB=1
- <threading>multi
- <link>static
- ;
-
-exe tutorial : tutorial.cpp ;
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp b/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp
deleted file mode 100644
index 4cc688509e..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/libs/threadpool/tutorial/tutorial.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-/*! \file
-* \brief threadpool tutorial.
-*
-* This file contains a tutorial for the threadpool library.
-*
-* Copyright (c) 2005-2007 Philipp Henkel
-*
-* Distributed under the Boost Software License, Version 1.0. (See
-* accompanying file LICENSE_1_0.txt or copy at
-* http://www.boost.org/LICENSE_1_0.txt)
-*
-* http://threadpool.sourceforge.net
-*
-*/
-
-//#define _CRTDBG_MAP_ALLOC
-#include <stdlib.h>
-
-#include <iostream>
-#include <sstream>
-#include <boost/thread/mutex.hpp>
-#include <boost/bind.hpp>
-#include <boost/threadpool.hpp>
-
-using namespace std;
-using namespace boost::threadpool;
-
-//
-// Helpers
-boost::mutex m_io_monitor;
-
-void print(string text)
-{
- boost::mutex::scoped_lock lock(m_io_monitor);
- cout << text;
-}
-
-template<typename T>
-string to_string(T const & value)
-{
- ostringstream ost;
- ost << value;
- ost.flush();
- return ost.str();
-}
-
-
-
-//
-// An example task functions
-void task_1()
-{
- print(" task_1()\n");
- throw 5;
-}
-
-void task_2()
-{
- print(" task_2()\n");
- throw 5;
-}
-
-void task_3()
-{
- print(" task_3()\n");
-}
-
-void task_with_parameter(int value)
-{
- print(" task_with_parameter(" + to_string(value) + ")\n");
-}
-
-int loops = 0;
-bool looped_task()
-{
- print(" looped_task()\n");
- return ++loops < 5;
-}
-
-
-int task_int_23()
-{
- print(" task_int_23()\n");
- return 23;
-}
-
-int task_int_1()
-{
- print(" task_int_1()\n");
- return 1;
-}
-
-
-class CTest
-{
- pool m_pool;
-public:
- CTest()
- : m_pool(pool(1000))
- {
- }
-};
-
-
-//
-// A demonstration of the thread_pool class
-int main (int , char * const [])
-{
- print("\nWelcome to the threadpool tutorial!\n");
-
- print("\n**************************************\n");
- print("Section 1: Quick Start\n");
-
- //void func()
- {
- print(" Create a new thread pool\n");
- pool tp(2); // tp is handle to the pool
-
- // Add tasks
- tp.schedule(&task_1);
- tp.schedule(&task_2);
- tp.schedule(&task_3);
- tp.schedule(boost::bind(task_with_parameter, 4));
-
- // The pool handle tp is allocated on stack and will
- // be destructed if it gets out of scope. Before the
- // pool is destroyed it waits for its tasks.
- // That means the current thread of execution is
- // blocked at the end of the function
- // (until all tasks are processed).
- // while (&tp){int i = 3; ++i;}
- }
-
- { // Section Futures
- print("\n**************************************\n");
- print("Section 1: Futures\n");
-
- //typedef thread_pool<task_func, fifo_scheduler, static_size, empty_controller, wait_for_all_tasks> test_pool;
-
- pool tp;
-
-// tp.resize(0);
- tp.pending();
-// tp.clear();
- boost::xtime t;
- tp.wait(t);
- bool test = tp.empty();
- if(test)
- {
- test = false;
- }
-
- tp.size_controller().resize(2);
-
- //test_pool::size_controller_type controller = tp.size_controller();
-// controller.resize(5);
-
- schedule(tp, &task_int_1);
- future<int> res = schedule(tp, &task_int_23);
- future<int> res2 = schedule(tp, &task_int_1);
-
- res.wait();
- int value = res.get() + res2.get();
-
- res.cancel();
- res.is_cancelled();
-value ++;
-
-//thread_pool<boost::function0<int>, fifo_scheduler> test2332;
-
-//TODO runnable comile test
- }
-
-
-
- { // Section 2
- print("\n**************************************\n");
- print("Section 2: Controlling scheduling\n");
-
- // Create a lifo_pool: last task in, first task out
- lifo_pool tp(0);
-
- print(" Add tasks (using the pool's schedule function)\n");
- schedule(tp, &task_1);
- schedule(tp, &task_2);
- schedule(tp, &task_3);
-
- // tp.wait(); This would be a deadlock as there are no threads which process the tasks.
-
- print(" Add some threads ...\n");
- tp.size_controller().resize(5);
-
- print(" Wait until all tasks are finished ...\n");
- tp.wait();
- print(" Tasks finished!\n");
- }
-
-
-
- { // Section 3:
- print("\n**************************************\n");
- print("Section 3: Prioritized Tasks\n");
-
- prio_pool tp(0);
-
-
- print(" Add prioritized tasks ...\n");
- schedule(tp, prio_task_func(1, &task_1));
- schedule(tp, prio_task_func(10,&task_2));
- schedule(tp, prio_task_func(5,&task_3));
-
- // Tasks are ordered according to their priority: task_2, task_4, task_3, task_1
-
- print(" Thread added\n");
- tp.size_controller().resize(10);
-
- print(" Wait until all tasks are finished ...\n");
- tp.wait();
- print(" Tasks finished!\n");
- }
-
-
-/* */
- { // Section 5:
- print("\n**************************************\n");
- print("Section 5: Advanced thread pool instantiation\n");
- // Create the pool directly
-/*
-TODO
-boost::shared_ptr<fifo_pool> tp = fifo_pool::create_pool(5);
-
- print(" Add tasks ...\n");
- tp->schedule(&task_1);
- tp->schedule(&task_2);
- tp->schedule(&task_3);
- tp->schedule(looped_task_func(&looped_task, 1500));
-
- print(" Wait until all tasks are finished ...\n");
- tp->wait();
-*/
-
- print(" Tasks finished!\n");
-
- }
-
-
- print("\n**************************************\n");
- print("Tutorial finished!\n");
-
-
-
- { // Section Compile Tests
- print("\n**************************************\n");
- print("Section Compile Tests\n");
-
-
- fifo_pool tp;
- tp.size_controller().resize(0);
- tp.empty();
- }
-
- return 0;
-}
diff --git a/graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam b/graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam
deleted file mode 100644
index e94f7232e0..0000000000
--- a/graphics/asymptote/LspCpp/third_party/threadpool/project-root.jam
+++ /dev/null
@@ -1,2 +0,0 @@
-import os ;
-path-constant BOOST_ROOT : [ os.environ BOOST_ROOT ] ;
diff --git a/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake b/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
index 51cd33465d..5fd42212b9 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
+++ b/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -2,8 +2,8 @@
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.82/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.82/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.83/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.83/LspCpp")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
diff --git a/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make b/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
index 68cd85974d..a1efc1ed07 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
+++ b/graphics/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make
@@ -56,10 +56,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.83/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.83/LspCpp
# Utility rule file for doc.
@@ -70,8 +70,8 @@ include third_party/uri/CMakeFiles/doc.dir/compiler_depend.make
include third_party/uri/CMakeFiles/doc.dir/progress.make
third_party/uri/CMakeFiles/doc:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/Doxyfile
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/Doxyfile
doc: third_party/uri/CMakeFiles/doc
doc: third_party/uri/CMakeFiles/doc.dir/build.make
@@ -82,10 +82,10 @@ third_party/uri/CMakeFiles/doc.dir/build: doc
.PHONY : third_party/uri/CMakeFiles/doc.dir/build
third_party/uri/CMakeFiles/doc.dir/clean:
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake
.PHONY : third_party/uri/CMakeFiles/doc.dir/clean
third_party/uri/CMakeFiles/doc.dir/depend:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.82/LspCpp /usr/local/src/asymptote-2.82/LspCpp/third_party/uri /usr/local/src/asymptote-2.82/LspCpp /usr/local/src/asymptote-2.82/LspCpp/third_party/uri /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake --color=$(COLOR)
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.83/LspCpp /usr/local/src/asymptote-2.83/LspCpp/third_party/uri /usr/local/src/asymptote-2.83/LspCpp /usr/local/src/asymptote-2.83/LspCpp/third_party/uri /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : third_party/uri/CMakeFiles/doc.dir/depend
diff --git a/graphics/asymptote/LspCpp/third_party/uri/Doxyfile b/graphics/asymptote/LspCpp/third_party/uri/Doxyfile
index cd61995ea9..af17d12e94 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/Doxyfile
+++ b/graphics/asymptote/LspCpp/third_party/uri/Doxyfile
@@ -128,7 +128,7 @@ FULL_PATH_NAMES = YES
# If left blank the directory from which doxygen is run is used as the
# path to strip.
-STRIP_FROM_PATH = /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/
+STRIP_FROM_PATH = /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
@@ -626,7 +626,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include
+INPUT = /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -658,7 +658,7 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
-EXCLUDE = /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail
+EXCLUDE = /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
@@ -821,7 +821,7 @@ COLS_IN_ALPHA_INDEX = 5
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
-IGNORE_PREFIX = /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/uri/src/
+IGNORE_PREFIX = /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/uri/src/
#---------------------------------------------------------------------------
# configuration options related to the HTML output
diff --git a/graphics/asymptote/LspCpp/third_party/uri/Makefile b/graphics/asymptote/LspCpp/third_party/uri/Makefile
index 86b0d21ac4..cfaff962f3 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/Makefile
+++ b/graphics/asymptote/LspCpp/third_party/uri/Makefile
@@ -60,10 +60,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.83/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.83/LspCpp
#=============================================================================
# Targets provided globally by CMake.
@@ -135,14 +135,14 @@ install/strip/fast: preinstall/fast
# The main all target
all: cmake_check_build_system
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.82/LspCpp/CMakeFiles /usr/local/src/asymptote-2.82/LspCpp/third_party/uri//CMakeFiles/progress.marks
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/all
- $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.82/LspCpp/CMakeFiles 0
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.83/LspCpp/CMakeFiles /usr/local/src/asymptote-2.83/LspCpp/third_party/uri//CMakeFiles/progress.marks
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.83/LspCpp/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/clean
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/clean
.PHONY : clean
# The main clean target
@@ -151,22 +151,22 @@ clean/fast: clean
# Prepare targets for installation.
preinstall: all
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
third_party/uri/CMakeFiles/doc.dir/rule:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/CMakeFiles/doc.dir/rule
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/CMakeFiles/doc.dir/rule
.PHONY : third_party/uri/CMakeFiles/doc.dir/rule
# Convenience name for target.
@@ -175,7 +175,7 @@ doc: third_party/uri/CMakeFiles/doc.dir/rule
# fast build rule for target.
doc/fast:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/CMakeFiles/doc.dir/build.make third_party/uri/CMakeFiles/doc.dir/build
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/CMakeFiles/doc.dir/build.make third_party/uri/CMakeFiles/doc.dir/build
.PHONY : doc/fast
# Help Target
@@ -202,6 +202,6 @@ help:
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
diff --git a/graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake b/graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake
index 22997663f4..b42eb0b716 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake
+++ b/graphics/asymptote/LspCpp/third_party/uri/cmake_install.cmake
@@ -1,4 +1,4 @@
-# Install script for directory: /usr/local/src/asymptote-2.82/LspCpp/third_party/uri
+# Install script for directory: /usr/local/src/asymptote-2.83/LspCpp/third_party/uri
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
@@ -43,12 +43,12 @@ if(NOT DEFINED CMAKE_OBJDUMP)
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
- file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE DIRECTORY FILES "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include")
+ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/." TYPE DIRECTORY FILES "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include")
endif()
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
# Include the install script for each subdirectory.
- include("/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/cmake_install.cmake")
+ include("/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/cmake_install.cmake")
endif()
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
index 51cd33465d..5fd42212b9 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -2,8 +2,8 @@
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.82/LspCpp")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.82/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.83/LspCpp")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.83/LspCpp")
# Force unix paths in dependencies.
set(CMAKE_FORCE_UNIX_PATHS 1)
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
index 75668a664f..cd700d1822 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake
@@ -8,14 +8,14 @@ set(CMAKE_DEPENDS_LANGUAGES
# The set of dependency files which are needed:
set(CMAKE_DEPENDS_DEPENDENCY_FILES
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_builder.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o.d"
- "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_errors.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_builder.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o.d"
+ "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_errors.cpp" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o" "gcc" "third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o.d"
)
# Targets to which this target links.
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
index cf80107ca1..85a02f3be9 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/build.make
@@ -56,10 +56,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.83/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.83/LspCpp
# Include any dependencies generated for this target.
include third_party/uri/src/CMakeFiles/network-uri.dir/depend.make
@@ -75,114 +75,114 @@ include third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/uri.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o -MF CMakeFiles/network-uri.dir/uri.cpp.o.d -o CMakeFiles/network-uri.dir/uri.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o -MF CMakeFiles/network-uri.dir/uri.cpp.o.d -o CMakeFiles/network-uri.dir/uri.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/uri.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri.cpp > CMakeFiles/network-uri.dir/uri.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri.cpp > CMakeFiles/network-uri.dir/uri.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/uri.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri.cpp -o CMakeFiles/network-uri.dir/uri.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri.cpp -o CMakeFiles/network-uri.dir/uri.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/uri_builder.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o -MF CMakeFiles/network-uri.dir/uri_builder.cpp.o.d -o CMakeFiles/network-uri.dir/uri_builder.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_builder.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o -MF CMakeFiles/network-uri.dir/uri_builder.cpp.o.d -o CMakeFiles/network-uri.dir/uri_builder.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_builder.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/uri_builder.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_builder.cpp > CMakeFiles/network-uri.dir/uri_builder.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_builder.cpp > CMakeFiles/network-uri.dir/uri_builder.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/uri_builder.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_builder.cpp -o CMakeFiles/network-uri.dir/uri_builder.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_builder.cpp -o CMakeFiles/network-uri.dir/uri_builder.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/uri_errors.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o -MF CMakeFiles/network-uri.dir/uri_errors.cpp.o.d -o CMakeFiles/network-uri.dir/uri_errors.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_errors.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o -MF CMakeFiles/network-uri.dir/uri_errors.cpp.o.d -o CMakeFiles/network-uri.dir/uri_errors.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_errors.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/uri_errors.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_errors.cpp > CMakeFiles/network-uri.dir/uri_errors.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_errors.cpp > CMakeFiles/network-uri.dir/uri_errors.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/uri_errors.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_errors.cpp -o CMakeFiles/network-uri.dir/uri_errors.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_errors.cpp -o CMakeFiles/network-uri.dir/uri_errors.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/detail/uri_parse.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.cpp > CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.cpp > CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/detail/uri_parse_authority.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp > CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp > CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp -o CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/detail/uri_advance_parts.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp > CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp > CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp -o CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/detail/uri_normalize.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.cpp > CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.cpp > CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.cpp -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.cpp -o CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/detail/uri_resolve.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o: third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.ts
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -c /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -MF CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o.d -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o -c /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.cpp > CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.cpp > CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.cpp -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && /bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.cpp -o CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
# Object files for target network-uri
network__uri_OBJECTS = \
@@ -208,19 +208,19 @@ third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri
third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri.dir/build.make
third_party/uri/src/libnetwork-uri.a: third_party/uri/src/CMakeFiles/network-uri.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/usr/local/src/asymptote-2.82/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX static library libnetwork-uri.a"
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean_target.cmake
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/network-uri.dir/link.txt --verbose=$(VERBOSE)
+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/usr/local/src/asymptote-2.83/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Linking CXX static library libnetwork-uri.a"
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean_target.cmake
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/network-uri.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.
third_party/uri/src/CMakeFiles/network-uri.dir/build: third_party/uri/src/libnetwork-uri.a
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/build
third_party/uri/src/CMakeFiles/network-uri.dir/clean:
- cd /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean.cmake
+ cd /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src && $(CMAKE_COMMAND) -P CMakeFiles/network-uri.dir/cmake_clean.cmake
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/clean
third_party/uri/src/CMakeFiles/network-uri.dir/depend:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.82/LspCpp /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src /usr/local/src/asymptote-2.82/LspCpp /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake --color=$(COLOR)
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.83/LspCpp /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src /usr/local/src/asymptote-2.83/LspCpp /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/DependInfo.cmake --color=$(COLOR)
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/depend
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
index c777aff35a..8056417232 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/compiler_depend.internal
@@ -2,10 +2,10 @@
# Generated by "Unix Makefiles" Generator, CMake Version 3.22
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.cpp
/usr/include/stdc-predef.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
/usr/include/c++/11/string
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
/usr/include/bits/wordsize.h
@@ -171,7 +171,7 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
/usr/include/c++/11/typeinfo
/usr/include/c++/11/bits/nested_exception.h
/usr/include/c++/11/bits/streambuf.tcc
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
/usr/include/c++/11/memory
/usr/include/c++/11/bits/stl_uninitialized.h
/usr/include/c++/11/bits/stl_tempbuf.h
@@ -198,16 +198,16 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
/usr/include/c++/11/bits/algorithmfwd.h
/usr/include/c++/11/bits/stl_heap.h
/usr/include/c++/11/bits/uniform_int_dist.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
/usr/include/c++/11/cassert
/usr/include/assert.h
/usr/include/c++/11/limits
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.cpp
/usr/include/stdc-predef.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri.hpp
/usr/include/c++/11/iterator
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
/usr/include/bits/wordsize.h
@@ -401,21 +401,21 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
/usr/include/c++/11/bits/atomic_base.h
/usr/include/c++/11/bits/atomic_lockfree_defines.h
/usr/include/c++/11/backward/auto_ptr.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
/usr/include/c++/11/cassert
/usr/include/assert.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/config.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
/usr/include/c++/11/cstring
/usr/include/string.h
/usr/include/strings.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
/usr/include/c++/11/vector
/usr/include/c++/11/bits/stl_vector.h
/usr/include/c++/11/bits/stl_bvector.h
@@ -436,14 +436,14 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
/usr/include/c++/11/bits/codecvt.h
/usr/include/c++/11/bits/locale_facets_nonio.tcc
/usr/include/c++/11/bits/locale_conv.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/algorithm.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/algorithm_split.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/algorithm.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/algorithm_split.hpp
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.cpp
/usr/include/stdc-predef.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
/usr/include/c++/11/string
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
/usr/include/bits/wordsize.h
@@ -618,7 +618,7 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
/usr/include/c++/11/bits/stl_tempbuf.h
/usr/include/c++/11/bits/uniform_int_dist.h
/usr/include/c++/11/limits
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/grammar.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/grammar.hpp
/usr/include/c++/11/locale
/usr/include/c++/11/bits/locale_facets.h
/usr/include/c++/11/cwctype
@@ -643,8 +643,8 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
/usr/include/c++/11/cstring
/usr/include/string.h
/usr/include/strings.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
/usr/include/c++/11/memory
/usr/include/c++/11/bits/stl_uninitialized.h
/usr/include/c++/11/bits/stl_raw_storage_iter.h
@@ -662,10 +662,10 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
/usr/include/c++/11/backward/auto_ptr.h
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.cpp
/usr/include/stdc-predef.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
/usr/include/c++/11/string
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
/usr/include/bits/wordsize.h
@@ -831,7 +831,7 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
/usr/include/c++/11/typeinfo
/usr/include/c++/11/bits/nested_exception.h
/usr/include/c++/11/bits/streambuf.tcc
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
/usr/include/c++/11/memory
/usr/include/c++/11/bits/stl_uninitialized.h
/usr/include/c++/11/bits/stl_tempbuf.h
@@ -858,11 +858,11 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
/usr/include/c++/11/bits/algorithmfwd.h
/usr/include/c++/11/bits/stl_heap.h
/usr/include/c++/11/bits/uniform_int_dist.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
/usr/include/c++/11/cassert
/usr/include/assert.h
/usr/include/c++/11/limits
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/grammar.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/grammar.hpp
/usr/include/c++/11/locale
/usr/include/c++/11/bits/locale_facets.h
/usr/include/c++/11/cwctype
@@ -884,10 +884,10 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
/usr/include/strings.h
third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.cpp
/usr/include/stdc-predef.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri.hpp
/usr/include/c++/11/iterator
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
/usr/include/bits/wordsize.h
@@ -1081,25 +1081,25 @@ third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
/usr/include/c++/11/bits/atomic_base.h
/usr/include/c++/11/bits/atomic_lockfree_defines.h
/usr/include/c++/11/backward/auto_ptr.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
/usr/include/c++/11/cassert
/usr/include/assert.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/config.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
/usr/include/c++/11/cstring
/usr/include/string.h
/usr/include/strings.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/algorithm_find.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/algorithm_find.hpp
/usr/include/c++/11/cstddef
third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri.cpp
/usr/include/stdc-predef.h
/usr/include/c++/11/cassert
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
@@ -1296,7 +1296,7 @@ third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
/usr/include/c++/11/functional
/usr/include/c++/11/bits/refwrap.h
/usr/include/c++/11/bits/std_function.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri.hpp
/usr/include/c++/11/iterator
/usr/include/c++/11/bits/stream_iterator.h
/usr/include/c++/11/memory
@@ -1313,31 +1313,31 @@ third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
/usr/include/c++/11/bits/atomic_base.h
/usr/include/c++/11/bits/atomic_lockfree_defines.h
/usr/include/c++/11/backward/auto_ptr.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/config.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
/usr/include/c++/11/cstring
/usr/include/string.h
/usr/include/strings.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_advance_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_percent_encode.hpp
/usr/include/c++/11/vector
/usr/include/c++/11/bits/stl_vector.h
/usr/include/c++/11/bits/stl_bvector.h
/usr/include/c++/11/bits/vector.tcc
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/algorithm.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_resolve.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/algorithm.hpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_builder.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_builder.cpp
/usr/include/stdc-predef.h
/usr/include/c++/11/locale
/usr/include/c++/11/bits/localefwd.h
@@ -1523,8 +1523,8 @@ third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
/usr/include/c++/11/array
/usr/include/c++/11/bits/uses_allocator.h
/usr/include/c++/11/bits/invoke.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_builder.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri.hpp
/usr/include/c++/11/iterator
/usr/include/c++/11/bits/stream_iterator.h
/usr/include/c++/11/algorithm
@@ -1550,25 +1550,25 @@ third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
/usr/include/c++/11/bits/atomic_base.h
/usr/include/c++/11/bits/atomic_lockfree_defines.h
/usr/include/c++/11/backward/auto_ptr.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/string_view.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/string_view.hpp
/usr/include/c++/11/cassert
/usr/include/assert.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/optional.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/config.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/optional.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/uri_parts.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/encode.hpp
/usr/include/c++/11/cstring
/usr/include/string.h
/usr/include/strings.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/detail/algorithm.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/decode.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/detail/translate.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_normalize.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/uri_parse_authority.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/detail/algorithm.hpp
third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/uri_errors.cpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/uri_errors.cpp
/usr/include/stdc-predef.h
/usr/include/c++/11/string
/usr/include/c++/11/x86_64-redhat-linux/bits/c++config.h
@@ -1717,7 +1717,7 @@ third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
/usr/include/c++/11/bits/functional_hash.h
/usr/include/c++/11/bits/hash_bytes.h
/usr/include/c++/11/bits/basic_string.tcc
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/uri_errors.hpp
/usr/include/c++/11/system_error
/usr/include/c++/11/x86_64-redhat-linux/bits/error_constants.h
/usr/include/c++/11/stdexcept
@@ -1726,5 +1726,5 @@ third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
/usr/include/c++/11/bits/cxxabi_init_exception.h
/usr/include/c++/11/typeinfo
/usr/include/c++/11/bits/nested_exception.h
- /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include/network/uri/config.hpp
+ /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include/network/uri/config.hpp
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
index 001b66741d..ffdfe61c01 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/CMakeFiles/network-uri.dir/flags.make
@@ -4,7 +4,7 @@
# compile CXX with /bin/c++
CXX_DEFINES =
-CXX_INCLUDES = -I/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src -I/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/include
+CXX_INCLUDES = -I/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src -I/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/include
CXX_FLAGS = -fPIE -D_FILE_OFFSET_BITS=64 -DUSEGC -I../gc-8.2.0/include -std=c++11 -Wall -Werror -Wno-parentheses -O2 -g -DNDEBUG
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/Makefile b/graphics/asymptote/LspCpp/third_party/uri/src/Makefile
index fca7499fb8..3ffc68f8da 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/Makefile
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/Makefile
@@ -60,10 +60,10 @@ RM = /usr/bin/cmake -E rm -f
EQUALS = =
# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.83/LspCpp
# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.82/LspCpp
+CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.83/LspCpp
#=============================================================================
# Targets provided globally by CMake.
@@ -135,14 +135,14 @@ install/strip/fast: preinstall/fast
# The main all target
all: cmake_check_build_system
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.82/LspCpp/CMakeFiles /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src//CMakeFiles/progress.marks
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/all
- $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.82/LspCpp/CMakeFiles 0
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.83/LspCpp/CMakeFiles /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src//CMakeFiles/progress.marks
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/all
+ $(CMAKE_COMMAND) -E cmake_progress_start /usr/local/src/asymptote-2.83/LspCpp/CMakeFiles 0
.PHONY : all
# The main clean target
clean:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/clean
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/clean
.PHONY : clean
# The main clean target
@@ -151,22 +151,22 @@ clean/fast: clean
# Prepare targets for installation.
preinstall: all
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
.PHONY : preinstall
# Prepare targets for installation.
preinstall/fast:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/preinstall
.PHONY : preinstall/fast
# clear depends
depend:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
.PHONY : depend
# Convenience name for target.
third_party/uri/src/CMakeFiles/network-uri.dir/rule:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/CMakeFiles/network-uri.dir/rule
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 third_party/uri/src/CMakeFiles/network-uri.dir/rule
.PHONY : third_party/uri/src/CMakeFiles/network-uri.dir/rule
# Convenience name for target.
@@ -175,7 +175,7 @@ network-uri: third_party/uri/src/CMakeFiles/network-uri.dir/rule
# fast build rule for target.
network-uri/fast:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/build
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/build
.PHONY : network-uri/fast
detail/uri_advance_parts.o: detail/uri_advance_parts.cpp.o
@@ -183,7 +183,7 @@ detail/uri_advance_parts.o: detail/uri_advance_parts.cpp.o
# target to build an object file
detail/uri_advance_parts.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.o
.PHONY : detail/uri_advance_parts.cpp.o
detail/uri_advance_parts.i: detail/uri_advance_parts.cpp.i
@@ -191,7 +191,7 @@ detail/uri_advance_parts.i: detail/uri_advance_parts.cpp.i
# target to preprocess a source file
detail/uri_advance_parts.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.i
.PHONY : detail/uri_advance_parts.cpp.i
detail/uri_advance_parts.s: detail/uri_advance_parts.cpp.s
@@ -199,7 +199,7 @@ detail/uri_advance_parts.s: detail/uri_advance_parts.cpp.s
# target to generate assembly for a file
detail/uri_advance_parts.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_advance_parts.cpp.s
.PHONY : detail/uri_advance_parts.cpp.s
detail/uri_normalize.o: detail/uri_normalize.cpp.o
@@ -207,7 +207,7 @@ detail/uri_normalize.o: detail/uri_normalize.cpp.o
# target to build an object file
detail/uri_normalize.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.o
.PHONY : detail/uri_normalize.cpp.o
detail/uri_normalize.i: detail/uri_normalize.cpp.i
@@ -215,7 +215,7 @@ detail/uri_normalize.i: detail/uri_normalize.cpp.i
# target to preprocess a source file
detail/uri_normalize.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.i
.PHONY : detail/uri_normalize.cpp.i
detail/uri_normalize.s: detail/uri_normalize.cpp.s
@@ -223,7 +223,7 @@ detail/uri_normalize.s: detail/uri_normalize.cpp.s
# target to generate assembly for a file
detail/uri_normalize.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_normalize.cpp.s
.PHONY : detail/uri_normalize.cpp.s
detail/uri_parse.o: detail/uri_parse.cpp.o
@@ -231,7 +231,7 @@ detail/uri_parse.o: detail/uri_parse.cpp.o
# target to build an object file
detail/uri_parse.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.o
.PHONY : detail/uri_parse.cpp.o
detail/uri_parse.i: detail/uri_parse.cpp.i
@@ -239,7 +239,7 @@ detail/uri_parse.i: detail/uri_parse.cpp.i
# target to preprocess a source file
detail/uri_parse.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.i
.PHONY : detail/uri_parse.cpp.i
detail/uri_parse.s: detail/uri_parse.cpp.s
@@ -247,7 +247,7 @@ detail/uri_parse.s: detail/uri_parse.cpp.s
# target to generate assembly for a file
detail/uri_parse.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse.cpp.s
.PHONY : detail/uri_parse.cpp.s
detail/uri_parse_authority.o: detail/uri_parse_authority.cpp.o
@@ -255,7 +255,7 @@ detail/uri_parse_authority.o: detail/uri_parse_authority.cpp.o
# target to build an object file
detail/uri_parse_authority.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.o
.PHONY : detail/uri_parse_authority.cpp.o
detail/uri_parse_authority.i: detail/uri_parse_authority.cpp.i
@@ -263,7 +263,7 @@ detail/uri_parse_authority.i: detail/uri_parse_authority.cpp.i
# target to preprocess a source file
detail/uri_parse_authority.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.i
.PHONY : detail/uri_parse_authority.cpp.i
detail/uri_parse_authority.s: detail/uri_parse_authority.cpp.s
@@ -271,7 +271,7 @@ detail/uri_parse_authority.s: detail/uri_parse_authority.cpp.s
# target to generate assembly for a file
detail/uri_parse_authority.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_parse_authority.cpp.s
.PHONY : detail/uri_parse_authority.cpp.s
detail/uri_resolve.o: detail/uri_resolve.cpp.o
@@ -279,7 +279,7 @@ detail/uri_resolve.o: detail/uri_resolve.cpp.o
# target to build an object file
detail/uri_resolve.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.o
.PHONY : detail/uri_resolve.cpp.o
detail/uri_resolve.i: detail/uri_resolve.cpp.i
@@ -287,7 +287,7 @@ detail/uri_resolve.i: detail/uri_resolve.cpp.i
# target to preprocess a source file
detail/uri_resolve.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.i
.PHONY : detail/uri_resolve.cpp.i
detail/uri_resolve.s: detail/uri_resolve.cpp.s
@@ -295,7 +295,7 @@ detail/uri_resolve.s: detail/uri_resolve.cpp.s
# target to generate assembly for a file
detail/uri_resolve.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/detail/uri_resolve.cpp.s
.PHONY : detail/uri_resolve.cpp.s
uri.o: uri.cpp.o
@@ -303,7 +303,7 @@ uri.o: uri.cpp.o
# target to build an object file
uri.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.o
.PHONY : uri.cpp.o
uri.i: uri.cpp.i
@@ -311,7 +311,7 @@ uri.i: uri.cpp.i
# target to preprocess a source file
uri.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.i
.PHONY : uri.cpp.i
uri.s: uri.cpp.s
@@ -319,7 +319,7 @@ uri.s: uri.cpp.s
# target to generate assembly for a file
uri.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri.cpp.s
.PHONY : uri.cpp.s
uri_builder.o: uri_builder.cpp.o
@@ -327,7 +327,7 @@ uri_builder.o: uri_builder.cpp.o
# target to build an object file
uri_builder.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.o
.PHONY : uri_builder.cpp.o
uri_builder.i: uri_builder.cpp.i
@@ -335,7 +335,7 @@ uri_builder.i: uri_builder.cpp.i
# target to preprocess a source file
uri_builder.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.i
.PHONY : uri_builder.cpp.i
uri_builder.s: uri_builder.cpp.s
@@ -343,7 +343,7 @@ uri_builder.s: uri_builder.cpp.s
# target to generate assembly for a file
uri_builder.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_builder.cpp.s
.PHONY : uri_builder.cpp.s
uri_errors.o: uri_errors.cpp.o
@@ -351,7 +351,7 @@ uri_errors.o: uri_errors.cpp.o
# target to build an object file
uri_errors.cpp.o:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.o
.PHONY : uri_errors.cpp.o
uri_errors.i: uri_errors.cpp.i
@@ -359,7 +359,7 @@ uri_errors.i: uri_errors.cpp.i
# target to preprocess a source file
uri_errors.cpp.i:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.i
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.i
.PHONY : uri_errors.cpp.i
uri_errors.s: uri_errors.cpp.s
@@ -367,7 +367,7 @@ uri_errors.s: uri_errors.cpp.s
# target to generate assembly for a file
uri_errors.cpp.s:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.s
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(MAKE) $(MAKESILENT) -f third_party/uri/src/CMakeFiles/network-uri.dir/build.make third_party/uri/src/CMakeFiles/network-uri.dir/uri_errors.cpp.s
.PHONY : uri_errors.cpp.s
# Help Target
@@ -418,6 +418,6 @@ help:
# No rule that depends on this can have commands that come from listfiles
# because they might be regenerated.
cmake_check_build_system:
- cd /usr/local/src/asymptote-2.82/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+ cd /usr/local/src/asymptote-2.83/LspCpp && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
.PHONY : cmake_check_build_system
diff --git a/graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake b/graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
index 7adcfd9711..f01ba61a01 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
+++ b/graphics/asymptote/LspCpp/third_party/uri/src/cmake_install.cmake
@@ -1,4 +1,4 @@
-# Install script for directory: /usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src
+# Install script for directory: /usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src
# Set the install prefix
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
@@ -43,6 +43,6 @@ if(NOT DEFINED CMAKE_OBJDUMP)
endif()
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT)
- file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/usr/local/src/asymptote-2.82/LspCpp/third_party/uri/src/libnetwork-uri.a")
+ file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE STATIC_LIBRARY FILES "/usr/local/src/asymptote-2.83/LspCpp/third_party/uri/src/libnetwork-uri.a")
endif()
diff --git a/graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp b/graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
index 32170fd04b..0f0238f733 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
+++ b/graphics/asymptote/LspCpp/third_party/uri/test/optional_test.cpp
@@ -163,6 +163,6 @@ TEST(optional_test, value_or_rvalue_reference_with_value) {
}
TEST(optional_test, assign_nullopt_to_nullopt) {
- network::optional<std::string> opt;
- opt = network::nullopt;
-} \ No newline at end of file
+ network::optional<std::string> opt;
+ opt = network::nullopt;
+}
diff --git a/graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp b/graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
index 54e29e0c5c..4b2b9cd5e2 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
+++ b/graphics/asymptote/LspCpp/third_party/uri/test/uri_builder_test.cpp
@@ -684,9 +684,9 @@ TEST(builder_test, clear_query_test) {
}
TEST(uri_test, clear_query_params_with_no_query) {
- network::uri original("http://example.com/path");
- network::uri_builder builder(original);
- builder.clear_query();
+ network::uri original("http://example.com/path");
+ network::uri_builder builder(original);
+ builder.clear_query();
}
TEST(builder_test, clear_fragment_test) {
diff --git a/graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp b/graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
index 47bb4fdd43..4c97d87258 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
+++ b/graphics/asymptote/LspCpp/third_party/uri/test/uri_encoding_test.cpp
@@ -13,7 +13,7 @@ TEST(uri_encoding_test, encode_user_info_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_user_info(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C%2F:%3B%3D%3F%40%5B%5D", instance);
}
@@ -21,7 +21,7 @@ TEST(uri_encoding_test, encode_host_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_host(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C%2F:%3B%3D%3F%40[]", instance);
}
@@ -29,7 +29,7 @@ TEST(uri_encoding_test, encode_ipv6_host) {
const std::string unencoded("[::1]");
std::string instance;
network::uri::encode_host(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("[::1]", instance);
}
@@ -37,7 +37,7 @@ TEST(uri_encoding_test, encode_port_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_port(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D", instance);
}
@@ -45,7 +45,7 @@ TEST(uri_encoding_test, encode_path_iterator) {
const std::string unencoded("!#$&'()*+,/:;=?@[]");
std::string instance;
network::uri::encode_path(std::begin(unencoded), std::end(unencoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("%21%23%24%26%27%28%29%2A%2B%2C/%3A;=%3F@%5B%5D", instance);
}
@@ -69,7 +69,7 @@ TEST(uri_encoding_test, decode_iterator) {
const std::string encoded("%21%23%24%26%27%28%29%2A%2B%2C%2F%3A%3B%3D%3F%40%5B%5D");
std::string instance;
network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance));
+ std::back_inserter(instance));
ASSERT_EQ("!#$&'()*+,/:;=?@[]", instance);
}
@@ -77,62 +77,62 @@ TEST(uri_encoding_test, decode_iterator_error_1) {
const std::string encoded("%");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_2) {
const std::string encoded("%2");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_3) {
const std::string encoded("%%%");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_4) {
const std::string encoded("%2%");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_5) {
const std::string encoded("%G0");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_error_6) {
const std::string encoded("%0G");
std::string instance;
ASSERT_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)),
- network::percent_decoding_error);
+ std::back_inserter(instance)),
+ network::percent_decoding_error);
}
TEST(uri_encoding_test, decode_iterator_not_an_error_1) {
const std::string encoded("%20");
std::string instance;
ASSERT_NO_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)));
+ std::back_inserter(instance)));
}
TEST(uri_encoding_test, decode_iterator_not_an_error_2) {
const std::string encoded("%80");
std::string instance;
ASSERT_NO_THROW(network::uri::decode(std::begin(encoded), std::end(encoded),
- std::back_inserter(instance)));
+ std::back_inserter(instance)));
}
TEST(uri_encoding_test, decode_accepts_utf8) {
diff --git a/graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp b/graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
index 62e224867a..ad3d58f45f 100644
--- a/graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
+++ b/graphics/asymptote/LspCpp/third_party/uri/test/uri_test.cpp
@@ -470,7 +470,7 @@ TEST(uri_test, range_test) {
const std::string url("http://www.example.com/");
network::uri instance(url);
EXPECT_TRUE(std::equal(std::begin(instance), std::end(instance),
- std::begin(url)));
+ std::begin(url)));
}
TEST(uri_test, issue_104_test) {
diff --git a/graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp b/graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
index 6533887253..f1ec6b652c 100644
--- a/graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
+++ b/graphics/asymptote/LspCpp/third_party/utfcpp/samples/docsample.cpp
@@ -50,15 +50,15 @@ int main(int argc, char** argv)
#if __cplusplus >= 201103L // C++ 11 or later
string utf8line = utf8::utf16to8(utf16line);
#else
- string utf8line;
+ string utf8line;
utf8::utf16to8(utf16line.begin(), utf16line.end(), back_inserter(utf8line));
#endif // C++ 11
// Confirm that the conversion went OK:
if (utf8line != string(line.begin(), end_it))
- cout << "Error in UTF-16 conversion at line: " << line_count << "\n";
+ cout << "Error in UTF-16 conversion at line: " << line_count << "\n";
line_count++;
- }
+ }
return 0;
}
diff --git a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
index de6199f2a3..d237e77a07 100644
--- a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
+++ b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/core.h
@@ -133,15 +133,15 @@ namespace internal
inline bool is_overlong_sequence(uint32_t cp, octet_difference_type length)
{
if (cp < 0x80) {
- if (length != 1)
+ if (length != 1)
return true;
}
else if (cp < 0x800) {
- if (length != 2)
+ if (length != 2)
return true;
}
else if (cp < 0x10000) {
- if (length != 3)
+ if (length != 3)
return true;
}
@@ -163,7 +163,7 @@ namespace internal
return UTF8_OK;
}
- #define UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(IT, END) {utf_error ret = increase_safely(IT, END); if (ret != UTF8_OK) return ret;}
+ #define UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(IT, END) {utf_error ret = increase_safely(IT, END); if (ret != UTF8_OK) return ret;}
/// get_sequence_x functions decode utf-8 sequences of the length x
template <typename octet_iterator>
@@ -180,7 +180,7 @@ namespace internal
template <typename octet_iterator>
utf_error get_sequence_2(octet_iterator& it, octet_iterator end, uint32_t& code_point)
{
- if (it == end)
+ if (it == end)
return NOT_ENOUGH_ROOM;
code_point = utf8::internal::mask8(*it);
@@ -197,7 +197,7 @@ namespace internal
{
if (it == end)
return NOT_ENOUGH_ROOM;
-
+
code_point = utf8::internal::mask8(*it);
UTF8_CPP_INCREASE_AND_RETURN_ON_ERROR(it, end)
@@ -282,7 +282,7 @@ namespace internal
else
err = OVERLONG_SEQUENCE;
}
- else
+ else
err = INVALID_CODE_POINT;
}
@@ -330,7 +330,7 @@ namespace internal
((it != end) && (utf8::internal::mask8(*it++)) == bom[1]) &&
((it != end) && (utf8::internal::mask8(*it)) == bom[2])
);
- }
+ }
} // namespace utf8
#endif // header guard
diff --git a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
index d93961b04f..77771ff8e1 100644
--- a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
+++ b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp11.h
@@ -96,7 +96,7 @@ namespace utf8
{
return starts_with_bom(s.begin(), s.end());
}
-
+
} // namespace utf8
#endif // header guard
diff --git a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
index 7bfa869942..0205f12796 100644
--- a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
+++ b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/cpp17.h
@@ -96,7 +96,7 @@ namespace utf8
{
return starts_with_bom(s.begin(), s.end());
}
-
+
} // namespace utf8
#endif // header guard
diff --git a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
index 0e1b51cc7d..8bc34e8f65 100644
--- a/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
+++ b/graphics/asymptote/LspCpp/third_party/utfcpp/source/utf8/unchecked.h
@@ -110,18 +110,18 @@ namespace utf8
cp = ((cp << 6) & 0x7ff) + ((*it) & 0x3f);
break;
case 3:
- ++it;
+ ++it;
cp = ((cp << 12) & 0xffff) + ((utf8::internal::mask8(*it) << 6) & 0xfff);
++it;
cp += (*it) & 0x3f;
break;
case 4:
++it;
- cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
+ cp = ((cp << 18) & 0x1fffff) + ((utf8::internal::mask8(*it) << 12) & 0x3ffff);
++it;
cp += (utf8::internal::mask8(*it) << 6) & 0xfff;
++it;
- cp += (*it) & 0x3f;
+ cp += (*it) & 0x3f;
break;
}
++it;
@@ -162,7 +162,7 @@ namespace utf8
distance (octet_iterator first, octet_iterator last)
{
typename std::iterator_traits<octet_iterator>::difference_type dist;
- for (dist = 0; first < last; ++dist)
+ for (dist = 0; first < last; ++dist)
utf8::unchecked::next(first);
return dist;
}
@@ -234,15 +234,15 @@ namespace utf8
octet_iterator temp = it;
return utf8::unchecked::next(temp);
}
- bool operator == (const iterator& rhs) const
- {
+ bool operator == (const iterator& rhs) const
+ {
return (it == rhs.it);
}
bool operator != (const iterator& rhs) const
{
return !(operator == (rhs));
}
- iterator& operator ++ ()
+ iterator& operator ++ ()
{
::std::advance(it, utf8::internal::sequence_length(it));
return *this;
@@ -252,7 +252,7 @@ namespace utf8
iterator temp = *this;
::std::advance(it, utf8::internal::sequence_length(it));
return temp;
- }
+ }
iterator& operator -- ()
{
utf8::unchecked::prior(it);
@@ -267,7 +267,7 @@ namespace utf8
}; // class iterator
} // namespace utf8::unchecked
-} // namespace utf8
+} // namespace utf8
#endif // header guard
diff --git a/graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp b/graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
index f1bcc993e0..26f72d9ef5 100644
--- a/graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
+++ b/graphics/asymptote/LspCpp/third_party/utfcpp/tests/negative.cpp
@@ -13,7 +13,7 @@ const unsigned* INVALID_LINES_END = INVALID_LINES + sizeof(INVALID_LINES)/sizeof
int main(int argc, char** argv)
{
string test_file_path;
- if (argc == 2)
+ if (argc == 2)
test_file_path = argv[1];
else {
cout << "Wrong number of arguments" << endl;
diff --git a/graphics/asymptote/ReleaseNotes b/graphics/asymptote/ReleaseNotes
index 94ce0070a8..9aadf88477 100644
--- a/graphics/asymptote/ReleaseNotes
+++ b/graphics/asymptote/ReleaseNotes
@@ -1,4 +1,13 @@
+Release Notes for Version 2.83
+
+WebGL triangle groups were fixed. Context menus were added to Xasy objects
+to allow one to edit the fill type, line type, color, line cap, and
+optionally add arrowheads. Support for begingroup() and endgroup() was
+added to Xasy. Scaling in the vectorfield function was fixed.
+A quotient(x,y) bug when -1 < x/y < 0, introduced in version 2.42, was fixed.
+
Release Notes for Version 2.82
+
Support for Ghostscript 9.56 was added.
Ambiguous functions are listed.
The dvisvgmMultipleFiles option is now enabled by default.
diff --git a/graphics/asymptote/asy-keywords.el b/graphics/asymptote/asy-keywords.el
index 73b5e633c1..14dd188ba2 100644
--- a/graphics/asymptote/asy-keywords.el
+++ b/graphics/asymptote/asy-keywords.el
@@ -2,7 +2,7 @@
;; This file is automatically generated by asy-list.pl.
;; Changes will be overwritten.
;;
-(defvar asy-keywords-version "2.82")
+(defvar asy-keywords-version "2.83")
(defvar asy-keyword-name '(
and controls tension atleast curl if else while for do return break continue struct typedef new access import unravel from include quote static public private restricted this explicit true false null cycle newframe operator ))
diff --git a/graphics/asymptote/asy.list b/graphics/asymptote/asy.list
index 80f333e14d..5e0417ff01 100644
--- a/graphics/asymptote/asy.list
+++ b/graphics/asymptote/asy.list
@@ -2007,7 +2007,6 @@ pair[][] fft(pair[][] a, int sign=<default>);
pair[][][] fft(pair[][][] a, int sign=<default>);
pair SE;
pen nobasealign;
-sCAD operator init();
real animationdelay;
animation operator init();
frame NoBox(frame f);
@@ -2054,6 +2053,7 @@ bsp operator init();
picture operator cast(face f);
face operator cast(path3 p);
void add(picture pic=<default>, face[] faces, projection P=<default>);
+sCAD operator init();
list_data Set2;
list_data YlOrBr;
list_data YlGn;
@@ -2126,6 +2126,15 @@ list_data Paired;
seg_data jet;
seg_data summer;
list_data RdYlBu;
+surface surface(vertex[][] g);
+weighted operator init();
+bucket operator init();
+vertex operator init();
+object operator init();
+vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
+vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
+vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
+real eps;
segment case1(pair p0, pair p1, int edge);
void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen[] p);
void draw(picture pic=<default>, Label[] L=<default>, guide[][] g, pen p=<default>);
@@ -2145,15 +2154,6 @@ guide[][] contour(picture pic=<default>, real f(real, real), pair a, pair b, rea
guide[][] contour(picture pic=<default>, real f(pair), pair a, pair b, real[] c, int nx=<default>, int ny=<default>, guide join(... guide[])=<default>);
guide[][] contour(picture pic=<default>, pair[] z, real[] f, real[] c, guide join(... guide[])=<default>);
real eps;
-surface surface(vertex[][] g);
-weighted operator init();
-bucket operator init();
-vertex operator init();
-object operator init();
-vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=<default>, projection P=<default>);
-vertex[][] contour3(real[][][] f, real[][][] midpoint=<default>, triple a, triple b, projection P=<default>);
-vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=<default>, int ny=<default>, int nz=<default>, projection P=<default>);
-real eps;
void draw(TreeNode root, pair pos);
real treeNodeStep;
void drawAll(TreeNode node, frame f);
@@ -2608,6 +2608,9 @@ circle circle(segment s);
circle circle(point A, point B, point C);
circle circle(triangle t);
circle circle(inversion i);
+segment segment(point A, point B);
+segment segment(line l);
+segment segment(explicit side side);
point angpoint(conic co, real angle);
point angpoint(explicit circle c, real x);
point angpoint(explicit ellipse el, real x, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=<default>);
@@ -2830,9 +2833,6 @@ real degrees(vector v, coordsys R=<default>, bool warn=<default>);
real degrees(line l, coordsys R=<default>);
real degrees(line l1, line l2);
real degrees(arc a);
-segment segment(point A, point B);
-segment segment(line l);
-segment segment(explicit side side);
real linemargin;
real linemargin();
line Oy(coordsys R=<default>);
@@ -2939,6 +2939,127 @@ abscissa curabscissa(ellipse el, point M);
abscissa curabscissa(parabola p, point M);
abscissa curabscissa(conic co, point M);
abscissa curabscissa(arc a, point M);
+locateT operator init();
+void Straight(flatguide3)(... void(flatguide3)[]);
+void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
+void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
+void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
+void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
+triple polar(real r, real theta, real phi);
+void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
+bool uperiodic(real[][] a);
+bool uperiodic(triple[][] a);
+bool vperiodic(real[][] a);
+bool vperiodic(triple[][] a);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
+void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
+void Bounds(picture, axisT);
+void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
+void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
+void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XZZero(picture, axisT);
+void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void YZZero(picture, axisT);
+surface surface(picture pic=<default>, triple[][] f, bool[][] cond=<default>);
+surface surface(picture pic=<default>, real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(picture pic=<default>, real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+surface surface(picture pic=<default>, real[][] f, pair a, pair b, bool[][] cond=<default>);
+surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, triple f(pair z), real[] u, real[] v, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
+surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
+void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
+triple Dir(real)(triple dir);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
+void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
+void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
+triple tickMin3(picture pic);
+triple tickMax3(picture pic);
+triple Scale(picture pic=<default>, triple v);
+triple[][] Scale(picture pic=<default>, triple[][] P);
+real ScaleX(picture pic=<default>, real x);
+real ScaleY(picture pic=<default>, real y);
+real ScaleZ(picture pic=<default>, real z);
+real[][] ScaleZ(picture pic=<default>, real[][] P);
+picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
+path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void Spline(flatguide3)(... void(flatguide3)[]);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
+void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
+void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
+void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
+void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
+void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
+void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
+void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
+void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
+void autoscale3(picture pic=<default>, void axis(picture, axisT));
+void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
+void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
+void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
+void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
+triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
+real xtrans(real[][] t, real x);
+real ytrans(real[][] t, real y);
+real ztrans(real[][] t, real z);
+ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
+triple ticklabelshift(triple align, pen p=<default>);
+path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
+path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
+path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
+void limits(picture pic=<default>, triple min, triple max);
+void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
+void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
+void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
+void XYZero(picture, axisT);
+void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
+void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
+void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
+surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
+real[][][] bispline(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
+real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
+path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
+real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n);
+void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
+void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
string DefaultFormat(real);
string DefaultLogFormat(real)(int base);
string DefaultLogFormat(real);
@@ -2966,7 +3087,6 @@ string LogFormat(real);
axisT axis;
void axis(picture pic=<default>, Label L=<default>, path g, path g2=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>), ticklocate locate, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
void drawtick(frame f, transform T, path g, path g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
-real maxlength(pair a, pair b, int nx, int ny);
void errorbar(picture pic, pair z, pair dp, pair dm, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, pair[] z, pair[] dp, pair[] dm=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
void errorbars(picture pic=<default>, real[] x, real[] y, real[] dpx, real[] dpy, real[] dmx=<default>, real[] dmy=<default>, bool[] cond=<default>, pen p=<default>, real size=<default>);
@@ -2979,7 +3099,7 @@ scaleT Logarithmic;
void limits(picture pic=<default>, pair min, pair max, bool crop=<default>);
void crop(picture pic=<default>);
picture vectorfield(path vector(real), path g, int n, bool truesize=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
-picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
+picture vectorfield(path vector(pair), pair a, pair b, int nx=<default>, int ny=<default>, bool truesize=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>);
string OmitFormat(real)(string s=<default> ... real[] x);
guide Straight(... guide[]);
int Min;
@@ -2991,11 +3111,11 @@ void labelx(picture pic=<default>, Label L, string format=<default>, explicit pe
path Arc(pair c, real r, real angle1, real angle2, bool direction, int n=<default>);
path Arc(pair c, real r, real angle1, real angle2, int n=<default>);
path Arc(pair c, explicit pair z1, explicit pair z2, bool direction=<default>, int n=<default>);
+pair labeltick(frame d, transform T, path g, ticklocate locate, real val, pair side, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
+void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
void labely(picture pic=<default>, Label L=<default>, explicit pair z, align align=<default>, string format=<default>, pen p=<default>);
void labely(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
void labely(picture pic=<default>, Label L, string format=<default>, explicit pen p=<default>);
-pair labeltick(frame d, transform T, path g, ticklocate locate, real val, pair side, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
-void labelaxis(frame f, transform T, Label L, path g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
void xtick(picture pic=<default>, explicit pair z, pair dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, real x, pair dir=<default>, real size=<default>, pen p=<default>);
void xtick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
@@ -3006,9 +3126,6 @@ void ytick(picture pic=<default>, Label L, explicit pair z, pair dir=<default>,
void ytick(picture pic=<default>, Label L, real y, pair dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
picture secondaryX(picture primary=<default>, void f(picture));
picture secondaryY(picture primary=<default>, void f(picture));
-tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
-tickvalues OmitTickInterval(tickvalues)(real a, real b);
-tickvalues OmitTick(tickvalues)(... real[] x);
Label Break;
tickvalues Break(tickvalues)(real, real);
scaleT Linear;
@@ -3016,6 +3133,9 @@ scaleT Linear(bool automin=<default>, bool automax=<default>, real s=<default>,
pair tickMin(picture pic);
pair tickMax(picture pic);
string autoformat(string format=<default>, real norm ... real[] a);
+tickvalues OmitTickIntervals(tickvalues)(real[] a, real[] b);
+tickvalues OmitTickInterval(tickvalues)(real a, real b);
+tickvalues OmitTick(tickvalues)(... real[] x);
real linear(real)(real S(real x)=<default>, real Min, real Max);
pair polar(real r, real theta);
string Format(real)(string s=<default>);
@@ -3024,8 +3144,6 @@ guide polargraph(picture pic=<default>, real[] r, real[] theta, guide join(... g
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>);
-string NoZeroFormat(real);
-tickvalues NoZero(tickvalues);
guide Hermite(... guide[])(real[] splinetype(real[], real[]));
guide Hermite(... guide[]);
path Circle(pair c, real r, int n=<default>);
@@ -3044,17 +3162,15 @@ pair Scale(picture pic=<default>, pair z);
real ScaleX(picture pic=<default>, real x);
real ScaleY(picture pic=<default>, real y);
tickvalues generateticks(int sign, Label F=<default>, string ticklabel(real)=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, real Size=<default>, real size=<default>, transform T, pair side, path g, real limit, pen p, ticklocate locate, int[] divisor, bool opposite);
+path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
void checkconditionlength(int x, int y);
-void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
-void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
-void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
-void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
real xtrans(transform t, real x);
void Top(picture, axisT)(bool extend=<default>);
void Top(picture, axisT);
real ytrans(transform t, real y);
void scale(picture pic=<default>, scaleT x, scaleT y=<default>, scaleT z=<default>);
void scale(picture pic=<default>, bool xautoscale=<default>, bool yautoscale=<default>, bool zautoscale=<default>);
+string NoZeroFormat(real);
int[] divisors(int a, int b);
scientific operator init();
bounds operator init();
@@ -3062,10 +3178,14 @@ ticklocate operator init();
locateT operator init();
tickvalues operator init();
axisT operator init();
+tickvalues NoZero(tickvalues);
int Both;
void axes(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, bool extend=<default>, pair min=<default>, pair max=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
string signedtrailingzero;
-path[] segment(pair[] z, bool[] cond, guide join(... guide[])=<default>);
+void xaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
+void yaxisAt(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool opposite=<default>);
+void xaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>);
+void yaxis(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=<default>)=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>, marginT margin(path, pen)=<default>, bool above=<default>, bool autorotate=<default>);
ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, pair dir(real)=<default>);
pair ticklabelshift(pair align, pen p=<default>);
pair zero(real);
@@ -3099,127 +3219,6 @@ void autoscale(picture pic=<default>, void axis(picture, axisT));
guide Spline(... guide[]);
void LeftRight(picture, axisT)(bool extend=<default>);
void LeftRight(picture, axisT);
-path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-locateT operator init();
-void Straight(flatguide3)(... void(flatguide3)[]);
-void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]));
-void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real));
-void graph(flatguide3)(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, real x(real), real y(real), real z(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, triple v(real), real a, real b, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, triple v(real), real a, real b, int n=<default>, bool3 cond(real), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, triple[] v, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, triple[] v, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, real[] x, real[] y, real[] z, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[] graph(picture pic=<default>, real[] x, real[] y, real[] z, bool3[] cond, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(path, real), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(triple F(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(picture pic=<default>, real f(pair), path p, int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void graph(flatguide3)(real f(pair), path p, int n=<default>, real T(pair), void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
-void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=<default>);
-triple polar(real r, real theta, real phi);
-void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=<default>, void join(flatguide3)(... void(flatguide3)[])=<default>);
-bool uperiodic(real[][] a);
-bool uperiodic(triple[][] a);
-bool vperiodic(real[][] a);
-bool vperiodic(triple[][] a);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void OutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void axis(picture pic=<default>, Label L=<default>, path3 g, path3 g2=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, int[] divisor=<default>, bool above=<default>, bool opposite=<default>);
-void Bounds(picture, axisT)(int type=<default>, int type2=<default>, triple align=<default>, bool extend=<default>);
-void Bounds(picture, axisT);
-void XZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XZZero(picture, axisT);
-void YZZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void YZZero(picture, axisT);
-void xaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void yaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void zaxis3At(picture pic=<default>, Label L=<default>, void axis(picture, axisT), real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>, bool opposite=<default>, bool opposite2=<default>, bool primary=<default>);
-void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real xmin=<default>, real xmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real ymin=<default>, real ymax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, real zmin=<default>, real zmax=<default>, pen p=<default>, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, bool above=<default>);
-surface surface(picture pic=<default>, triple[][] f, bool[][] cond=<default>);
-surface surface(picture pic=<default>, real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(picture pic=<default>, real[][] f, pair a, pair b, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-surface surface(picture pic=<default>, real[][] f, pair a, pair b, bool[][] cond=<default>);
-surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool cond(pair z)=<default>);
-surface surface(picture pic=<default>, triple f(pair z), real[] u, real[] v, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
-surface surface(picture pic=<default>, triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, real[](real[], real[])[] usplinetype, real[](real[], real[])[] vsplinetype=<default>, bool cond(pair z)=<default>);
-surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, bool cond(pair z)=<default>);
-surface surface(picture pic=<default>, real f(pair z), pair a, pair b, int nx=<default>, int ny=<default>, real[] xsplinetype(real[], real[]), real[] ysplinetype(real[], real[])=<default>, bool cond(pair z)=<default>);
-void XYEquals(picture, axisT)(real x, real y, triple align=<default>, bool extend=<default>);
-triple Dir(real)(triple dir);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen[] p, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void draw(picture pic=<default>, Label[] L=<default>, void(flatguide3)[][] g, pen p=<default>, light light=<default>, string name=<default>, render render=<default>, interaction interaction=<default>);
-void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks=<default>, real[] ticks=<default>, int N=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void Ticks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(int sign, Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-real maxlength(triple f(pair z), pair a, pair b, int nu, int nv);
-void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend);
-triple tickMin3(picture pic);
-triple tickMax3(picture pic);
-triple Scale(picture pic=<default>, triple v);
-triple[][] Scale(picture pic=<default>, triple[][] P);
-real ScaleX(picture pic=<default>, real x);
-real ScaleY(picture pic=<default>, real y);
-real ScaleZ(picture pic=<default>, real z);
-real[][] ScaleZ(picture pic=<default>, real[][] P);
-picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=<default>, int nv=<default>, bool truesize=<default>, real maxlength=<default>, bool cond(pair z)=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>, string name=<default>, render render=<default>);
-path3 Circle(triple c, real r, triple normal=<default>, int n=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void Spline(flatguide3)(... void(flatguide3)[]);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, tickvalues modify(tickvalues)=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)(Label format=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, real[] Ticks, real[] ticks=<default>, real Size=<default>, real size=<default>, bool extend=<default>, pen pTick=<default>, pen ptick=<default>);
-void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
-void axes3(picture pic=<default>, Label xlabel=<default>, Label ylabel=<default>, Label zlabel=<default>, bool extend=<default>, triple min=<default>, triple max=<default>, pen p=<default>, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, marginT3 margin(path3, pen)=<default>);
-void label(picture pic, Label L, triple v, real x, align align, string format, pen p);
-void labelx(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labely(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=<default>);
-void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=<default>, int sign=<default>, bool ticklabels=<default>);
-void labelx3(picture pic=<default>, Label L=<default>, real x, align align=<default>, string format=<default>, pen p=<default>);
-void labely3(picture pic=<default>, Label L=<default>, real y, align align=<default>, string format=<default>, pen p=<default>);
-void labelz(picture pic=<default>, Label L=<default>, triple v, align align=<default>, string format=<default>, pen p=<default>);
-void labelz3(picture pic=<default>, Label L=<default>, real z, align align=<default>, string format=<default>, pen p=<default>);
-void autoscale3(picture pic=<default>, void axis(picture, axisT));
-void xtick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ytick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void xtick3(picture pic=<default>, real x, triple dir=<default>, real size=<default>, pen p=<default>);
-void xtick3(picture pic=<default>, Label L, real x, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ytick3(picture pic=<default>, real y, triple dir=<default>, real size=<default>, pen p=<default>);
-void ytick3(picture pic=<default>, Label L, real y, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, triple v, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick(picture pic=<default>, Label L, triple v, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-void ztick3(picture pic=<default>, real z, triple dir=<default>, real size=<default>, pen p=<default>);
-void ztick3(picture pic=<default>, Label L, real z, triple dir=<default>, string format=<default>, real size=<default>, pen p=<default>);
-triple defaultdir(triple X, triple Y, triple Z, bool opposite=<default>, projection P);
-real xtrans(real[][] t, real x);
-real ytrans(real[][] t, real y);
-real ztrans(real[][] t, real z);
-ticklocate ticklocate(real a, real b, autoscaleT S=<default>, real tickmin=<default>, real tickmax=<default>, real time(real)=<default>, triple dir(real));
-triple ticklabelshift(triple align, pen p=<default>);
-path3 Arc(triple c, triple v1, triple v2, triple normal=<default>, bool direction=<default>, int n=<default>);
-path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, bool direction, int n=<default>);
-path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=<default>, int n=<default>);
-void limits(picture pic=<default>, triple min, triple max);
-void XZEquals(picture, axisT)(real x, real z, triple align=<default>, bool extend=<default>);
-void YZEquals(picture, axisT)(real y, real z, triple align=<default>, bool extend=<default>);
-void XYZero(picture, axisT)(triple align=<default>, bool extend=<default>);
-void XYZero(picture, axisT);
-void zlimits(picture pic=<default>, real min=<default>, real max=<default>, bool crop=<default>);
-void tick(picture pic=<default>, triple v, triple dir, real size=<default>, pen p=<default>);
-void tick(picture pic=<default>, Label L, real value, triple v, triple dir, string format=<default>, real size=<default>, pen p=<default>);
-surface bispline(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
-real[][][] bispline(real[][] f, real[] x, real[] y, real[] xsplinetype(real[], real[])=<default>, real[] ysplinetype(real[], real[])=<default>, bool[][] cond=<default>);
-real[][][] bispline0(real[][] z, real[][] p, real[][] q, real[][] r, real[] x, real[] y, bool[][] cond=<default>);
-real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n);
-void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>)();
-void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=<default>, bool primary=<default>);
bool Crop;
int ngraph;
real epsilon;
@@ -3254,9 +3253,9 @@ grid3(picture pic)[][] operator cast(grid3 gridroutine(picture pic));
triple X(picture pic);
triple Y(picture pic);
triple Z(picture pic);
+position middle;
grid3(picture pic)[] XYXgrid(position pos=<default>);
grid3(picture pic)[] XYXgrid;
-position middle;
grid3(picture pic)[] XY_XZgrid(position posa=<default>, position posb=<default>);
grid3(picture pic)[] XY_XZgrid;
grid3(picture pic)[] ZX_ZYgrid(position posa=<default>, position posb=<default>);
@@ -3269,10 +3268,10 @@ void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine=<default>,
void grid3(picture pic=<default>, grid3(picture pic)[][] gridroutine, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, pen[] pGrid, pen[] pgrid, bool above=<default>);
ticksgridT OutTicks()(Label F=<default>, string ticklabel(real)=<default>, bool beginlabel=<default>, bool endlabel=<default>, int N=<default>, int n=<default>, real Step=<default>, real step=<default>, bool begin=<default>, bool end=<default>, real Size=<default>, real size=<default>, pen pTick=<default>, pen ptick=<default>, grid3(picture pic)[][] gridroutine, pen pGrid=<default>, pen pgrid=<default>);
triple YZ(picture pic);
-triple ZX(picture pic);
void xaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
void yaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
void zaxis3(picture pic=<default>, Label L=<default>, void axis(picture, axisT)=<default>, pen p=<default>, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=<default>, bool above=<default>);
+triple ZX(picture pic);
grid3(picture pic)[] ZXZgrid(position pos=<default>);
grid3(picture pic)[] ZXZgrid;
position top;
@@ -3304,16 +3303,16 @@ horner diffdiv(real[] x, real[] y);
horner hdiffdiv(real[] x, real[] y, real[] dy);
horner operator init();
real fhorner(real)(horner sh);
-void labelpath(frame f, Label L, path g, string justify=<default>, pen p=<default>);
-void labelpath(picture pic=<default>, Label L, path g, string justify=<default>, pen p=<default>);
-string LeftJustified;
-string Centered;
-string RightJustified;
surface labelpath(string s, path3 p, real angle=<default>, triple optional=<default>);
triple[] firstframe(path3 p, triple optional=<default>);
triple[] nextframe(path3 p, real reltimestart, triple[] start, real reltimeend, int subdiv=<default>);
real eps;
triple nextnormal(triple p, triple q);
+void labelpath(frame f, Label L, path g, string justify=<default>, pen p=<default>);
+void labelpath(picture pic=<default>, Label L, path g, string justify=<default>, pen p=<default>);
+string LeftJustified;
+string Centered;
+string RightJustified;
string[] lm_infmsg;
void lm_qrfac(int m, int n, real[] a, bool pivot, int[] ipvt, real[] rdiag, real[] acnorm, real[] wa);
void lm_qrsolv(int n, real[] r, int ldr, int[] ipvt, real[] diag, real[] qtb, real[] x, real[] sdiag, real[] wa);
@@ -3405,12 +3404,12 @@ real acot(real x);
pair[][] fft(pair[][] a, int sign=<default>);
real slope(path g, real x, int n=<default>, real fuzz=<default>);
real slope(path g, explicit pair z, int n=<default>, real fuzz=<default>);
+int[][] segmentlimits(bool[] b);
+int[][] segment(bool[] b);
picture grid(int Nx, int Ny, pen p=<default>);
rootfinder_settings operator init();
real frac(real x);
real asec(real x);
-int[][] segmentlimits(bool[] b);
-int[][] segment(bool[] b);
real time(path g, real x, int n=<default>, real fuzz=<default>);
real time(path g, explicit pair z, int n=<default>, real fuzz=<default>);
real[] leastsquares(real[][] A, real[] b, bool warn=<default>);
@@ -3652,8 +3651,8 @@ real minipagemargin;
real stepfraction;
path curve(pair c, real f(real, real), pair a, pair b);
path curve(pair c, real f(real), pair a, pair b);
-picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
-picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>, bool arrow(picture, path, pen, marginT(path, pen))=<default>);
+picture slopefield(real f(real, real), pair a, pair b, int nx=<default>, int ny=<default>, real tickfactor=<default>, pen p=<default>);
+picture slopefield(real f(real), pair a, pair b, int nx=<default>, int ny=<default>, pen p=<default>);
real B03(real t);
patch[] maketriangle(path3 external, real f(triple), triple grad(triple), bool allowsubdivide=<default>);
real B23(real t);
diff --git a/graphics/asymptote/asymptote.spec b/graphics/asymptote/asymptote.spec
index 1323f4f3ea..524804f52f 100644
--- a/graphics/asymptote/asymptote.spec
+++ b/graphics/asymptote/asymptote.spec
@@ -3,7 +3,7 @@
%global __python %{__python3}
Name: asymptote
-Version: 2.82
+Version: 2.83
Release: 1%{?dist}
Summary: Descriptive vector graphics language
diff --git a/graphics/asymptote/base/graph.asy b/graphics/asymptote/base/graph.asy
index 1d4dfc1bfd..18821b456d 100644
--- a/graphics/asymptote/base/graph.asy
+++ b/graphics/asymptote/base/graph.asy
@@ -2186,45 +2186,43 @@ picture vectorfield(path vector(real), path g, int n, bool truesize=false,
return pic;
}
-real maxlength(pair a, pair b, int nx, int ny)
-{
- return min((b.x-a.x)/nx,(b.y-a.y)/ny);
-}
-
// return a vector field over box(a,b).
picture vectorfield(path vector(pair), pair a, pair b,
int nx=nmesh, int ny=nx, bool truesize=false,
- real maxlength=truesize ? 0 : maxlength(a,b,nx,ny),
bool cond(pair z)=null, pen p=currentpen,
arrowbar arrow=Arrow, margin margin=PenMargin)
{
picture pic;
- real dx=1/nx;
- real dy=1/ny;
+ real dx=(b.x-a.x)/(nx-1);
+ real dy=(b.y-a.y)/(ny-1);
bool all=cond == null;
real scale;
- if(maxlength > 0) {
- real size(pair z) {
- path g=vector(z);
- return abs(point(g,size(g)-1)-point(g,0));
- }
- real max=size(a);
- for(int i=0; i <= nx; ++i) {
- real x=interp(a.x,b.x,i*dx);
- for(int j=0; j <= ny; ++j)
- max=max(max,size((x,interp(a.y,b.y,j*dy))));
+ transform t=scale(dx,dy);
+ pair size(pair z) {
+ path g=t*vector(z);
+ int n=size(g);
+ pair w=n == 1 ? point(g,0) : point(g,n-1)-point(g,0);
+ return (abs(w.x),abs(w.y));
+ }
+ pair max=size(a);
+ for(int i=0; i < nx; ++i) {
+ real x=a.x+i*dx;
+ for(int j=0; j < ny; ++j) {
+ real y=a.y+j*dy;
+ max=maxbound(max,size((x,y)));
}
- scale=max > 0 ? maxlength/max : 1;
- } else scale=1;
+ }
+ scale=min(dx/max.x,dy/max.y);
- for(int i=0; i <= nx; ++i) {
- real x=interp(a.x,b.x,i*dx);
- for(int j=0; j <= ny; ++j) {
- real y=interp(a.y,b.y,j*dy);
+ for(int i=0; i < nx; ++i) {
+ real x=a.x+i*dx;
+ for(int j=0; j < ny; ++j) {
+ real y=a.y+j*dy;
pair z=(x,y);
if(all || cond(z)) {
- path g=scale(scale)*vector(z);
+ path v=scale(scale)*t*vector(z);
+ path g=size(v) == 1 ? (0,0)--v : v;
if(truesize)
draw(z,pic,g,p,arrow);
else
diff --git a/graphics/asymptote/base/graph3.asy b/graphics/asymptote/base/graph3.asy
index f690c6a3c1..f17b4e9707 100644
--- a/graphics/asymptote/base/graph3.asy
+++ b/graphics/asymptote/base/graph3.asy
@@ -2201,21 +2201,24 @@ picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b,
string name="", render render=defaultrender)
{
picture pic;
- real du=1/nu;
- real dv=1/nv;
+ real du=(b.x-a.x)/(nu-1);
+ real dv=(b.y-a.y)/(nv-1);
bool all=cond == null;
real scale;
if(maxlength > 0) {
real size(pair z) {
path3 g=vector(z);
- return abs(point(g,size(g)-1)-point(g,0));
+ triple w=point(g,size(g)-1)-point(g,0);
+ return max(w.x,w.y,w.z);
}
- real max=size((0,0));
+ real max=size(a);
for(int i=0; i <= nu; ++i) {
- real x=interp(a.x,b.x,i*du);
- for(int j=0; j <= nv; ++j)
- max=max(max,size((x,interp(a.y,b.y,j*dv))));
+ real u=a.x+i*du;
+ for(int j=0; j < nv; ++j) {
+ real v=a.y+j*dv;
+ max=max(max,size((u,v)));
+ }
}
scale=max > 0 ? maxlength/max : 1;
} else scale=1;
@@ -2224,9 +2227,10 @@ picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b,
if(group)
begingroup3(pic,name == "" ? "vectorfield" : name,render);
for(int i=0; i <= nu; ++i) {
- real x=interp(a.x,b.x,i*du);
+ real u=a.x+i*du;
for(int j=0; j <= nv; ++j) {
- pair z=(x,interp(a.y,b.y,j*dv));
+ real v=a.y+j*dv;
+ pair z=(u,v);
if(all || cond(z)) {
path3 g=scale3(scale)*vector(z);
string name="vector";
diff --git a/graphics/asymptote/base/slopefield.asy b/graphics/asymptote/base/slopefield.asy
index c36ee4d9d0..c295fd61b6 100644
--- a/graphics/asymptote/base/slopefield.asy
+++ b/graphics/asymptote/base/slopefield.asy
@@ -3,7 +3,7 @@ real stepfraction=0.05;
picture slopefield(real f(real,real), pair a, pair b,
int nx=nmesh, int ny=nx,
- real tickfactor=0.5, pen p=currentpen, arrowbar arrow=None)
+ real tickfactor=0.5, pen p=currentpen)
{
picture pic;
real dx=(b.x-a.x)/nx;
@@ -16,17 +16,16 @@ picture slopefield(real f(real,real), pair a, pair b,
pair cp=(x,a.y+j*dy);
real slope=f(cp.x,cp.y);
real mp=step/sqrt(1+slope^2);
- draw(pic,(cp.x-mp,cp.y-mp*slope)--(cp.x+mp,cp.y+mp*slope),p,arrow);
+ draw(pic,(cp.x-mp,cp.y-mp*slope)--(cp.x+mp,cp.y+mp*slope),p);
}
}
return pic;
}
picture slopefield(real f(real), pair a, pair b,
- int nx=nmesh, int ny=nx, pen p=currentpen,
- arrowbar arrow=None)
+ int nx=nmesh, int ny=nx, pen p=currentpen)
{
- return slopefield(new real(real x, real y) {return f(x);},a,b,nx,ny,p,arrow);
+ return slopefield(new real(real x, real y) {return f(x);},a,b,nx,ny,p);
}
path curve(pair c, real f(real,real), pair a, pair b)
@@ -83,4 +82,3 @@ path curve(pair c, real f(real), pair a, pair b)
{
return curve(c,new real(real x, real y){return f(x);},a,b);
}
-
diff --git a/graphics/asymptote/base/three_surface.asy b/graphics/asymptote/base/three_surface.asy
index 04f269f73f..16613f3e33 100644
--- a/graphics/asymptote/base/three_surface.asy
+++ b/graphics/asymptote/base/three_surface.asy
@@ -20,7 +20,7 @@ triple coons3(path3 external) {
struct patch {
triple[][] P;
- pen[] colors; // Optionally specify 4 corner colors.
+ pen[] colors; // Optionally specify corner colors.
bool straight; // Patch is based on a piecewise straight external path.
bool3 planar; // Patch is planar.
bool triangular; // Patch is a Bezier triangle.
diff --git a/graphics/asymptote/base/v3dheadertypes.asy b/graphics/asymptote/base/v3dheadertypes.asy
index 2beb9608d8..9c966a47cb 100644
--- a/graphics/asymptote/base/v3dheadertypes.asy
+++ b/graphics/asymptote/base/v3dheadertypes.asy
@@ -1,6 +1,6 @@
// Enum class for v3dheadertypes
// AUTO-GENERATED from v3dheadertypes.csv
-// Generated at 2022-08-06 23:21:24.974497
+// Generated at 2022-09-17 12:47:07.633830
struct v3dheadertypes
{
diff --git a/graphics/asymptote/base/v3dtypes.asy b/graphics/asymptote/base/v3dtypes.asy
index e578ef51da..7de241a2d0 100644
--- a/graphics/asymptote/base/v3dtypes.asy
+++ b/graphics/asymptote/base/v3dtypes.asy
@@ -1,6 +1,6 @@
// Enum class for v3dtypes
// AUTO-GENERATED from v3dtypes.csv
-// Generated at 2022-08-06 23:21:24.890912
+// Generated at 2022-09-17 12:47:07.568303
struct v3dtypes
{
diff --git a/graphics/asymptote/base/webgl/asygl.js b/graphics/asymptote/base/webgl/asygl.js
index 4de87cda58..b5f77299a6 100644
--- a/graphics/asymptote/base/webgl/asygl.js
+++ b/graphics/asymptote/base/webgl/asygl.js
@@ -36,4 +36,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.*/
-let vertex="\n#ifdef WEBGL2\n#define IN in\n#define OUT out\n#else\n#define IN attribute\n#define OUT varying\n#endif\n\nIN vec3 position;\n#ifdef WIDTH\nIN float width;\n#endif\n#ifdef NORMAL\nIN vec3 normal;\n#endif\n\nIN float materialIndex;\n\n#ifdef WEBGL2\nflat out int MaterialIndex;\n#ifdef COLOR\nOUT vec4 Color;\n#endif\n\n#else\nOUT vec4 diffuse;\nOUT vec3 specular;\nOUT float roughness,metallic,fresnel0;\nOUT vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n#endif\n\n#ifdef COLOR\nIN vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nOUT vec3 ViewPosition;\n#endif\nOUT vec3 Normal;\n#endif\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif\n Normal=normalize(normal*normMat);\n#endif\n\n#ifdef WEBGL2\n MaterialIndex=int(materialIndex);\n#ifdef COLOR\n Color=color;\n#endif\n#else\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0)\n diffuse=m.diffuse;\n else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef WEBGL2\n#define IN in\nout vec4 outValue;\n#define OUTVALUE outValue\n#else\n#define IN varying\n#define OUTVALUE gl_FragColor\n#endif\n\n#ifdef WEBGL2\nflat in int MaterialIndex;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvec4 diffuse;\nvec3 specular;\nfloat roughness,metallic,fresnel0;\nvec4 emissive;\n\n#ifdef COLOR\nin vec4 Color;\n#endif\n\n#else\nIN vec4 diffuse;\nIN vec3 specular;\nIN float roughness,metallic,fresnel0;\nIN vec4 emissive;\n#endif\n\n#ifdef NORMAL\n\n#ifndef ORTHOGRAPHIC\nIN vec3 ViewPosition;\n#endif\nIN vec3 Normal;\n\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\n#ifdef USE_IBL\nuniform sampler2D reflBRDFSampler;\nuniform sampler2D diffuseSampler;\nuniform sampler2D reflImgSampler;\n\nconst float pi=acos(-1.0);\nconst float piInv=1.0/pi;\nconst float twopi=2.0*pi;\nconst float twopiInv=1.0/twopi;\n\n// (x,y,z) -> (r,theta,phi);\n// theta -> [0,pi]: colatitude\n// phi -> [-pi,pi]: longitude\nvec3 cart2sphere(vec3 cart)\n{\n float x=cart.x;\n float y=cart.z;\n float z=cart.y;\n\n float r=length(cart);\n float theta=r > 0.0 ? acos(z/r) : 0.0;\n float phi=atan(y,x);\n\n return vec3(r,theta,phi);\n}\n\nvec2 normalizedAngle(vec3 cartVec)\n{\n vec3 sphericalVec=cart2sphere(cartVec);\n sphericalVec.y=sphericalVec.y*piInv;\n sphericalVec.z=0.75-sphericalVec.z*twopiInv;\n return sphericalVec.zy;\n}\n\nvec3 IBLColor(vec3 viewDir)\n{\n vec3 IBLDiffuse=diffuse.rgb*texture(diffuseSampler,normalizedAngle(normal)).rgb;\n vec3 reflectVec=normalize(reflect(-viewDir,normal));\n vec2 reflCoord=normalizedAngle(reflectVec);\n vec3 IBLRefl=textureLod(reflImgSampler,reflCoord,roughness*ROUGHNESS_STEP_COUNT).rgb;\n vec2 IBLbrdf=texture(reflBRDFSampler,vec2(dot(normal,viewDir),roughness)).rg;\n float specularMultiplier=fresnel0*IBLbrdf.x+IBLbrdf.y;\n vec3 dielectric=IBLDiffuse+specularMultiplier*IBLRefl;\n vec3 metal=diffuse.rgb*IBLRefl;\n return mix(dielectric,metal,metallic);\n}\n#else\nfloat Roughness2;\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 ? alpha2/(denom*denom) : 0.0;\n}\n\nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n\nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n\nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n\n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n\n float omegain=max(dot(viewDirection,normal),0.0);\n float omegaln=max(dot(lightDirection,normal),0.0);\n\n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n\n float denom=4.0*omegain*omegaln;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n\n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n\n return mix(dielectric,metal,metallic);\n}\n#endif\n\n#endif\n\nvoid main(void)\n{\n#ifdef WEBGL2\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[abs(MaterialIndex)-1];\n emissive=m.emissive;\n if(MaterialIndex >= 0)\n diffuse=m.diffuse;\n else {\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n }\n#else\n m=Materials[MaterialIndex];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[MaterialIndex].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n\nvec3 color;\n#ifdef USE_IBL\n color=IBLColor(viewDir);\n#else\n Roughness2=roughness*roughness;\n color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n#endif\n OUTVALUE=vec4(color,diffuse.a);\n#else\n OUTVALUE=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var n in i)("object"==typeof exports?exports:t)[n]=i[n]}}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=n*Math.max(1,Math.abs(t),Math.abs(e))};var n=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var n=s(i(2)),r=s(i(3));function s(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=n,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new n.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=c*a-o*l,m=-c*s+o*h,f=l*s-a*h,u=i*d+n*m+r*f;if(!u)return null;return u=1/u,t[0]=d*u,t[1]=(-c*n+r*l)*u,t[2]=(o*n-r*a)*u,t[3]=m*u,t[4]=(c*i-r*h)*u,t[5]=(-o*i+r*s)*u,t[6]=f*u,t[7]=(-l*i+n*h)*u,t[8]=(a*i-n*s)*u,t};var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new n.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],x=e[15],g=i*o-n*a,w=i*h-r*a,M=i*l-s*a,b=n*h-r*o,R=n*l-s*o,T=r*l-s*h,y=c*p-d*u,A=c*v-m*u,E=c*x-f*u,I=d*v-m*p,L=d*x-f*p,N=m*x-f*v,O=g*N-w*L+M*I+b*E-R*A+T*y;if(!O)return null;return O=1/O,t[0]=(o*N-h*L+l*I)*O,t[1]=(r*L-n*N-s*I)*O,t[2]=(p*T-v*R+x*b)*O,t[3]=(m*R-d*T-f*b)*O,t[4]=(h*E-a*N-l*A)*O,t[5]=(i*N-r*E+s*A)*O,t[6]=(v*M-u*T-x*w)*O,t[7]=(c*T-m*M+f*w)*O,t[8]=(a*L-o*E+l*y)*O,t[9]=(n*E-i*L-s*y)*O,t[10]=(u*R-p*M+x*g)*O,t[11]=(d*M-c*R-f*g)*O,t[12]=(o*A-a*I-h*y)*O,t[13]=(i*I-n*A+r*y)*O,t[14]=(p*w-u*b-v*g)*O,t[15]=(c*b-d*w+m*g)*O,t},e.multiply=r,e.translate=function(t,e,i){var n=i[0],r=i[1],s=i[2],a=void 0,o=void 0,h=void 0,l=void 0,c=void 0,d=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,x=void 0;e===t?(t[12]=e[0]*n+e[4]*r+e[8]*s+e[12],t[13]=e[1]*n+e[5]*r+e[9]*s+e[13],t[14]=e[2]*n+e[6]*r+e[10]*s+e[14],t[15]=e[3]*n+e[7]*r+e[11]*s+e[15]):(a=e[0],o=e[1],h=e[2],l=e[3],c=e[4],d=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],x=e[11],t[0]=a,t[1]=o,t[2]=h,t[3]=l,t[4]=c,t[5]=d,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=x,t[12]=a*n+c*r+u*s+e[12],t[13]=o*n+d*r+p*s+e[13],t[14]=h*n+m*r+v*s+e[14],t[15]=l*n+f*r+x*s+e[15]);return t},e.rotate=function(t,e,i,r){var s,a,o,h,l,c,d,m,f,u,p,v,x,g,w,M,b,R,T,y,A,E,I,L,N=r[0],O=r[1],_=r[2],P=Math.sqrt(N*N+O*O+_*_);if(Math.abs(P)<n.EPSILON)return null;N*=P=1/P,O*=P,_*=P,s=Math.sin(i),a=Math.cos(i),o=1-a,h=e[0],l=e[1],c=e[2],d=e[3],m=e[4],f=e[5],u=e[6],p=e[7],v=e[8],x=e[9],g=e[10],w=e[11],M=N*N*o+a,b=O*N*o+_*s,R=_*N*o-O*s,T=N*O*o-_*s,y=O*O*o+a,A=_*O*o+N*s,E=N*_*o+O*s,I=O*_*o-N*s,L=_*_*o+a,t[0]=h*M+m*b+v*R,t[1]=l*M+f*b+x*R,t[2]=c*M+u*b+g*R,t[3]=d*M+p*b+w*R,t[4]=h*T+m*y+v*A,t[5]=l*T+f*y+x*A,t[6]=c*T+u*y+g*A,t[7]=d*T+p*y+w*A,t[8]=h*E+m*I+v*L,t[9]=l*E+f*I+x*L,t[10]=c*E+u*I+g*L,t[11]=d*E+p*I+w*L,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r,s,a,o=i[0],h=i[1],l=i[2],c=Math.sqrt(o*o+h*h+l*l);if(Math.abs(c)<n.EPSILON)return null;return o*=c=1/c,h*=c,l*=c,r=Math.sin(e),s=Math.cos(e),a=1-s,t[0]=o*o*a+s,t[1]=h*o*a+l*r,t[2]=l*o*a-h*r,t[3]=0,t[4]=o*h*a-l*r,t[5]=h*h*a+s,t[6]=l*h*a+o*r,t[7]=0,t[8]=o*l*a+h*r,t[9]=h*l*a-o*r,t[10]=l*l*a+s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,n,r,s,a){var o=1/(i-e),h=1/(r-n),l=1/(s-a);return t[0]=2*s*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*s*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+n)*h,t[10]=(a+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=a*s*2*l,t[15]=0,t},e.ortho=function(t,e,i,n,r,s,a){var o=1/(e-i),h=1/(n-r),l=1/(s-a);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+n)*h,t[14]=(a+s)*l,t[15]=1,t};var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var n=e[0],r=e[1],s=e[2],a=e[3],o=e[4],h=e[5],l=e[6],c=e[7],d=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],x=e[14],g=e[15],w=i[0],M=i[1],b=i[2],R=i[3];return t[0]=w*n+M*o+b*d+R*p,t[1]=w*r+M*h+b*m+R*v,t[2]=w*s+M*l+b*f+R*x,t[3]=w*a+M*c+b*u+R*g,w=i[4],M=i[5],b=i[6],R=i[7],t[4]=w*n+M*o+b*d+R*p,t[5]=w*r+M*h+b*m+R*v,t[6]=w*s+M*l+b*f+R*x,t[7]=w*a+M*c+b*u+R*g,w=i[8],M=i[9],b=i[10],R=i[11],t[8]=w*n+M*o+b*d+R*p,t[9]=w*r+M*h+b*m+R*v,t[10]=w*s+M*l+b*f+R*x,t[11]=w*a+M*c+b*u+R*g,w=i[12],M=i[13],b=i[14],R=i[15],t[12]=w*n+M*o+b*d+R*p,t[13]=w*r+M*h+b*m+R*v,t[14]=w*s+M*l+b*f+R*x,t[15]=w*a+M*c+b*u+R*g,t}}])})),function(){document.asy={canvasWidth:0,canvasHeight:0,absolute:!1,minBound:[0,0,0],maxBound:[0,0,0],orthographic:!1,angleOfView:0,initialZoom:0,viewportShift:[0,0],viewportMargin:[0,0],background:[],zoomFactor:0,zoomPinchFactor:0,zoomPinchCap:0,zoomStep:0,shiftHoldDistance:0,shiftWaitTime:0,vibrateTime:0,ibl:!1,webgl2:!1,imageURL:"",image:"",Transform:[],Centers:[]};let t,e,i,n,r,s,a,o=document.asy,h=[],l=[],c=[],d=0,m=2;const f=Math.acos(-1),u=f/180,p=Math.ceil(1-Math.log2(Number.EPSILON));let v,x,g,w,M,b,R,T=mat4.create(),y=mat4.create(),A=mat4.create(),E=mat4.create(),I=mat3.create(),L=mat3.create(),N=mat4.create(),O=mat4.create(),_={x:0,y:0,z:0},P={x:0,y:0},S={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},U=!0,V=0,B=!1,D=null,C=null,F=[],z=[],H=[],X=[],G=null,W=null,j=null;function k(){o.embedded||st(),rt(o.ibl)}class Y{constructor(t,e,i,n,r,s){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=n,this.metallic=r,this.fresnel0=s}setUniform(e,i){let n=n=>t.getUniformLocation(e,"Materials["+i+"]."+n);t.uniform4fv(n("diffuse"),new Float32Array(this.diffuse)),t.uniform4fv(n("emissive"),new Float32Array(this.emissive)),t.uniform4fv(n("specular"),new Float32Array(this.specular)),t.uniform4f(n("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let $,q,K,Z,Q,J,tt,et,it;class nt{constructor(t,e){this.direction=t,this.color=e}setUniform(e,i){let n=n=>t.getUniformLocation(e,"Lights["+i+"]."+n);t.uniform3fv(n("direction"),new Float32Array(this.direction)),t.uniform3fv(n("color"),new Float32Array(this.color))}}function rt(e=!1){let i=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS);r=Math.floor((i-14)/4),m=Math.min(Math.max(m,c.length),r),pixelOpt=["WIDTH"],materialOpt=["NORMAL"],colorOpt=["NORMAL","COLOR"],transparentOpt=["NORMAL","COLOR","TRANSPARENT"],e&&(materialOpt.push("USE_IBL"),transparentOpt.push("USE_IBL")),xe=Lt(pixelOpt),ge=Lt(materialOpt),we=Lt(colorOpt),Me=Lt(transparentOpt)}function st(){t.deleteProgram(Me),t.deleteProgram(we),t.deleteProgram(ge),t.deleteProgram(xe)}function at(){let i=o.webgl2?window.top.document.asygl2[e]:window.top.document.asygl[e];i.gl=t,i.nlights=l.length,i.Nmaterials=m,i.maxMaterials=r,i.pixelShader=xe,i.materialShader=ge,i.colorShader=we,i.transparentShader=Me}function ot(t,e){let i;return o.webgl2&&(i=t.getContext("webgl2",{alpha:e}),o.embedded&&!i)?(o.webgl2=!1,o.ibl=!1,ht(!1),null):(i||(o.webgl2=!1,o.ibl=!1,i=t.getContext("webgl",{alpha:e})),i||alert("Could not initialize WebGL"),i)}function ht(s=!0){if(o.ibl&&(o.webgl2=!0),e=o.background[3]<1,o.embedded){let a=window.top.document;if(s&&(n=o.canvas.getContext("2d")),i=o.webgl2?a.offscreen2:a.offscreen,i||(i=a.createElement("canvas"),o.webgl2?a.offscreen2=i:a.offscreen=i),o.webgl2?a.asygl2||(a.asygl2=Array(2)):a.asygl||(a.asygl=Array(2)),asygl=o.webgl2?a.asygl2:a.asygl,asygl[e]&&asygl[e].gl)!function(){let i=o.webgl2?window.top.document.asygl2[e]:window.top.document.asygl[e];t=i.gl,d=i.nlights,m=i.Nmaterials,r=i.maxMaterials,xe=i.pixelShader,ge=i.materialShader,we=i.colorShader,Me=i.transparentShader}(),(l.length!=d||Math.min(c.length,r)>m)&&(rt(),at());else{if(rc=ot(i,e),!rc)return;t=rc,rt(),o.webgl2?a.asygl2[e]={}:a.asygl[e]={},at()}}else t=ot(o.canvas,e),rt();$=t.getExtension("OES_element_index_uint"),q=t.TRIANGLES,K=new mt(t.POINTS),Z=new mt(t.LINES),Q=new mt,J=new mt,tt=new mt,et=new mt}function lt(t,e,i,n=[]){let r=o.webgl2?"300 es":"100",s=Array(...n),a=[["nlights",0==V?l.length:0],["Nmaterials",m]],h=[["int","Nlights",Math.max(l.length,1)]];o.webgl2&&s.push("WEBGL2"),o.ibl&&a.push(["ROUGHNESS_STEP_COUNT",8..toFixed(2)]),o.orthographic&&s.push("ORTHOGRAPHIC"),macros_str=a.map(t=>`#define ${t[0]} ${t[1]}`).join("\n"),define_str=s.map(t=>"#define "+t).join("\n"),const_str=h.map(t=>`const ${t[0]} ${t[1]}=${t[2]};`).join("\n"),ext_str=[].map(t=>`#extension ${t}: enable`).join("\n"),shaderSrc=`#version ${r}\n${ext_str}\n${define_str}\n${const_str}\n${macros_str}\n\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n \n${e}\n `;let c=t.createShader(i);return t.shaderSource(c,shaderSrc),t.compileShader(c),t.getShaderParameter(c,t.COMPILE_STATUS)?c:(alert(t.getShaderInfoLog(c)),null)}function ct(e,i,n,r=t.ARRAY_BUFFER){return e.length>0&&(0==i&&(i=t.createBuffer(),n=!0),t.bindBuffer(r,i),n&&t.bufferData(r,e,t.STATIC_DRAW)),i}function dt(e,i,n=e.indices){if(0==e.indices.length)return;let r=i!=xe;!function(e,i){let n=i==xe;t.useProgram(i),t.enableVertexAttribArray(Tt),n&&t.enableVertexAttribArray(It);let r=!n&&l.length>0;r&&t.enableVertexAttribArray(yt);t.enableVertexAttribArray(At),i.projViewMatUniform=t.getUniformLocation(i,"projViewMat"),i.viewMatUniform=t.getUniformLocation(i,"viewMat"),i.normMatUniform=t.getUniformLocation(i,"normMat"),(i==we||i==Me)&&t.enableVertexAttribArray(Et);if(r)for(let t=0;t<l.length;++t)l[t].setUniform(i,t);for(let t=0;t<e.materials.length;++t)e.materials[t].setUniform(i,t);t.uniformMatrix4fv(i.projViewMatUniform,!1,E),t.uniformMatrix4fv(i.viewMatUniform,!1,A),t.uniformMatrix3fv(i.normMatUniform,!1,I)}(e,i),null!=W&&(t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,j),t.uniform1i(t.getUniformLocation(i,"reflBRDFSampler"),0),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,W),t.uniform1i(t.getUniformLocation(i,"diffuseSampler"),1),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,G),t.uniform1i(t.getUniformLocation(i,"reflImgSampler"),2));let s=U||e.partial||!e.rendered;e.verticesBuffer=ct(new Float32Array(e.vertices),e.verticesBuffer,s),t.vertexAttribPointer(Tt,3,t.FLOAT,!1,r?24:16,0),r?l.length>0&&t.vertexAttribPointer(yt,3,t.FLOAT,!1,24,12):t.vertexAttribPointer(It,1,t.FLOAT,!1,16,12),e.materialsBuffer=ct(new Int16Array(e.materialIndices),e.materialsBuffer,s),t.vertexAttribPointer(At,1,t.SHORT,!1,2,0),i!=we&&i!=Me||(e.colorsBuffer=ct(new Float32Array(e.colors),e.colorsBuffer,s),t.vertexAttribPointer(Et,4,t.FLOAT,!0,0,0)),e.indicesBuffer=ct($?new Uint32Array(n):new Uint16Array(n),e.indicesBuffer,s,t.ELEMENT_ARRAY_BUFFER),e.rendered=!0,t.drawElements(r?V?t.LINES:e.type:t.POINTS,n.length,$?t.UNSIGNED_INT:t.UNSIGNED_SHORT,0)}class mt{constructor(t){this.type=t||q,this.verticesBuffer=0,this.materialsBuffer=0,this.colorsBuffer=0,this.indicesBuffer=0,this.rendered=!1,this.partial=!1,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(it),this.nvertices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(it),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(it),this.nvertices++}iVertex(t,e,i,n=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=it;let s=4*t;this.colors[s]=n[0],this.colors[s+1]=n[1],this.colors[s+2]=n[2],this.colors[s+3]=n[3],this.indices.push(t)}append(t){ft(this.vertices,t.vertices),ft(this.materialIndices,t.materialIndices),ft(this.colors,t.colors),function(t,e,i){let n=t.length,r=e.length;t.length+=e.length;for(let s=0;s<r;++s)t[n+s]=e[s]+i}(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function ft(t,e){let i=t.length,n=e.length;t.length+=n;for(let r=0;r<n;++r)t[i+r]=e[r]}class ut{constructor(){this.data=new mt,this.Onscreen=!1,this.m=[]}offscreen(t){let e=E,i=t[0],n=i[0],r=i[1],s=i[2],a=1/(e[3]*n+e[7]*r+e[11]*s+e[15]);this.x=this.X=(e[0]*n+e[4]*r+e[8]*s+e[12])*a,this.y=this.Y=(e[1]*n+e[5]*r+e[9]*s+e[13])*a;for(let i=1,n=t.length;i<n;++i){let n=t[i],r=n[0],s=n[1],a=n[2],o=1/(e[3]*r+e[7]*s+e[11]*a+e[15]),h=(e[0]*r+e[4]*s+e[8]*a+e[12])*o,l=(e[1]*r+e[5]*s+e[9]*a+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],n=this.c[2],r=t[0]-e,s=t[1]-i,a=t[2]-n;return[r*I[0]+s*I[3]+a*I[6]+e,r*I[1]+s*I[4]+a*I[7]+i,r*I[2]+s*I[5]+a*I[8]+n]}Tcorners(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null==t.materialTable[this.MaterialIndex]&&(t.materials.length>=m&&(t.partial=!0,e()),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(c[this.MaterialIndex])),it=t.materialTable[this.MaterialIndex]}render(){let t;var e,i;if(this.setMaterialIndex(),0==this.CenterIndex?(e=this.Min,i=this.Max,t=[e,[e[0],e[1],i[2]],[e[0],i[1],e[2]],[e[0],i[1],i[2]],[i[0],e[1],e[2]],[i[0],e[1],i[2]],[i[0],i[1],e[2]],i]):(this.c=o.Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return this.data.clear(),void this.notRendered();let n,r=this.controlpoints;if(0==this.CenterIndex){if(!U&&this.Onscreen)return void this.append();n=r}else{let t=r.length;n=Array(t);for(let e=0;e<t;++e)n[e]=this.T(r[e])}let s=o.orthographic?1:this.Min[2]/o.maxBound[2],a=.75*Math.hypot(s*(S.xmax-S.xmin),s*(S.ymax-S.ymin))/b;this.res2=a*a,this.Epsilon=.1*a,this.data.clear(),this.notRendered(),this.Onscreen=!0,this.process(n)}}function pt(t,e){let i=t[0],n=t.length;for(let r=1;r<n;++r)i=e(i,t[r]);return i}class vt extends ut{constructor(t,e,i,n,r,s){super(),this.controlpoints=t,this.CenterIndex=e,this.MaterialIndex=i,this.color=n;let a=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==a||4==a?t+n[3][3]<1020:t<765}else this.transparent=c[i].diffuse[3]<1;this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data);let o=this.L2norm2(this.controlpoints),h=Math.sqrt(1e3*Number.EPSILON*o);this.epsilon=o*Number.EPSILON,this.Min=r||this.Bounds(this.controlpoints,Math.min,h),this.Max=s||this.Bounds(this.controlpoints,Math.max,h)}setMaterialIndex(){this.transparent?this.setMaterial(tt,Ie):this.color?this.setMaterial(J,Ae):this.setMaterial(Q,ye)}cornerbound(t,e){let i=e(t[0],t[3]);return i=e(i,t[12]),e(i,t[15])}controlbound(t,e){let i=e(t[1],t[2]);return i=e(i,t[4]),i=e(i,t[5]),i=e(i,t[6]),i=e(i,t[7]),i=e(i,t[8]),i=e(i,t[9]),i=e(i,t[10]),i=e(i,t[11]),i=e(i,t[13]),e(i,t[14])}bound(t,e,i,n,r){if(i=e(i,this.cornerbound(t,e)),e(-1,1)*(i-this.controlbound(t,e))>=-n||0==r)return i;--r,n*=2;let s=new Nt(t[0],t[1],t[2],t[3]),a=new Nt(t[4],t[5],t[6],t[7]),o=new Nt(t[8],t[9],t[10],t[11]),h=new Nt(t[12],t[13],t[14],t[15]),l=new Nt(t[0],t[4],t[8],t[12]),c=new Nt(s.m0,a.m0,o.m0,h.m0),d=new Nt(s.m3,a.m3,o.m3,h.m3),m=new Nt(s.m5,a.m5,o.m5,h.m5),f=new Nt(s.m4,a.m4,o.m4,h.m4),u=new Nt(s.m2,a.m2,o.m2,h.m2),p=new Nt(t[3],t[7],t[11],t[15]),v=[t[0],s.m0,s.m3,s.m5,l.m0,c.m0,d.m0,m.m0,l.m3,c.m3,d.m3,m.m3,l.m5,c.m5,d.m5,m.m5];i=this.bound(v,e,i,n,r);let x=[l.m5,c.m5,d.m5,m.m5,l.m4,c.m4,d.m4,m.m4,l.m2,c.m2,d.m2,m.m2,t[12],h.m0,h.m3,h.m5];i=this.bound(x,e,i,n,r);let g=[m.m5,f.m5,u.m5,p.m5,m.m4,f.m4,u.m4,p.m4,m.m2,f.m2,u.m2,p.m2,h.m5,h.m4,h.m2,t[15]];i=this.bound(g,e,i,n,r);let w=[s.m5,s.m4,s.m2,t[3],m.m0,f.m0,u.m0,p.m0,m.m3,f.m3,u.m3,p.m3,m.m5,f.m5,u.m5,p.m5];return this.bound(w,e,i,n,r)}cornerboundtri(t,e){let i=e(t[0],t[6]);return e(i,t[9])}controlboundtri(t,e){let i=e(t[1],t[2]);return i=e(i,t[3]),i=e(i,t[4]),i=e(i,t[5]),i=e(i,t[7]),e(i,t[8])}boundtri(t,e,i,n,r){if(i=e(i,this.cornerboundtri(t,e)),e(-1,1)*(i-this.controlboundtri(t,e))>=-n||0==r)return i;--r,n*=2;let s=new _t(t),a=[s.l003,s.l102,s.l012,s.l201,s.l111,s.l021,s.l300,s.l210,s.l120,s.l030];i=this.boundtri(a,e,i,n,r);let o=[s.l300,s.r102,s.r012,s.r201,s.r111,s.r021,s.r300,s.r210,s.r120,s.r030];i=this.boundtri(o,e,i,n,r);let h=[s.l030,s.u102,s.u012,s.u201,s.u111,s.u021,s.r030,s.u210,s.u120,s.u030];i=this.boundtri(h,e,i,n,r);let l=[s.r030,s.u201,s.r021,s.u102,s.c111,s.r012,s.l030,s.l120,s.l210,s.l300];return this.boundtri(l,e,i,n,r)}Bounds(t,e,i){let n=Array(3),r=t.length,s=Array(r);for(let a=0;a<3;++a){for(let e=0;e<r;++e)s[e]=t[e][a];n[a]=16==r?this.bound(s,e,s[0],i,p):10==r?this.boundtri(s,e,s[0],i,p):pt(s,e)}return[n[0],n[1],n[2]]}L2norm2(t){let e=t[0],i=0,n=t.length;for(let r=1;r<n;++r)i=Math.max(i,St([t[r][0]-e[0],t[r][1]-e[1],t[r][2]-e[2]]));return i}processTriangle(t){let e=t[0],i=t[1],n=t[2],r=Pt(Vt([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[n[0]-e[0],n[1]-e[1],n[2]-e[2]]));if(!this.offscreen([e,i,n])){let t,s,a;this.color?(t=this.data.Vertex(e,r,this.color[0]),s=this.data.Vertex(i,r,this.color[1]),a=this.data.Vertex(n,r,this.color[2])):(t=this.vertex(e,r),s=this.vertex(i,r),a=this.vertex(n,r)),0==V?(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(a)):(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],n=t[2],r=t[3],s=Vt([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[n[0]-i[0],n[1]-i[1],n[2]-i[2]]),a=Vt([n[0]-r[0],n[1]-r[1],n[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=Pt([s[0]+a[0],s[1]+a[1],s[2]+a[2]]);if(!this.offscreen([e,i,n,r])){let t,s,a,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),s=this.data.Vertex(i,o,this.color[1]),a=this.data.Vertex(n,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),s=this.vertex(i,o),a=this.vertex(n,o),h=this.vertex(r,o)),0==V?(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(t),this.data.indices.push(a),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,n,r){new wt([t[e],t[i],t[n],t[r]],0,it,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=V&&(it=this.color?-1-it:1+it),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==V)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],n=t[12],r=t[15],s=this.normal(i,t[2],t[1],e,t[4],t[8],n);St(s)<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r),St(s)<this.epsilon&&(s=this.normal(r,t[11],t[7],i,t[4],t[8],n)));let a=this.normal(e,t[4],t[8],n,t[13],t[14],r);St(a)<this.epsilon&&(a=this.normal(e,t[4],t[8],n,t[11],t[7],i),St(a)<this.epsilon&&(a=this.normal(i,t[2],t[1],e,t[13],t[14],r)));let o=this.normal(n,t[13],t[14],r,t[11],t[7],i);St(o)<this.epsilon&&(o=this.normal(n,t[13],t[14],r,t[2],t[1],e),St(o)<this.epsilon&&(o=this.normal(e,t[4],t[8],n,t[11],t[7],i)));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(St(h)<this.epsilon&&(h=this.normal(r,t[11],t[7],i,t[4],t[8],n),St(h)<this.epsilon&&(h=this.normal(n,t[13],t[14],r,t[2],t[1],e))),this.color){let l=this.color[0],c=this.color[1],d=this.color[2],m=this.color[3],f=this.data.Vertex(e,s,l),u=this.data.Vertex(n,a,c),p=this.data.Vertex(r,o,d),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,n,r,i,!1,!1,!1,!1,l,c,d,m)}else{let l=this.vertex(e,s),c=this.vertex(n,a),d=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,c,d,m,e,n,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?tt.append(this.data):this.color?J.append(this.data):Q.append(this.data)}notRendered(){this.transparent?tt.rendered=!1:this.color?J.rendered=!1:Q.rendered=!1}Render(t,e,i,n,r,s,a,o,h,l,c,d,m,f,u,p,v){let x=this.Distance(t);if(x[0]<this.res2&&x[1]<this.res2)this.offscreen([s,a,o])||(0==V?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(n)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(n))),this.offscreen([s,o,h])||(0==V?(this.data.indices.push(e),this.data.indices.push(n),this.data.indices.push(r)):(this.data.indices.push(n),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let g=t[0],w=t[3],M=t[12],b=t[15];if(x[0]<this.res2){let x=new Ot(g,t[1],t[2],w),R=new Ot(t[4],t[5],t[6],t[7]),T=new Ot(t[8],t[9],t[10],t[11]),y=new Ot(M,t[13],t[14],b),A=[g,x.m0,x.m3,x.m5,t[4],R.m0,R.m3,R.m5,t[8],T.m0,T.m3,T.m5,M,y.m0,y.m3,y.m5],E=[x.m5,x.m4,x.m2,w,R.m5,R.m4,R.m2,t[7],T.m5,T.m4,T.m2,t[11],y.m5,y.m4,y.m2,b],I=this.normal(A[12],A[13],A[14],A[15],A[11],A[7],A[3]);St(I)<=this.epsilon&&(I=this.normal(A[12],A[13],A[14],A[15],A[2],A[1],A[0]),St(I)<=this.epsilon&&(I=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3])));let L=this.normal(E[3],E[2],E[1],E[0],E[4],E[8],E[12]);St(L)<=this.epsilon&&(L=this.normal(E[3],E[2],E[1],E[0],E[13],E[14],E[15]),St(L)<=this.epsilon&&(L=this.normal(E[15],E[11],E[7],E[3],E[4],E[8],E[12])));let N=this.Epsilon,O=[.5*(a[0]+o[0]),.5*(a[1]+o[1]),.5*(a[2]+o[2])];if(!c)if(c=zt(M,t[13],t[14],b)<this.res2){let t=Pt(this.differential(E[12],E[8],E[4],E[0]));O=[O[0]-N*t[0],O[1]-N*t[1],O[2]-N*t[2]]}else O=A[15];let _=[.5*(h[0]+s[0]),.5*(h[1]+s[1]),.5*(h[2]+s[2])];if(!m)if(m=zt(g,t[1],t[2],w)<this.res2){let t=Pt(this.differential(A[3],A[7],A[11],A[15]));_=[_[0]-N*t[0],_[1]-N*t[1],_[2]-N*t[2]]}else _=E[0];if(f){let t=Array(4),x=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),x[e]=.5*(v[e]+f[e]);let g=this.data.Vertex(O,I,t),w=this.data.Vertex(_,L,x);this.Render(A,e,i,g,w,s,a,O,_,l,c,!1,m,f,u,t,x),this.Render(E,w,g,n,r,_,O,o,h,!1,c,d,m,x,t,p,v)}else{let t=this.vertex(O,I),f=this.vertex(_,L);this.Render(A,e,i,t,f,s,a,O,_,l,c,!1,m),this.Render(E,f,t,n,r,_,O,o,h,!1,c,d,m)}return}if(x[1]<this.res2){let x=new Ot(g,t[4],t[8],M),R=new Ot(t[1],t[5],t[9],t[13]),T=new Ot(t[2],t[6],t[10],t[14]),y=new Ot(w,t[7],t[11],b),A=[g,t[1],t[2],w,x.m0,R.m0,T.m0,y.m0,x.m3,R.m3,T.m3,y.m3,x.m5,R.m5,T.m5,y.m5],E=[x.m5,R.m5,T.m5,y.m5,x.m4,R.m4,T.m4,y.m4,x.m2,R.m2,T.m2,y.m2,M,t[13],t[14],b],I=this.normal(A[0],A[4],A[8],A[12],A[13],A[14],A[15]);St(I)<=this.epsilon&&(I=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3]),St(I)<=this.epsilon&&(I=this.normal(A[3],A[2],A[1],A[0],A[13],A[14],A[15])));let L=this.normal(E[15],E[11],E[7],E[3],E[2],E[1],E[0]);St(L)<=this.epsilon&&(L=this.normal(E[15],E[11],E[7],E[3],E[4],E[8],E[12]),St(L)<=this.epsilon&&(L=this.normal(E[12],E[13],E[14],E[15],E[2],E[1],E[0])));let N=this.Epsilon,O=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!l)if(l=zt(g,t[4],t[8],M)<this.res2){let t=Pt(this.differential(E[0],E[1],E[2],E[3]));O=[O[0]-N*t[0],O[1]-N*t[1],O[2]-N*t[2]]}else O=A[12];let _=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=zt(b,t[11],t[7],w)<this.res2){let t=Pt(this.differential(A[15],A[14],A[13],A[12]));_=[_[0]-N*t[0],_[1]-N*t[1],_[2]-N*t[2]]}else _=E[3];if(f){let t=Array(4),x=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),x[e]=.5*(p[e]+v[e]);let g=this.data.Vertex(O,I,t),w=this.data.Vertex(_,L,x);this.Render(A,e,g,w,r,s,O,_,h,l,!1,d,m,f,t,x,v),this.Render(E,g,i,n,w,O,a,o,_,l,c,d,!1,t,u,p,x)}else{let t=this.vertex(O,I),f=this.vertex(_,L);this.Render(A,e,t,f,r,s,O,_,h,l,!1,d,m),this.Render(E,t,i,n,f,O,a,o,_,l,c,d,!1)}return}let R=new Ot(g,t[1],t[2],w),T=new Ot(t[4],t[5],t[6],t[7]),y=new Ot(t[8],t[9],t[10],t[11]),A=new Ot(M,t[13],t[14],b),E=new Ot(g,t[4],t[8],M),I=new Ot(R.m0,T.m0,y.m0,A.m0),L=new Ot(R.m3,T.m3,y.m3,A.m3),N=new Ot(R.m5,T.m5,y.m5,A.m5),O=new Ot(R.m4,T.m4,y.m4,A.m4),_=new Ot(R.m2,T.m2,y.m2,A.m2),P=new Ot(w,t[7],t[11],b),S=[g,R.m0,R.m3,R.m5,E.m0,I.m0,L.m0,N.m0,E.m3,I.m3,L.m3,N.m3,E.m5,I.m5,L.m5,N.m5],U=[E.m5,I.m5,L.m5,N.m5,E.m4,I.m4,L.m4,N.m4,E.m2,I.m2,L.m2,N.m2,M,A.m0,A.m3,A.m5],V=[N.m5,O.m5,_.m5,P.m5,N.m4,O.m4,_.m4,P.m4,N.m2,O.m2,_.m2,P.m2,A.m5,A.m4,A.m2,b],B=[R.m5,R.m4,R.m2,w,N.m0,O.m0,_.m0,P.m0,N.m3,O.m3,_.m3,P.m3,N.m5,O.m5,_.m5,P.m5],D=S[15],C=this.normal(S[0],S[4],S[8],S[12],S[13],S[14],S[15]);St(C)<this.epsilon&&(C=this.normal(S[0],S[4],S[8],S[12],S[11],S[7],S[3]),St(C)<this.epsilon&&(C=this.normal(S[3],S[2],S[1],S[0],S[13],S[14],S[15])));let F=this.normal(U[12],U[13],U[14],U[15],U[11],U[7],U[3]);St(F)<this.epsilon&&(F=this.normal(U[12],U[13],U[14],U[15],U[2],U[1],U[0]),St(F)<this.epsilon&&(F=this.normal(U[0],U[4],U[8],U[12],U[11],U[7],U[3])));let z=this.normal(V[15],V[11],V[7],V[3],V[2],V[1],V[0]);St(z)<this.epsilon&&(z=this.normal(V[15],V[11],V[7],V[3],V[4],V[8],V[12]),St(z)<this.epsilon&&(z=this.normal(V[12],V[13],V[14],V[15],V[2],V[1],V[0])));let H=this.normal(B[3],B[2],B[1],B[0],B[4],B[8],B[12]);St(H)<this.epsilon&&(H=this.normal(B[3],B[2],B[1],B[0],B[13],B[14],B[15]),St(H)<this.epsilon&&(H=this.normal(B[15],B[11],B[7],B[3],B[4],B[8],B[12])));let X=this.normal(V[3],V[2],V[1],D,V[4],V[8],V[12]),G=this.Epsilon,W=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!l)if(l=zt(g,t[4],t[8],M)<this.res2){let t=Pt(this.differential(U[0],U[1],U[2],U[3]));W=[W[0]-G*t[0],W[1]-G*t[1],W[2]-G*t[2]]}else W=S[12];let j=[.5*(a[0]+o[0]),.5*(a[1]+o[1]),.5*(a[2]+o[2])];if(!c)if(c=zt(M,t[13],t[14],b)<this.res2){let t=Pt(this.differential(V[12],V[8],V[4],V[0]));j=[j[0]-G*t[0],j[1]-G*t[1],j[2]-G*t[2]]}else j=U[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=zt(b,t[11],t[7],w)<this.res2){let t=Pt(this.differential(B[15],B[14],B[13],B[12]));k=[k[0]-G*t[0],k[1]-G*t[1],k[2]-G*t[2]]}else k=V[3];let Y=[.5*(h[0]+s[0]),.5*(h[1]+s[1]),.5*(h[2]+s[2])];if(!m)if(m=zt(g,t[1],t[2],w)<this.res2){let t=Pt(this.differential(S[3],S[7],S[11],S[15]));Y=[Y[0]-G*t[0],Y[1]-G*t[1],Y[2]-G*t[2]]}else Y=B[0];if(f){let t=Array(4),x=Array(4),g=Array(4),w=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),x[e]=.5*(u[e]+p[e]),g[e]=.5*(p[e]+v[e]),w[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+g[e]);let b=this.data.Vertex(W,C,t),R=this.data.Vertex(j,F,x),T=this.data.Vertex(k,z,g),y=this.data.Vertex(Y,H,w),A=this.data.Vertex(D,X,M);this.Render(S,e,b,A,y,s,W,D,Y,l,!1,!1,m,f,t,M,w),this.Render(U,b,i,R,A,W,a,j,D,l,c,!1,!1,t,u,x,M),this.Render(V,A,R,n,T,D,j,o,k,!1,c,d,!1,M,x,p,g),this.Render(B,y,A,T,r,Y,D,k,h,!1,!1,d,m,w,M,g,v)}else{let t=this.vertex(W,C),f=this.vertex(j,F),u=this.vertex(k,z),p=this.vertex(Y,H),v=this.vertex(D,X);this.Render(S,e,t,v,p,s,W,D,Y,l,!1,!1,m),this.Render(U,t,i,f,v,W,a,j,D,l,c,!1,!1),this.Render(V,v,f,n,u,D,j,o,k,!1,c,d,!1),this.Render(B,p,v,u,r,Y,D,k,h,!1,!1,d,m)}}}process3(t){if(1==V)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],n=t[9],r=this.normal(n,t[5],t[2],e,t[1],t[3],i),s=this.normal(e,t[1],t[3],i,t[7],t[8],n),a=this.normal(i,t[7],t[8],n,t[5],t[2],e);if(this.color){let o=this.color[0],h=this.color[1],l=this.color[2],c=this.data.Vertex(e,r,o),d=this.data.Vertex(i,s,h),m=this.data.Vertex(n,a,l);this.Render3(t,c,d,m,e,i,n,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,s),l=this.vertex(n,a);this.Render3(t,o,h,l,e,i,n,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,n,r,s,a,o,h,l,c,d,m){if(this.Distance3(t)<this.res2)this.offscreen([r,s,a])||(0==V?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(n)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],x=t[4],g=t[5],w=t[6],M=t[7],b=t[8],R=t[9],T=[.5*(R[0]+g[0]),.5*(R[1]+g[1]),.5*(R[2]+g[2])],y=[.5*(R[0]+b[0]),.5*(R[1]+b[1]),.5*(R[2]+b[2])],A=[.5*(g[0]+p[0]),.5*(g[1]+p[1]),.5*(g[2]+p[2])],E=[.5*(b[0]+x[0]),.5*(b[1]+x[1]),.5*(b[2]+x[2])],I=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],L=[.5*(p[0]+x[0]),.5*(p[1]+x[1]),.5*(p[2]+x[2])],N=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],O=[.5*(x[0]+v[0]),.5*(x[1]+v[1]),.5*(x[2]+v[2])],_=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],P=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],S=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],U=[.5*(v[0]+w[0]),.5*(v[1]+w[1]),.5*(v[2]+w[2])],V=[.5*(T[0]+A[0]),.5*(T[1]+A[1]),.5*(T[2]+A[2])],B=[.5*(y[0]+I[0]),.5*(y[1]+I[1]),.5*(y[2]+I[2])],D=[.5*(A[0]+N[0]),.5*(A[1]+N[1]),.5*(A[2]+N[2])],C=[.5*E[0]+.25*(x[0]+u[0]),.5*E[1]+.25*(x[1]+u[1]),.5*E[2]+.25*(x[2]+u[2])],F=[.5*(I[0]+_[0]),.5*(I[1]+_[1]),.5*(I[2]+_[2])],z=[.5*L[0]+.25*(x[0]+M[0]),.5*L[1]+.25*(x[1]+M[1]),.5*L[2]+.25*(x[2]+M[2])],H=[.25*(g[0]+x[0])+.5*O[0],.25*(g[1]+x[1])+.5*O[1],.25*(g[2]+x[2])+.5*O[2]],X=[.5*(P[0]+S[0]),.5*(P[1]+S[1]),.5*(P[2]+S[2])],G=[.5*(S[0]+U[0]),.5*(S[1]+U[1]),.5*(S[2]+U[2])],W=[.5*(z[0]+X[0]),.5*(z[1]+X[1]),.5*(z[2]+X[2])],j=[.5*(z[0]+G[0]),.5*(z[1]+G[1]),.5*(z[2]+G[2])],k=[.5*(X[0]+G[0]),.5*(X[1]+G[1]),.5*(X[2]+G[2])],Y=[.5*(H[0]+F[0]),.5*(H[1]+F[1]),.5*(H[2]+F[2])],$=[.5*(B[0]+H[0]),.5*(B[1]+H[1]),.5*(B[2]+H[2])],q=[.5*(B[0]+F[0]),.5*(B[1]+F[1]),.5*(B[2]+F[2])],K=[.5*(V[0]+C[0]),.5*(V[1]+C[1]),.5*(V[2]+C[2])],Z=[.5*(D[0]+C[0]),.5*(D[1]+C[1]),.5*(D[2]+C[2])],Q=[.5*(V[0]+D[0]),.5*(V[1]+D[1]),.5*(V[2]+D[2])],J=[f,P,N,X,[.5*(L[0]+P[0]),.5*(L[1]+P[1]),.5*(L[2]+P[2])],D,k,W,Z,Q],tt=[k,G,j,U,[.5*(O[0]+_[0]),.5*(O[1]+_[1]),.5*(O[2]+_[2])],Y,w,_,F,q],et=[Q,K,V,$,[.5*(T[0]+E[0]),.5*(T[1]+E[1]),.5*(T[2]+E[2])],T,q,B,y,R],it=[q,$,Y,K,[.25*(A[0]+I[0]+S[0]+x[0]),.25*(A[1]+I[1]+S[1]+x[1]),.25*(A[2]+I[2]+S[2]+x[2])],j,Q,Z,W,k],nt=this.normal(k,j,Y,q,$,K,Q),rt=this.normal(q,$,K,Q,Z,W,k),st=this.normal(Q,Z,W,k,j,Y,q),at=this.Epsilon,ot=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!o)if(o=zt(w,M,b,R)<this.res2){let t=Pt(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-at*t[0],ot[1]-at*t[1],ot[2]-at*t[2]]}else ot=q;let ht=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])];if(!h)if(h=zt(f,p,g,R)<this.res2){let t=Pt(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-at*t[0],ht[1]-at*t[1],ht[2]-at*t[2]]}else ht=Q;let lt=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])];if(!l)if(l=zt(f,u,v,w)<this.res2){let t=Pt(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-at*t[0],lt[1]-at*t[1],lt[2]-at*t[2]]}else lt=k;if(c){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(d[e]+m[e]),f[e]=.5*(m[e]+c[e]),u[e]=.5*(c[e]+d[e]);let p=this.data.Vertex(ot,nt,t),v=this.data.Vertex(ht,rt,f),x=this.data.Vertex(lt,st,u);this.Render3(J,e,x,v,r,lt,ht,!1,h,l,c,u,f),this.Render3(tt,x,i,p,lt,s,ot,o,!1,l,u,d,t),this.Render3(et,v,p,n,ht,ot,a,o,h,!1,f,t,m),this.Render3(it,p,v,x,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,nt),c=this.vertex(ht,rt),d=this.vertex(lt,st);this.Render3(J,e,d,c,r,lt,ht,!1,h,l),this.Render3(tt,d,i,t,lt,s,ot,o,!1,l),this.Render3(et,c,t,n,ht,ot,a,o,h,!1),this.Render3(it,t,c,d,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],n=t[12],r=t[15],s=Ht(e,n,i,r);s=Math.max(zt(e,t[4],t[8],n)),s=Math.max(s,zt(t[1],t[5],t[9],t[13])),s=Math.max(s,zt(i,t[7],t[11],r)),s=Math.max(s,zt(t[2],t[6],t[10],t[14]));let a=Ht(e,i,n,r);return a=Math.max(a,zt(e,t[1],t[2],i)),a=Math.max(a,zt(t[4],t[5],t[6],t[7])),a=Math.max(a,zt(t[8],t[9],t[10],t[11])),a=Math.max(a,zt(n,t[13],t[14],r)),[s,a]}Distance3(t){let e=t[0],i=t[4],n=t[6],r=t[9],s=St([(e[0]+n[0]+r[0])*(1/3)-i[0],(e[1]+n[1]+r[1])*(1/3)-i[1],(e[2]+n[2]+r[2])*(1/3)-i[2]]);return s=Math.max(s,zt(e,t[1],t[3],n)),s=Math.max(s,zt(e,t[2],t[5],r)),Math.max(s,zt(n,t[7],t[8],r))}differential(t,e,i,n){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return St(r)>this.epsilon?r:(r=Ct(t,e,i),St(r)>this.epsilon?r:Ft(t,e,i,n))}sumdifferential(t,e,i,n,r,s,a){let o=this.differential(t,e,i,n),h=this.differential(t,r,s,a);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,n,r,s,a){let o=3*(r[0]-n[0]),h=3*(r[1]-n[1]),l=3*(r[2]-n[2]),c=3*(i[0]-n[0]),d=3*(i[1]-n[1]),m=3*(i[2]-n[2]),f=[h*m-l*d,l*c-o*m,o*d-h*c];if(St(f)>this.epsilon)return f;let u=[c,d,m],p=[o,h,l],v=Ct(n,i,e),x=Ct(n,r,s),g=Vt(x,u),w=Vt(p,v);if(f=[g[0]+w[0],g[1]+w[1],g[2]+w[2]],St(f)>this.epsilon)return f;let M=Ft(n,i,e,t),b=Ft(n,r,s,a);g=Vt(p,M),w=Vt(b,u);let R=Vt(x,v);return f=[g[0]+w[0]+R[0],g[1]+w[1]+R[1],g[2]+w[2]+R[2]],St(f)>this.epsilon?f:(g=Vt(b,v),w=Vt(x,M),f=[g[0]+w[0],g[1]+w[1],g[2]+w[2]],St(f)>this.epsilon?f:Vt(b,M))}}function xt(t){return 0<=t&&t<=1}class gt{constructor(t,e,i){const n=1e3*Number.EPSILON,r=n*n;if(Math.abs(t)<=n*Math.abs(e)+r*Math.abs(i))Math.abs(e)>n*Math.abs(i)?(this.roots=1,this.t1=-i/e):0==i?(this.roots=1,this.t1=0):this.roots=0;else{let r=.5*e/t,s=e*r;if(Math.abs(s)<=n*Math.abs(i)){let e=-i/t;e>=0?(this.roots=2,this.t2=Math.sqrt(e),this.t1=-this.t2):this.roots=0}else{let t=-2*i/s;if(t>-1){this.roots=2;let e=r*function(t){return t/(Math.sqrt(1+t)+1)}(t),i=-e-2*r;i<=e?(this.t1=i,this.t2=e):(this.t1=e,this.t2=i)}else-1==t?(this.roots=1,this.t1=this.t2=-r):this.roots=0}}}}class wt extends ut{constructor(t,e,i,n,r){if(super(),this.controlpoints=t,this.CenterIndex=e,this.MaterialIndex=i,n&&r)this.Min=n,this.Max=r;else{let t=this.Bounds(this.controlpoints);this.Min=t[0],this.Max=t[1]}}Bounds(t){let e=Array(3),i=Array(3),n=t.length,r=Array(n);for(let h=0;h<3;++h){for(let e=0;e<n;++e)r[e]=t[e][h];let l,c;if(l=c=r[0],4==n){l=Math.min(l,r[3]),c=Math.max(c,r[3]);let t=(s=r[0],a=r[1],o=r[2],[r[3]-s+3*(a-o),2*(s+o)-4*a,a-s]),e=new gt(t[0],t[1],t[2]);if(0!=e.roots&&xt(e.t1)){let t=Bt(r[0],r[1],r[2],r[3],e.t1);l=Math.min(l,t),c=Math.max(c,t)}if(2==e.roots&&xt(e.t2)){let t=Bt(r[0],r[1],r[2],r[3],e.t2);l=Math.min(l,t),c=Math.max(c,t)}}else{let t=r[1];l=Math.min(l,t),c=Math.max(c,t)}e[h]=l,i[h]=c}var s,a,o;return[[e[0],e[1],e[2]],[i[0],i[1],i[2]]]}setMaterialIndex(){this.setMaterial(Z,Te)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],n=t[2],r=t[3],s=this.normal(Dt(e,i),Ct(e,i,n)),a=this.normal(Dt(n,r),Ct(r,n,i)),o=this.data.vertex(e,s),h=this.data.vertex(r,a);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){Z.append(this.data)}notRendered(){Z.rendered=!1}Render(t,e,i){let n=t[0],r=t[1],s=t[2],a=t[3];if(zt(n,r,s,a)<this.res2)this.offscreen([n,a])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(n[0]+r[0]),.5*(n[1]+r[1]),.5*(n[2]+r[2])],h=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])],l=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])],c=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],d=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(c[0]+d[0]),.5*(c[1]+d[1]),.5*(c[2]+d[2])],f=[n,o,c,m],u=[m,d,l,a],p=this.normal(function(t,e,i,n){return[i[0]+n[0]-t[0]-e[0],i[1]+n[1]-t[1]-e[1],i[2]+n[2]-t[2]-e[2]]}(n,r,s,a),function(t,e,i,n){return[3*t[0]-5*e[0]+i[0]+n[0],3*t[1]-5*e[1]+i[1]+n[1],3*t[2]-5*e[2]+i[2]+n[2]]}(n,r,s,a)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=Ut(t,t),n=Ut(t,e);return[i*e[0]-n*t[0],i*e[1]-n*t[1],i*e[2]-n*t[2]]}}class Mt extends ut{constructor(t,e,i){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=t,this.Max=t}setMaterialIndex(){this.setMaterial(K,Re)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){K.append(this.data)}notRendered(){K.rendered=!1}}class bt extends ut{constructor(t,e){super(),this.CenterIndex=t,this.MaterialIndex=e,this.Min=this.Bounds(F,Math.min),this.Max=this.Bounds(F,Math.max),this.controlpoints=F,this.Normals=z,this.Colors=H,this.Indices=X,F=[],z=[],H=[],X=[],this.transparent=c[this.MaterialIndex].diffuse[3]<1}Bounds(t,e){let i=Array(3),n=t.length,r=Array(n);for(let s=0;s<3;++s){for(let e=0;e<n;++e)r[e]=t[e][s];i[s]=pt(r,e)}return[i[0],i[1],i[2]]}setMaterialIndex(){this.transparent?this.setMaterial(tt,Ie):this.setMaterial(et,Ee)}process(t){this.data.vertices=new Array(6*t.length),it=this.Colors.length>0?-1-it:1+it;for(let e=0,i=this.Indices.length;e<i;++e){let i=this.Indices[e],n=i[0],r=t[n[0]],s=t[n[1]],a=t[n[2]];if(!this.offscreen([r,s,a])){let t=i.length>1?i[1]:n;if(t&&0!=t.length||(t=n),this.Colors.length>0){let e=i.length>2?i[2]:n;e&&0!=e.length||(e=n);let o=this.Colors[e[0]],h=this.Colors[e[1]],l=this.Colors[e[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==V?(this.data.iVertex(n[0],r,this.Normals[t[0]],o),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[2],a,this.Normals[t[2]],l)):(this.data.iVertex(n[0],r,this.Normals[t[0]],o),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[2],a,this.Normals[t[2]],l),this.data.iVertex(n[2],a,this.Normals[t[2]],l),this.data.iVertex(n[0],r,this.Normals[t[0]],o))}else 0==V?(this.data.iVertex(n[0],r,this.Normals[t[0]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[2],a,this.Normals[t[2]])):(this.data.iVertex(n[0],r,this.Normals[t[0]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[2],a,this.Normals[t[2]]),this.data.iVertex(n[2],a,this.Normals[t[2]]),this.data.iVertex(n[0],r,this.Normals[t[0]]))}}this.data.nvertices=t.length,this.data.indices.length>0&&this.append()}append(){this.transparent?tt.append(this.data):et.append(this.data)}notRendered(){this.transparent?tt.rendered=!1:et.rendered=!1}}function Rt(){M=-Math.tan(.5*o.angleOfView)*o.maxBound[2],_.x=_.y=0,_.z=.5*(o.minBound[2]+o.maxBound[2]),x=v=o.zoom0,S.zmin=o.minBound[2],S.zmax=o.maxBound[2],P.x=P.y=0,Oe(),U=!0,Ne()}let Tt=0,yt=1,At=2,Et=3,It=4;function Lt(e=[]){let i=lt(t,vertex,t.VERTEX_SHADER,e),n=lt(t,fragment,t.FRAGMENT_SHADER,e),r=t.createProgram();return t.attachShader(r,i),t.attachShader(r,n),t.bindAttribLocation(r,Tt,"position"),t.bindAttribLocation(r,yt,"normal"),t.bindAttribLocation(r,At,"materialIndex"),t.bindAttribLocation(r,Et,"color"),t.bindAttribLocation(r,It,"width"),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialize shaders"),r}class Nt{constructor(t,e,i,n){this.m0=.5*(t+e);let r=.5*(e+i);this.m2=.5*(i+n),this.m3=.5*(this.m0+r),this.m4=.5*(r+this.m2),this.m5=.5*(this.m3+this.m4)}}class Ot{constructor(t,e,i,n){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),s=.5*(e[1]+i[1]),a=.5*(e[2]+i[2]);this.m2=[.5*(i[0]+n[0]),.5*(i[1]+n[1]),.5*(i[2]+n[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+s),.5*(this.m0[2]+a)],this.m4=[.5*(r+this.m2[0]),.5*(s+this.m2[1]),.5*(a+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}class _t{constructor(t){this.l003=t[0];let e=t[1],i=t[2],n=t[3],r=t[4],s=t[5];this.r300=t[6];let a=t[7],o=t[8];this.u030=t[9],this.u021=.5*(this.u030+s),this.u120=.5*(this.u030+o);let h=.5*(s+i),l=.5*(o+r),c=.5*(o+a),d=.5*(i+r);this.l012=.5*(i+this.l003);let m=.5*(r+n);this.r210=.5*(a+this.r300),this.l102=.5*(this.l003+e);let f=.5*(e+n);this.r201=.5*(n+this.r300),this.u012=.5*(this.u021+h),this.u210=.5*(this.u120+c),this.l021=.5*(h+this.l012);let u=.5*l+.25*(r+e);this.r120=.5*(c+this.r210);let p=.5*d+.25*(r+a),v=.25*(s+r)+.5*m;this.l201=.5*(this.l102+f),this.r102=.5*(f+this.r201),this.l210=.5*(p+this.l201),this.r012=.5*(p+this.r102),this.l300=.5*(this.l201+this.r102),this.r021=.5*(v+this.r120),this.u201=.5*(this.u210+v),this.r030=.5*(this.u210+this.r120),this.u102=.5*(this.u012+u),this.l120=.5*(this.l021+u),this.l030=.5*(this.u012+this.l021),this.l111=.5*(d+this.l102),this.r111=.5*(m+this.r210),this.u111=.5*(this.u021+l),this.c111=.25*(h+c+f+r)}}function Pt(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function St(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function Ut(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Vt(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Bt(t,e,i,n,r){let s=1-r,a=s*s;return a*s*t+r*(3*(a*e+r*s*i)+r*r*n)}function Dt(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function Ct(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function Ft(t,e,i,n){return[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])]}function zt(t,e,i,n){let r=[1/3*(n[0]-t[0]),1/3*(n[1]-t[1]),1/3*(n[2]-t[2])];return Math.max(St([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),St([n[0]-r[0]-i[0],n[1]-r[1]-i[1],n[2]-r[2]-i[2]]))}function Ht(t,e,i,n){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],s=[n[0]-i[0],n[1]-i[1],n[2]-i[2]];return Math.max(St(Vt(r,Pt(s))),St(Vt(s,Pt(r))))/9}function Xt(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function Gt(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function Wt(t){ae||oe(),B=!0,D=t.clientX,C=t.clientY}let jt,kt,Yt=!1;function $t(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function qt(t){t.preventDefault(),ae||oe();let e=t.targetTouches;ue=pe=Yt=!1,fe||(1!=e.length||B||(kt=(new Date).getTime(),touchId=e[0].identifier,D=e[0].pageX,C=e[0].pageY),2!=e.length||B||(touchId=e[0].identifier,jt=$t(e),Yt=!0))}function Kt(t){B=!1}function Zt(t,e,i,n,r){if(t==i&&e==n)return;let[s,a]=function(t,e){let i=ne(t),n=ne(e),r=Ut(i,n);return[r>1?0:r<-1?f:Math.acos(r),Pt(Vt(i,n))]}([t,-e],[i,-n]);mat4.fromRotation(O,2*r*R*s/v,a),mat4.multiply(T,O,T)}function Qt(t,e,i,n){let r=1/v;P.x+=(i-t)*r*s,P.y-=(n-e)*r*a}function Jt(t,e,i,n){o.orthographic?Qt(t,e,i,n):(_.x+=(i-t)*(S.xmax-S.xmin),_.y-=(n-e)*(S.ymax-S.ymin))}function te(){var t,e;t=A,e=T,mat4.fromTranslation(O,[_.x,_.y,_.z]),mat4.invert(N,O),mat4.multiply(t,e,N),mat4.multiply(t,O,t),mat4.translate(A,A,[_.x,_.y,0]),mat3.fromMat4(L,A),mat3.invert(I,L),mat4.multiply(E,y,A)}function ee(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;v<=e&&(v=e),v>=t&&(v=t),(1.5*v<x||v>1.5*x)&&(U=!0,x=v)}function ie(t){let e=o.zoomStep*a*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(o.zoomFactor);Math.abs(e)<i&&(v*=o.zoomFactor**e,ee())}function ne(t){let e=t[0],i=t[1],n=Math.hypot(e,i);return n>1&&(denom=1/n,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function re(t,e,i,n){ie(e-n)}function se(t,e,i,n=1){let r;switch(i){case 1:r=Zt;break;case 2:r=Qt;break;case 3:r=re;break;case 4:r=Jt;break;default:r=(t,e,i,n)=>{}}r((D-s)/s,(C-a)/a,(t-s)/s,(e-a)/a,n),D=t,C=e,Oe(),Ne()}let ae=0;function oe(){ae=1,o.canvas.addEventListener("wheel",de,!1)}function he(){let t,e,i;[t,e,i]=function(){let t=Array(3),e=Array(3),i=Array(3),n=_.x,r=_.y,s=.5*(S.zmin+S.zmax);for(let a=0;a<3;++a){let h=0,l=0,c=0,d=4*a;for(let t=0;t<4;++t){let e=4*t,i=T[e],a=T[e+1],m=T[e+2],f=T[e+3],u=o.Transform[d+t];h+=u*(f-n*i-r*a-s*m),c+=u*a,l+=u*(f-n*i-r*a)}t[a]=h,e[a]=c,i[a]=l}return[t,e,i]}();let n=o.orthographic?" orthographic(":" perspective(",r="".padStart(n.length),s="currentprojection=\n"+n+"camera=("+t+"),\n"+r+"up=("+e+"),\n"+r+"target=("+i+"),\n"+r+"zoom="+v*o.initialZoom/o.zoom0;return o.orthographic||(s+=",\n"+r+"angle="+2*Math.atan(Math.tan(.5*o.angleOfView)/v)/u),0==g&&0==w||(s+=",\n"+r+"viewportshift=("+g+","+w+")"),o.orthographic||(s+=",\n"+r+"autoadjust=false"),s+=");\n",window.parent.asyProjection=!0,s}function le(t){if(ae||oe(),o.embedded&&ae&&27==t.keyCode)return ae=0,void o.canvas.removeEventListener("wheel",de,!1);let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":mat4.identity(T),Rt(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(""),window.parent.asyProjection=!1;break;case"m":++V,3==V&&(V=0),2!=V&&(o.embedded||st(),rt(o.ibl)),U=!0,Ne();break;case"+":case"=":case">":v*=o.zoomFactor,ce();break;case"-":case"_":case"<":v/=o.zoomFactor,ce();break;case"c":window.top.asyWebApplication||prompt("Ctrl+c Enter to copy currentprojection to clipboard; then append to asy file:",he())}e.length>0&&(mat4.rotate(T,T,.1,e),te(),Ne())}function ce(){ee(),Oe(),Ne()}function de(t){t.preventDefault(),t.deltaY<0?v*=o.zoomFactor:v/=o.zoomFactor,ce()}function me(t){if(!B)return;let e,i=t.clientX,n=t.clientY;e=t.getModifierState("Control")?2:t.getModifierState("Shift")?3:t.getModifierState("Alt")?4:1,se(i,n,e)}let fe=!1,ue=!1,pe=!1;function ve(t){if(t.preventDefault(),fe)return;let e=t.targetTouches;if(!Yt&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,n=t-D,r=i-C,s=n*n+r*r<=o.shiftHoldDistance*o.shiftHoldDistance;if(s&&!ue&&!pe&&(new Date).getTime()-kt>o.shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(o.vibrateTime),ue=!0),ue)se(t,i,2);else if(!s){pe=!0,se(e[0].pageX,e[0].pageY,1,.5)}}if(Yt&&!ue&&2==e.length&&touchId==e[0].identifier){let t=$t(e),i=t-jt;fe=!0,i*=o.zoomPinchFactor,i>o.zoomPinchCap&&(i=o.zoomPinchCap),i<-o.zoomPinchCap&&(i=-o.zoomPinchCap),ie(i/b),jt=t,ue=pe=fe=!1,Oe(),Ne()}}let xe,ge,we,Me,be=[];function Re(){dt(K,xe),K.clear()}function Te(){dt(Z,ge),Z.clear()}function ye(){dt(Q,ge),Q.clear()}function Ae(){dt(J,we),J.clear()}function Ee(){dt(et,Me),et.rendered=!1,et.clear()}function Ie(){let e=tt.indices;if(V>0)return dt(tt,Me,e),void tt.clear();if(e.length>0){!function(t){let e=A[2],i=A[6],n=A[10];be.length=t.length;for(let r=0;r<t.length;++r){let s=6*r;be[r]=e*t[s]+i*t[s+1]+n*t[s+2]}}(tt.vertices);let i=e.length/3,n=Array(i).fill().map((t,e)=>e);n.sort((function(t,i){let n=3*t;Ia=e[n],Ib=e[n+1],Ic=e[n+2];let r=3*i;return IA=e[r],IB=e[r+1],IC=e[r+2],be[Ia]+be[Ib]+be[Ic]<be[IA]+be[IB]+be[IC]?-1:1}));let r=Array(e.length);for(let t=0;t<i;++t){let i=3*n[t];r[3*t]=e[i],r[3*t+1]=e[i+1],r[3*t+2]=e[i+2]}t.depthMask(!1),dt(tt,Me,r),tt.rendered=!1,t.depthMask(!0)}tt.clear()}function Le(){Re(),Te(),ye(),Ae(),Ee(),Ie(),requestAnimationFrame(Le)}function Ne(){o.embedded&&(i.width=o.canvasWidth,i.height=o.canvasHeight,_e()),t.clearColor(o.background[0],o.background[1],o.background[2],o.background[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT);for(const t of h)t.render();Le(),o.embedded&&(n.clearRect(0,0,o.canvasWidth,o.canvasHeight),n.drawImage(i,0,0)),0==V&&(U=!1)}function Oe(){!function(t,e,i,n){let r=t/e;g=(i/t+o.viewportShift[0])*v,w=(n/e+o.viewportShift[1])*v;let s=1/v;if(o.orthographic){let t=o.maxBound[0]-o.minBound[0],e=o.maxBound[1]-o.minBound[1];if(t<e*r){let t=.5*e*r*s,i=2*t*g,n=e*s*w;S.xmin=-t-i,S.xmax=t-i,S.ymin=o.minBound[1]*s-n,S.ymax=o.maxBound[1]*s-n}else{let e=.5*t*s/r,i=t*s*g,n=2*e*w;S.xmin=o.minBound[0]*s-i,S.xmax=o.maxBound[0]*s-i,S.ymin=-e-n,S.ymax=e-n}}else{let t=M*s,e=t*r,i=2*e*g,n=2*t*w;S.xmin=-e-i,S.xmax=e-i,S.ymin=-t-n,S.ymax=t-n}}(o.canvasWidth,o.canvasHeight,P.x,P.y),(o.orthographic?mat4.ortho:mat4.frustum)(y,S.xmin,S.xmax,S.ymin,S.ymax,-S.zmax,-S.zmin),te(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(he())}function _e(){t.viewportWidth=o.canvasWidth,t.viewportHeight=o.canvasHeight,t.viewport(.5*(o.canvas.width-o.canvasWidth),.5*(o.canvas.height-o.canvasHeight),o.canvasWidth,o.canvasHeight),t.scissor(0,0,o.canvas.width,o.canvas.height)}function Pe(t,e){t>void 0&&(t=void 0),e>void 0&&(e=void 0),P.x*=t/o.canvasWidth,P.y*=e/o.canvasHeight,o.canvasWidth=t,o.canvasHeight=e,o.embedded&&(o.canvas.width=i.width=o.canvasWidth,o.canvas.height=i.height=o.canvasHeight),b=Math.hypot(o.canvasWidth,o.canvasHeight),s=.5*o.canvas.width,a=.5*o.canvas.height,R=1+8*Math.hypot(o.viewportMargin[0],o.viewportMargin[1])/b,_e(),Oe(),U=!0}function Se(){if(o.zoom0=o.initialZoom,window.top.asyWebApplication&&""==window.top.asyWebApplication.getProjection()&&(window.parent.asyProjection=!1),o.absolute&&!o.embedded)o.canvasWidth=o.canvasWith0*window.devicePixelRatio,o.canvasHeight=o.canvasHeight0*window.devicePixelRatio;else{let t=o.canvasWith0/o.canvasHeight0;o.canvasWidth=Math.max(window.innerWidth-10,10),o.canvasHeight=Math.max(window.innerHeight-10,10),!o.orthographic&&!window.parent.asyProjection&&o.canvasWidth<o.canvasHeight*t&&(o.zoom0*=o.canvasWidth/(o.canvasHeight*t))}o.canvas.width=o.canvasWidth,o.canvas.height=o.canvasHeight;window.innerWidth,window.innerHeight;let t=1/o.zoom0;o.viewportShift[0]*=t,o.viewportShift[1]*=t,Pe(o.canvasWidth,o.canvasHeight),Rt()}class Ue{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],n=t[2],r=e*this.ct+n*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+n*this.ct+this.center[2]]}}function Ve(t,e,i){let n=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1],e[2]]),t(i)];return[Xt(n),Gt(n)]}let Be=4/3*(Math.sqrt(2)-1);async function De(t){return(await fetch(t)).arrayBuffer()}function Ce(t){return t.getBytes().filter((t,e)=>e%4!=3)}function Fe(e,i,n=t.RGB16F){let r=e.width(),s=e.height(),a=t.createTexture();return t.activeTexture(t.TEXTURE0+i),t.bindTexture(t.TEXTURE_2D,a),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texImage2D(t.TEXTURE_2D,0,n,r,s,0,t.RGB,t.FLOAT,Ce(e)),a}window.webGLStart=function(){o.canvas=document.getElementById("Asymptote"),o.embedded=window.top.document!=document,ht(),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.enable(t.DEPTH_TEST),t.enable(t.SCISSOR_TEST),o.canvas.onmousedown=Wt,document.onmouseup=Kt,document.onmousemove=me,o.canvas.onkeydown=le,o.embedded||oe(),o.canvas.addEventListener("touchstart",qt,!1),o.canvas.addEventListener("touchend",Kt,!1),o.canvas.addEventListener("touchcancel",Kt,!1),o.canvas.addEventListener("touchleave",Kt,!1),o.canvas.addEventListener("touchmove",ve,!1),document.addEventListener("keydown",le,!1),o.canvasWith0=o.canvasWidth,o.canvasHeight0=o.canvasHeight,mat4.identity(T),0!=window.innerWidth&&0!=window.innerHeight&&Se(),window.addEventListener("resize",Se,!1),o.ibl&&async function(){let e=o.imageURL+o.image+"/";function i(t){return new Promise(e=>setTimeout(e,t))}for(;!Module.EXRLoader;)await i(0);promises=[De(o.imageURL+"refl.exr").then(t=>{let e=new Module.EXRLoader(t);j=Fe(e,0)}),De(e+"diffuse.exr").then(t=>{let e=new Module.EXRLoader(t);W=Fe(e,1)})],refl_promise=[],refl_promise.push(De(e+"refl0.exr"));for(let t=1;t<=8;++t)refl_promise.push(De(e+"refl"+t+"w.exr"));finished_promise=Promise.all(refl_promise).then(e=>{let i=t.createTexture();t.activeTexture(t.TEXTURE0+2),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.bindTexture(t.TEXTURE_2D,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAX_LEVEL,e.length-1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameterf(t.TEXTURE_2D,t.TEXTURE_MIN_LOD,0),t.texParameterf(t.TEXTURE_2D,t.TEXTURE_MAX_LOD,8);for(let i=0;i<e.length;++i){let n=new Module.EXRLoader(e[i]);t.texImage2D(t.TEXTURE_2D,i,t.RGB16F,n.width(),n.height(),0,t.RGB,t.FLOAT,Ce(n))}G=i}),promises.push(finished_promise),await Promise.all(promises)}().then(k).then(Rt)},window.light=function(t,e){l.push(new nt(t,e))},window.material=function(t,e,i,n,r,s){c.push(new Y(t,e,i,n,r,s))},window.patch=function(t,e,i,n){h.push(new vt(t,e,i,n))},window.curve=function(t,e,i){h.push(new wt(t,e,i))},window.pixel=function(t,e,i){h.push(new Mt(t,e,i))},window.triangles=function(t,e){h.push(new bt(t,e))},window.sphere=function(t,e,i,n,r){let s,a,o,l,c,d,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,x=.0549670512339254,g=.998880711874577,w=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,Be,0],[1,Be,m],[f,Be*f,u],[p,Be*p,v],[Be,1,0],[Be,1,m],[Be*f,f,u],[Be*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,Be*p,v],[x,0,g],[Be*p,p,v],[w,w,1],[.05*Be,0,1],[0,p,v],[0,x,g],[0,.05*Be,1],[0,0,1]]],b=new Ue(t,r);function R(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let n=t[i];e[i]=c([s*n[0],a*n[1],o*n[2]])}return e}r?(l=1,d=0,c=b.T.bind(b)):(l=-1,d=-e,c=b.T0.bind(b));let T=Ve(c,[-e,-e,d],[e,e,e]),y=T[0],A=T[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){a=t*e;for(let t=l;t<=1;t+=2){o=t*e;for(let t=0;t<2;++t)h.push(new vt(R(M[t]),i,n,null,y,A))}}}},window.disk=function(t,e,i,n,r){let s=1-2*Be/3,a=[[1,0,0],[1,-Be,0],[Be,-1,0],[0,-1,0],[1,Be,0],[s,0,0],[0,-s,0],[-Be,-1,0],[Be,1,0],[0,s,0],[-s,0,0],[-1,-Be,0],[0,1,0],[-Be,1,0],[-1,Be,0],[-1,0,0]],o=new Ue(t,r),l=Ve(o.T.bind(o),[-e,-e,0],[e,e,0]);h.push(new vt(function(t){let i=Array(t.length);for(let n=0;n<t.length;++n){let r=t[n];i[n]=o.T([e*r[0],e*r[1],0])}return i}(a),i,n,null,l[0],l[1]))},window.cylinder=function(t,e,i,n,r,s,a){let o,l,c=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,Be,0],[1,Be,1/3],[1,Be,2/3],[1,Be,1],[Be,1,0],[Be,1,1/3],[Be,1,2/3],[Be,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],d=new Ue(t,s);function m(t){let e=Array(t.length);for(let n=0;n<t.length;++n){let r=t[n];e[n]=d.T([o*r[0],l*r[1],i*r[2]])}return e}let f=Ve(d.T.bind(d),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){o=t*e;for(let t=-1;t<=1;t+=2)l=t*e,h.push(new vt(m(c),n,r,null,u,p))}if(a){let e=d.T([0,0,i]);h.push(new wt([t,e],n,r,t,e))}},window.tube=function(t,e,i,n,r){let s=function(t,e,i,n,r){class s{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=Vt(i,e)}}let a=Number.EPSILON*Math.max(St(t),St(e),St(i),St(n));function o(r){if(1==r){let r=[n[0]-i[0],n[1]-i[1],n[2]-i[2]];return St(r)>a?Pt(r):(r=[2*i[0]-e[0]-n[0],2*i[1]-e[1]-n[1],2*i[2]-e[2]-n[2]],St(r)>a?Pt(r):[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])])}let s=[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,c=[s[0]*l+o[0]*r+h[0],s[1]*l+o[1]*r+h[1],s[2]*l+o[2]*r+h[2]];return St(c)>a?Pt(c):(l=2*r,c=[s[0]*l+o[0],s[1]*l+o[1],s[2]*l+o[2]],St(c)>a?Pt(c):Pt(s))}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];St(l)<a&&(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]],St(l)<a&&(l=[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])])),l=Pt(l);let c=function(t){let e=Vt(t,[0,1,0]),i=Number.EPSILON*St(t);return St(e)>i?Pt(e):(e=Vt(t,[0,0,1]),St(e)>i?Pt(e):[1,0,0])}(l);h[0]=new s(t,c,l);for(let a=1;a<r.length;++a){let l=h[a-1],c=r[a],d=1-c,m=d*d,f=m*d,u=3*c;m*=u,d*=u*c;let p=c*c*c,v=[f*t[0]+m*e[0]+d*i[0]+p*n[0],f*t[1]+m*e[1]+d*i[1]+p*n[1],f*t[2]+m*e[2]+d*i[2]+p*n[2]],x=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=x[0]||0!=x[1]||0!=x[2]){let t=l.r,e=Pt(x),i=l.t,n=Ut(e,i),r=[i[0]-2*n*e[0],i[1]-2*n*e[1],i[2]-2*n*e[2]];i=o(c);let d=2*Ut(e,t),m=[t[0]-d*e[0],t[1]-d*e[1],t[2]-d*e[2]],f=Pt([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*Ut(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[a]=new s(v,Pt(m),Pt(i))}else h[a]=h[a-1]}return h}(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),a=Be*e,o=[[e,0],[e,a],[a,e],[0,e]];function l(e,r,a,l){let c=Array(16);for(let i=0;i<4;++i){let n=s[i],h=n.r[0],d=n.s[0],m=h*e+d*r,f=h*a+d*l;h=n.r[1],d=n.s[1];let u=h*e+d*r,p=h*a+d*l;h=n.r[2],d=n.s[2];let v=h*e+d*r,x=h*a+d*l,g=t[i],w=g[0];w1=g[1],w2=g[2];for(let t=0;t<4;++t){let e=o[t],n=e[0],r=e[1];c[4*i+t]=[m*n+f*r+w,u*n+p*r+w1,v*n+x*r+w2]}}h.push(new vt(c,i,n))}l(1,0,0,1),l(0,-1,1,0),l(-1,0,0,-1),l(0,1,-1,0),r&&h.push(new wt(t,i,n))}}();
+let vertex="\n#ifdef WEBGL2\n#define IN in\n#define OUT out\n#else\n#define IN attribute\n#define OUT varying\n#endif\n\nIN vec3 position;\n#ifdef WIDTH\nIN float width;\n#endif\n#ifdef NORMAL\nIN vec3 normal;\n#endif\n\nIN float materialIndex;\n\n#ifdef WEBGL2\nflat out int MaterialIndex;\n#ifdef COLOR\nOUT vec4 Color;\n#endif\n\n#else\nOUT vec4 diffuse;\nOUT vec3 specular;\nOUT float roughness,metallic,fresnel0;\nOUT vec4 emissive;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n#endif\n\n#ifdef COLOR\nIN vec4 color;\n#endif\n\nuniform mat3 normMat;\nuniform mat4 viewMat;\nuniform mat4 projViewMat;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\nOUT vec3 ViewPosition;\n#endif\nOUT vec3 Normal;\n#endif\n\nvoid main(void)\n{\n vec4 v=vec4(position,1.0);\n gl_Position=projViewMat*v;\n\n#ifdef NORMAL\n#ifndef ORTHOGRAPHIC\n ViewPosition=(viewMat*v).xyz;\n#endif\n Normal=normalize(normal*normMat);\n#endif\n\n#ifdef WEBGL2\n MaterialIndex=int(materialIndex);\n#ifdef COLOR\n Color=color;\n#endif\n#else\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[int(abs(materialIndex))-1];\n emissive=m.emissive;\n if(materialIndex >= 0.0)\n diffuse=m.diffuse;\n else {\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n }\n#else\n m=Materials[int(materialIndex)];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=color;\n#if nlights == 0\n emissive += color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[int(materialIndex)].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#ifdef WIDTH\n gl_PointSize=width;\n#endif\n}\n",fragment="\n#ifdef WEBGL2\n#define IN in\nout vec4 outValue;\n#define OUTVALUE outValue\n#else\n#define IN varying\n#define OUTVALUE gl_FragColor\n#endif\n\n#ifdef WEBGL2\nflat in int MaterialIndex;\n\nstruct Material {\n vec4 diffuse,emissive,specular;\n vec4 parameters;\n};\n\nuniform Material Materials[Nmaterials];\n\nvec4 diffuse;\nvec3 specular;\nfloat roughness,metallic,fresnel0;\nvec4 emissive;\n\n#ifdef COLOR\nin vec4 Color;\n#endif\n\n#else\nIN vec4 diffuse;\nIN vec3 specular;\nIN float roughness,metallic,fresnel0;\nIN vec4 emissive;\n#endif\n\n#ifdef NORMAL\n\n#ifndef ORTHOGRAPHIC\nIN vec3 ViewPosition;\n#endif\nIN vec3 Normal;\n\nvec3 normal;\n\nstruct Light {\n vec3 direction;\n vec3 color;\n};\n\nuniform Light Lights[Nlights];\n\n#ifdef USE_IBL\nuniform sampler2D reflBRDFSampler;\nuniform sampler2D diffuseSampler;\nuniform sampler2D reflImgSampler;\n\nconst float pi=acos(-1.0);\nconst float piInv=1.0/pi;\nconst float twopi=2.0*pi;\nconst float twopiInv=1.0/twopi;\n\n// (x,y,z) -> (r,theta,phi);\n// theta -> [0,pi]: colatitude\n// phi -> [-pi,pi]: longitude\nvec3 cart2sphere(vec3 cart)\n{\n float x=cart.x;\n float y=cart.z;\n float z=cart.y;\n\n float r=length(cart);\n float theta=r > 0.0 ? acos(z/r) : 0.0;\n float phi=atan(y,x);\n\n return vec3(r,theta,phi);\n}\n\nvec2 normalizedAngle(vec3 cartVec)\n{\n vec3 sphericalVec=cart2sphere(cartVec);\n sphericalVec.y=sphericalVec.y*piInv;\n sphericalVec.z=0.75-sphericalVec.z*twopiInv;\n return sphericalVec.zy;\n}\n\nvec3 IBLColor(vec3 viewDir)\n{\n vec3 IBLDiffuse=diffuse.rgb*texture(diffuseSampler,normalizedAngle(normal)).rgb;\n vec3 reflectVec=normalize(reflect(-viewDir,normal));\n vec2 reflCoord=normalizedAngle(reflectVec);\n vec3 IBLRefl=textureLod(reflImgSampler,reflCoord,roughness*ROUGHNESS_STEP_COUNT).rgb;\n vec2 IBLbrdf=texture(reflBRDFSampler,vec2(dot(normal,viewDir),roughness)).rg;\n float specularMultiplier=fresnel0*IBLbrdf.x+IBLbrdf.y;\n vec3 dielectric=IBLDiffuse+specularMultiplier*IBLRefl;\n vec3 metal=diffuse.rgb*IBLRefl;\n return mix(dielectric,metal,metallic);\n}\n#else\nfloat Roughness2;\nfloat NDF_TRG(vec3 h)\n{\n float ndoth=max(dot(normal,h),0.0);\n float alpha2=Roughness2*Roughness2;\n float denom=ndoth*ndoth*(alpha2-1.0)+1.0;\n return denom != 0.0 ? alpha2/(denom*denom) : 0.0;\n}\n\nfloat GGX_Geom(vec3 v)\n{\n float ndotv=max(dot(v,normal),0.0);\n float ap=1.0+Roughness2;\n float k=0.125*ap*ap;\n return ndotv/((ndotv*(1.0-k))+k);\n}\n\nfloat Geom(vec3 v, vec3 l)\n{\n return GGX_Geom(v)*GGX_Geom(l);\n}\n\nfloat Fresnel(vec3 h, vec3 v, float fresnel0)\n{\n float a=1.0-max(dot(h,v),0.0);\n float b=a*a;\n return fresnel0+(1.0-fresnel0)*b*b*a;\n}\n\n// physical based shading using UE4 model.\nvec3 BRDF(vec3 viewDirection, vec3 lightDirection)\n{\n vec3 lambertian=diffuse.rgb;\n vec3 h=normalize(lightDirection+viewDirection);\n\n float omegain=max(dot(viewDirection,normal),0.0);\n float omegaln=max(dot(lightDirection,normal),0.0);\n\n float D=NDF_TRG(h);\n float G=Geom(viewDirection,lightDirection);\n float F=Fresnel(h,viewDirection,fresnel0);\n\n float denom=4.0*omegain*omegaln;\n float rawReflectance=denom > 0.0 ? (D*G)/denom : 0.0;\n\n vec3 dielectric=mix(lambertian,rawReflectance*specular,F);\n vec3 metal=rawReflectance*diffuse.rgb;\n\n return mix(dielectric,metal,metallic);\n}\n#endif\n\n#endif\n\nvoid main(void)\n{\n#ifdef WEBGL2\n#ifdef NORMAL\n Material m;\n#ifdef TRANSPARENT\n m=Materials[abs(MaterialIndex)-1];\n emissive=m.emissive;\n if(MaterialIndex >= 0)\n diffuse=m.diffuse;\n else {\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n }\n#else\n m=Materials[MaterialIndex];\n emissive=m.emissive;\n#ifdef COLOR\n diffuse=Color;\n#if nlights == 0\n emissive += Color;\n#endif\n#else\n diffuse=m.diffuse;\n#endif // COLOR\n#endif // TRANSPARENT\n specular=m.specular.rgb;\n vec4 parameters=m.parameters;\n roughness=1.0-parameters[0];\n metallic=parameters[1];\n fresnel0=parameters[2];\n#else\n emissive=Materials[MaterialIndex].emissive;\n#endif // NORMAL\n#endif // WEBGL2\n\n#if defined(NORMAL) && nlights > 0\n normal=normalize(Normal);\n normal=gl_FrontFacing ? normal : -normal;\n#ifdef ORTHOGRAPHIC\n vec3 viewDir=vec3(0.0,0.0,1.0);\n#else\n vec3 viewDir=-normalize(ViewPosition);\n#endif\n\nvec3 color;\n#ifdef USE_IBL\n color=IBLColor(viewDir);\n#else\n Roughness2=roughness*roughness;\n color=emissive.rgb;\n for(int i=0; i < nlights; ++i) {\n Light Li=Lights[i];\n vec3 L=Li.direction;\n float cosTheta=max(dot(normal,L),0.0);\n vec3 radiance=cosTheta*Li.color;\n color += BRDF(viewDir,L)*radiance;\n }\n#endif\n OUTVALUE=vec4(color,diffuse.a);\n#else\n OUTVALUE=emissive;\n#endif\n}\n";!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var i=e();for(var n in i)("object"==typeof exports?exports:t)[n]=i[n]}}("undefined"!=typeof self?self:this,(function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var r=e[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setMatrixArrayType=function(t){e.ARRAY_TYPE=t},e.toRadian=function(t){return t*r},e.equals=function(t,e){return Math.abs(t-e)<=n*Math.max(1,Math.abs(t),Math.abs(e))};var n=e.EPSILON=1e-6;e.ARRAY_TYPE="undefined"!=typeof Float32Array?Float32Array:Array,e.RANDOM=Math.random;var r=Math.PI/180},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mat4=e.mat3=void 0;var n=s(i(2)),r=s(i(3));function s(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}e.mat3=n,e.mat4=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new n.ARRAY_TYPE(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},e.fromMat4=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t},e.invert=function(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=c*a-o*l,m=-c*s+o*h,f=l*s-a*h,u=i*d+n*m+r*f;if(!u)return null;return u=1/u,t[0]=d*u,t[1]=(-c*n+r*l)*u,t[2]=(o*n-r*a)*u,t[3]=m*u,t[4]=(c*i-r*h)*u,t[5]=(-o*i+r*s)*u,t[6]=f*u,t[7]=(-l*i+n*h)*u,t[8]=(a*i-n*s)*u,t};var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=function(){var t=new n.ARRAY_TYPE(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.identity=function(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.invert=function(t,e){var i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],h=e[6],l=e[7],c=e[8],d=e[9],m=e[10],f=e[11],u=e[12],p=e[13],v=e[14],x=e[15],g=i*o-n*a,w=i*h-r*a,M=i*l-s*a,b=n*h-r*o,R=n*l-s*o,T=r*l-s*h,y=c*p-d*u,A=c*v-m*u,E=c*x-f*u,I=d*v-m*p,L=d*x-f*p,N=m*x-f*v,O=g*N-w*L+M*I+b*E-R*A+T*y;if(!O)return null;return O=1/O,t[0]=(o*N-h*L+l*I)*O,t[1]=(r*L-n*N-s*I)*O,t[2]=(p*T-v*R+x*b)*O,t[3]=(m*R-d*T-f*b)*O,t[4]=(h*E-a*N-l*A)*O,t[5]=(i*N-r*E+s*A)*O,t[6]=(v*M-u*T-x*w)*O,t[7]=(c*T-m*M+f*w)*O,t[8]=(a*L-o*E+l*y)*O,t[9]=(n*E-i*L-s*y)*O,t[10]=(u*R-p*M+x*g)*O,t[11]=(d*M-c*R-f*g)*O,t[12]=(o*A-a*I-h*y)*O,t[13]=(i*I-n*A+r*y)*O,t[14]=(p*w-u*b-v*g)*O,t[15]=(c*b-d*w+m*g)*O,t},e.multiply=r,e.translate=function(t,e,i){var n=i[0],r=i[1],s=i[2],a=void 0,o=void 0,h=void 0,l=void 0,c=void 0,d=void 0,m=void 0,f=void 0,u=void 0,p=void 0,v=void 0,x=void 0;e===t?(t[12]=e[0]*n+e[4]*r+e[8]*s+e[12],t[13]=e[1]*n+e[5]*r+e[9]*s+e[13],t[14]=e[2]*n+e[6]*r+e[10]*s+e[14],t[15]=e[3]*n+e[7]*r+e[11]*s+e[15]):(a=e[0],o=e[1],h=e[2],l=e[3],c=e[4],d=e[5],m=e[6],f=e[7],u=e[8],p=e[9],v=e[10],x=e[11],t[0]=a,t[1]=o,t[2]=h,t[3]=l,t[4]=c,t[5]=d,t[6]=m,t[7]=f,t[8]=u,t[9]=p,t[10]=v,t[11]=x,t[12]=a*n+c*r+u*s+e[12],t[13]=o*n+d*r+p*s+e[13],t[14]=h*n+m*r+v*s+e[14],t[15]=l*n+f*r+x*s+e[15]);return t},e.rotate=function(t,e,i,r){var s,a,o,h,l,c,d,m,f,u,p,v,x,g,w,M,b,R,T,y,A,E,I,L,N=r[0],O=r[1],_=r[2],P=Math.sqrt(N*N+O*O+_*_);if(Math.abs(P)<n.EPSILON)return null;N*=P=1/P,O*=P,_*=P,s=Math.sin(i),a=Math.cos(i),o=1-a,h=e[0],l=e[1],c=e[2],d=e[3],m=e[4],f=e[5],u=e[6],p=e[7],v=e[8],x=e[9],g=e[10],w=e[11],M=N*N*o+a,b=O*N*o+_*s,R=_*N*o-O*s,T=N*O*o-_*s,y=O*O*o+a,A=_*O*o+N*s,E=N*_*o+O*s,I=O*_*o-N*s,L=_*_*o+a,t[0]=h*M+m*b+v*R,t[1]=l*M+f*b+x*R,t[2]=c*M+u*b+g*R,t[3]=d*M+p*b+w*R,t[4]=h*T+m*y+v*A,t[5]=l*T+f*y+x*A,t[6]=c*T+u*y+g*A,t[7]=d*T+p*y+w*A,t[8]=h*E+m*I+v*L,t[9]=l*E+f*I+x*L,t[10]=c*E+u*I+g*L,t[11]=d*E+p*I+w*L,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]);return t},e.fromTranslation=function(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},e.fromRotation=function(t,e,i){var r,s,a,o=i[0],h=i[1],l=i[2],c=Math.sqrt(o*o+h*h+l*l);if(Math.abs(c)<n.EPSILON)return null;return o*=c=1/c,h*=c,l*=c,r=Math.sin(e),s=Math.cos(e),a=1-s,t[0]=o*o*a+s,t[1]=h*o*a+l*r,t[2]=l*o*a-h*r,t[3]=0,t[4]=o*h*a-l*r,t[5]=h*h*a+s,t[6]=l*h*a+o*r,t[7]=0,t[8]=o*l*a+h*r,t[9]=h*l*a-o*r,t[10]=l*l*a+s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},e.frustum=function(t,e,i,n,r,s,a){var o=1/(i-e),h=1/(r-n),l=1/(s-a);return t[0]=2*s*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=2*s*h,t[6]=0,t[7]=0,t[8]=(i+e)*o,t[9]=(r+n)*h,t[10]=(a+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=a*s*2*l,t[15]=0,t},e.ortho=function(t,e,i,n,r,s,a){var o=1/(e-i),h=1/(n-r),l=1/(s-a);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*h,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+i)*o,t[13]=(r+n)*h,t[14]=(a+s)*l,t[15]=1,t};var n=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}(i(0));function r(t,e,i){var n=e[0],r=e[1],s=e[2],a=e[3],o=e[4],h=e[5],l=e[6],c=e[7],d=e[8],m=e[9],f=e[10],u=e[11],p=e[12],v=e[13],x=e[14],g=e[15],w=i[0],M=i[1],b=i[2],R=i[3];return t[0]=w*n+M*o+b*d+R*p,t[1]=w*r+M*h+b*m+R*v,t[2]=w*s+M*l+b*f+R*x,t[3]=w*a+M*c+b*u+R*g,w=i[4],M=i[5],b=i[6],R=i[7],t[4]=w*n+M*o+b*d+R*p,t[5]=w*r+M*h+b*m+R*v,t[6]=w*s+M*l+b*f+R*x,t[7]=w*a+M*c+b*u+R*g,w=i[8],M=i[9],b=i[10],R=i[11],t[8]=w*n+M*o+b*d+R*p,t[9]=w*r+M*h+b*m+R*v,t[10]=w*s+M*l+b*f+R*x,t[11]=w*a+M*c+b*u+R*g,w=i[12],M=i[13],b=i[14],R=i[15],t[12]=w*n+M*o+b*d+R*p,t[13]=w*r+M*h+b*m+R*v,t[14]=w*s+M*l+b*f+R*x,t[15]=w*a+M*c+b*u+R*g,t}}])})),function(){document.asy={canvasWidth:0,canvasHeight:0,absolute:!1,minBound:[0,0,0],maxBound:[0,0,0],orthographic:!1,angleOfView:0,initialZoom:0,viewportShift:[0,0],viewportMargin:[0,0],background:[],zoomFactor:0,zoomPinchFactor:0,zoomPinchCap:0,zoomStep:0,shiftHoldDistance:0,shiftWaitTime:0,vibrateTime:0,ibl:!1,webgl2:!1,imageURL:"",image:"",Transform:[],Centers:[]};let t,e,i,n,r,s,a,o=document.asy,h=[],l=[],c=[],d=0,m=2;const f=Math.acos(-1),u=f/180,p=Math.ceil(1-Math.log2(Number.EPSILON));let v,x,g,w,M,b,R,T=mat4.create(),y=mat4.create(),A=mat4.create(),E=mat4.create(),I=mat3.create(),L=mat3.create(),N=mat4.create(),O=mat4.create(),_={x:0,y:0,z:0},P={x:0,y:0},S={xmin:0,xmax:0,ymin:0,ymax:0,zmin:0,zmax:0},U=!0,V=0,B=!1,D=null,C=null,F=[],z=[],H=[],X=[],G=null,W=null,j=null;function k(){o.embedded||st(),rt(o.ibl)}class Y{constructor(t,e,i,n,r,s){this.diffuse=t,this.emissive=e,this.specular=i,this.shininess=n,this.metallic=r,this.fresnel0=s}setUniform(e,i){let n=n=>t.getUniformLocation(e,"Materials["+i+"]."+n);t.uniform4fv(n("diffuse"),new Float32Array(this.diffuse)),t.uniform4fv(n("emissive"),new Float32Array(this.emissive)),t.uniform4fv(n("specular"),new Float32Array(this.specular)),t.uniform4f(n("parameters"),this.shininess,this.metallic,this.fresnel0,0)}}let $,q,K,Z,Q,J,tt,et,it;class nt{constructor(t,e){this.direction=t,this.color=e}setUniform(e,i){let n=n=>t.getUniformLocation(e,"Lights["+i+"]."+n);t.uniform3fv(n("direction"),new Float32Array(this.direction)),t.uniform3fv(n("color"),new Float32Array(this.color))}}function rt(e=!1){let i=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS);r=Math.floor((i-14)/4),m=Math.min(Math.max(m,c.length),r),pixelOpt=["WIDTH"],materialOpt=["NORMAL"],colorOpt=["NORMAL","COLOR"],transparentOpt=["NORMAL","COLOR","TRANSPARENT"],e&&(materialOpt.push("USE_IBL"),transparentOpt.push("USE_IBL")),xe=Lt(pixelOpt),ge=Lt(materialOpt),we=Lt(colorOpt),Me=Lt(transparentOpt)}function st(){t.deleteProgram(Me),t.deleteProgram(we),t.deleteProgram(ge),t.deleteProgram(xe)}function at(){let i=o.webgl2?window.top.document.asygl2[e]:window.top.document.asygl[e];i.gl=t,i.nlights=l.length,i.Nmaterials=m,i.maxMaterials=r,i.pixelShader=xe,i.materialShader=ge,i.colorShader=we,i.transparentShader=Me}function ot(t,e){let i;return o.webgl2&&(i=t.getContext("webgl2",{alpha:e}),o.embedded&&!i)?(o.webgl2=!1,o.ibl=!1,ht(!1),null):(i||(o.webgl2=!1,o.ibl=!1,i=t.getContext("webgl",{alpha:e})),i||alert("Could not initialize WebGL"),i)}function ht(s=!0){if(o.ibl&&(o.webgl2=!0),e=o.background[3]<1,o.embedded){let a=window.top.document;if(s&&(n=o.canvas.getContext("2d")),i=o.webgl2?a.offscreen2:a.offscreen,i||(i=a.createElement("canvas"),o.webgl2?a.offscreen2=i:a.offscreen=i),o.webgl2?a.asygl2||(a.asygl2=Array(2)):a.asygl||(a.asygl=Array(2)),asygl=o.webgl2?a.asygl2:a.asygl,asygl[e]&&asygl[e].gl)!function(){let i=o.webgl2?window.top.document.asygl2[e]:window.top.document.asygl[e];t=i.gl,d=i.nlights,m=i.Nmaterials,r=i.maxMaterials,xe=i.pixelShader,ge=i.materialShader,we=i.colorShader,Me=i.transparentShader}(),(l.length!=d||Math.min(c.length,r)>m)&&(rt(),at());else{if(rc=ot(i,e),!rc)return;t=rc,rt(),o.webgl2?a.asygl2[e]={}:a.asygl[e]={},at()}}else t=ot(o.canvas,e),rt();$=t.getExtension("OES_element_index_uint"),q=t.TRIANGLES,K=new mt(t.POINTS),Z=new mt(t.LINES),Q=new mt,J=new mt,tt=new mt,et=new mt}function lt(t,e,i,n=[]){let r=o.webgl2?"300 es":"100",s=Array(...n),a=[["nlights",0==V?l.length:0],["Nmaterials",m]],h=[["int","Nlights",Math.max(l.length,1)]];o.webgl2&&s.push("WEBGL2"),o.ibl&&a.push(["ROUGHNESS_STEP_COUNT",8..toFixed(2)]),o.orthographic&&s.push("ORTHOGRAPHIC"),macros_str=a.map(t=>`#define ${t[0]} ${t[1]}`).join("\n"),define_str=s.map(t=>"#define "+t).join("\n"),const_str=h.map(t=>`const ${t[0]} ${t[1]}=${t[2]};`).join("\n"),ext_str=[].map(t=>`#extension ${t}: enable`).join("\n"),shaderSrc=`#version ${r}\n${ext_str}\n${define_str}\n${const_str}\n${macros_str}\n\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\n \n${e}\n `;let c=t.createShader(i);return t.shaderSource(c,shaderSrc),t.compileShader(c),t.getShaderParameter(c,t.COMPILE_STATUS)?c:(alert(t.getShaderInfoLog(c)),null)}function ct(e,i,n,r=t.ARRAY_BUFFER){return e.length>0&&(0==i&&(i=t.createBuffer(),n=!0),t.bindBuffer(r,i),n&&t.bufferData(r,e,t.STATIC_DRAW)),i}function dt(e,i,n=e.indices){if(0==e.indices.length)return;let r=i!=xe;!function(e,i){let n=i==xe;t.useProgram(i),t.enableVertexAttribArray(Tt),n&&t.enableVertexAttribArray(It);let r=!n&&l.length>0;r&&t.enableVertexAttribArray(yt);t.enableVertexAttribArray(At),i.projViewMatUniform=t.getUniformLocation(i,"projViewMat"),i.viewMatUniform=t.getUniformLocation(i,"viewMat"),i.normMatUniform=t.getUniformLocation(i,"normMat"),(i==we||i==Me)&&t.enableVertexAttribArray(Et);if(r)for(let t=0;t<l.length;++t)l[t].setUniform(i,t);for(let t=0;t<e.materials.length;++t)e.materials[t].setUniform(i,t);t.uniformMatrix4fv(i.projViewMatUniform,!1,E),t.uniformMatrix4fv(i.viewMatUniform,!1,A),t.uniformMatrix3fv(i.normMatUniform,!1,I)}(e,i),null!=W&&(t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,j),t.uniform1i(t.getUniformLocation(i,"reflBRDFSampler"),0),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,W),t.uniform1i(t.getUniformLocation(i,"diffuseSampler"),1),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,G),t.uniform1i(t.getUniformLocation(i,"reflImgSampler"),2));let s=U||e.partial||!e.rendered;e.verticesBuffer=ct(new Float32Array(e.vertices),e.verticesBuffer,s),t.vertexAttribPointer(Tt,3,t.FLOAT,!1,r?24:16,0),r?l.length>0&&t.vertexAttribPointer(yt,3,t.FLOAT,!1,24,12):t.vertexAttribPointer(It,1,t.FLOAT,!1,16,12),e.materialsBuffer=ct(new Int16Array(e.materialIndices),e.materialsBuffer,s),t.vertexAttribPointer(At,1,t.SHORT,!1,2,0),i!=we&&i!=Me||(e.colorsBuffer=ct(new Float32Array(e.colors),e.colorsBuffer,s),t.vertexAttribPointer(Et,4,t.FLOAT,!0,0,0)),e.indicesBuffer=ct($?new Uint32Array(n):new Uint16Array(n),e.indicesBuffer,s,t.ELEMENT_ARRAY_BUFFER),e.rendered=!0,t.drawElements(r?V?t.LINES:e.type:t.POINTS,n.length,$?t.UNSIGNED_INT:t.UNSIGNED_SHORT,0)}class mt{constructor(t){this.type=t||q,this.verticesBuffer=0,this.materialsBuffer=0,this.colorsBuffer=0,this.indicesBuffer=0,this.rendered=!1,this.partial=!1,this.clear()}clear(){this.vertices=[],this.materialIndices=[],this.colors=[],this.indices=[],this.nvertices=0,this.materials=[],this.materialTable=[]}vertex(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(it),this.nvertices++}Vertex(t,e,i=[0,0,0,0]){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e[0]),this.vertices.push(e[1]),this.vertices.push(e[2]),this.materialIndices.push(it),this.colors.push(i[0]),this.colors.push(i[1]),this.colors.push(i[2]),this.colors.push(i[3]),this.nvertices++}vertex0(t,e){return this.vertices.push(t[0]),this.vertices.push(t[1]),this.vertices.push(t[2]),this.vertices.push(e),this.materialIndices.push(it),this.nvertices++}iVertex(t,e,i,n=[0,0,0,0]){let r=6*t;this.vertices[r]=e[0],this.vertices[r+1]=e[1],this.vertices[r+2]=e[2],this.vertices[r+3]=i[0],this.vertices[r+4]=i[1],this.vertices[r+5]=i[2],this.materialIndices[t]=it;let s=4*t;this.colors[s]=n[0],this.colors[s+1]=n[1],this.colors[s+2]=n[2],this.colors[s+3]=n[3],this.indices.push(t)}append(t){ft(this.vertices,t.vertices),ft(this.materialIndices,t.materialIndices),ft(this.colors,t.colors),function(t,e,i){let n=t.length,r=e.length;t.length+=e.length;for(let s=0;s<r;++s)t[n+s]=e[s]+i}(this.indices,t.indices,this.nvertices),this.nvertices+=t.nvertices}}function ft(t,e){let i=t.length,n=e.length;t.length+=n;for(let r=0;r<n;++r)t[i+r]=e[r]}class ut{constructor(){this.data=new mt,this.Onscreen=!1,this.m=[]}offscreen(t){let e=E,i=t[0],n=i[0],r=i[1],s=i[2],a=1/(e[3]*n+e[7]*r+e[11]*s+e[15]);this.x=this.X=(e[0]*n+e[4]*r+e[8]*s+e[12])*a,this.y=this.Y=(e[1]*n+e[5]*r+e[9]*s+e[13])*a;for(let i=1,n=t.length;i<n;++i){let n=t[i],r=n[0],s=n[1],a=n[2],o=1/(e[3]*r+e[7]*s+e[11]*a+e[15]),h=(e[0]*r+e[4]*s+e[8]*a+e[12])*o,l=(e[1]*r+e[5]*s+e[9]*a+e[13])*o;h<this.x?this.x=h:h>this.X&&(this.X=h),l<this.y?this.y=l:l>this.Y&&(this.Y=l)}return(this.X<-1.01||this.x>1.01||this.Y<-1.01||this.y>1.01)&&(this.Onscreen=!1,!0)}T(t){let e=this.c[0],i=this.c[1],n=this.c[2],r=t[0]-e,s=t[1]-i,a=t[2]-n;return[r*I[0]+s*I[3]+a*I[6]+e,r*I[1]+s*I[4]+a*I[7]+i,r*I[2]+s*I[5]+a*I[8]+n]}Tcorners(t,e){return[this.T(t),this.T([t[0],t[1],e[2]]),this.T([t[0],e[1],t[2]]),this.T([t[0],e[1],e[2]]),this.T([e[0],t[1],t[2]]),this.T([e[0],t[1],e[2]]),this.T([e[0],e[1],t[2]]),this.T(e)]}setMaterial(t,e){null==t.materialTable[this.MaterialIndex]&&(t.materials.length>=m&&(t.partial=!0,e()),t.materialTable[this.MaterialIndex]=t.materials.length,t.materials.push(c[this.MaterialIndex])),it=t.materialTable[this.MaterialIndex]}render(){let t;var e,i;if(this.setMaterialIndex(),0==this.CenterIndex?(e=this.Min,i=this.Max,t=[e,[e[0],e[1],i[2]],[e[0],i[1],e[2]],[e[0],i[1],i[2]],[i[0],e[1],e[2]],[i[0],e[1],i[2]],[i[0],i[1],e[2]],i]):(this.c=o.Centers[this.CenterIndex-1],t=this.Tcorners(this.Min,this.Max)),this.offscreen(t))return this.data.clear(),void this.notRendered();let n,r=this.controlpoints;if(0==this.CenterIndex){if(!U&&this.Onscreen)return void this.append();n=r}else{let t=r.length;n=Array(t);for(let e=0;e<t;++e)n[e]=this.T(r[e])}let s=o.orthographic?1:this.Min[2]/o.maxBound[2],a=.75*Math.hypot(s*(S.xmax-S.xmin),s*(S.ymax-S.ymin))/b;this.res2=a*a,this.Epsilon=.1*a,this.data.clear(),this.notRendered(),this.Onscreen=!0,this.process(n)}}function pt(t,e){let i=t[0],n=t.length;for(let r=1;r<n;++r)i=e(i,t[r]);return i}class vt extends ut{constructor(t,e,i,n,r,s){super(),this.controlpoints=t,this.CenterIndex=e,this.MaterialIndex=i,this.color=n;let a=t.length;if(n){let t=n[0][3]+n[1][3]+n[2][3];this.transparent=16==a||4==a?t+n[3][3]<1020:t<765}else this.transparent=c[i].diffuse[3]<1;this.vertex=this.transparent?this.data.Vertex.bind(this.data):this.data.vertex.bind(this.data);let o=this.L2norm2(this.controlpoints),h=Math.sqrt(1e3*Number.EPSILON*o);this.epsilon=o*Number.EPSILON,this.Min=r||this.Bounds(this.controlpoints,Math.min,h),this.Max=s||this.Bounds(this.controlpoints,Math.max,h)}setMaterialIndex(){this.transparent?this.setMaterial(tt,Ie):this.color?this.setMaterial(J,Ae):this.setMaterial(Q,ye)}cornerbound(t,e){let i=e(t[0],t[3]);return i=e(i,t[12]),e(i,t[15])}controlbound(t,e){let i=e(t[1],t[2]);return i=e(i,t[4]),i=e(i,t[5]),i=e(i,t[6]),i=e(i,t[7]),i=e(i,t[8]),i=e(i,t[9]),i=e(i,t[10]),i=e(i,t[11]),i=e(i,t[13]),e(i,t[14])}bound(t,e,i,n,r){if(i=e(i,this.cornerbound(t,e)),e(-1,1)*(i-this.controlbound(t,e))>=-n||0==r)return i;--r,n*=2;let s=new Nt(t[0],t[1],t[2],t[3]),a=new Nt(t[4],t[5],t[6],t[7]),o=new Nt(t[8],t[9],t[10],t[11]),h=new Nt(t[12],t[13],t[14],t[15]),l=new Nt(t[0],t[4],t[8],t[12]),c=new Nt(s.m0,a.m0,o.m0,h.m0),d=new Nt(s.m3,a.m3,o.m3,h.m3),m=new Nt(s.m5,a.m5,o.m5,h.m5),f=new Nt(s.m4,a.m4,o.m4,h.m4),u=new Nt(s.m2,a.m2,o.m2,h.m2),p=new Nt(t[3],t[7],t[11],t[15]),v=[t[0],s.m0,s.m3,s.m5,l.m0,c.m0,d.m0,m.m0,l.m3,c.m3,d.m3,m.m3,l.m5,c.m5,d.m5,m.m5];i=this.bound(v,e,i,n,r);let x=[l.m5,c.m5,d.m5,m.m5,l.m4,c.m4,d.m4,m.m4,l.m2,c.m2,d.m2,m.m2,t[12],h.m0,h.m3,h.m5];i=this.bound(x,e,i,n,r);let g=[m.m5,f.m5,u.m5,p.m5,m.m4,f.m4,u.m4,p.m4,m.m2,f.m2,u.m2,p.m2,h.m5,h.m4,h.m2,t[15]];i=this.bound(g,e,i,n,r);let w=[s.m5,s.m4,s.m2,t[3],m.m0,f.m0,u.m0,p.m0,m.m3,f.m3,u.m3,p.m3,m.m5,f.m5,u.m5,p.m5];return this.bound(w,e,i,n,r)}cornerboundtri(t,e){let i=e(t[0],t[6]);return e(i,t[9])}controlboundtri(t,e){let i=e(t[1],t[2]);return i=e(i,t[3]),i=e(i,t[4]),i=e(i,t[5]),i=e(i,t[7]),e(i,t[8])}boundtri(t,e,i,n,r){if(i=e(i,this.cornerboundtri(t,e)),e(-1,1)*(i-this.controlboundtri(t,e))>=-n||0==r)return i;--r,n*=2;let s=new _t(t),a=[s.l003,s.l102,s.l012,s.l201,s.l111,s.l021,s.l300,s.l210,s.l120,s.l030];i=this.boundtri(a,e,i,n,r);let o=[s.l300,s.r102,s.r012,s.r201,s.r111,s.r021,s.r300,s.r210,s.r120,s.r030];i=this.boundtri(o,e,i,n,r);let h=[s.l030,s.u102,s.u012,s.u201,s.u111,s.u021,s.r030,s.u210,s.u120,s.u030];i=this.boundtri(h,e,i,n,r);let l=[s.r030,s.u201,s.r021,s.u102,s.c111,s.r012,s.l030,s.l120,s.l210,s.l300];return this.boundtri(l,e,i,n,r)}Bounds(t,e,i){let n=Array(3),r=t.length,s=Array(r);for(let a=0;a<3;++a){for(let e=0;e<r;++e)s[e]=t[e][a];n[a]=16==r?this.bound(s,e,s[0],i,p):10==r?this.boundtri(s,e,s[0],i,p):pt(s,e)}return[n[0],n[1],n[2]]}L2norm2(t){let e=t[0],i=0,n=t.length;for(let r=1;r<n;++r)i=Math.max(i,St([t[r][0]-e[0],t[r][1]-e[1],t[r][2]-e[2]]));return i}processTriangle(t){let e=t[0],i=t[1],n=t[2],r=Pt(Vt([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[n[0]-e[0],n[1]-e[1],n[2]-e[2]]));if(!this.offscreen([e,i,n])){let t,s,a;this.color?(t=this.data.Vertex(e,r,this.color[0]),s=this.data.Vertex(i,r,this.color[1]),a=this.data.Vertex(n,r,this.color[2])):(t=this.vertex(e,r),s=this.vertex(i,r),a=this.vertex(n,r)),0==V?(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(a)):(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(t)),this.append()}}processQuad(t){let e=t[0],i=t[1],n=t[2],r=t[3],s=Vt([i[0]-e[0],i[1]-e[1],i[2]-e[2]],[n[0]-i[0],n[1]-i[1],n[2]-i[2]]),a=Vt([n[0]-r[0],n[1]-r[1],n[2]-r[2]],[r[0]-e[0],r[1]-e[1],r[2]-e[2]]),o=Pt([s[0]+a[0],s[1]+a[1],s[2]+a[2]]);if(!this.offscreen([e,i,n,r])){let t,s,a,h;this.color?(t=this.data.Vertex(e,o,this.color[0]),s=this.data.Vertex(i,o,this.color[1]),a=this.data.Vertex(n,o,this.color[2]),h=this.data.Vertex(r,o,this.color[3])):(t=this.vertex(e,o),s=this.vertex(i,o),a=this.vertex(n,o),h=this.vertex(r,o)),0==V?(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(t),this.data.indices.push(a),this.data.indices.push(h)):(this.data.indices.push(t),this.data.indices.push(s),this.data.indices.push(s),this.data.indices.push(a),this.data.indices.push(a),this.data.indices.push(h),this.data.indices.push(h),this.data.indices.push(t)),this.append()}}curve(t,e,i,n,r){new wt([t[e],t[i],t[n],t[r]],0,it,this.Min,this.Max).render()}process(t){if(this.transparent&&1!=V&&(it=this.color?-1-it:1+it),10==t.length)return this.process3(t);if(3==t.length)return this.processTriangle(t);if(4==t.length)return this.processQuad(t);if(1==V)return this.curve(t,0,4,8,12),this.curve(t,12,13,14,15),this.curve(t,15,11,7,3),void this.curve(t,3,2,1,0);let e=t[0],i=t[3],n=t[12],r=t[15],s=this.normal(i,t[2],t[1],e,t[4],t[8],n);St(s)<this.epsilon&&(s=this.normal(i,t[2],t[1],e,t[13],t[14],r),St(s)<this.epsilon&&(s=this.normal(r,t[11],t[7],i,t[4],t[8],n)));let a=this.normal(e,t[4],t[8],n,t[13],t[14],r);St(a)<this.epsilon&&(a=this.normal(e,t[4],t[8],n,t[11],t[7],i),St(a)<this.epsilon&&(a=this.normal(i,t[2],t[1],e,t[13],t[14],r)));let o=this.normal(n,t[13],t[14],r,t[11],t[7],i);St(o)<this.epsilon&&(o=this.normal(n,t[13],t[14],r,t[2],t[1],e),St(o)<this.epsilon&&(o=this.normal(e,t[4],t[8],n,t[11],t[7],i)));let h=this.normal(r,t[11],t[7],i,t[2],t[1],e);if(St(h)<this.epsilon&&(h=this.normal(r,t[11],t[7],i,t[4],t[8],n),St(h)<this.epsilon&&(h=this.normal(n,t[13],t[14],r,t[2],t[1],e))),this.color){let l=this.color[0],c=this.color[1],d=this.color[2],m=this.color[3],f=this.data.Vertex(e,s,l),u=this.data.Vertex(n,a,c),p=this.data.Vertex(r,o,d),v=this.data.Vertex(i,h,m);this.Render(t,f,u,p,v,e,n,r,i,!1,!1,!1,!1,l,c,d,m)}else{let l=this.vertex(e,s),c=this.vertex(n,a),d=this.vertex(r,o),m=this.vertex(i,h);this.Render(t,l,c,d,m,e,n,r,i,!1,!1,!1,!1)}this.data.indices.length>0&&this.append()}append(){this.transparent?tt.append(this.data):this.color?J.append(this.data):Q.append(this.data)}notRendered(){this.transparent?tt.rendered=!1:this.color?J.rendered=!1:Q.rendered=!1}Render(t,e,i,n,r,s,a,o,h,l,c,d,m,f,u,p,v){let x=this.Distance(t);if(x[0]<this.res2&&x[1]<this.res2)this.offscreen([s,a,o])||(0==V?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(n)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(n))),this.offscreen([s,o,h])||(0==V?(this.data.indices.push(e),this.data.indices.push(n),this.data.indices.push(r)):(this.data.indices.push(n),this.data.indices.push(r),this.data.indices.push(r),this.data.indices.push(e)));else{if(this.offscreen(t))return;let g=t[0],w=t[3],M=t[12],b=t[15];if(x[0]<this.res2){let x=new Ot(g,t[1],t[2],w),R=new Ot(t[4],t[5],t[6],t[7]),T=new Ot(t[8],t[9],t[10],t[11]),y=new Ot(M,t[13],t[14],b),A=[g,x.m0,x.m3,x.m5,t[4],R.m0,R.m3,R.m5,t[8],T.m0,T.m3,T.m5,M,y.m0,y.m3,y.m5],E=[x.m5,x.m4,x.m2,w,R.m5,R.m4,R.m2,t[7],T.m5,T.m4,T.m2,t[11],y.m5,y.m4,y.m2,b],I=this.normal(A[12],A[13],A[14],A[15],A[11],A[7],A[3]);St(I)<=this.epsilon&&(I=this.normal(A[12],A[13],A[14],A[15],A[2],A[1],A[0]),St(I)<=this.epsilon&&(I=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3])));let L=this.normal(E[3],E[2],E[1],E[0],E[4],E[8],E[12]);St(L)<=this.epsilon&&(L=this.normal(E[3],E[2],E[1],E[0],E[13],E[14],E[15]),St(L)<=this.epsilon&&(L=this.normal(E[15],E[11],E[7],E[3],E[4],E[8],E[12])));let N=this.Epsilon,O=[.5*(a[0]+o[0]),.5*(a[1]+o[1]),.5*(a[2]+o[2])];if(!c)if(c=zt(M,t[13],t[14],b)<this.res2){let t=Pt(this.differential(E[12],E[8],E[4],E[0]));O=[O[0]-N*t[0],O[1]-N*t[1],O[2]-N*t[2]]}else O=A[15];let _=[.5*(h[0]+s[0]),.5*(h[1]+s[1]),.5*(h[2]+s[2])];if(!m)if(m=zt(g,t[1],t[2],w)<this.res2){let t=Pt(this.differential(A[3],A[7],A[11],A[15]));_=[_[0]-N*t[0],_[1]-N*t[1],_[2]-N*t[2]]}else _=E[0];if(f){let t=Array(4),x=Array(4);for(let e=0;e<4;++e)t[e]=.5*(u[e]+p[e]),x[e]=.5*(v[e]+f[e]);let g=this.data.Vertex(O,I,t),w=this.data.Vertex(_,L,x);this.Render(A,e,i,g,w,s,a,O,_,l,c,!1,m,f,u,t,x),this.Render(E,w,g,n,r,_,O,o,h,!1,c,d,m,x,t,p,v)}else{let t=this.vertex(O,I),f=this.vertex(_,L);this.Render(A,e,i,t,f,s,a,O,_,l,c,!1,m),this.Render(E,f,t,n,r,_,O,o,h,!1,c,d,m)}return}if(x[1]<this.res2){let x=new Ot(g,t[4],t[8],M),R=new Ot(t[1],t[5],t[9],t[13]),T=new Ot(t[2],t[6],t[10],t[14]),y=new Ot(w,t[7],t[11],b),A=[g,t[1],t[2],w,x.m0,R.m0,T.m0,y.m0,x.m3,R.m3,T.m3,y.m3,x.m5,R.m5,T.m5,y.m5],E=[x.m5,R.m5,T.m5,y.m5,x.m4,R.m4,T.m4,y.m4,x.m2,R.m2,T.m2,y.m2,M,t[13],t[14],b],I=this.normal(A[0],A[4],A[8],A[12],A[13],A[14],A[15]);St(I)<=this.epsilon&&(I=this.normal(A[0],A[4],A[8],A[12],A[11],A[7],A[3]),St(I)<=this.epsilon&&(I=this.normal(A[3],A[2],A[1],A[0],A[13],A[14],A[15])));let L=this.normal(E[15],E[11],E[7],E[3],E[2],E[1],E[0]);St(L)<=this.epsilon&&(L=this.normal(E[15],E[11],E[7],E[3],E[4],E[8],E[12]),St(L)<=this.epsilon&&(L=this.normal(E[12],E[13],E[14],E[15],E[2],E[1],E[0])));let N=this.Epsilon,O=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!l)if(l=zt(g,t[4],t[8],M)<this.res2){let t=Pt(this.differential(E[0],E[1],E[2],E[3]));O=[O[0]-N*t[0],O[1]-N*t[1],O[2]-N*t[2]]}else O=A[12];let _=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=zt(b,t[11],t[7],w)<this.res2){let t=Pt(this.differential(A[15],A[14],A[13],A[12]));_=[_[0]-N*t[0],_[1]-N*t[1],_[2]-N*t[2]]}else _=E[3];if(f){let t=Array(4),x=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),x[e]=.5*(p[e]+v[e]);let g=this.data.Vertex(O,I,t),w=this.data.Vertex(_,L,x);this.Render(A,e,g,w,r,s,O,_,h,l,!1,d,m,f,t,x,v),this.Render(E,g,i,n,w,O,a,o,_,l,c,d,!1,t,u,p,x)}else{let t=this.vertex(O,I),f=this.vertex(_,L);this.Render(A,e,t,f,r,s,O,_,h,l,!1,d,m),this.Render(E,t,i,n,f,O,a,o,_,l,c,d,!1)}return}let R=new Ot(g,t[1],t[2],w),T=new Ot(t[4],t[5],t[6],t[7]),y=new Ot(t[8],t[9],t[10],t[11]),A=new Ot(M,t[13],t[14],b),E=new Ot(g,t[4],t[8],M),I=new Ot(R.m0,T.m0,y.m0,A.m0),L=new Ot(R.m3,T.m3,y.m3,A.m3),N=new Ot(R.m5,T.m5,y.m5,A.m5),O=new Ot(R.m4,T.m4,y.m4,A.m4),_=new Ot(R.m2,T.m2,y.m2,A.m2),P=new Ot(w,t[7],t[11],b),S=[g,R.m0,R.m3,R.m5,E.m0,I.m0,L.m0,N.m0,E.m3,I.m3,L.m3,N.m3,E.m5,I.m5,L.m5,N.m5],U=[E.m5,I.m5,L.m5,N.m5,E.m4,I.m4,L.m4,N.m4,E.m2,I.m2,L.m2,N.m2,M,A.m0,A.m3,A.m5],V=[N.m5,O.m5,_.m5,P.m5,N.m4,O.m4,_.m4,P.m4,N.m2,O.m2,_.m2,P.m2,A.m5,A.m4,A.m2,b],B=[R.m5,R.m4,R.m2,w,N.m0,O.m0,_.m0,P.m0,N.m3,O.m3,_.m3,P.m3,N.m5,O.m5,_.m5,P.m5],D=S[15],C=this.normal(S[0],S[4],S[8],S[12],S[13],S[14],S[15]);St(C)<this.epsilon&&(C=this.normal(S[0],S[4],S[8],S[12],S[11],S[7],S[3]),St(C)<this.epsilon&&(C=this.normal(S[3],S[2],S[1],S[0],S[13],S[14],S[15])));let F=this.normal(U[12],U[13],U[14],U[15],U[11],U[7],U[3]);St(F)<this.epsilon&&(F=this.normal(U[12],U[13],U[14],U[15],U[2],U[1],U[0]),St(F)<this.epsilon&&(F=this.normal(U[0],U[4],U[8],U[12],U[11],U[7],U[3])));let z=this.normal(V[15],V[11],V[7],V[3],V[2],V[1],V[0]);St(z)<this.epsilon&&(z=this.normal(V[15],V[11],V[7],V[3],V[4],V[8],V[12]),St(z)<this.epsilon&&(z=this.normal(V[12],V[13],V[14],V[15],V[2],V[1],V[0])));let H=this.normal(B[3],B[2],B[1],B[0],B[4],B[8],B[12]);St(H)<this.epsilon&&(H=this.normal(B[3],B[2],B[1],B[0],B[13],B[14],B[15]),St(H)<this.epsilon&&(H=this.normal(B[15],B[11],B[7],B[3],B[4],B[8],B[12])));let X=this.normal(V[3],V[2],V[1],D,V[4],V[8],V[12]),G=this.Epsilon,W=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!l)if(l=zt(g,t[4],t[8],M)<this.res2){let t=Pt(this.differential(U[0],U[1],U[2],U[3]));W=[W[0]-G*t[0],W[1]-G*t[1],W[2]-G*t[2]]}else W=S[12];let j=[.5*(a[0]+o[0]),.5*(a[1]+o[1]),.5*(a[2]+o[2])];if(!c)if(c=zt(M,t[13],t[14],b)<this.res2){let t=Pt(this.differential(V[12],V[8],V[4],V[0]));j=[j[0]-G*t[0],j[1]-G*t[1],j[2]-G*t[2]]}else j=U[15];let k=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])];if(!d)if(d=zt(b,t[11],t[7],w)<this.res2){let t=Pt(this.differential(B[15],B[14],B[13],B[12]));k=[k[0]-G*t[0],k[1]-G*t[1],k[2]-G*t[2]]}else k=V[3];let Y=[.5*(h[0]+s[0]),.5*(h[1]+s[1]),.5*(h[2]+s[2])];if(!m)if(m=zt(g,t[1],t[2],w)<this.res2){let t=Pt(this.differential(S[3],S[7],S[11],S[15]));Y=[Y[0]-G*t[0],Y[1]-G*t[1],Y[2]-G*t[2]]}else Y=B[0];if(f){let t=Array(4),x=Array(4),g=Array(4),w=Array(4),M=Array(4);for(let e=0;e<4;++e)t[e]=.5*(f[e]+u[e]),x[e]=.5*(u[e]+p[e]),g[e]=.5*(p[e]+v[e]),w[e]=.5*(v[e]+f[e]),M[e]=.5*(t[e]+g[e]);let b=this.data.Vertex(W,C,t),R=this.data.Vertex(j,F,x),T=this.data.Vertex(k,z,g),y=this.data.Vertex(Y,H,w),A=this.data.Vertex(D,X,M);this.Render(S,e,b,A,y,s,W,D,Y,l,!1,!1,m,f,t,M,w),this.Render(U,b,i,R,A,W,a,j,D,l,c,!1,!1,t,u,x,M),this.Render(V,A,R,n,T,D,j,o,k,!1,c,d,!1,M,x,p,g),this.Render(B,y,A,T,r,Y,D,k,h,!1,!1,d,m,w,M,g,v)}else{let t=this.vertex(W,C),f=this.vertex(j,F),u=this.vertex(k,z),p=this.vertex(Y,H),v=this.vertex(D,X);this.Render(S,e,t,v,p,s,W,D,Y,l,!1,!1,m),this.Render(U,t,i,f,v,W,a,j,D,l,c,!1,!1),this.Render(V,v,f,n,u,D,j,o,k,!1,c,d,!1),this.Render(B,p,v,u,r,Y,D,k,h,!1,!1,d,m)}}}process3(t){if(1==V)return this.curve(t,0,1,3,6),this.curve(t,6,7,8,9),void this.curve(t,9,5,2,0);let e=t[0],i=t[6],n=t[9],r=this.normal(n,t[5],t[2],e,t[1],t[3],i),s=this.normal(e,t[1],t[3],i,t[7],t[8],n),a=this.normal(i,t[7],t[8],n,t[5],t[2],e);if(this.color){let o=this.color[0],h=this.color[1],l=this.color[2],c=this.data.Vertex(e,r,o),d=this.data.Vertex(i,s,h),m=this.data.Vertex(n,a,l);this.Render3(t,c,d,m,e,i,n,!1,!1,!1,o,h,l)}else{let o=this.vertex(e,r),h=this.vertex(i,s),l=this.vertex(n,a);this.Render3(t,o,h,l,e,i,n,!1,!1,!1)}this.data.indices.length>0&&this.append()}Render3(t,e,i,n,r,s,a,o,h,l,c,d,m){if(this.Distance3(t)<this.res2)this.offscreen([r,s,a])||(0==V?(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(n)):(this.data.indices.push(e),this.data.indices.push(i),this.data.indices.push(i),this.data.indices.push(n),this.data.indices.push(n),this.data.indices.push(e)));else{if(this.offscreen(t))return;let f=t[0],u=t[1],p=t[2],v=t[3],x=t[4],g=t[5],w=t[6],M=t[7],b=t[8],R=t[9],T=[.5*(R[0]+g[0]),.5*(R[1]+g[1]),.5*(R[2]+g[2])],y=[.5*(R[0]+b[0]),.5*(R[1]+b[1]),.5*(R[2]+b[2])],A=[.5*(g[0]+p[0]),.5*(g[1]+p[1]),.5*(g[2]+p[2])],E=[.5*(b[0]+x[0]),.5*(b[1]+x[1]),.5*(b[2]+x[2])],I=[.5*(b[0]+M[0]),.5*(b[1]+M[1]),.5*(b[2]+M[2])],L=[.5*(p[0]+x[0]),.5*(p[1]+x[1]),.5*(p[2]+x[2])],N=[.5*(p[0]+f[0]),.5*(p[1]+f[1]),.5*(p[2]+f[2])],O=[.5*(x[0]+v[0]),.5*(x[1]+v[1]),.5*(x[2]+v[2])],_=[.5*(M[0]+w[0]),.5*(M[1]+w[1]),.5*(M[2]+w[2])],P=[.5*(f[0]+u[0]),.5*(f[1]+u[1]),.5*(f[2]+u[2])],S=[.5*(u[0]+v[0]),.5*(u[1]+v[1]),.5*(u[2]+v[2])],U=[.5*(v[0]+w[0]),.5*(v[1]+w[1]),.5*(v[2]+w[2])],V=[.5*(T[0]+A[0]),.5*(T[1]+A[1]),.5*(T[2]+A[2])],B=[.5*(y[0]+I[0]),.5*(y[1]+I[1]),.5*(y[2]+I[2])],D=[.5*(A[0]+N[0]),.5*(A[1]+N[1]),.5*(A[2]+N[2])],C=[.5*E[0]+.25*(x[0]+u[0]),.5*E[1]+.25*(x[1]+u[1]),.5*E[2]+.25*(x[2]+u[2])],F=[.5*(I[0]+_[0]),.5*(I[1]+_[1]),.5*(I[2]+_[2])],z=[.5*L[0]+.25*(x[0]+M[0]),.5*L[1]+.25*(x[1]+M[1]),.5*L[2]+.25*(x[2]+M[2])],H=[.25*(g[0]+x[0])+.5*O[0],.25*(g[1]+x[1])+.5*O[1],.25*(g[2]+x[2])+.5*O[2]],X=[.5*(P[0]+S[0]),.5*(P[1]+S[1]),.5*(P[2]+S[2])],G=[.5*(S[0]+U[0]),.5*(S[1]+U[1]),.5*(S[2]+U[2])],W=[.5*(z[0]+X[0]),.5*(z[1]+X[1]),.5*(z[2]+X[2])],j=[.5*(z[0]+G[0]),.5*(z[1]+G[1]),.5*(z[2]+G[2])],k=[.5*(X[0]+G[0]),.5*(X[1]+G[1]),.5*(X[2]+G[2])],Y=[.5*(H[0]+F[0]),.5*(H[1]+F[1]),.5*(H[2]+F[2])],$=[.5*(B[0]+H[0]),.5*(B[1]+H[1]),.5*(B[2]+H[2])],q=[.5*(B[0]+F[0]),.5*(B[1]+F[1]),.5*(B[2]+F[2])],K=[.5*(V[0]+C[0]),.5*(V[1]+C[1]),.5*(V[2]+C[2])],Z=[.5*(D[0]+C[0]),.5*(D[1]+C[1]),.5*(D[2]+C[2])],Q=[.5*(V[0]+D[0]),.5*(V[1]+D[1]),.5*(V[2]+D[2])],J=[f,P,N,X,[.5*(L[0]+P[0]),.5*(L[1]+P[1]),.5*(L[2]+P[2])],D,k,W,Z,Q],tt=[k,G,j,U,[.5*(O[0]+_[0]),.5*(O[1]+_[1]),.5*(O[2]+_[2])],Y,w,_,F,q],et=[Q,K,V,$,[.5*(T[0]+E[0]),.5*(T[1]+E[1]),.5*(T[2]+E[2])],T,q,B,y,R],it=[q,$,Y,K,[.25*(A[0]+I[0]+S[0]+x[0]),.25*(A[1]+I[1]+S[1]+x[1]),.25*(A[2]+I[2]+S[2]+x[2])],j,Q,Z,W,k],nt=this.normal(k,j,Y,q,$,K,Q),rt=this.normal(q,$,K,Q,Z,W,k),st=this.normal(Q,Z,W,k,j,Y,q),at=this.Epsilon,ot=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])];if(!o)if(o=zt(w,M,b,R)<this.res2){let t=Pt(this.sumdifferential(it[0],it[2],it[5],it[9],it[1],it[3],it[6]));ot=[ot[0]-at*t[0],ot[1]-at*t[1],ot[2]-at*t[2]]}else ot=q;let ht=[.5*(a[0]+r[0]),.5*(a[1]+r[1]),.5*(a[2]+r[2])];if(!h)if(h=zt(f,p,g,R)<this.res2){let t=Pt(this.sumdifferential(it[6],it[3],it[1],it[0],it[7],it[8],it[9]));ht=[ht[0]-at*t[0],ht[1]-at*t[1],ht[2]-at*t[2]]}else ht=Q;let lt=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])];if(!l)if(l=zt(f,u,v,w)<this.res2){let t=Pt(this.sumdifferential(it[9],it[8],it[7],it[6],it[5],it[2],it[0]));lt=[lt[0]-at*t[0],lt[1]-at*t[1],lt[2]-at*t[2]]}else lt=k;if(c){let t=Array(4),f=Array(4),u=Array(4);for(let e=0;e<4;++e)t[e]=.5*(d[e]+m[e]),f[e]=.5*(m[e]+c[e]),u[e]=.5*(c[e]+d[e]);let p=this.data.Vertex(ot,nt,t),v=this.data.Vertex(ht,rt,f),x=this.data.Vertex(lt,st,u);this.Render3(J,e,x,v,r,lt,ht,!1,h,l,c,u,f),this.Render3(tt,x,i,p,lt,s,ot,o,!1,l,u,d,t),this.Render3(et,v,p,n,ht,ot,a,o,h,!1,f,t,m),this.Render3(it,p,v,x,ot,ht,lt,!1,!1,!1,t,f,u)}else{let t=this.vertex(ot,nt),c=this.vertex(ht,rt),d=this.vertex(lt,st);this.Render3(J,e,d,c,r,lt,ht,!1,h,l),this.Render3(tt,d,i,t,lt,s,ot,o,!1,l),this.Render3(et,c,t,n,ht,ot,a,o,h,!1),this.Render3(it,t,c,d,ot,ht,lt,!1,!1,!1)}}}Distance(t){let e=t[0],i=t[3],n=t[12],r=t[15],s=Ht(e,n,i,r);s=Math.max(zt(e,t[4],t[8],n)),s=Math.max(s,zt(t[1],t[5],t[9],t[13])),s=Math.max(s,zt(i,t[7],t[11],r)),s=Math.max(s,zt(t[2],t[6],t[10],t[14]));let a=Ht(e,i,n,r);return a=Math.max(a,zt(e,t[1],t[2],i)),a=Math.max(a,zt(t[4],t[5],t[6],t[7])),a=Math.max(a,zt(t[8],t[9],t[10],t[11])),a=Math.max(a,zt(n,t[13],t[14],r)),[s,a]}Distance3(t){let e=t[0],i=t[4],n=t[6],r=t[9],s=St([(e[0]+n[0]+r[0])*(1/3)-i[0],(e[1]+n[1]+r[1])*(1/3)-i[1],(e[2]+n[2]+r[2])*(1/3)-i[2]]);return s=Math.max(s,zt(e,t[1],t[3],n)),s=Math.max(s,zt(e,t[2],t[5],r)),Math.max(s,zt(n,t[7],t[8],r))}differential(t,e,i,n){let r=[3*(e[0]-t[0]),3*(e[1]-t[1]),3*(e[2]-t[2])];return St(r)>this.epsilon?r:(r=Ct(t,e,i),St(r)>this.epsilon?r:Ft(t,e,i,n))}sumdifferential(t,e,i,n,r,s,a){let o=this.differential(t,e,i,n),h=this.differential(t,r,s,a);return[o[0]+h[0],o[1]+h[1],o[2]+h[2]]}normal(t,e,i,n,r,s,a){let o=3*(r[0]-n[0]),h=3*(r[1]-n[1]),l=3*(r[2]-n[2]),c=3*(i[0]-n[0]),d=3*(i[1]-n[1]),m=3*(i[2]-n[2]),f=[h*m-l*d,l*c-o*m,o*d-h*c];if(St(f)>this.epsilon)return f;let u=[c,d,m],p=[o,h,l],v=Ct(n,i,e),x=Ct(n,r,s),g=Vt(x,u),w=Vt(p,v);if(f=[g[0]+w[0],g[1]+w[1],g[2]+w[2]],St(f)>this.epsilon)return f;let M=Ft(n,i,e,t),b=Ft(n,r,s,a);g=Vt(p,M),w=Vt(b,u);let R=Vt(x,v);return f=[g[0]+w[0]+R[0],g[1]+w[1]+R[1],g[2]+w[2]+R[2]],St(f)>this.epsilon?f:(g=Vt(b,v),w=Vt(x,M),f=[g[0]+w[0],g[1]+w[1],g[2]+w[2]],St(f)>this.epsilon?f:Vt(b,M))}}function xt(t){return 0<=t&&t<=1}class gt{constructor(t,e,i){const n=1e3*Number.EPSILON,r=n*n;if(Math.abs(t)<=n*Math.abs(e)+r*Math.abs(i))Math.abs(e)>n*Math.abs(i)?(this.roots=1,this.t1=-i/e):0==i?(this.roots=1,this.t1=0):this.roots=0;else{let r=.5*e/t,s=e*r;if(Math.abs(s)<=n*Math.abs(i)){let e=-i/t;e>=0?(this.roots=2,this.t2=Math.sqrt(e),this.t1=-this.t2):this.roots=0}else{let t=-2*i/s;if(t>-1){this.roots=2;let e=r*function(t){return t/(Math.sqrt(1+t)+1)}(t),i=-e-2*r;i<=e?(this.t1=i,this.t2=e):(this.t1=e,this.t2=i)}else-1==t?(this.roots=1,this.t1=this.t2=-r):this.roots=0}}}}class wt extends ut{constructor(t,e,i,n,r){if(super(),this.controlpoints=t,this.CenterIndex=e,this.MaterialIndex=i,n&&r)this.Min=n,this.Max=r;else{let t=this.Bounds(this.controlpoints);this.Min=t[0],this.Max=t[1]}}Bounds(t){let e=Array(3),i=Array(3),n=t.length,r=Array(n);for(let h=0;h<3;++h){for(let e=0;e<n;++e)r[e]=t[e][h];let l,c;if(l=c=r[0],4==n){l=Math.min(l,r[3]),c=Math.max(c,r[3]);let t=(s=r[0],a=r[1],o=r[2],[r[3]-s+3*(a-o),2*(s+o)-4*a,a-s]),e=new gt(t[0],t[1],t[2]);if(0!=e.roots&&xt(e.t1)){let t=Bt(r[0],r[1],r[2],r[3],e.t1);l=Math.min(l,t),c=Math.max(c,t)}if(2==e.roots&&xt(e.t2)){let t=Bt(r[0],r[1],r[2],r[3],e.t2);l=Math.min(l,t),c=Math.max(c,t)}}else{let t=r[1];l=Math.min(l,t),c=Math.max(c,t)}e[h]=l,i[h]=c}var s,a,o;return[[e[0],e[1],e[2]],[i[0],i[1],i[2]]]}setMaterialIndex(){this.setMaterial(Z,Te)}processLine(t){let e=t[0],i=t[1];if(!this.offscreen([e,i])){let t=[0,0,1];this.data.indices.push(this.data.vertex(e,t)),this.data.indices.push(this.data.vertex(i,t)),this.append()}}process(t){if(2==t.length)return this.processLine(t);let e=t[0],i=t[1],n=t[2],r=t[3],s=this.normal(Dt(e,i),Ct(e,i,n)),a=this.normal(Dt(n,r),Ct(r,n,i)),o=this.data.vertex(e,s),h=this.data.vertex(r,a);this.Render(t,o,h),this.data.indices.length>0&&this.append()}append(){Z.append(this.data)}notRendered(){Z.rendered=!1}Render(t,e,i){let n=t[0],r=t[1],s=t[2],a=t[3];if(zt(n,r,s,a)<this.res2)this.offscreen([n,a])||(this.data.indices.push(e),this.data.indices.push(i));else{if(this.offscreen(t))return;let o=[.5*(n[0]+r[0]),.5*(n[1]+r[1]),.5*(n[2]+r[2])],h=[.5*(r[0]+s[0]),.5*(r[1]+s[1]),.5*(r[2]+s[2])],l=[.5*(s[0]+a[0]),.5*(s[1]+a[1]),.5*(s[2]+a[2])],c=[.5*(o[0]+h[0]),.5*(o[1]+h[1]),.5*(o[2]+h[2])],d=[.5*(h[0]+l[0]),.5*(h[1]+l[1]),.5*(h[2]+l[2])],m=[.5*(c[0]+d[0]),.5*(c[1]+d[1]),.5*(c[2]+d[2])],f=[n,o,c,m],u=[m,d,l,a],p=this.normal(function(t,e,i,n){return[i[0]+n[0]-t[0]-e[0],i[1]+n[1]-t[1]-e[1],i[2]+n[2]-t[2]-e[2]]}(n,r,s,a),function(t,e,i,n){return[3*t[0]-5*e[0]+i[0]+n[0],3*t[1]-5*e[1]+i[1]+n[1],3*t[2]-5*e[2]+i[2]+n[2]]}(n,r,s,a)),v=this.data.vertex(m,p);this.Render(f,e,v),this.Render(u,v,i)}}normal(t,e){let i=Ut(t,t),n=Ut(t,e);return[i*e[0]-n*t[0],i*e[1]-n*t[1],i*e[2]-n*t[2]]}}class Mt extends ut{constructor(t,e,i){super(),this.controlpoint=t,this.width=e,this.CenterIndex=0,this.MaterialIndex=i,this.Min=t,this.Max=t}setMaterialIndex(){this.setMaterial(K,Re)}process(t){this.data.indices.push(this.data.vertex0(this.controlpoint,this.width)),this.append()}append(){K.append(this.data)}notRendered(){K.rendered=!1}}class bt extends ut{constructor(t,e){super(),this.CenterIndex=t,this.MaterialIndex=e,this.Min=this.Bounds(F,Math.min),this.Max=this.Bounds(F,Math.max),this.controlpoints=F,this.Normals=z,this.Colors=H,this.Indices=X,this.transparent=c[this.MaterialIndex].diffuse[3]<1}Bounds(t,e){let i=Array(3),n=t.length,r=Array(n);for(let s=0;s<3;++s){for(let e=0;e<n;++e)r[e]=t[e][s];i[s]=pt(r,e)}return[i[0],i[1],i[2]]}setMaterialIndex(){this.transparent?this.setMaterial(tt,Ie):this.setMaterial(et,Ee)}process(t){this.data.vertices=new Array(6*t.length),it=this.Colors.length>0?-1-it:1+it;for(let e=0,i=this.Indices.length;e<i;++e){let i=this.Indices[e],n=i[0],r=t[n[0]],s=t[n[1]],a=t[n[2]];if(!this.offscreen([r,s,a])){let t=i.length>1?i[1]:n;if(t&&0!=t.length||(t=n),this.Colors.length>0){let e=i.length>2?i[2]:n;e&&0!=e.length||(e=n);let o=this.Colors[e[0]],h=this.Colors[e[1]],l=this.Colors[e[2]];this.transparent|=o[3]+h[3]+l[3]<765,0==V?(this.data.iVertex(n[0],r,this.Normals[t[0]],o),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[2],a,this.Normals[t[2]],l)):(this.data.iVertex(n[0],r,this.Normals[t[0]],o),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[1],s,this.Normals[t[1]],h),this.data.iVertex(n[2],a,this.Normals[t[2]],l),this.data.iVertex(n[2],a,this.Normals[t[2]],l),this.data.iVertex(n[0],r,this.Normals[t[0]],o))}else 0==V?(this.data.iVertex(n[0],r,this.Normals[t[0]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[2],a,this.Normals[t[2]])):(this.data.iVertex(n[0],r,this.Normals[t[0]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[1],s,this.Normals[t[1]]),this.data.iVertex(n[2],a,this.Normals[t[2]]),this.data.iVertex(n[2],a,this.Normals[t[2]]),this.data.iVertex(n[0],r,this.Normals[t[0]]))}}this.data.nvertices=t.length,this.data.indices.length>0&&this.append()}append(){this.transparent?tt.append(this.data):et.append(this.data)}notRendered(){this.transparent?tt.rendered=!1:et.rendered=!1}}function Rt(){M=-Math.tan(.5*o.angleOfView)*o.maxBound[2],_.x=_.y=0,_.z=.5*(o.minBound[2]+o.maxBound[2]),x=v=o.zoom0,S.zmin=o.minBound[2],S.zmax=o.maxBound[2],P.x=P.y=0,Oe(),U=!0,Ne()}let Tt=0,yt=1,At=2,Et=3,It=4;function Lt(e=[]){let i=lt(t,vertex,t.VERTEX_SHADER,e),n=lt(t,fragment,t.FRAGMENT_SHADER,e),r=t.createProgram();return t.attachShader(r,i),t.attachShader(r,n),t.bindAttribLocation(r,Tt,"position"),t.bindAttribLocation(r,yt,"normal"),t.bindAttribLocation(r,At,"materialIndex"),t.bindAttribLocation(r,Et,"color"),t.bindAttribLocation(r,It,"width"),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialize shaders"),r}class Nt{constructor(t,e,i,n){this.m0=.5*(t+e);let r=.5*(e+i);this.m2=.5*(i+n),this.m3=.5*(this.m0+r),this.m4=.5*(r+this.m2),this.m5=.5*(this.m3+this.m4)}}class Ot{constructor(t,e,i,n){this.m0=[.5*(t[0]+e[0]),.5*(t[1]+e[1]),.5*(t[2]+e[2])];let r=.5*(e[0]+i[0]),s=.5*(e[1]+i[1]),a=.5*(e[2]+i[2]);this.m2=[.5*(i[0]+n[0]),.5*(i[1]+n[1]),.5*(i[2]+n[2])],this.m3=[.5*(this.m0[0]+r),.5*(this.m0[1]+s),.5*(this.m0[2]+a)],this.m4=[.5*(r+this.m2[0]),.5*(s+this.m2[1]),.5*(a+this.m2[2])],this.m5=[.5*(this.m3[0]+this.m4[0]),.5*(this.m3[1]+this.m4[1]),.5*(this.m3[2]+this.m4[2])]}}class _t{constructor(t){this.l003=t[0];let e=t[1],i=t[2],n=t[3],r=t[4],s=t[5];this.r300=t[6];let a=t[7],o=t[8];this.u030=t[9],this.u021=.5*(this.u030+s),this.u120=.5*(this.u030+o);let h=.5*(s+i),l=.5*(o+r),c=.5*(o+a),d=.5*(i+r);this.l012=.5*(i+this.l003);let m=.5*(r+n);this.r210=.5*(a+this.r300),this.l102=.5*(this.l003+e);let f=.5*(e+n);this.r201=.5*(n+this.r300),this.u012=.5*(this.u021+h),this.u210=.5*(this.u120+c),this.l021=.5*(h+this.l012);let u=.5*l+.25*(r+e);this.r120=.5*(c+this.r210);let p=.5*d+.25*(r+a),v=.25*(s+r)+.5*m;this.l201=.5*(this.l102+f),this.r102=.5*(f+this.r201),this.l210=.5*(p+this.l201),this.r012=.5*(p+this.r102),this.l300=.5*(this.l201+this.r102),this.r021=.5*(v+this.r120),this.u201=.5*(this.u210+v),this.r030=.5*(this.u210+this.r120),this.u102=.5*(this.u012+u),this.l120=.5*(this.l021+u),this.l030=.5*(this.u012+this.l021),this.l111=.5*(d+this.l102),this.r111=.5*(m+this.r210),this.u111=.5*(this.u021+l),this.c111=.25*(h+c+f+r)}}function Pt(t){let e=1/(Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])||1);return[t[0]*e,t[1]*e,t[2]*e]}function St(t){return t[0]*t[0]+t[1]*t[1]+t[2]*t[2]}function Ut(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Vt(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Bt(t,e,i,n,r){let s=1-r,a=s*s;return a*s*t+r*(3*(a*e+r*s*i)+r*r*n)}function Dt(t,e){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function Ct(t,e,i){return[3*(t[0]+i[0])-6*e[0],3*(t[1]+i[1])-6*e[1],3*(t[2]+i[2])-6*e[2]]}function Ft(t,e,i,n){return[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])]}function zt(t,e,i,n){let r=[1/3*(n[0]-t[0]),1/3*(n[1]-t[1]),1/3*(n[2]-t[2])];return Math.max(St([e[0]-r[0]-t[0],e[1]-r[1]-t[1],e[2]-r[2]-t[2]]),St([n[0]-r[0]-i[0],n[1]-r[1]-i[1],n[2]-r[2]-i[2]]))}function Ht(t,e,i,n){let r=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],s=[n[0]-i[0],n[1]-i[1],n[2]-i[2]];return Math.max(St(Vt(r,Pt(s))),St(Vt(s,Pt(r))))/9}function Xt(t){return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.min(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function Gt(t){return[Math.max(t[0][0],t[1][0],t[2][0],t[3][0],t[4][0],t[5][0],t[6][0],t[7][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1],t[4][1],t[5][1],t[6][1],t[7][1]),Math.max(t[0][2],t[1][2],t[2][2],t[3][2],t[4][2],t[5][2],t[6][2],t[7][2])]}function Wt(t){ae||oe(),B=!0,D=t.clientX,C=t.clientY}let jt,kt,Yt=!1;function $t(t){return Math.hypot(t[0].pageX-t[1].pageX,t[0].pageY-t[1].pageY)}function qt(t){t.preventDefault(),ae||oe();let e=t.targetTouches;ue=pe=Yt=!1,fe||(1!=e.length||B||(kt=(new Date).getTime(),touchId=e[0].identifier,D=e[0].pageX,C=e[0].pageY),2!=e.length||B||(touchId=e[0].identifier,jt=$t(e),Yt=!0))}function Kt(t){B=!1}function Zt(t,e,i,n,r){if(t==i&&e==n)return;let[s,a]=function(t,e){let i=ne(t),n=ne(e),r=Ut(i,n);return[r>1?0:r<-1?f:Math.acos(r),Pt(Vt(i,n))]}([t,-e],[i,-n]);mat4.fromRotation(O,2*r*R*s/v,a),mat4.multiply(T,O,T)}function Qt(t,e,i,n){let r=1/v;P.x+=(i-t)*r*s,P.y-=(n-e)*r*a}function Jt(t,e,i,n){o.orthographic?Qt(t,e,i,n):(_.x+=(i-t)*(S.xmax-S.xmin),_.y-=(n-e)*(S.ymax-S.ymin))}function te(){var t,e;t=A,e=T,mat4.fromTranslation(O,[_.x,_.y,_.z]),mat4.invert(N,O),mat4.multiply(t,e,N),mat4.multiply(t,O,t),mat4.translate(A,A,[_.x,_.y,0]),mat3.fromMat4(L,A),mat3.invert(I,L),mat4.multiply(E,y,A)}function ee(){let t=Math.sqrt(Number.MAX_VALUE),e=1/t;v<=e&&(v=e),v>=t&&(v=t),(1.5*v<x||v>1.5*x)&&(U=!0,x=v)}function ie(t){let e=o.zoomStep*a*t;const i=Math.log(.1*Number.MAX_VALUE)/Math.log(o.zoomFactor);Math.abs(e)<i&&(v*=o.zoomFactor**e,ee())}function ne(t){let e=t[0],i=t[1],n=Math.hypot(e,i);return n>1&&(denom=1/n,e*=denom,i*=denom),[e,i,Math.sqrt(Math.max(1-i*i-e*e,0))]}function re(t,e,i,n){ie(e-n)}function se(t,e,i,n=1){let r;switch(i){case 1:r=Zt;break;case 2:r=Qt;break;case 3:r=re;break;case 4:r=Jt;break;default:r=(t,e,i,n)=>{}}r((D-s)/s,(C-a)/a,(t-s)/s,(e-a)/a,n),D=t,C=e,Oe(),Ne()}let ae=0;function oe(){ae=1,o.canvas.addEventListener("wheel",de,!1)}function he(){let t,e,i;[t,e,i]=function(){let t=Array(3),e=Array(3),i=Array(3),n=_.x,r=_.y,s=.5*(S.zmin+S.zmax);for(let a=0;a<3;++a){let h=0,l=0,c=0,d=4*a;for(let t=0;t<4;++t){let e=4*t,i=T[e],a=T[e+1],m=T[e+2],f=T[e+3],u=o.Transform[d+t];h+=u*(f-n*i-r*a-s*m),c+=u*a,l+=u*(f-n*i-r*a)}t[a]=h,e[a]=c,i[a]=l}return[t,e,i]}();let n=o.orthographic?" orthographic(":" perspective(",r="".padStart(n.length),s="currentprojection=\n"+n+"camera=("+t+"),\n"+r+"up=("+e+"),\n"+r+"target=("+i+"),\n"+r+"zoom="+v*o.initialZoom/o.zoom0;return o.orthographic||(s+=",\n"+r+"angle="+2*Math.atan(Math.tan(.5*o.angleOfView)/v)/u),0==g&&0==w||(s+=",\n"+r+"viewportshift=("+g+","+w+")"),o.orthographic||(s+=",\n"+r+"autoadjust=false"),s+=");\n",window.parent.asyProjection=!0,s}function le(t){if(ae||oe(),o.embedded&&ae&&27==t.keyCode)return ae=0,void o.canvas.removeEventListener("wheel",de,!1);let e=[];switch(t.key){case"x":e=[1,0,0];break;case"y":e=[0,1,0];break;case"z":e=[0,0,1];break;case"h":mat4.identity(T),Rt(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(""),window.parent.asyProjection=!1;break;case"m":++V,3==V&&(V=0),2!=V&&(o.embedded||st(),rt(o.ibl)),U=!0,Ne();break;case"+":case"=":case">":v*=o.zoomFactor,ce();break;case"-":case"_":case"<":v/=o.zoomFactor,ce();break;case"c":window.top.asyWebApplication||prompt("Ctrl+c Enter to copy currentprojection to clipboard; then append to asy file:",he())}e.length>0&&(mat4.rotate(T,T,.1,e),te(),Ne())}function ce(){ee(),Oe(),Ne()}function de(t){t.preventDefault(),t.deltaY<0?v*=o.zoomFactor:v/=o.zoomFactor,ce()}function me(t){if(!B)return;let e,i=t.clientX,n=t.clientY;e=t.getModifierState("Control")?2:t.getModifierState("Shift")?3:t.getModifierState("Alt")?4:1,se(i,n,e)}let fe=!1,ue=!1,pe=!1;function ve(t){if(t.preventDefault(),fe)return;let e=t.targetTouches;if(!Yt&&1==e.length&&touchId==e[0].identifier){let t=e[0].pageX,i=e[0].pageY,n=t-D,r=i-C,s=n*n+r*r<=o.shiftHoldDistance*o.shiftHoldDistance;if(s&&!ue&&!pe&&(new Date).getTime()-kt>o.shiftWaitTime&&(navigator.vibrate&&window.navigator.vibrate(o.vibrateTime),ue=!0),ue)se(t,i,2);else if(!s){pe=!0,se(e[0].pageX,e[0].pageY,1,.5)}}if(Yt&&!ue&&2==e.length&&touchId==e[0].identifier){let t=$t(e),i=t-jt;fe=!0,i*=o.zoomPinchFactor,i>o.zoomPinchCap&&(i=o.zoomPinchCap),i<-o.zoomPinchCap&&(i=-o.zoomPinchCap),ie(i/b),jt=t,ue=pe=fe=!1,Oe(),Ne()}}let xe,ge,we,Me,be=[];function Re(){dt(K,xe),K.clear()}function Te(){dt(Z,ge),Z.clear()}function ye(){dt(Q,ge),Q.clear()}function Ae(){dt(J,we),J.clear()}function Ee(){dt(et,Me),et.rendered=!1,et.clear()}function Ie(){let e=tt.indices;if(V>0)return dt(tt,Me,e),void tt.clear();if(e.length>0){!function(t){let e=A[2],i=A[6],n=A[10];be.length=t.length;for(let r=0;r<t.length;++r){let s=6*r;be[r]=e*t[s]+i*t[s+1]+n*t[s+2]}}(tt.vertices);let i=e.length/3,n=Array(i).fill().map((t,e)=>e);n.sort((function(t,i){let n=3*t;Ia=e[n],Ib=e[n+1],Ic=e[n+2];let r=3*i;return IA=e[r],IB=e[r+1],IC=e[r+2],be[Ia]+be[Ib]+be[Ic]<be[IA]+be[IB]+be[IC]?-1:1}));let r=Array(e.length);for(let t=0;t<i;++t){let i=3*n[t];r[3*t]=e[i],r[3*t+1]=e[i+1],r[3*t+2]=e[i+2]}t.depthMask(!1),dt(tt,Me,r),tt.rendered=!1,t.depthMask(!0)}tt.clear()}function Le(){Re(),Te(),ye(),Ae(),Ee(),Ie(),requestAnimationFrame(Le)}function Ne(){o.embedded&&(i.width=o.canvasWidth,i.height=o.canvasHeight,_e()),t.clearColor(o.background[0],o.background[1],o.background[2],o.background[3]),t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT);for(const t of h)t.render();Le(),o.embedded&&(n.clearRect(0,0,o.canvasWidth,o.canvasHeight),n.drawImage(i,0,0)),0==V&&(U=!1)}function Oe(){!function(t,e,i,n){let r=t/e;g=(i/t+o.viewportShift[0])*v,w=(n/e+o.viewportShift[1])*v;let s=1/v;if(o.orthographic){let t=o.maxBound[0]-o.minBound[0],e=o.maxBound[1]-o.minBound[1];if(t<e*r){let t=.5*e*r*s,i=2*t*g,n=e*s*w;S.xmin=-t-i,S.xmax=t-i,S.ymin=o.minBound[1]*s-n,S.ymax=o.maxBound[1]*s-n}else{let e=.5*t*s/r,i=t*s*g,n=2*e*w;S.xmin=o.minBound[0]*s-i,S.xmax=o.maxBound[0]*s-i,S.ymin=-e-n,S.ymax=e-n}}else{let t=M*s,e=t*r,i=2*e*g,n=2*t*w;S.xmin=-e-i,S.xmax=e-i,S.ymin=-t-n,S.ymax=t-n}}(o.canvasWidth,o.canvasHeight,P.x,P.y),(o.orthographic?mat4.ortho:mat4.frustum)(y,S.xmin,S.xmax,S.ymin,S.ymax,-S.zmax,-S.zmin),te(),window.top.asyWebApplication&&window.top.asyWebApplication.setProjection(he())}function _e(){t.viewportWidth=o.canvasWidth,t.viewportHeight=o.canvasHeight,t.viewport(.5*(o.canvas.width-o.canvasWidth),.5*(o.canvas.height-o.canvasHeight),o.canvasWidth,o.canvasHeight),t.scissor(0,0,o.canvas.width,o.canvas.height)}function Pe(t,e){t>void 0&&(t=void 0),e>void 0&&(e=void 0),P.x*=t/o.canvasWidth,P.y*=e/o.canvasHeight,o.canvasWidth=t,o.canvasHeight=e,o.embedded&&(o.canvas.width=i.width=o.canvasWidth,o.canvas.height=i.height=o.canvasHeight),b=Math.hypot(o.canvasWidth,o.canvasHeight),s=.5*o.canvas.width,a=.5*o.canvas.height,R=1+8*Math.hypot(o.viewportMargin[0],o.viewportMargin[1])/b,_e(),Oe(),U=!0}function Se(){if(o.zoom0=o.initialZoom,window.top.asyWebApplication&&""==window.top.asyWebApplication.getProjection()&&(window.parent.asyProjection=!1),o.absolute&&!o.embedded)o.canvasWidth=o.canvasWith0*window.devicePixelRatio,o.canvasHeight=o.canvasHeight0*window.devicePixelRatio;else{let t=o.canvasWith0/o.canvasHeight0;o.canvasWidth=Math.max(window.innerWidth-10,10),o.canvasHeight=Math.max(window.innerHeight-10,10),!o.orthographic&&!window.parent.asyProjection&&o.canvasWidth<o.canvasHeight*t&&(o.zoom0*=o.canvasWidth/(o.canvasHeight*t))}o.canvas.width=o.canvasWidth,o.canvas.height=o.canvasHeight;window.innerWidth,window.innerHeight;let t=1/o.zoom0;o.viewportShift[0]*=t,o.viewportShift[1]*=t,Pe(o.canvasWidth,o.canvasHeight),Rt()}class Ue{constructor(t,e){if(this.center=t,e){let t=e[0],i=e[1];this.ct=Math.cos(t),this.st=Math.sin(t),this.cp=Math.cos(i),this.sp=Math.sin(i)}}T0(t){return[t[0]+this.center[0],t[1]+this.center[1],t[2]+this.center[2]]}T(t){let e=t[0],i=t[1],n=t[2],r=e*this.ct+n*this.st;return[r*this.cp-i*this.sp+this.center[0],r*this.sp+i*this.cp+this.center[1],-e*this.st+n*this.ct+this.center[2]]}}function Ve(t,e,i){let n=[t(e),t([e[0],e[1],i[2]]),t([e[0],i[1],e[2]]),t([e[0],i[1],i[2]]),t([i[0],e[1],e[2]]),t([i[0],e[1],i[2]]),t([i[0],i[1],e[2]]),t(i)];return[Xt(n),Gt(n)]}let Be=4/3*(Math.sqrt(2)-1);async function De(t){return(await fetch(t)).arrayBuffer()}function Ce(t){return t.getBytes().filter((t,e)=>e%4!=3)}function Fe(e,i,n=t.RGB16F){let r=e.width(),s=e.height(),a=t.createTexture();return t.activeTexture(t.TEXTURE0+i),t.bindTexture(t.TEXTURE_2D,a),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texImage2D(t.TEXTURE_2D,0,n,r,s,0,t.RGB,t.FLOAT,Ce(e)),a}window.webGLStart=function(){o.canvas=document.getElementById("Asymptote"),o.embedded=window.top.document!=document,ht(),t.enable(t.BLEND),t.blendFunc(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA),t.enable(t.DEPTH_TEST),t.enable(t.SCISSOR_TEST),o.canvas.onmousedown=Wt,document.onmouseup=Kt,document.onmousemove=me,o.canvas.onkeydown=le,o.embedded||oe(),o.canvas.addEventListener("touchstart",qt,!1),o.canvas.addEventListener("touchend",Kt,!1),o.canvas.addEventListener("touchcancel",Kt,!1),o.canvas.addEventListener("touchleave",Kt,!1),o.canvas.addEventListener("touchmove",ve,!1),document.addEventListener("keydown",le,!1),o.canvasWith0=o.canvasWidth,o.canvasHeight0=o.canvasHeight,mat4.identity(T),0!=window.innerWidth&&0!=window.innerHeight&&Se(),window.addEventListener("resize",Se,!1),o.ibl&&async function(){let e=o.imageURL+o.image+"/";function i(t){return new Promise(e=>setTimeout(e,t))}for(;!Module.EXRLoader;)await i(0);promises=[De(o.imageURL+"refl.exr").then(t=>{let e=new Module.EXRLoader(t);j=Fe(e,0)}),De(e+"diffuse.exr").then(t=>{let e=new Module.EXRLoader(t);W=Fe(e,1)})],refl_promise=[],refl_promise.push(De(e+"refl0.exr"));for(let t=1;t<=8;++t)refl_promise.push(De(e+"refl"+t+"w.exr"));finished_promise=Promise.all(refl_promise).then(e=>{let i=t.createTexture();t.activeTexture(t.TEXTURE0+2),t.pixelStorei(t.UNPACK_ALIGNMENT,1),t.bindTexture(t.TEXTURE_2D,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAX_LEVEL,e.length-1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR_MIPMAP_LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameterf(t.TEXTURE_2D,t.TEXTURE_MIN_LOD,0),t.texParameterf(t.TEXTURE_2D,t.TEXTURE_MAX_LOD,8);for(let i=0;i<e.length;++i){let n=new Module.EXRLoader(e[i]);t.texImage2D(t.TEXTURE_2D,i,t.RGB16F,n.width(),n.height(),0,t.RGB,t.FLOAT,Ce(n))}G=i}),promises.push(finished_promise),await Promise.all(promises)}().then(k).then(Rt)},window.light=function(t,e){l.push(new nt(t,e))},window.material=function(t,e,i,n,r,s){c.push(new Y(t,e,i,n,r,s))},window.patch=function(t,e,i,n){h.push(new vt(t,e,i,n))},window.curve=function(t,e,i){h.push(new wt(t,e,i))},window.pixel=function(t,e,i){h.push(new Mt(t,e,i))},window.triangles=function(t,e){h.push(new bt(t,e)),window.Positions=F=[],window.Normals=z=[],window.Colors=H=[],window.Indices=X=[]},window.sphere=function(t,e,i,n,r){let s,a,o,l,c,d,m=.524670512339254,f=.595936986722291,u=.954967051233925,p=.0820155480083437,v=.996685028842544,x=.0549670512339254,g=.998880711874577,w=.0405017186586849,M=[[[1,0,0],[1,0,m],[f,0,u],[p,0,v],[1,Be,0],[1,Be,m],[f,Be*f,u],[p,Be*p,v],[Be,1,0],[Be,1,m],[Be*f,f,u],[Be*p,p,v],[0,1,0],[0,1,m],[0,f,u],[0,p,v]],[[p,0,v],[p,Be*p,v],[x,0,g],[Be*p,p,v],[w,w,1],[.05*Be,0,1],[0,p,v],[0,x,g],[0,.05*Be,1],[0,0,1]]],b=new Ue(t,r);function R(t){let e=Array(t.length);for(let i=0;i<t.length;++i){let n=t[i];e[i]=c([s*n[0],a*n[1],o*n[2]])}return e}r?(l=1,d=0,c=b.T.bind(b)):(l=-1,d=-e,c=b.T0.bind(b));let T=Ve(c,[-e,-e,d],[e,e,e]),y=T[0],A=T[1];for(let t=-1;t<=1;t+=2){s=t*e;for(let t=-1;t<=1;t+=2){a=t*e;for(let t=l;t<=1;t+=2){o=t*e;for(let t=0;t<2;++t)h.push(new vt(R(M[t]),i,n,null,y,A))}}}},window.disk=function(t,e,i,n,r){let s=1-2*Be/3,a=[[1,0,0],[1,-Be,0],[Be,-1,0],[0,-1,0],[1,Be,0],[s,0,0],[0,-s,0],[-Be,-1,0],[Be,1,0],[0,s,0],[-s,0,0],[-1,-Be,0],[0,1,0],[-Be,1,0],[-1,Be,0],[-1,0,0]],o=new Ue(t,r),l=Ve(o.T.bind(o),[-e,-e,0],[e,e,0]);h.push(new vt(function(t){let i=Array(t.length);for(let n=0;n<t.length;++n){let r=t[n];i[n]=o.T([e*r[0],e*r[1],0])}return i}(a),i,n,null,l[0],l[1]))},window.cylinder=function(t,e,i,n,r,s,a){let o,l,c=[[1,0,0],[1,0,1/3],[1,0,2/3],[1,0,1],[1,Be,0],[1,Be,1/3],[1,Be,2/3],[1,Be,1],[Be,1,0],[Be,1,1/3],[Be,1,2/3],[Be,1,1],[0,1,0],[0,1,1/3],[0,1,2/3],[0,1,1]],d=new Ue(t,s);function m(t){let e=Array(t.length);for(let n=0;n<t.length;++n){let r=t[n];e[n]=d.T([o*r[0],l*r[1],i*r[2]])}return e}let f=Ve(d.T.bind(d),[-e,-e,0],[e,e,i]),u=f[0],p=f[1];for(let t=-1;t<=1;t+=2){o=t*e;for(let t=-1;t<=1;t+=2)l=t*e,h.push(new vt(m(c),n,r,null,u,p))}if(a){let e=d.T([0,0,i]);h.push(new wt([t,e],n,r,t,e))}},window.tube=function(t,e,i,n,r){let s=function(t,e,i,n,r){class s{constructor(t,e,i){this.p=t,this.r=e,this.t=i,this.s=Vt(i,e)}}let a=Number.EPSILON*Math.max(St(t),St(e),St(i),St(n));function o(r){if(1==r){let r=[n[0]-i[0],n[1]-i[1],n[2]-i[2]];return St(r)>a?Pt(r):(r=[2*i[0]-e[0]-n[0],2*i[1]-e[1]-n[1],2*i[2]-e[2]-n[2]],St(r)>a?Pt(r):[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])])}let s=[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])],o=[2*(t[0]+i[0])-4*e[0],2*(t[1]+i[1])-4*e[1],2*(t[2]+i[2])-4*e[2]],h=[e[0]-t[0],e[1]-t[1],e[2]-t[2]],l=r*r,c=[s[0]*l+o[0]*r+h[0],s[1]*l+o[1]*r+h[1],s[2]*l+o[2]*r+h[2]];return St(c)>a?Pt(c):(l=2*r,c=[s[0]*l+o[0],s[1]*l+o[1],s[2]*l+o[2]],St(c)>a?Pt(c):Pt(s))}let h=Array(r.length),l=[e[0]-t[0],e[1]-t[1],e[2]-t[2]];St(l)<a&&(l=[t[0]-2*e[0]+i[0],t[1]-2*e[1]+i[1],t[2]-2*e[2]+i[2]],St(l)<a&&(l=[n[0]-t[0]+3*(e[0]-i[0]),n[1]-t[1]+3*(e[1]-i[1]),n[2]-t[2]+3*(e[2]-i[2])])),l=Pt(l);let c=function(t){let e=Vt(t,[0,1,0]),i=Number.EPSILON*St(t);return St(e)>i?Pt(e):(e=Vt(t,[0,0,1]),St(e)>i?Pt(e):[1,0,0])}(l);h[0]=new s(t,c,l);for(let a=1;a<r.length;++a){let l=h[a-1],c=r[a],d=1-c,m=d*d,f=m*d,u=3*c;m*=u,d*=u*c;let p=c*c*c,v=[f*t[0]+m*e[0]+d*i[0]+p*n[0],f*t[1]+m*e[1]+d*i[1]+p*n[1],f*t[2]+m*e[2]+d*i[2]+p*n[2]],x=[v[0]-l.p[0],v[1]-l.p[1],v[2]-l.p[2]];if(0!=x[0]||0!=x[1]||0!=x[2]){let t=l.r,e=Pt(x),i=l.t,n=Ut(e,i),r=[i[0]-2*n*e[0],i[1]-2*n*e[1],i[2]-2*n*e[2]];i=o(c);let d=2*Ut(e,t),m=[t[0]-d*e[0],t[1]-d*e[1],t[2]-d*e[2]],f=Pt([i[0]-r[0],i[1]-r[1],i[2]-r[2]]),u=2*Ut(f,m);m=[m[0]-u*f[0],m[1]-u*f[1],m[2]-u*f[2]],h[a]=new s(v,Pt(m),Pt(i))}else h[a]=h[a-1]}return h}(t[0],t[1],t[2],t[3],[0,1/3,2/3,1]),a=Be*e,o=[[e,0],[e,a],[a,e],[0,e]];function l(e,r,a,l){let c=Array(16);for(let i=0;i<4;++i){let n=s[i],h=n.r[0],d=n.s[0],m=h*e+d*r,f=h*a+d*l;h=n.r[1],d=n.s[1];let u=h*e+d*r,p=h*a+d*l;h=n.r[2],d=n.s[2];let v=h*e+d*r,x=h*a+d*l,g=t[i],w=g[0];w1=g[1],w2=g[2];for(let t=0;t<4;++t){let e=o[t],n=e[0],r=e[1];c[4*i+t]=[m*n+f*r+w,u*n+p*r+w1,v*n+x*r+w2]}}h.push(new vt(c,i,n))}l(1,0,0,1),l(0,-1,1,0),l(-1,0,0,-1),l(0,1,-1,0),r&&h.push(new wt(t,i,n))},window.Positions=F,window.Normals=z,window.Colors=H,window.Indices=X}();
diff --git a/graphics/asymptote/build-scripts/build-asymptote.dos b/graphics/asymptote/build-scripts/build-asymptote.dos
index 23edfcf835..59d4ca07b6 100755
--- a/graphics/asymptote/build-scripts/build-asymptote.dos
+++ b/graphics/asymptote/build-scripts/build-asymptote.dos
@@ -22,12 +22,13 @@ echo Building asymptote-$VERSION
cd ~/
rm -rf asymptote-$VERSION
mkdir -p CTAN
-rm -rf CTAN/asymptote-$VERSION
+rm -rf CTAN/asymptote
cd CTAN
tar -vzxf $SHARED/asymptote-$VERSION.src.tgz | grep "/\." | xargs rm -rf
+mv asymptote-$VERSION asymptote
cd ..
tar -zxf $SHARED/asymptote-$VERSION.src.tgz
-mkdir -p CTAN/asymptote-$VERSION/binaries/$BINDIR/texlive
+mkdir -p CTAN/asymptote/binaries/$BINDIR/texlive
cd asymptote-$VERSION
fi
BUILD=build-$VERSION
@@ -39,7 +40,7 @@ mkdir -p $BUILD
cp -a $HOME/dll/cygwin/*.dll $BUILD
cp /etc/pki/tls/certs/ca-bundle.crt $BUILD
chmod 0644 $BUILD/*.dll
-cp -a $BUILD/*.dll ~/CTAN/asymptote-$VERSION/binaries/$BINDIR/
+cp -a $BUILD/*.dll ~/CTAN/asymptote/binaries/$BINDIR/
make MSDOS=1 DESTDIR="$BUILD/" docdir="$BUILD/"
test -f asy.list || make MSDOS=1 keywords DESTDIR="$BUILD/" docdir="$BUILD/"
make MSDOS=1 install-asy DESTDIR="$BUILD/" docdir="$BUILD/"
@@ -83,19 +84,19 @@ rm -f doc/*.aux doc/*.log doc/*.dvi
make MSDOS=1 DESTDIR="$BUILD/"
make MSDOS=1 install-asy DESTDIR="$BUILD/"
mv $BUILD/usr/local/bin/asy.exe $BUILD
-cp $BUILD/asy.exe ~/CTAN/asymptote-$VERSION/binaries/$BINDIR/texlive
-cp -a configure.ac ~/CTAN/asymptote-$VERSION/
-cp -a $SHARED/asydoc/* ~/CTAN/asymptote-$VERSION/doc
-cd ~/CTAN/asymptote-$VERSION/binaries/$BINDIR
+cp $BUILD/asy.exe ~/CTAN/asymptote/binaries/$BINDIR/texlive
+cp -a configure.ac ~/CTAN/asymptote/
+cp -a $SHARED/asydoc/* ~/CTAN/asymptote/doc
+cd ~/CTAN/asymptote/binaries/$BINDIR
cp -a ../../README .
cd ~/CTAN
-cp -a ~/asymptote/build-scripts/README-binaries asymptote-$VERSION/binaries/$BINDIR/texlive/README
-SHAREDBIN=$SHARED/CTAN/asymptote-$VERSION
+cp -a ~/asymptote/build-scripts/README-binaries asymptote/binaries/$BINDIR/texlive/README
+SHAREDBIN=$SHARED/CTAN/asymptote
if [ $MACHINE == i686 ]; then
mkdir -p $SHAREDBIN
-cp -a asymptote-$VERSION/binaries/$BINDIR $SHAREDBIN
+cp -a asymptote/binaries/$BINDIR $SHAREDBIN
else
-cp -a $SHAREDBIN/i386-windows ~/CTAN/asymptote-$VERSION/binaries
+cp -a $SHAREDBIN/i386-windows ~/CTAN/asymptote/binaries
fi
-tar cfz asymptote-$VERSION-CTAN.tgz asymptote-$VERSION
+tar cfz asymptote-$VERSION-CTAN.tgz asymptote
cp -a --no-preserve=mode asymptote-$VERSION-CTAN.tgz $SHARED
diff --git a/graphics/asymptote/configure b/graphics/asymptote/configure
index f4395d377f..155644a558 100755
--- a/graphics/asymptote/configure
+++ b/graphics/asymptote/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Asymptote 2.82.
+# Generated by GNU Autoconf 2.69 for Asymptote 2.83.
#
# Report bugs to <https://github.com/vectorgraphics/asymptote/issues>.
#
@@ -581,8 +581,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Asymptote'
PACKAGE_TARNAME='asymptote'
-PACKAGE_VERSION='2.82'
-PACKAGE_STRING='Asymptote 2.82'
+PACKAGE_VERSION='2.83'
+PACKAGE_STRING='Asymptote 2.83'
PACKAGE_BUGREPORT='https://github.com/vectorgraphics/asymptote/issues'
PACKAGE_URL=''
@@ -1305,7 +1305,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Asymptote 2.82 to adapt to many kinds of systems.
+\`configure' configures Asymptote 2.83 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1371,7 +1371,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Asymptote 2.82:";;
+ short | recursive ) echo "Configuration of Asymptote 2.83:";;
esac
cat <<\_ACEOF
@@ -1491,7 +1491,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Asymptote configure 2.82
+Asymptote configure 2.83
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2077,7 +2077,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Asymptote $as_me 2.82, which was
+It was created by Asymptote $as_me 2.83, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -9521,7 +9521,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Asymptote $as_me 2.82, which was
+This file was extended by Asymptote $as_me 2.83, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9583,7 +9583,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Asymptote config.status 2.82
+Asymptote config.status 2.83
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/graphics/asymptote/configure.ac b/graphics/asymptote/configure.ac
index 9e5b1a8c13..6b8ef2f27a 100644
--- a/graphics/asymptote/configure.ac
+++ b/graphics/asymptote/configure.ac
@@ -3,7 +3,7 @@
# this file.
AC_PREREQ(2)
-AC_INIT([Asymptote],[2.82],[https://github.com/vectorgraphics/asymptote/issues])
+AC_INIT([Asymptote],[2.83],[https://github.com/vectorgraphics/asymptote/issues])
VERSION=$PACKAGE_VERSION
AC_SUBST(VERSION)
m4_include([ax_pthread.m4])
diff --git a/graphics/asymptote/doc/CAD.pdf b/graphics/asymptote/doc/CAD.pdf
index ae3216bf64..013b4f9da3 100644
--- a/graphics/asymptote/doc/CAD.pdf
+++ b/graphics/asymptote/doc/CAD.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/FAQ/asy-faq.info b/graphics/asymptote/doc/FAQ/asy-faq.info
index 3ae5ddb680..66de54d920 100644
--- a/graphics/asymptote/doc/FAQ/asy-faq.info
+++ b/graphics/asymptote/doc/FAQ/asy-faq.info
@@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY
File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir)
ASYMPTOTE FREQUENTLY ASKED QUESTIONS
- 2022-08-06
+ 2022-09-17
This is the list of Frequently Asked Questions about Asymptote (asy).
diff --git a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
index 63a205ed52..29526021d0 100644
--- a/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
+++ b/graphics/asymptote/doc/TeXShopAndAsymptote.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asy-latex.pdf b/graphics/asymptote/doc/asy-latex.pdf
index 32ad13ce2f..388db9c80e 100644
--- a/graphics/asymptote/doc/asy-latex.pdf
+++ b/graphics/asymptote/doc/asy-latex.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asyRefCard.pdf b/graphics/asymptote/doc/asyRefCard.pdf
index c1ba046670..a18baed931 100644
--- a/graphics/asymptote/doc/asyRefCard.pdf
+++ b/graphics/asymptote/doc/asyRefCard.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asymptote.pdf b/graphics/asymptote/doc/asymptote.pdf
index fe7bc493e3..2b1fddf801 100644
--- a/graphics/asymptote/doc/asymptote.pdf
+++ b/graphics/asymptote/doc/asymptote.pdf
Binary files differ
diff --git a/graphics/asymptote/doc/asymptote.sty b/graphics/asymptote/doc/asymptote.sty
deleted file mode 100644
index 2deb265a80..0000000000
--- a/graphics/asymptote/doc/asymptote.sty
+++ /dev/null
@@ -1,404 +0,0 @@
-%%
-%% This is file `asymptote.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% asy-latex.dtx (with options: `pkg')
-%% ____________________________
-%% The ASYMPTOTE package
-%%
-%% (C) 2003 Tom Prince
-%% (C) 2003-2021 John Bowman
-%% (C) 2010 Will Robertson
-%%
-%% Adapted from comment.sty
-%%
-%% Licence: GPL2+
-%%
-\ProvidesPackage{asymptote}
- [2021/12/29 v1.37 Asymptote style file for LaTeX]
-\def\Asymptote{{\tt Asymptote}}
-\InputIfFileExists{\jobname.pre}{}{}
-\newbox\ASYbox
-\newdimen\ASYdimen
-\newcounter{asy}
-\newwrite\AsyStream
-\newwrite\AsyPreStream
-\newif\ifASYinline
-\newif\ifASYattach
-\newif\ifASYkeepAspect
-\ASYkeepAspecttrue
-\RequirePackage{keyval}
-\RequirePackage{ifthen}
-\RequirePackage{graphicx}
-\IfFileExists{ifpdf.sty}{
- \RequirePackage{ifpdf}
-}{
- \expandafter\newif\csname ifpdf\endcsname
- \ifx\pdfoutput\@undefined\else
- \ifcase\pdfoutput\else
- \pdftrue
- \fi
- \fi
-}
-\IfFileExists{ifxetex.sty}{
- \RequirePackage{ifxetex}
-}{
- \expandafter\newif\csname ifxetex\endcsname
- \ifx\XeTeXversion\@undefined\else
- \xetextrue
- \fi
-}
-\IfFileExists{catchfile.sty}{
- \RequirePackage{catchfile}
-}{
- \newcommand\CatchFileDef[3]{%
- \begingroup
- \everyeof{%
- \ENDCATCHFILEMARKER
- \noexpand
- }%
- \long\def\@tempa####1\ENDCATCHFILEMARKER{%
- \endgroup
- \def##1{####1}%
- }%
- ##3%
- \expandafter\@tempa\@@input ##2\relax
- }
-}
-\newif\if@asy@attachfile@loaded
-\AtBeginDocument{%
- \@ifpackageloaded{attachfile2}{\@asy@attachfile@loadedtrue}{}%
- \let\asy@check@attachfile\asy@check@attachfile@loaded
-}
-\newcommand\asy@check@attachfile@loaded{%
- \if@asy@attachfile@loaded\else
- \PackageError{asymptote}{You must load the attachfile2 package}{^^J%
- You have requested the [attach] option for some or all of your^^J%
- Asymptote graphics, which requires the attachfile2 package.^^J%
- Please load it in the document preamble.^^J%
- }%
- \fi
-}
-\newcommand\asy@check@attachfile{%
- \AtBeginDocument{\asy@check@attachfile@loaded}%
- \let\asy@check@attachfile\@empty
-}
-\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
-\DeclareOption{inline}{%
- \ASYinlinetrue
-}
-\DeclareOption{attach}{%
- \asy@check@attachfile
- \ASYattachtrue
-}
-\ProcessOptions*
-\def\asylatexdir{}
-\def\asydir{}
-\def\ASYasydir{}
-\def\ASYprefix{}
-\newif\ifASYPDF
-\ifxetex
- \ASYPDFtrue
-\else
- \ifpdf
- \ASYPDFtrue
- \fi
-\fi
-\ifASYPDF
- \def\AsyExtension{pdf}
-\else
- \def\AsyExtension{eps}
-\fi
-\def\unquoteJobname#1"#2"#3\relax{%
- \def\rawJobname{#1}%
- \ifx\rawJobname\empty
- \def\rawJobname{#2}%
- \fi
-}
-\expandafter\unquoteJobname\jobname""\relax
-\def\fixstar#1*#2\relax{%
- \def\argtwo{#2}%
- \ifx\argtwo\empty
- \gdef\Jobname{#1}%
- \else
- \fixstar#1-#2\relax
- \fi
-}
-\expandafter\fixstar\rawJobname*\relax
-\def\Ginclude@eps#1{%
- \message{<#1>}%
- \bgroup
- \def\@tempa{!}%
- \dimen@\Gin@req@width
- \dimen@ii.1bp\relax
- \divide\dimen@\dimen@ii
- \@tempdima\Gin@req@height
- \divide\@tempdima\dimen@ii
- \special{PSfile=#1\space
- llx=\Gin@llx\space
- lly=\Gin@lly\space
- urx=\Gin@urx\space
- ury=\Gin@ury\space
- \ifx\Gin@scalex\@tempa\else rwi=\number\dimen@\space\fi
- \ifx\Gin@scaley\@tempa\else rhi=\number\@tempdima\space\fi
- \ifGin@clip clip\fi}%
- \egroup
-}
-\immediate\openout\AsyPreStream=\jobname.pre\relax
-\AtEndDocument{\immediate\closeout\AsyPreStream}
-\def\WriteAsyLine#1{%
- \immediate\write\AsyStream{\detokenize{#1}}%
-}
-\def\globalASYdefs{}
-\def\WriteGlobalAsyLine#1{%
- \expandafter\g@addto@macro
- \expandafter\globalASYdefs
- \expandafter{\detokenize{#1^^J}}%
-}
-\def\ProcessAsymptote#1{%
- \begingroup
- \def\CurrentAsymptote{#1}%
- \let\do\@makeother \dospecials
- \@makeother\^^L% and whatever other special cases
- \catcode`\ =10
- \endlinechar`\^^M \catcode`\^^M=12 \xAsymptote
-}
-\begingroup
- \catcode`\^^M=12 \endlinechar=-1\relax%
- \gdef\xAsymptote{%
- \expandafter\ProcessAsymptoteLine%
- }
- \gdef\ProcessAsymptoteLine#1^^M{%
- \def\@tempa{#1}%
- {%
- \escapechar=-1\relax%
- \xdef\@tempb{\string\\end\string\{\CurrentAsymptote\string\}}%
- }%
- \ifx\@tempa\@tempb%
- \edef\next{\endgroup\noexpand\end{\CurrentAsymptote}}%
- \else%
- \ThisAsymptote{#1}%
- \let\next\ProcessAsymptoteLine%
- \fi%
- \next%
- }
-\endgroup
-\def\asy@init{%
- \def\ASYlatexdir{}%
- \ifx\asylatexdir\empty\else
- \def\ASYlatexdir{\asylatexdir/}%
- \fi
- \ifx\asydir\empty\else
- \def\ASYasydir{\asydir/}%
- \fi
- \def\ASYprefix{\ASYlatexdir\ASYasydir}%
-}
-\newcommand\asy[1][]{%
- \stepcounter{asy}%
- \setkeys{ASYkeys}{#1}%
- \ifASYattach
- \ASYinlinefalse
- \fi
- \asy@init
- \immediate\write\AsyPreStream{%
- \noexpand\InputIfFileExists{%
- \ASYprefix\noexpand\jobname-\the\c@asy.pre}{}{}%
- }%
- \asy@write@graphic@header
- \let\ThisAsymptote\WriteAsyLine
- \ProcessAsymptote{asy}%
-}
-\def\endasy{%
- \asy@finalise@stream
- \asy@input@graphic
-}
-\def\asy@write@graphic@header{%
- \immediate\openout\AsyStream=\ASYasydir\jobname-\the\c@asy.asy\relax
- \gdef\AsyFile{\ASYprefix\Jobname-\the\c@asy}%
- \immediate\write\AsyStream{%
- if(!settings.multipleView) settings.batchView=false;^^J%
- \ifxetex
- settings.tex="xelatex";^^J%
- \else\ifASYPDF
- settings.tex="pdflatex";^^J%
- \fi\fi
- \ifASYinline
- settings.inlinetex=true;^^J%
- deletepreamble();^^J%
- \fi
- defaultfilename="\Jobname-\the\c@asy";^^J%
- if(settings.render < 0) settings.render=4;^^J%
- settings.outformat="";^^J%
- \ifASYattach
- settings.inlineimage=false;^^J%
- settings.embed=false;^^J%
- settings.toolbar=true;^^J%
- \else
- settings.inlineimage=true;^^J%
- settings.embed=true;^^J%
- settings.toolbar=false;^^J%
- viewportmargin=(2,2);^^J%
- \fi
- \globalASYdefs
- }%
-}
-\def\asy@expand@keepAspect{%
- \ifASYkeepAspect keepAspect=true%
- \else keepAspect=false%
- \fi%
-}
-\def\asy@finalise@stream{%
- \ifx\ASYwidth\@empty
- \ifx\ASYheight\@empty
- % write nothing!
- \else
- \immediate\write\AsyStream{size(0,\ASYheight,\asy@expand@keepAspect);}%
- \fi
- \else
- \ifx\ASYheight\@empty
- \immediate\write\AsyStream{size(\ASYwidth,0,\asy@expand@keepAspect);}%
- \else
- \immediate\write\AsyStream{size(\ASYwidth,\ASYheight,\asy@expand@keepAspect);}%
- \fi
- \fi
- \ifx\ASYviewportwidth\@empty
- \ifx\ASYviewportheight\@empty
- % write nothing!
- \else
- \immediate\write\AsyStream{viewportsize=(0,\ASYviewportheight);}%
- \fi
- \else
- \ifx\ASYviewportheight\@empty
- \immediate\write\AsyStream{viewportsize=(\ASYviewportwidth,0);}%
- \else
- \immediate\write\AsyStream{%
- viewportsize=(\ASYviewportwidth,\ASYviewportheight);}%
- \fi
- \fi
- \immediate\closeout\AsyStream
-}
-\def\asy@input@graphic{%
- \ifASYinline
- \IfFileExists{"\AsyFile.tex"}{%
- \catcode`:=12\relax
- \@@input"\AsyFile.tex"\relax
- }{%
- \PackageWarning{asymptote}{file `\AsyFile.tex' not found}%
- }%
- \else
- \IfFileExists{"\AsyFile.\AsyExtension"}{%
- \ifASYattach
- \ifASYPDF
- \IfFileExists{"\AsyFile+0.pdf"}{%
- \setbox\ASYbox=\hbox{\includegraphics[hiresbb]{\AsyFile+0.pdf}}%
- }{%
- \setbox\ASYbox=\hbox{\includegraphics[hiresbb]{\AsyFile.pdf}}%
- }%
- \else
- \setbox\ASYbox=\hbox{\includegraphics[hiresbb]{\AsyFile.eps}}%
- \fi
- \textattachfile{\AsyFile.\AsyExtension}{\phantom{\copy\ASYbox}}%
- \vskip-\ht\ASYbox
- \indent
- \box\ASYbox
- \else
- \ifASYPDF
- \includegraphics[hiresbb]{\AsyFile.pdf}%
- \else
- \includegraphics[hiresbb]{\AsyFile.eps}%
- \fi
- \fi
- }{%
- \IfFileExists{"\AsyFile.tex"}{%
- \catcode`:=12
- \@@input"\AsyFile.tex"\relax
- }{%
- \PackageWarning{asymptote}{%
- file `\AsyFile.\AsyExtension' not found%
- }%
- }%
- }%
- \fi
-}
-\def\asydef{%
- \let\ThisAsymptote\WriteGlobalAsyLine
- \ProcessAsymptote{asydef}%
-}
-\newcommand\asyinclude[2][]{%
- \begingroup
- \stepcounter{asy}%
- \setkeys{ASYkeys}{#1}%
- \ifASYattach
- \ASYinlinefalse
- \fi
- \asy@init
- \immediate\write\AsyPreStream{%
- \noexpand\InputIfFileExists{%
- \ASYprefix\noexpand\jobname-\the\c@asy.pre}{}{}%
- }%
- \asy@write@graphic@header
- \IfFileExists{#2.asy}{%
- \CatchFileDef\@tempa{#2.asy}{%
- \let\do\@makeother
- \dospecials
- \endlinechar=10\relax
- }%
- }{%
- \IfFileExists{#2}{%
- \CatchFileDef\@tempa{#2}{%
- \let\do\@makeother
- \dospecials
- \endlinechar=10\relax
- }%
- }{%
- \PackageWarning{asymptote}{file #2 not found}%
- \def\@tempa{}%
- }%
- }%
- \immediate\write\AsyStream{\unexpanded\expandafter{\@tempa}}%
- \asy@finalise@stream
- \asy@input@graphic
- \endgroup
-}
-\newcommand{\ASYanimategraphics}[5][]{%
- \IfFileExists{_#3.pdf}{%
- \animategraphics[{#1}]{#2}{_#3}{#4}{#5}%
- }{}%
-}
-\newcommand\asysetup[1]{\setkeys{ASYkeys}{#1}}
-\define@key{ASYkeys}{dir}{%
- \def\asydir{#1}%
-}
-\def\ASYwidth{}
-\define@key{ASYkeys}{width}{%
- \edef\ASYwidth{\the\dimexpr#1\relax}%
-}
-\def\ASYheight{}
-\define@key{ASYkeys}{height}{%
- \edef\ASYheight{\the\dimexpr#1\relax}%
-}
-\define@key{ASYkeys}{keepAspect}[true]{%
- \ifthenelse{\equal{#1}{true}}
- {\ASYkeepAspecttrue}
- {\ASYkeepAspectfalse}%
-}
-\def\ASYviewportwidth{}
-\define@key{ASYkeys}{viewportwidth}{%
- \edef\ASYviewportwidth{\the\dimexpr#1\relax}%
-}
-\def\ASYviewportheight{}
-\define@key{ASYkeys}{viewportheight}{%
- \edef\ASYviewportheight{\the\dimexpr#1\relax}%
-}
-\define@key{ASYkeys}{inline}[true]{%
- \ifthenelse{\equal{#1}{true}}
- {\ASYinlinetrue}
- {\ASYinlinefalse}%
-}
-\define@key{ASYkeys}{attach}[true]{%
- \ifthenelse{\equal{#1}{true}}
- {\ASYattachtrue}
- {\ASYattachfalse}%
-}
diff --git a/graphics/asymptote/doc/png/asymptote.info b/graphics/asymptote/doc/png/asymptote.info
index 7bb896355d..7751122789 100644
--- a/graphics/asymptote/doc/png/asymptote.info
+++ b/graphics/asymptote/doc/png/asymptote.info
@@ -1,7 +1,7 @@
This is asymptote.info, produced by makeinfo version 6.8 from
asymptote.texi.
-This file documents 'Asymptote', version 2.82.
+This file documents 'Asymptote', version 2.83.
<https://asymptote.sourceforge.io>
@@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Prev: (dir), Up: (dir)
Asymptote
*********
-This file documents 'Asymptote', version 2.82.
+This file documents 'Asymptote', version 2.83.
<https://asymptote.sourceforge.io>
@@ -6606,7 +6606,7 @@ following routines:
pair a=(0,0);
pair b=(2pi,2pi);
- path vector(pair z) {return (0,0)--(sin(z.x),cos(z.y));}
+ path vector(pair z) {return (sin(z.x),cos(z.y));}
add(vectorfield(vector,a,b));
@@ -8255,11 +8255,9 @@ import slopefield;
size(200);
real func(real x) {return 2x;}
-add(slopefield(func,(-3,-3),(3,3),20,Arrow));
+add(slopefield(func,(-3,-3),(3,3),20));
draw(curve((0,0),func,(-3,-3),(3,3)),red);
-
-
[./slopefield1]

@@ -10656,43 +10654,43 @@ Ref: marker244175
Ref: markuniform244529
Ref: errorbars246388
Ref: automatic scaling251517
-Node: palette263227
-Ref: images263345
-Ref: image267641
-Ref: logimage268162
-Ref: penimage269268
-Ref: penfunctionimage269531
-Node: three270303
-Ref: PostScript3D300578
-Node: obj302316
-Node: graph3302565
-Ref: GaussianSurface308308
-Node: grid3309458
-Node: solids310286
-Node: tube311278
-Node: flowchart313550
-Node: contour318193
-Node: contour3324701
-Node: smoothcontour3325013
-Node: slopefield326732
-Node: ode328221
-Node: Options328478
-Ref: configuration file336212
-Ref: settings336212
-Ref: texengines337476
-Ref: convert337476
-Node: Interactive mode340921
-Ref: history343070
-Node: GUI344373
-Node: GUI installation344923
-Node: GUI usage345851
-Node: Command-Line Interface346914
-Node: Language server protocol348356
-Node: PostScript to Asymptote349781
-Node: Help350559
-Node: Debugger352233
-Node: Credits353989
-Node: Index355214
+Node: palette263220
+Ref: images263338
+Ref: image267634
+Ref: logimage268155
+Ref: penimage269261
+Ref: penfunctionimage269524
+Node: three270296
+Ref: PostScript3D300571
+Node: obj302309
+Node: graph3302558
+Ref: GaussianSurface308301
+Node: grid3309451
+Node: solids310279
+Node: tube311271
+Node: flowchart313543
+Node: contour318186
+Node: contour3324694
+Node: smoothcontour3325006
+Node: slopefield326725
+Node: ode328206
+Node: Options328463
+Ref: configuration file336197
+Ref: settings336197
+Ref: texengines337461
+Ref: convert337461
+Node: Interactive mode340906
+Ref: history343055
+Node: GUI344358
+Node: GUI installation344908
+Node: GUI usage345836
+Node: Command-Line Interface346899
+Node: Language server protocol348341
+Node: PostScript to Asymptote349766
+Node: Help350544
+Node: Debugger352218
+Node: Credits353974
+Node: Index355199

End Tag Table
diff --git a/graphics/asymptote/doc/slopefield1.asy b/graphics/asymptote/doc/slopefield1.asy
index fd60de4f63..82de917646 100644
--- a/graphics/asymptote/doc/slopefield1.asy
+++ b/graphics/asymptote/doc/slopefield1.asy
@@ -3,7 +3,5 @@ import slopefield;
size(200);
real func(real x) {return 2x;}
-add(slopefield(func,(-3,-3),(3,3),20,Arrow));
+add(slopefield(func,(-3,-3),(3,3),20));
draw(curve((0,0),func,(-3,-3),(3,3)),red);
-
-
diff --git a/graphics/asymptote/doc/vectorfield.asy b/graphics/asymptote/doc/vectorfield.asy
index 12de66e49c..bc319e5689 100644
--- a/graphics/asymptote/doc/vectorfield.asy
+++ b/graphics/asymptote/doc/vectorfield.asy
@@ -4,6 +4,6 @@ size(100);
pair a=(0,0);
pair b=(2pi,2pi);
-path vector(pair z) {return (0,0)--(sin(z.x),cos(z.y));}
+path vector(pair z) {return (sin(z.x),cos(z.y));}
add(vectorfield(vector,a,b));
diff --git a/graphics/asymptote/glrender.cc b/graphics/asymptote/glrender.cc
index 18d72d5c4d..d43a72d034 100644
--- a/graphics/asymptote/glrender.cc
+++ b/graphics/asymptote/glrender.cc
@@ -1333,16 +1333,14 @@ void shift(int x, int y)
void pan(int x, int y)
{
- if(orthographic) {
- double Zoominv=1.0/Zoom;
- X += (x-x0)*Zoominv;
- Y += (y0-y)*Zoominv;
- } else {
+ if(orthographic)
+ shift(x,y);
+ else {
cx += (x-x0)*(xmax-xmin)/Width;
cy += (y0-y)*(ymax-ymin)/Height;
+ x0=x; y0=y;
+ update();
}
- x0=x; y0=y;
- update();
}
void zoom(int x, int y)
diff --git a/graphics/asymptote/mathop.h b/graphics/asymptote/mathop.h
index 785f30d036..d51c5741eb 100644
--- a/graphics/asymptote/mathop.h
+++ b/graphics/asymptote/mathop.h
@@ -249,7 +249,7 @@ struct quotient {
if(y == -1) return Negate(x);
// Implementation-independent definition of integer division: round down
Int q=x/y;
- if(q >= 0 || y*q == x) return q;
+ if(!((x < 0)^(y < 0)) || y*q == x) return q;
return q-1;
}
};
@@ -325,4 +325,3 @@ void interp(vm::stack *s)
} // namespace run
#endif //MATHOP_H
-
diff --git a/graphics/asymptote/LspCpp/include/optional.hpp b/graphics/asymptote/optional.hpp
index 86e3b407c6..86e3b407c6 100644
--- a/graphics/asymptote/LspCpp/include/optional.hpp
+++ b/graphics/asymptote/optional.hpp
diff --git a/graphics/asymptote/revision.cc b/graphics/asymptote/revision.cc
index bd8b881056..d262223887 100644
--- a/graphics/asymptote/revision.cc
+++ b/graphics/asymptote/revision.cc
@@ -1,2 +1,2 @@
-const char *REVISION="2.82";
+const char *REVISION="2.83";
const char *AsyGLVersion="1.02";
diff --git a/graphics/asymptote/runpicture.cc b/graphics/asymptote/runpicture.cc
index 0cddfbdaf6..70be72fd98 100644
--- a/graphics/asymptote/runpicture.cc
+++ b/graphics/asymptote/runpicture.cc
@@ -876,6 +876,7 @@ void gen_runpicture46(stack *Stack)
}
bool clip=false;
if((*p)->begingroup()) {
+ string key=(*p)->KEY;
++level;
while(p != f->nodes.end() && level) {
if(!Delete) {
@@ -894,6 +895,8 @@ void gen_runpicture46(stack *Stack)
fflush(pipeout);
error(nobegin);
}
+ if(level == 0)
+ (*p)->KEY=key;
}
}
}
@@ -958,7 +961,7 @@ void gen_runpicture46(stack *Stack)
// Three-dimensional picture and surface operations
// Bezier curve
-#line 630 "runpicture.in"
+#line 633 "runpicture.in"
// void _draw(picture *f, path3 g, triple center=Zero, penarray *p, real opacity, real shininess, real metallic, real fresnel0, Int interaction=0);
void gen_runpicture47(stack *Stack)
{
@@ -971,7 +974,7 @@ void gen_runpicture47(stack *Stack)
triple center=vm::pop<triple>(Stack,Zero);
path3 g=vm::pop<path3>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 633 "runpicture.in"
+#line 636 "runpicture.in"
size_t n=g.size();
for(unsigned int i=0; i < n; ++i)
f->append(new drawPath3(g.subpath((Int) i,Int(i+1)),center,*p,opacity,
@@ -980,7 +983,7 @@ void gen_runpicture47(stack *Stack)
}
// Bezier patch
-#line 642 "runpicture.in"
+#line 645 "runpicture.in"
// void draw(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, Int digits, bool primitive=false);
void gen_runpicture48(stack *Stack)
{
@@ -997,7 +1000,7 @@ void gen_runpicture48(stack *Stack)
triple center=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 646 "runpicture.in"
+#line 649 "runpicture.in"
f->append(new drawBezierPatch(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
(Interaction) intcast(interaction),
@@ -1005,7 +1008,7 @@ void gen_runpicture48(stack *Stack)
}
// Bezier triangle
-#line 654 "runpicture.in"
+#line 657 "runpicture.in"
// void drawbeziertriangle(picture *f, triplearray2 *P, triple center, bool straight, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *colors, Int interaction, Int digits, bool primitive=false);
void gen_runpicture49(stack *Stack)
{
@@ -1022,7 +1025,7 @@ void gen_runpicture49(stack *Stack)
triple center=vm::pop<triple>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 659 "runpicture.in"
+#line 662 "runpicture.in"
f->append(new drawBezierTriangle(*P,center,straight,*p,opacity,shininess,
metallic,fresnel0,*colors,
(Interaction) intcast(interaction),
@@ -1030,7 +1033,7 @@ void gen_runpicture49(stack *Stack)
}
// General NURBS curve
-#line 667 "runpicture.in"
+#line 670 "runpicture.in"
// void draw(picture *f, triplearray *P, realarray *knot, realarray *weights=emptyarray, pen p);
void gen_runpicture50(stack *Stack)
{
@@ -1039,12 +1042,12 @@ void gen_runpicture50(stack *Stack)
realarray * knot=vm::pop<realarray *>(Stack);
triplearray * P=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 669 "runpicture.in"
+#line 672 "runpicture.in"
f->append(new drawNurbsPath3(*P,knot,weights,p));
}
// General NURBS surface
-#line 674 "runpicture.in"
+#line 677 "runpicture.in"
// void draw(picture *f, triplearray2 *P, realarray *uknot, realarray *vknot, realarray2 *weights=emptyarray, penarray *p, real opacity, real shininess,real metallic, real fresnel0, penarray *colors);
void gen_runpicture51(stack *Stack)
{
@@ -1059,13 +1062,13 @@ void gen_runpicture51(stack *Stack)
realarray * uknot=vm::pop<realarray *>(Stack);
triplearray2 * P=vm::pop<triplearray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 677 "runpicture.in"
+#line 680 "runpicture.in"
f->append(new drawNurbs(*P,uknot,vknot,weights,*p,opacity,shininess,
metallic,fresnel0,*colors));
}
// Sphere primitive
-#line 683 "runpicture.in"
+#line 686 "runpicture.in"
// void drawSphere(picture *f, realarray2 *t, bool half=false, penarray *p, real opacity, real shininess, real metallic, real fresnel0, Int type);
void gen_runpicture52(stack *Stack)
{
@@ -1078,13 +1081,13 @@ void gen_runpicture52(stack *Stack)
bool half=vm::pop<bool>(Stack,false);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 686 "runpicture.in"
+#line 689 "runpicture.in"
f->append(new drawSphere(*t,half,*p,opacity,shininess,metallic,fresnel0,
intcast(type)));
}
// Cylinder primitive
-#line 692 "runpicture.in"
+#line 695 "runpicture.in"
// void drawCylinder(picture *f, realarray2 *t, penarray *p, real opacity, real shininess, real metallic, real fresnel0, bool core=false);
void gen_runpicture53(stack *Stack)
{
@@ -1096,12 +1099,12 @@ void gen_runpicture53(stack *Stack)
penarray * p=vm::pop<penarray *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 695 "runpicture.in"
+#line 698 "runpicture.in"
f->append(new drawCylinder(*t,*p,opacity,shininess,metallic,fresnel0,core));
}
// Disk primitive
-#line 700 "runpicture.in"
+#line 703 "runpicture.in"
// void drawDisk(picture *f, realarray2 *t, penarray *p, real opacity, real shininess, real metallic, real fresnel0);
void gen_runpicture54(stack *Stack)
{
@@ -1112,12 +1115,12 @@ void gen_runpicture54(stack *Stack)
penarray * p=vm::pop<penarray *>(Stack);
realarray2 * t=vm::pop<realarray2 *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 702 "runpicture.in"
+#line 705 "runpicture.in"
f->append(new drawDisk(*t,*p,opacity,shininess,metallic,fresnel0));
}
// Tube primitive
-#line 707 "runpicture.in"
+#line 710 "runpicture.in"
// void drawTube(picture *f, triplearray *g, real width, penarray *p, real opacity, real shininess, real metallic, real fresnel0, triple min, triple max, bool core=false);
void gen_runpicture55(stack *Stack)
{
@@ -1132,13 +1135,13 @@ void gen_runpicture55(stack *Stack)
real width=vm::pop<real>(Stack);
triplearray * g=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 710 "runpicture.in"
+#line 713 "runpicture.in"
f->append(new drawTube(*g,width,*p,opacity,shininess,metallic,fresnel0,
min,max,core));
}
// Draw pixel
-#line 716 "runpicture.in"
+#line 719 "runpicture.in"
// void drawpixel(picture *f, triple v, pen p, real width=1.0);
void gen_runpicture56(stack *Stack)
{
@@ -1146,12 +1149,12 @@ void gen_runpicture56(stack *Stack)
pen p=vm::pop<pen>(Stack);
triple v=vm::pop<triple>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 717 "runpicture.in"
+#line 720 "runpicture.in"
f->append(new drawPixel(v,p,width));
}
// Draw triangles
-#line 722 "runpicture.in"
+#line 725 "runpicture.in"
// void draw(picture *f, triplearray *v, Intarray2 *vi, triple center=Zero, triplearray *n, Intarray2 *ni, penarray *p, real opacity, real shininess, real metallic, real fresnel0, penarray *c=emptyarray, Intarray2 *ci=emptyarray, Int interaction);
void gen_runpicture57(stack *Stack)
{
@@ -1169,64 +1172,64 @@ void gen_runpicture57(stack *Stack)
Intarray2 * vi=vm::pop<Intarray2 *>(Stack);
triplearray * v=vm::pop<triplearray *>(Stack);
picture * f=vm::pop<picture *>(Stack);
-#line 727 "runpicture.in"
+#line 730 "runpicture.in"
f->append(new drawTriangles(*v,*vi,center,*n,*ni,*p,opacity,shininess,
metallic,fresnel0,*c,*ci,
(Interaction) intcast(interaction)));
}
-#line 733 "runpicture.in"
+#line 736 "runpicture.in"
// triple min3(picture *f);
void gen_runpicture58(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 734 "runpicture.in"
+#line 737 "runpicture.in"
{Stack->push<triple>(f->bounds3().Min()); return;}
}
-#line 738 "runpicture.in"
+#line 741 "runpicture.in"
// triple max3(picture *f);
void gen_runpicture59(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 739 "runpicture.in"
+#line 742 "runpicture.in"
{Stack->push<triple>(f->bounds3().Max()); return;}
}
-#line 743 "runpicture.in"
+#line 746 "runpicture.in"
// triple size3(picture *f);
void gen_runpicture60(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 744 "runpicture.in"
+#line 747 "runpicture.in"
bbox3 b=f->bounds3();
{Stack->push<triple>(b.Max()-b.Min()); return;}
}
-#line 749 "runpicture.in"
+#line 752 "runpicture.in"
// pair minratio(picture *f);
void gen_runpicture61(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 750 "runpicture.in"
+#line 753 "runpicture.in"
{Stack->push<pair>(f->ratio(::min)); return;}
}
-#line 754 "runpicture.in"
+#line 757 "runpicture.in"
// pair maxratio(picture *f);
void gen_runpicture62(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 755 "runpicture.in"
+#line 758 "runpicture.in"
{Stack->push<pair>(f->ratio(::max)); return;}
}
-#line 759 "runpicture.in"
+#line 762 "runpicture.in"
// bool is3D(picture *f);
void gen_runpicture63(stack *Stack)
{
picture * f=vm::pop<picture *>(Stack);
-#line 760 "runpicture.in"
+#line 763 "runpicture.in"
{Stack->push<bool>(f->have3D()); return;}
}
@@ -1330,39 +1333,39 @@ void gen_runpicture_venv(venv &ve)
addFunc(ve, run::gen_runpicture45, primVoid(), SYM(xmap), formal(primString(), SYM(key), false, false), formal(primTransform(), SYM(t), true, false));
#line 515 "runpicture.in"
addFunc(ve, run::gen_runpicture46, primVoid(), SYM(deconstruct), formal(primPicture(), SYM(f), false, false), formal(primPicture(), SYM(preamble), true, false), formal(primTransform(), SYM(t), true, false));
-#line 626 "runpicture.in"
+#line 629 "runpicture.in"
addFunc(ve, run::gen_runpicture47, primVoid(), SYM(_draw), formal(primPicture(), SYM(f), false, false), formal(primPath3(), SYM(g), false, false), formal(primTriple(), SYM(center), true, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primInt(), SYM(interaction), true, false));
-#line 641 "runpicture.in"
+#line 644 "runpicture.in"
addFunc(ve, run::gen_runpicture48, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primInt(), SYM(digits), false, false), formal(primBoolean(), SYM(primitive), true, false));
-#line 653 "runpicture.in"
+#line 656 "runpicture.in"
addFunc(ve, run::gen_runpicture49, primVoid(), SYM(drawbeziertriangle), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(primTriple(), SYM(center), false, false), formal(primBoolean(), SYM(straight), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(colors), false, false), formal(primInt(), SYM(interaction), false, false), formal(primInt(), SYM(digits), false, false), formal(primBoolean(), SYM(primitive), true, false));
-#line 666 "runpicture.in"
+#line 669 "runpicture.in"
addFunc(ve, run::gen_runpicture50, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(p), false, false), formal(realArray(), SYM(knot), false, false), formal(realArray(), SYM(weights), true, false), formal(primPen(), SYM(p), false, false));
-#line 673 "runpicture.in"
+#line 676 "runpicture.in"
addFunc(ve, run::gen_runpicture51, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray2(), SYM(p), false, false), formal(realArray(), SYM(uknot), false, false), formal(realArray(), SYM(vknot), false, false), formal(realArray2(), SYM(weights), true, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(colors), false, false));
-#line 682 "runpicture.in"
+#line 685 "runpicture.in"
addFunc(ve, run::gen_runpicture52, primVoid(), SYM(drawSphere), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(primBoolean(), SYM(half), true, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primInt(), SYM(type), false, false));
-#line 691 "runpicture.in"
+#line 694 "runpicture.in"
addFunc(ve, run::gen_runpicture53, primVoid(), SYM(drawCylinder), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primBoolean(), SYM(core), true, false));
-#line 699 "runpicture.in"
+#line 702 "runpicture.in"
addFunc(ve, run::gen_runpicture54, primVoid(), SYM(drawDisk), formal(primPicture(), SYM(f), false, false), formal(realArray2(), SYM(t), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false));
-#line 706 "runpicture.in"
+#line 709 "runpicture.in"
addFunc(ve, run::gen_runpicture55, primVoid(), SYM(drawTube), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(g), false, false), formal(primReal(), SYM(width), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(primTriple(), SYM(min), false, false), formal(primTriple(), SYM(max), false, false), formal(primBoolean(), SYM(core), true, false));
-#line 715 "runpicture.in"
+#line 718 "runpicture.in"
addFunc(ve, run::gen_runpicture56, primVoid(), SYM(drawpixel), formal(primPicture(), SYM(f), false, false), formal(primTriple(), SYM(v), false, false), formal(primPen(), SYM(p), false, false), formal(primReal(), SYM(width), true, false));
-#line 721 "runpicture.in"
+#line 724 "runpicture.in"
addFunc(ve, run::gen_runpicture57, primVoid(), SYM(draw), formal(primPicture(), SYM(f), false, false), formal(tripleArray(), SYM(v), false, false), formal(IntArray2(), SYM(vi), false, false), formal(primTriple(), SYM(center), true, false), formal(tripleArray(), SYM(n), false, false), formal(IntArray2(), SYM(ni), false, false), formal(penArray(), SYM(p), false, false), formal(primReal(), SYM(opacity), false, false), formal(primReal(), SYM(shininess), false, false), formal(primReal(), SYM(metallic), false, false), formal(primReal(), SYM(fresnel0), false, false), formal(penArray(), SYM(c), true, false), formal(IntArray2(), SYM(ci), true, false), formal(primInt(), SYM(interaction), false, false));
-#line 733 "runpicture.in"
+#line 736 "runpicture.in"
addFunc(ve, run::gen_runpicture58, primTriple(), SYM(min3), formal(primPicture(), SYM(f), false, false));
-#line 738 "runpicture.in"
+#line 741 "runpicture.in"
addFunc(ve, run::gen_runpicture59, primTriple(), SYM(max3), formal(primPicture(), SYM(f), false, false));
-#line 743 "runpicture.in"
+#line 746 "runpicture.in"
addFunc(ve, run::gen_runpicture60, primTriple(), SYM(size3), formal(primPicture(), SYM(f), false, false));
-#line 749 "runpicture.in"
+#line 752 "runpicture.in"
addFunc(ve, run::gen_runpicture61, primPair(), SYM(minratio), formal(primPicture(), SYM(f), false, false));
-#line 754 "runpicture.in"
+#line 757 "runpicture.in"
addFunc(ve, run::gen_runpicture62, primPair(), SYM(maxratio), formal(primPicture(), SYM(f), false, false));
-#line 759 "runpicture.in"
+#line 762 "runpicture.in"
addFunc(ve, run::gen_runpicture63, primBoolean(), SYM(is3D), formal(primPicture(), SYM(f), false, false));
}
diff --git a/graphics/asymptote/runpicture.in b/graphics/asymptote/runpicture.in
index e782d2ed77..696e303ace 100644
--- a/graphics/asymptote/runpicture.in
+++ b/graphics/asymptote/runpicture.in
@@ -545,6 +545,7 @@ void deconstruct(picture *f, picture *preamble=NULL, transform T=identity)
}
bool clip=false;
if((*p)->begingroup()) {
+ string key=(*p)->KEY;
++level;
while(p != f->nodes.end() && level) {
if(!Delete) {
@@ -563,6 +564,8 @@ void deconstruct(picture *f, picture *preamble=NULL, transform T=identity)
fflush(pipeout);
error(nobegin);
}
+ if(level == 0)
+ (*p)->KEY=key;
}
}
}
diff --git a/graphics/asymptote/tests/arith/integer.asy b/graphics/asymptote/tests/arith/integer.asy
index b5c337d273..5433f345bc 100644
--- a/graphics/asymptote/tests/arith/integer.asy
+++ b/graphics/asymptote/tests/arith/integer.asy
@@ -1,23 +1,32 @@
// Integer arithmetic.
import TestLib;
StartTest("integer addition");
-assert(1+1==2);
+assert(1+1 == 2);
EndTest();
StartTest("integer subtraction");
-assert(2-1==1);
+assert(2-1 == 1);
EndTest();
StartTest("integer multiplication");
-assert(2*2==4);
+assert(2*2 == 4);
EndTest();
StartTest("integer division");
-assert(4/2==2);
+assert(4/2 == 2);
+assert(3/2 == 1.5);
+EndTest();
+StartTest("integer quotient");
+assert(4#2 == 2);
+assert(3#2 == 1);
+assert(1#2 == 0);
+assert(-1#2 == -1);
+assert(1#-2 == -1);
+assert(-1#-2 == 0);
+assert(-3#2 == -2);
EndTest();
StartTest("integer self ops");
-{ int x = 3; assert(++x==4); assert(x==4); }
-{ int x = 3; assert(--x==2); assert(x==2); }
-{ int x = 3; assert((x+=7) == 10); assert(x==10); }
-{ int x = 3; assert((x-=7) == -4); assert(x==-4); }
-{ int x = 3; assert((x*=7) == 21); assert(x==21); }
-{ int x = 10; assert((x%=4) == 2); assert(x==2); }
+{ int x=3; assert(++x == 4); assert(x == 4); }
+{ int x=3; assert(--x == 2); assert(x == 2); }
+{ int x=3; assert((x += 7) == 10); assert(x == 10); }
+{ int x=3; assert((x -= 7) == -4); assert(x == -4); }
+{ int x=3; assert((x *= 7) == 21); assert(x == 21); }
+{ int x=10; assert((x %= 4) == 2); assert(x == 2); }
EndTest();
-
diff --git a/graphics/asymptote/v3dheadertypes.h b/graphics/asymptote/v3dheadertypes.h
index b1e151c896..cc9a0d6649 100644
--- a/graphics/asymptote/v3dheadertypes.h
+++ b/graphics/asymptote/v3dheadertypes.h
@@ -1,6 +1,6 @@
// Enum class for v3dheadertypes
// AUTO-GENERATED from v3dheadertypes.csv
-// Generated at 2022-08-06 23:20:07.528444
+// Generated at 2022-09-17 12:45:44.250502
namespace camp
{
diff --git a/graphics/asymptote/v3dheadertypes.py b/graphics/asymptote/v3dheadertypes.py
index 5a94f74a8e..94f5f054d8 100644
--- a/graphics/asymptote/v3dheadertypes.py
+++ b/graphics/asymptote/v3dheadertypes.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Enum class for v3dheadertypes
""" AUTO-GENERATED from v3dheadertypes.csv """
-# Generated at 2022-08-06 23:21:25.035253
+# Generated at 2022-09-17 12:47:07.682666
class v3dheadertypes:
v3dheadertypes_canvasWidth=1
diff --git a/graphics/asymptote/v3dtypes.h b/graphics/asymptote/v3dtypes.h
index c652e5994e..5ad157db61 100644
--- a/graphics/asymptote/v3dtypes.h
+++ b/graphics/asymptote/v3dtypes.h
@@ -1,6 +1,6 @@
// Enum class for v3dtypes
// AUTO-GENERATED from v3dtypes.csv
-// Generated at 2022-08-06 23:20:07.528496
+// Generated at 2022-09-17 12:45:44.273869
namespace camp
{
diff --git a/graphics/asymptote/v3dtypes.py b/graphics/asymptote/v3dtypes.py
index dc2eaf3f78..9581c3736d 100644
--- a/graphics/asymptote/v3dtypes.py
+++ b/graphics/asymptote/v3dtypes.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
# Enum class for v3dtypes
""" AUTO-GENERATED from v3dtypes.csv """
-# Generated at 2022-08-06 23:21:24.955697
+# Generated at 2022-09-17 12:47:07.664682
class v3dtypes:
v3dtypes_material=1
diff --git a/graphics/asymptote/webgl/gl.js b/graphics/asymptote/webgl/gl.js
index 4f7ee9530e..00375ee57f 100644
--- a/graphics/asymptote/webgl/gl.js
+++ b/graphics/asymptote/webgl/gl.js
@@ -2165,10 +2165,6 @@ class Triangles extends Geometry {
this.Normals=Normals;
this.Colors=Colors;
this.Indices=Indices;
- Positions=[];
- Normals=[];
- Colors=[];
- Indices=[];
this.transparent=Materials[this.MaterialIndex].diffuse[3] < 1;
}
@@ -3334,6 +3330,10 @@ function pixel(controlpoint,width,MaterialIndex)
function triangles(CenterIndex,MaterialIndex)
{
P.push(new Triangles(CenterIndex,MaterialIndex));
+ window.Positions=Positions=[];
+ window.Normals=Normals=[];
+ window.Colors=Colors=[];
+ window.Indices=Indices=[];
}
// draw a sphere of radius r about center
@@ -3802,16 +3802,20 @@ function webGLStart()
initIBL().then(SetIBL).then(redrawScene);
}
- window['webGLStart']=webGLStart;
- window['light']=light;
- window['material']=material;
- window['patch']=patch;
- window['curve']=curve;
- window['pixel']=pixel;
- window['triangles']=triangles;
- window['sphere']=sphere;
- window['disk']=disk;
- window['cylinder']=cylinder;
- window['tube']=tube;
+ window.webGLStart=webGLStart;
+ window.light=light;
+ window.material=material;
+ window.patch=patch;
+ window.curve=curve;
+ window.pixel=pixel;
+ window.triangles=triangles;
+ window.sphere=sphere;
+ window.disk=disk;
+ window.cylinder=cylinder;
+ window.tube=tube;
+ window.Positions=Positions;
+ window.Normals=Normals;
+ window.Colors=Colors;
+ window.Indices=Indices;
})();
diff --git a/macros/generic/unicode-data/BidiBrackets.txt b/macros/generic/unicode-data/BidiBrackets.txt
index 89698f588a..e138e7f5be 100644
--- a/macros/generic/unicode-data/BidiBrackets.txt
+++ b/macros/generic/unicode-data/BidiBrackets.txt
@@ -1,6 +1,6 @@
-# BidiBrackets-14.0.0.txt
-# Date: 2021-06-30, 23:59:00 GMT [AG, LI, KW]
-# © 2021 Unicode®, Inc.
+# BidiBrackets-15.0.0.txt
+# Date: 2022-05-03, 18:42:00 GMT [AG, LI, KW]
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
diff --git a/macros/generic/unicode-data/BidiMirroring.txt b/macros/generic/unicode-data/BidiMirroring.txt
index bd8e2c5d00..5861d6e7f4 100644
--- a/macros/generic/unicode-data/BidiMirroring.txt
+++ b/macros/generic/unicode-data/BidiMirroring.txt
@@ -1,6 +1,6 @@
-# BidiMirroring-14.0.0.txt
-# Date: 2021-08-08, 22:55:00 GMT [KW, RP]
-# © 2021 Unicode®, Inc.
+# BidiMirroring-15.0.0.txt
+# Date: 2022-05-03, 18:47:00 GMT [KW, RP]
+# © 2022 Unicode®, Inc.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
@@ -15,7 +15,7 @@
# value, for which there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
#
-# The repertoire covered by the file is Unicode 14.0.0.
+# The repertoire covered by the file is Unicode 15.0.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
diff --git a/macros/generic/unicode-data/CaseFolding.txt b/macros/generic/unicode-data/CaseFolding.txt
index 932ace29e6..65aa0fcd6b 100644
--- a/macros/generic/unicode-data/CaseFolding.txt
+++ b/macros/generic/unicode-data/CaseFolding.txt
@@ -1,11 +1,11 @@
-# CaseFolding-14.0.0.txt
-# Date: 2021-03-08, 19:35:41 GMT
-# © 2021 Unicode®, Inc.
+# CaseFolding-15.0.0.txt
+# Date: 2022-02-02, 23:35:35 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Case Folding Properties
#
diff --git a/macros/generic/unicode-data/EastAsianWidth.txt b/macros/generic/unicode-data/EastAsianWidth.txt
index e04f705178..38b7076c02 100644
--- a/macros/generic/unicode-data/EastAsianWidth.txt
+++ b/macros/generic/unicode-data/EastAsianWidth.txt
@@ -1,6 +1,6 @@
-# EastAsianWidth-14.0.0.txt
-# Date: 2021-07-06, 09:58:53 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
+# EastAsianWidth-15.0.0.txt
+# Date: 2022-05-24, 17:40:20 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
@@ -534,6 +534,7 @@
0CE2..0CE3;N # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF;N # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2;N # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3;N # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01;N # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03;N # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D04..0D0C;N # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -595,7 +596,7 @@
0EBD;N # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4;N # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6;N # Lm LAO KO LA
-0EC8..0ECD;N # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE;N # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0ED0..0ED9;N # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0EDC..0EDF;N # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
0F00;N # Lo TIBETAN SYLLABLE OM
@@ -1946,6 +1947,7 @@ FFFD;A # So REPLACEMENT CHARACTER
10EAB..10EAC;N # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
10EAD;N # Pd YEZIDI HYPHENATION MARK
10EB0..10EB1;N # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF;N # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F00..10F1C;N # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F1D..10F26;N # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
10F27;N # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
@@ -2028,6 +2030,8 @@ FFFD;A # So REPLACEMENT CHARACTER
11236..11237;N # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
11238..1123D;N # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
1123E;N # Mn KHOJKI SIGN SUKUN
+1123F..11240;N # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241;N # Mn KHOJKI VOWEL SIGN VOCALIC R
11280..11286;N # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
11288;N # Lo MULTANI LETTER GHA
1128A..1128D;N # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -2190,6 +2194,7 @@ FFFD;A # So REPLACEMENT CHARACTER
11A9E..11AA2;N # Po [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
11AB0..11ABF;N # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
11AC0..11AF8;N # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09;N # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
11C00..11C08;N # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
11C0A..11C2E;N # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
11C2F;N # Mc BHAIKSUKI VOWEL SIGN AA
@@ -2235,6 +2240,19 @@ FFFD;A # So REPLACEMENT CHARACTER
11EF3..11EF4;N # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6;N # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11EF7..11EF8;N # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01;N # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02;N # Lo KAWI SIGN REPHA
+11F03;N # Mc KAWI SIGN VISARGA
+11F04..11F10;N # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33;N # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35;N # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A;N # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F;N # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40;N # Mn KAWI VOWEL SIGN EU
+11F41;N # Mc KAWI SIGN KILLER
+11F42;N # Mn KAWI CONJOINER
+11F43..11F4F;N # Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59;N # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
11FB0;N # Lo LISU LETTER YHA
11FC0..11FD4;N # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
11FD5..11FDC;N # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -2247,8 +2265,11 @@ FFFD;A # So REPLACEMENT CHARACTER
12480..12543;N # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
12F90..12FF0;N # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
12FF1..12FF2;N # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
-13000..1342E;N # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438;N # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F;N # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F;N # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440;N # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446;N # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455;N # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
14400..14646;N # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16800..16A38;N # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E;N # Lo [31] MRO LETTER TA..MRO LETTER TEK
@@ -2293,7 +2314,9 @@ FFFD;A # So REPLACEMENT CHARACTER
1AFFD..1AFFE;W # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000..1B0FF;W # Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
1B100..1B122;W # Lo [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
+1B132;W # Lo HIRAGANA LETTER SMALL KO
1B150..1B152;W # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155;W # Lo KATAKANA LETTER SMALL KO
1B164..1B167;W # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB;W # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A;N # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -2324,6 +2347,7 @@ FFFD;A # So REPLACEMENT CHARACTER
1D200..1D241;N # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D242..1D244;N # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1D245;N # So GREEK MUSICAL LEIMMA
+1D2C0..1D2D3;N # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
1D2E0..1D2F3;N # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
1D300..1D356;N # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D360..1D378;N # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -2383,11 +2407,14 @@ FFFD;A # So REPLACEMENT CHARACTER
1DF00..1DF09;N # Ll [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
1DF0A;N # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1DF0B..1DF1E;N # Ll [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A;N # Ll [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
1E000..1E006;N # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018;N # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021;N # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024;N # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A;N # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D;N # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F;N # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E100..1E12C;N # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E130..1E136;N # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E137..1E13D;N # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -2400,6 +2427,10 @@ FFFD;A # So REPLACEMENT CHARACTER
1E2EC..1E2EF;N # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E2F0..1E2F9;N # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
1E2FF;N # Sc WANCHO NGUN SIGN
+1E4D0..1E4EA;N # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB;N # Lm NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF;N # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9;N # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E7E0..1E7E6;N # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
1E7E8..1E7EB;N # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
1E7ED..1E7EE;N # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -2528,13 +2559,14 @@ FFFD;A # So REPLACEMENT CHARACTER
1F6D0..1F6D2;W # So [3] PLACE OF WORSHIP..SHOPPING TROLLEY
1F6D3..1F6D4;N # So [2] STUPA..PAGODA
1F6D5..1F6D7;W # So [3] HINDU TEMPLE..ELEVATOR
-1F6DD..1F6DF;W # So [3] PLAYGROUND SLIDE..RING BUOY
+1F6DC..1F6DF;W # So [4] WIRELESS..RING BUOY
1F6E0..1F6EA;N # So [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
1F6EB..1F6EC;W # So [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
1F6F0..1F6F3;N # So [4] SATELLITE..PASSENGER SHIP
1F6F4..1F6FC;W # So [9] SCOOTER..ROLLER SKATE
-1F700..1F773;N # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8;N # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776;N # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F77F;N # So [5] HAUMEA..ORCUS
+1F780..1F7D9;N # So [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
1F7E0..1F7EB;W # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F7F0;W # So HEAVY EQUALS SIGN
1F800..1F80B;N # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -2551,22 +2583,20 @@ FFFD;A # So REPLACEMENT CHARACTER
1F947..1F9FF;W # So [185] FIRST PLACE MEDAL..NAZAR AMULET
1FA00..1FA53;N # So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
1FA60..1FA6D;N # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74;W # So [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C;W # So [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86;W # So [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC;W # So [29] RINGED PLANET..HAMSA
-1FAB0..1FABA;W # So [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5;W # So [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9;W # So [10] BLUEBERRIES..JAR
-1FAE0..1FAE7;W # So [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6;W # So [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C;W # So [13] BALLET SHOES..CRUTCH
+1FA80..1FA88;W # So [9] YO-YO..FLUTE
+1FA90..1FABD;W # So [46] RINGED PLANET..WING
+1FABF..1FAC5;W # So [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB;W # So [14] MOOSE..PEA POD
+1FAE0..1FAE8;W # So [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8;W # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
1FB00..1FB92;N # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
1FB94..1FBCA;N # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
1FBF0..1FBF9;N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
20000..2A6DF;W # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
2A6E0..2A6FF;W # Cn [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738;W # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F;W # Cn [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739;W # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F;W # Cn [6] <reserved-2B73A>..<reserved-2B73F>
2B740..2B81D;W # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B81E..2B81F;W # Cn [2] <reserved-2B81E>..<reserved-2B81F>
2B820..2CEA1;W # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
@@ -2577,7 +2607,9 @@ FFFD;A # So REPLACEMENT CHARACTER
2FA1E..2FA1F;W # Cn [2] <reserved-2FA1E>..<reserved-2FA1F>
2FA20..2FFFD;W # Cn [1502] <reserved-2FA20>..<reserved-2FFFD>
30000..3134A;W # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD;W # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
+3134B..3134F;W # Cn [5] <reserved-3134B>..<reserved-3134F>
+31350..323AF;W # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD;W # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
E0001;N # Cf LANGUAGE TAG
E0020..E007F;N # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF;A # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
diff --git a/macros/generic/unicode-data/GraphemeBreakProperty.txt b/macros/generic/unicode-data/GraphemeBreakProperty.txt
index dd2569064a..a12b5eef1e 100644
--- a/macros/generic/unicode-data/GraphemeBreakProperty.txt
+++ b/macros/generic/unicode-data/GraphemeBreakProperty.txt
@@ -1,11 +1,11 @@
-# GraphemeBreakProperty-14.0.0.txt
-# Date: 2021-08-12, 23:13:02 GMT
-# © 2021 Unicode®, Inc.
+# GraphemeBreakProperty-15.0.0.txt
+# Date: 2022-04-27, 17:07:38 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -32,8 +32,9 @@
11A3A ; Prepend # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
11A84..11A89 ; Prepend # Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
11D46 ; Prepend # Lo MASARAM GONDI REPHA
+11F02 ; Prepend # Lo KAWI SIGN REPHA
-# Total code points: 26
+# Total code points: 27
# ================================================
@@ -67,7 +68,7 @@
FEFF ; Control # Cf ZERO WIDTH NO-BREAK SPACE
FFF0..FFF8 ; Control # Cn [9] <reserved-FFF0>..<reserved-FFF8>
FFF9..FFFB ; Control # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-13430..13438 ; Control # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F ; Control # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Control # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Control # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0000 ; Control # Cn <reserved-E0000>
@@ -76,7 +77,7 @@ E0002..E001F ; Control # Cn [30] <reserved-E0002>..<reserved-E001F>
E0080..E00FF ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 3886
+# Total code points: 3893
# ================================================
@@ -185,7 +186,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -324,6 +325,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF ; Extend # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
@@ -346,6 +348,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Extend # Mn KHOJKI SIGN SUKUN
+11241 ; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
11300..11301 ; Extend # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -413,6 +416,12 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11D95 ; Extend # Mn GUNJALA GONDI SIGN ANUSVARA
11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11F00..11F01 ; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A ; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40 ; Extend # Mn KAWI VOWEL SIGN EU
+11F42 ; Extend # Mn KAWI CONJOINER
+13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
@@ -439,16 +448,18 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F ; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E2AE ; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 2095
+# Total code points: 2130
# ================================================
@@ -489,6 +500,7 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
0CC3..0CC4 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
0CC7..0CC8 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
0CCA..0CCB ; SpacingMark # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CF3 ; SpacingMark # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D02..0D03 ; SpacingMark # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3F..0D40 ; SpacingMark # Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
0D46..0D48 ; SpacingMark # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
@@ -614,12 +626,16 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
11D93..11D94 ; SpacingMark # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
11D96 ; SpacingMark # Mc GUNJALA GONDI SIGN VISARGA
11EF5..11EF6 ; SpacingMark # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F03 ; SpacingMark # Mc KAWI SIGN VISARGA
+11F34..11F35 ; SpacingMark # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F3E..11F3F ; SpacingMark # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F41 ; SpacingMark # Mc KAWI SIGN KILLER
16F51..16F87 ; SpacingMark # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16FF0..16FF1 ; SpacingMark # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1D166 ; SpacingMark # Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D16D ; SpacingMark # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-# Total code points: 388
+# Total code points: 395
# ================================================
diff --git a/macros/generic/unicode-data/LineBreak.txt b/macros/generic/unicode-data/LineBreak.txt
index aa5985b8f0..8243333b94 100644
--- a/macros/generic/unicode-data/LineBreak.txt
+++ b/macros/generic/unicode-data/LineBreak.txt
@@ -1,6 +1,6 @@
-# LineBreak-14.0.0.txt
-# Date: 2021-07-06, 09:58:55 GMT [KW, LI]
-# © 2021 Unicode®, Inc.
+# LineBreak-15.0.0.txt
+# Date: 2022-07-28, 09:20:42 GMT [KW, LI]
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see https://www.unicode.org/terms_of_use.html
#
@@ -481,6 +481,7 @@
0CE2..0CE3;CM # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF;NU # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2;AL # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3;CM # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01;CM # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03;CM # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D04..0D0C;AL # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -542,7 +543,7 @@
0EBD;SA # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4;SA # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6;SA # Lm LAO KO LA
-0EC8..0ECD;SA # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE;SA # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0ED0..0ED9;NU # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0EDC..0EDF;SA # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
0F00;AL # Lo TIBETAN SYLLABLE OM
@@ -855,7 +856,11 @@
1D79..1D7F;AL # Ll [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
1D80..1D9A;AL # Ll [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
1D9B..1DBF;AL # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DFF;CM # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DCC;CM # Mn [13] COMBINING DOTTED GRAVE ACCENT..COMBINING MACRON-BREVE
+1DCD;GL # Mn COMBINING DOUBLE CIRCUMFLEX ABOVE
+1DCE..1DFB;CM # Mn [46] COMBINING OGONEK ABOVE..COMBINING DELETION MARK
+1DFC;GL # Mn COMBINING DOUBLE INVERTED BREVE BELOW
+1DFD..1DFF;CM # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
1E00..1EFF;AL # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
1F00..1F15;AL # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
1F18..1F1D;AL # Lu [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
@@ -931,7 +936,7 @@
2054;AL # Pc INVERTED UNDERTIE
2055;AL # Po FLOWER PUNCTUATION MARK
2056;BA # Po THREE DOT PUNCTUATION
-2057;AL # Po QUADRUPLE PRIME
+2057;PO # Po QUADRUPLE PRIME
2058..205B;BA # Po [4] FOUR DOT PUNCTUATION..FOUR DOT MARK
205C;AL # Po DOTTED CROSS
205D..205E;BA # Po [2] TRICOLON..VERTICAL FOUR DOTS
@@ -2793,6 +2798,7 @@ FFFD;AI # So REPLACEMENT CHARACTER
10EAB..10EAC;CM # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
10EAD;BA # Pd YEZIDI HYPHENATION MARK
10EB0..10EB1;AL # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF;CM # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F00..10F1C;AL # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F1D..10F26;AL # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
10F27;AL # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
@@ -2882,6 +2888,8 @@ FFFD;AI # So REPLACEMENT CHARACTER
1123B..1123C;BA # Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
1123D;AL # Po KHOJKI ABBREVIATION SIGN
1123E;CM # Mn KHOJKI SIGN SUKUN
+1123F..11240;AL # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241;CM # Mn KHOJKI VOWEL SIGN VOCALIC R
11280..11286;AL # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
11288;AL # Lo MULTANI LETTER GHA
1128A..1128D;AL # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -3055,6 +3063,7 @@ FFFD;AI # So REPLACEMENT CHARACTER
11AA1..11AA2;BA # Po [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2
11AB0..11ABF;AL # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
11AC0..11AF8;AL # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09;BB # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
11C00..11C08;AL # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
11C0A..11C2E;AL # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
11C2F;CM # Mc BHAIKSUKI VOWEL SIGN AA
@@ -3101,6 +3110,20 @@ FFFD;AI # So REPLACEMENT CHARACTER
11EF3..11EF4;CM # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6;CM # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
11EF7..11EF8;AL # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01;CM # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02;AL # Lo KAWI SIGN REPHA
+11F03;CM # Mc KAWI SIGN VISARGA
+11F04..11F10;AL # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33;AL # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35;CM # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A;CM # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F;CM # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40;CM # Mn KAWI VOWEL SIGN EU
+11F41;CM # Mc KAWI SIGN KILLER
+11F42;CM # Mn KAWI CONJOINER
+11F43..11F44;BA # Po [2] KAWI DANDA..KAWI DOUBLE DANDA
+11F45..11F4F;ID # Po [11] KAWI PUNCTUATION SECTION MARKER..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59;NU # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
11FB0;AL # Lo LISU LETTER YHA
11FC0..11FD4;AL # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
11FD5..11FDC;AL # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
@@ -3126,10 +3149,18 @@ FFFD;AI # So REPLACEMENT CHARACTER
1328A..13378;AL # Lo [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
13379;OP # Lo EGYPTIAN HIEROGLYPH V011A
1337A..1337B;CL # Lo [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
-1337C..1342E;AL # Lo [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
+1337C..1342F;AL # Lo [180] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH V011D
13430..13436;GL # Cf [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
13437;OP # Cf EGYPTIAN HIEROGLYPH BEGIN SEGMENT
13438;CL # Cf EGYPTIAN HIEROGLYPH END SEGMENT
+13439..1343B;GL # Cf [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+1343C;OP # Cf EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+1343D;CL # Cf EGYPTIAN HIEROGLYPH END ENCLOSURE
+1343E;OP # Cf EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
+1343F;CL # Cf EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440;CM # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446;AL # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455;CM # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
14400..145CD;AL # Lo [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409
145CE;OP # Lo ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
145CF;CL # Lo ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
@@ -3179,7 +3210,9 @@ FFFD;AI # So REPLACEMENT CHARACTER
1AFFD..1AFFE;AL # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000..1B0FF;ID # Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
1B100..1B122;ID # Lo [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
+1B132;CJ # Lo HIRAGANA LETTER SMALL KO
1B150..1B152;CJ # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155;CJ # Lo KATAKANA LETTER SMALL KO
1B164..1B167;CJ # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB;ID # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A;AL # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
@@ -3210,6 +3243,7 @@ FFFD;AI # So REPLACEMENT CHARACTER
1D200..1D241;AL # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D242..1D244;CM # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
1D245;AL # So GREEK MUSICAL LEIMMA
+1D2C0..1D2D3;AL # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
1D2E0..1D2F3;AL # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
1D300..1D356;AL # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D360..1D378;AL # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -3270,11 +3304,14 @@ FFFD;AI # So REPLACEMENT CHARACTER
1DF00..1DF09;AL # Ll [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
1DF0A;AL # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1DF0B..1DF1E;AL # Ll [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A;AL # Ll [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
1E000..1E006;CM # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018;CM # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021;CM # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024;CM # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A;CM # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D;AL # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F;CM # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E100..1E12C;AL # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E130..1E136;CM # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E137..1E13D;AL # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
@@ -3287,6 +3324,10 @@ FFFD;AI # So REPLACEMENT CHARACTER
1E2EC..1E2EF;CM # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
1E2F0..1E2F9;NU # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
1E2FF;PR # Sc WANCHO NGUN SIGN
+1E4D0..1E4EA;AL # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB;AL # Lm NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF;CM # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9;NU # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E7E0..1E7E6;AL # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
1E7E8..1E7EB;AL # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
1E7ED..1E7EE;AL # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -3454,16 +3495,18 @@ FFFD;AI # So REPLACEMENT CHARACTER
1F6C1..1F6CB;ID # So [11] BATHTUB..COUCH AND LAMP
1F6CC;EB # So SLEEPING ACCOMMODATION
1F6CD..1F6D7;ID # So [11] SHOPPING BAGS..ELEVATOR
-1F6D8..1F6DC;ID # Cn [5] <reserved-1F6D8>..<reserved-1F6DC>
-1F6DD..1F6EC;ID # So [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6D8..1F6DB;ID # Cn [4] <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC..1F6EC;ID # So [17] WIRELESS..AIRPLANE ARRIVING
1F6ED..1F6EF;ID # Cn [3] <reserved-1F6ED>..<reserved-1F6EF>
1F6F0..1F6FC;ID # So [13] SATELLITE..ROLLER SKATE
1F6FD..1F6FF;ID # Cn [3] <reserved-1F6FD>..<reserved-1F6FF>
1F700..1F773;AL # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F774..1F77F;ID # Cn [12] <reserved-1F774>..<reserved-1F77F>
+1F774..1F776;ID # So [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F777..1F77A;ID # Cn [4] <reserved-1F777>..<reserved-1F77A>
+1F77B..1F77F;ID # So [5] HAUMEA..ORCUS
1F780..1F7D4;AL # So [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
-1F7D5..1F7D8;ID # So [4] CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
-1F7D9..1F7DF;ID # Cn [7] <reserved-1F7D9>..<reserved-1F7DF>
+1F7D5..1F7D9;ID # So [5] CIRCLED TRIANGLE..NINE POINTED WHITE STAR
+1F7DA..1F7DF;ID # Cn [6] <reserved-1F7DA>..<reserved-1F7DF>
1F7E0..1F7EB;ID # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F7EC..1F7EF;ID # Cn [4] <reserved-1F7EC>..<reserved-1F7EF>
1F7F0;ID # So HEAVY EQUALS SIGN
@@ -3509,33 +3552,29 @@ FFFD;AI # So REPLACEMENT CHARACTER
1FA54..1FA5F;ID # Cn [12] <reserved-1FA54>..<reserved-1FA5F>
1FA60..1FA6D;ID # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
1FA6E..1FA6F;ID # Cn [2] <reserved-1FA6E>..<reserved-1FA6F>
-1FA70..1FA74;ID # So [5] BALLET SHOES..THONG SANDAL
-1FA75..1FA77;ID # Cn [3] <reserved-1FA75>..<reserved-1FA77>
-1FA78..1FA7C;ID # So [5] DROP OF BLOOD..CRUTCH
+1FA70..1FA7C;ID # So [13] BALLET SHOES..CRUTCH
1FA7D..1FA7F;ID # Cn [3] <reserved-1FA7D>..<reserved-1FA7F>
-1FA80..1FA86;ID # So [7] YO-YO..NESTING DOLLS
-1FA87..1FA8F;ID # Cn [9] <reserved-1FA87>..<reserved-1FA8F>
-1FA90..1FAAC;ID # So [29] RINGED PLANET..HAMSA
-1FAAD..1FAAF;ID # Cn [3] <reserved-1FAAD>..<reserved-1FAAF>
-1FAB0..1FABA;ID # So [11] FLY..NEST WITH EGGS
-1FABB..1FABF;ID # Cn [5] <reserved-1FABB>..<reserved-1FABF>
-1FAC0..1FAC2;ID # So [3] ANATOMICAL HEART..PEOPLE HUGGING
+1FA80..1FA88;ID # So [9] YO-YO..FLUTE
+1FA89..1FA8F;ID # Cn [7] <reserved-1FA89>..<reserved-1FA8F>
+1FA90..1FABD;ID # So [46] RINGED PLANET..WING
+1FABE;ID # Cn <reserved-1FABE>
+1FABF..1FAC2;ID # So [4] GOOSE..PEOPLE HUGGING
1FAC3..1FAC5;EB # So [3] PREGNANT MAN..PERSON WITH CROWN
-1FAC6..1FACF;ID # Cn [10] <reserved-1FAC6>..<reserved-1FACF>
-1FAD0..1FAD9;ID # So [10] BLUEBERRIES..JAR
-1FADA..1FADF;ID # Cn [6] <reserved-1FADA>..<reserved-1FADF>
-1FAE0..1FAE7;ID # So [8] MELTING FACE..BUBBLES
-1FAE8..1FAEF;ID # Cn [8] <reserved-1FAE8>..<reserved-1FAEF>
-1FAF0..1FAF6;EB # So [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
-1FAF7..1FAFF;ID # Cn [9] <reserved-1FAF7>..<reserved-1FAFF>
+1FAC6..1FACD;ID # Cn [8] <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FADB;ID # So [14] MOOSE..PEA POD
+1FADC..1FADF;ID # Cn [4] <reserved-1FADC>..<reserved-1FADF>
+1FAE0..1FAE8;ID # So [9] MELTING FACE..SHAKING FACE
+1FAE9..1FAEF;ID # Cn [7] <reserved-1FAE9>..<reserved-1FAEF>
+1FAF0..1FAF8;EB # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
+1FAF9..1FAFF;ID # Cn [7] <reserved-1FAF9>..<reserved-1FAFF>
1FB00..1FB92;AL # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
1FB94..1FBCA;AL # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
1FBF0..1FBF9;NU # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
1FC00..1FFFD;ID # Cn [1022] <reserved-1FC00>..<reserved-1FFFD>
20000..2A6DF;ID # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
2A6E0..2A6FF;ID # Cn [32] <reserved-2A6E0>..<reserved-2A6FF>
-2A700..2B738;ID # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
-2B739..2B73F;ID # Cn [7] <reserved-2B739>..<reserved-2B73F>
+2A700..2B739;ID # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F;ID # Cn [6] <reserved-2B73A>..<reserved-2B73F>
2B740..2B81D;ID # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B81E..2B81F;ID # Cn [2] <reserved-2B81E>..<reserved-2B81F>
2B820..2CEA1;ID # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
@@ -3546,7 +3585,9 @@ FFFD;AI # So REPLACEMENT CHARACTER
2FA1E..2FA1F;ID # Cn [2] <reserved-2FA1E>..<reserved-2FA1F>
2FA20..2FFFD;ID # Cn [1502] <reserved-2FA20>..<reserved-2FFFD>
30000..3134A;ID # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD;ID # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
+3134B..3134F;ID # Cn [5] <reserved-3134B>..<reserved-3134F>
+31350..323AF;ID # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD;ID # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
E0001;CM # Cf LANGUAGE TAG
E0020..E007F;CM # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF;CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
diff --git a/macros/generic/unicode-data/PropList.txt b/macros/generic/unicode-data/PropList.txt
index 0a5a934682..b49d6460c1 100644
--- a/macros/generic/unicode-data/PropList.txt
+++ b/macros/generic/unicode-data/PropList.txt
@@ -1,11 +1,11 @@
-# PropList-14.0.0.txt
-# Date: 2021-08-12, 23:13:05 GMT
-# © 2021 Unicode®, Inc.
+# PropList-15.0.0.txt
+# Date: 2022-08-05, 22:17:16 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -215,6 +215,7 @@ FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA
11C41..11C43 ; Terminal_Punctuation # Po [3] BHAIKSUKI DANDA..BHAIKSUKI WORD SEPARATOR
11C71 ; Terminal_Punctuation # Po MARCHEN MARK SHAD
11EF7..11EF8 ; Terminal_Punctuation # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F44 ; Terminal_Punctuation # Po [2] KAWI DANDA..KAWI DOUBLE DANDA
12470..12474 ; Terminal_Punctuation # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
16A6E..16A6F ; Terminal_Punctuation # Po [2] MRO DANDA..MRO DOUBLE DANDA
16AF5 ; Terminal_Punctuation # Po BASSA VAH FULL STOP
@@ -224,7 +225,7 @@ FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA
1BC9F ; Terminal_Punctuation # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
1DA87..1DA8A ; Terminal_Punctuation # Po [4] SIGNWRITING COMMA..SIGNWRITING COLON
-# Total code points: 276
+# Total code points: 278
# ================================================
@@ -507,6 +508,7 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
0BD7 ; Other_Alphabetic # Mc TAMIL AU LENGTH MARK
0C00 ; Other_Alphabetic # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; Other_Alphabetic # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; Other_Alphabetic # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
0C3E..0C40 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Other_Alphabetic # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
0C46..0C48 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
@@ -524,6 +526,7 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
0CCC ; Other_Alphabetic # Mn KANNADA VOWEL SIGN AU
0CD5..0CD6 ; Other_Alphabetic # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Other_Alphabetic # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3 ; Other_Alphabetic # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01 ; Other_Alphabetic # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Other_Alphabetic # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3E..0D40 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
@@ -548,7 +551,7 @@ FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L
0ECD ; Other_Alphabetic # Mn LAO NIGGAHITA
0F71..0F7E ; Other_Alphabetic # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
0F7F ; Other_Alphabetic # Mc TIBETAN SIGN RNAM BCAD
-0F80..0F81 ; Other_Alphabetic # Mn [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II
+0F80..0F83 ; Other_Alphabetic # Mn [4] TIBETAN VOWEL SIGN REVERSED I..TIBETAN SIGN SNA LDAN
0F8D..0F97 ; Other_Alphabetic # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
0F99..0FBC ; Other_Alphabetic # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
102B..102C ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
@@ -692,6 +695,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
11002 ; Other_Alphabetic # Mc BRAHMI SIGN VISARGA
11038..11045 ; Other_Alphabetic # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU
11073..11074 ; Other_Alphabetic # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+11080..11081 ; Other_Alphabetic # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
11082 ; Other_Alphabetic # Mc KAITHI SIGN VISARGA
110B0..110B2 ; Other_Alphabetic # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B3..110B6 ; Other_Alphabetic # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
@@ -715,6 +719,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
11234 ; Other_Alphabetic # Mn KHOJKI SIGN ANUSVARA
11237 ; Other_Alphabetic # Mn KHOJKI SIGN SHADDA
1123E ; Other_Alphabetic # Mn KHOJKI SIGN SUKUN
+11241 ; Other_Alphabetic # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Other_Alphabetic # Mn KHUDAWADI SIGN ANUSVARA
112E0..112E2 ; Other_Alphabetic # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
112E3..112E8 ; Other_Alphabetic # Mn [6] KHUDAWADI VOWEL SIGN U..KHUDAWADI VOWEL SIGN AU
@@ -807,6 +812,12 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
11D96 ; Other_Alphabetic # Mc GUNJALA GONDI SIGN VISARGA
11EF3..11EF4 ; Other_Alphabetic # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6 ; Other_Alphabetic # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01 ; Other_Alphabetic # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03 ; Other_Alphabetic # Mc KAWI SIGN VISARGA
+11F34..11F35 ; Other_Alphabetic # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; Other_Alphabetic # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; Other_Alphabetic # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; Other_Alphabetic # Mn KAWI VOWEL SIGN EU
16F4F ; Other_Alphabetic # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F51..16F87 ; Other_Alphabetic # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16F8F..16F92 ; Other_Alphabetic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
@@ -817,12 +828,13 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
1E01B..1E021 ; Other_Alphabetic # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Other_Alphabetic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Other_Alphabetic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F ; Other_Alphabetic # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E947 ; Other_Alphabetic # Mn ADLAM HAMZA
1F130..1F149 ; Other_Alphabetic # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z
1F150..1F169 ; Other_Alphabetic # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; Other_Alphabetic # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 1404
+# Total code points: 1425
# ================================================
@@ -840,14 +852,15 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM
18D00..18D08 ; Ideographic # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
1B170..1B2FB ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
20000..2A6DF ; Ideographic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738 ; Ideographic # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739 ; Ideographic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
2B740..2B81D ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEA1 ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEB0..2EBE0 ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
-# Total code points: 101661
+# Total code points: 105854
# ================================================
@@ -1028,6 +1041,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
10AE5..10AE6 ; Diacritic # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D22..10D23 ; Diacritic # Lo [2] HANIFI ROHINGYA MARK SAKIN..HANIFI ROHINGYA MARK NA KHONNA
10D24..10D27 ; Diacritic # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10EFD..10EFF ; Diacritic # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Diacritic # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F82..10F85 ; Diacritic # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11046 ; Diacritic # Mn BRAHMI VIRAMA
@@ -1064,6 +1078,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
11D42 ; Diacritic # Mn MASARAM GONDI SIGN NUKTA
11D44..11D45 ; Diacritic # Mn [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA
11D97 ; Diacritic # Mn GUNJALA GONDI VIRAMA
+13447..13455 ; Diacritic # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
16AF0..16AF4 ; Diacritic # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Diacritic # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F8F..16F92 ; Diacritic # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
@@ -1079,6 +1094,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
1D17B..1D182 ; Diacritic # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; Diacritic # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1E030..1E06D ; Diacritic # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E130..1E136 ; Diacritic # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E2AE ; Diacritic # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Diacritic # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
@@ -1086,7 +1102,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON
1E944..1E946 ; Diacritic # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK
1E948..1E94A ; Diacritic # Mn [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA
-# Total code points: 1064
+# Total code points: 1144
# ================================================
@@ -1135,6 +1151,7 @@ FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
02E0..02E4 ; Other_Lowercase # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
0345 ; Other_Lowercase # Mn COMBINING GREEK YPOGEGRAMMENI
037A ; Other_Lowercase # Lm GREEK YPOGEGRAMMENI
+10FC ; Other_Lowercase # Lm MODIFIER LETTER GEORGIAN NAR
1D2C..1D6A ; Other_Lowercase # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
1D78 ; Other_Lowercase # Lm MODIFIER LETTER CYRILLIC EN
1D9B..1DBF ; Other_Lowercase # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
@@ -1146,14 +1163,17 @@ FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND
2C7C..2C7D ; Other_Lowercase # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
A69C..A69D ; Other_Lowercase # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A770 ; Other_Lowercase # Lm MODIFIER LETTER US
+A7F2..A7F4 ; Other_Lowercase # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F8..A7F9 ; Other_Lowercase # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
AB5C..AB5F ; Other_Lowercase # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB69 ; Other_Lowercase # Lm MODIFIER LETTER SMALL TURNED W
10780 ; Other_Lowercase # Lm MODIFIER LETTER SMALL CAPITAL AA
10783..10785 ; Other_Lowercase # Lm [3] MODIFIER LETTER SMALL AE..MODIFIER LETTER SMALL B WITH HOOK
10787..107B0 ; Other_Lowercase # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
107B2..107BA ; Other_Lowercase # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+1E030..1E06D ; Other_Lowercase # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
-# Total code points: 244
+# Total code points: 311
# ================================================
@@ -1251,13 +1271,14 @@ FA21 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA21
FA23..FA24 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
20000..2A6DF ; Unified_Ideograph # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738 ; Unified_Ideograph # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739 ; Unified_Ideograph # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
2B740..2B81D ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEA1 ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEB0..2EBE0 ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
30000..3134A ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF ; Unified_Ideograph # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
-# Total code points: 92865
+# Total code points: 97058
# ================================================
@@ -1323,8 +1344,10 @@ E0001 ; Deprecated # Cf LANGUAGE TAG
1D65E..1D65F ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
1D692..1D693 ; Soft_Dotted # L& [2] MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J
1DF1A ; Soft_Dotted # L& LATIN SMALL LETTER I WITH STROKE AND RETROFLEX HOOK
+1E04C..1E04D ; Soft_Dotted # Lm [2] MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I..MODIFIER LETTER CYRILLIC SMALL JE
+1E068 ; Soft_Dotted # Lm CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-# Total code points: 47
+# Total code points: 50
# ================================================
@@ -1430,6 +1453,7 @@ FF61 ; Sentence_Terminal # Po HALFWIDTH IDEOGRAPHIC FULL STOP
11A9B..11A9C ; Sentence_Terminal # Po [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD
11C41..11C42 ; Sentence_Terminal # Po [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA
11EF7..11EF8 ; Sentence_Terminal # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F44 ; Sentence_Terminal # Po [2] KAWI DANDA..KAWI DOUBLE DANDA
16A6E..16A6F ; Sentence_Terminal # Po [2] MRO DANDA..MRO DOUBLE DANDA
16AF5 ; Sentence_Terminal # Po BASSA VAH FULL STOP
16B37..16B38 ; Sentence_Terminal # Po [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
@@ -1438,7 +1462,7 @@ FF61 ; Sentence_Terminal # Po HALFWIDTH IDEOGRAPHIC FULL STOP
1BC9F ; Sentence_Terminal # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
1DA88 ; Sentence_Terminal # Po SIGNWRITING FULL STOP
-# Total code points: 152
+# Total code points: 154
# ================================================
diff --git a/macros/generic/unicode-data/README.md b/macros/generic/unicode-data/README.md
index ef40b163a9..ee2dfe36e3 100644
--- a/macros/generic/unicode-data/README.md
+++ b/macros/generic/unicode-data/README.md
@@ -194,11 +194,13 @@ Changes
- Add `WordBreakProperty.txt`
- v1.15 (2021-09-15)
- Update data files to Unicode release 14.0.0
+- v1.16 (2022-09-17)
+ - Update data files to Unicode release 15.0.0
License and permission
======================
-This bundle is copyright (C) 2015-2021 The LaTeX Project
+This bundle is copyright (C) 2015-2022 The LaTeX Project
It may be distributed and/or modified under the conditions of
the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -212,7 +214,7 @@ Consortium and the following notice applies.
COPYRIGHT AND PERMISSION NOTICE
-Copyright © 1991-2021 Unicode, Inc. All rights reserved.
+Copyright © 1991-2022 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
diff --git a/macros/generic/unicode-data/ScriptExtensions.txt b/macros/generic/unicode-data/ScriptExtensions.txt
index 3f5cd1c0db..2f5a1727e3 100644
--- a/macros/generic/unicode-data/ScriptExtensions.txt
+++ b/macros/generic/unicode-data/ScriptExtensions.txt
@@ -1,11 +1,11 @@
-# ScriptExtensions-14.0.0.txt
-# Date: 2021-06-04, 02:19:38 GMT
-# © 2021 Unicode®, Inc.
+# ScriptExtensions-15.0.0.txt
+# Date: 2022-02-02, 00:57:11 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# The Script_Extensions property indicates which characters are commonly used
# with more than one script, but with a limited number of scripts.
diff --git a/macros/generic/unicode-data/Scripts.txt b/macros/generic/unicode-data/Scripts.txt
index a138373011..2b138bffb8 100644
--- a/macros/generic/unicode-data/Scripts.txt
+++ b/macros/generic/unicode-data/Scripts.txt
@@ -1,11 +1,11 @@
-# Scripts-14.0.0.txt
-# Date: 2021-07-10, 00:35:31 GMT
-# © 2021 Unicode®, Inc.
+# Scripts-15.0.0.txt
+# Date: 2022-04-26, 23:15:02 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# For more information, see:
# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
# Especially the sections:
@@ -532,6 +532,7 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
1D1AE..1D1EA ; Common # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
+1D2C0..1D2D3 ; Common # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
1D2E0..1D2F3 ; Common # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D360..1D378 ; Common # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -601,10 +602,10 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1F300..1F3FA ; Common # So [251] CYCLONE..AMPHORA
1F3FB..1F3FF ; Common # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
1F400..1F6D7 ; Common # So [728] RAT..ELEVATOR
-1F6DD..1F6EC ; Common # So [16] PLAYGROUND SLIDE..AIRPLANE ARRIVING
+1F6DC..1F6EC ; Common # So [17] WIRELESS..AIRPLANE ARRIVING
1F6F0..1F6FC ; Common # So [13] SATELLITE..ROLLER SKATE
-1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8 ; Common # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776 ; Common # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9 ; Common # So [95] HAUMEA..NINE POINTED WHITE STAR
1F7E0..1F7EB ; Common # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
1F7F0 ; Common # So HEAVY EQUALS SIGN
1F800..1F80B ; Common # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
@@ -615,22 +616,20 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1F8B0..1F8B1 ; Common # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
1F900..1FA53 ; Common # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
1FA60..1FA6D ; Common # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74 ; Common # So [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7C ; Common # So [5] DROP OF BLOOD..CRUTCH
-1FA80..1FA86 ; Common # So [7] YO-YO..NESTING DOLLS
-1FA90..1FAAC ; Common # So [29] RINGED PLANET..HAMSA
-1FAB0..1FABA ; Common # So [11] FLY..NEST WITH EGGS
-1FAC0..1FAC5 ; Common # So [6] ANATOMICAL HEART..PERSON WITH CROWN
-1FAD0..1FAD9 ; Common # So [10] BLUEBERRIES..JAR
-1FAE0..1FAE7 ; Common # So [8] MELTING FACE..BUBBLES
-1FAF0..1FAF6 ; Common # So [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FA70..1FA7C ; Common # So [13] BALLET SHOES..CRUTCH
+1FA80..1FA88 ; Common # So [9] YO-YO..FLUTE
+1FA90..1FABD ; Common # So [46] RINGED PLANET..WING
+1FABF..1FAC5 ; Common # So [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB ; Common # So [14] MOOSE..PEA POD
+1FAE0..1FAE8 ; Common # So [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8 ; Common # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
1FB00..1FB92 ; Common # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
1FB94..1FBCA ; Common # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
1FBF0..1FBF9 ; Common # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
E0001 ; Common # Cf LANGUAGE TAG
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 8252
+# Total code points: 8301
# ================================================
@@ -697,8 +696,9 @@ FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
1DF00..1DF09 ; Latin # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
1DF0A ; Latin # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1DF0B..1DF1E ; Latin # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; Latin # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
-# Total code points: 1475
+# Total code points: 1481
# ================================================
@@ -784,8 +784,10 @@ A680..A69B ; Cyrillic # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL
A69C..A69D ; Cyrillic # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A69E..A69F ; Cyrillic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
FE2E..FE2F ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+1E030..1E06D ; Cyrillic # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F ; Cyrillic # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-# Total code points: 443
+# Total code points: 506
# ================================================
@@ -883,6 +885,7 @@ FDFD..FDFF ; Arabic # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM.
FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10EFD..10EFF ; Arabic # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
1EE00..1EE03 ; Arabic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; Arabic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; Arabic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -918,7 +921,7 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-# Total code points: 1365
+# Total code points: 1368
# ================================================
@@ -970,8 +973,9 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
A8FC ; Devanagari # Po DEVANAGARI SIGN SIDDHAM
A8FD..A8FE ; Devanagari # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
+11B00..11B09 ; Devanagari # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
-# Total code points: 154
+# Total code points: 164
# ================================================
@@ -1182,8 +1186,9 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3 ; Kannada # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
-# Total code points: 90
+# Total code points: 91
# ================================================
@@ -1263,11 +1268,11 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0EBD ; Lao # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; Lao # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6 ; Lao # Lm LAO KO LA
-0EC8..0ECD ; Lao # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Lao # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0ED0..0ED9 ; Lao # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0EDC..0EDF ; Lao # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
-# Total code points: 82
+# Total code points: 83
# ================================================
@@ -1532,10 +1537,11 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
1B001..1B11F ; Hiragana # Lo [287] HIRAGANA LETTER ARCHAIC YE..HIRAGANA LETTER ARCHAIC WU
+1B132 ; Hiragana # Lo HIRAGANA LETTER SMALL KO
1B150..1B152 ; Hiragana # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
1F200 ; Hiragana # So SQUARE HIRAGANA HOKA
-# Total code points: 380
+# Total code points: 381
# ================================================
@@ -1552,9 +1558,10 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
+1B155 ; Katakana # Lo KATAKANA LETTER SMALL KO
1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
-# Total code points: 320
+# Total code points: 321
# ================================================
@@ -1582,14 +1589,15 @@ FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILI
16FE3 ; Han # Lm OLD CHINESE ITERATION MARK
16FF0..16FF1 ; Han # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
20000..2A6DF ; Han # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
-2A700..2B738 ; Han # Lo [4153] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B738
+2A700..2B739 ; Han # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEB0..2EBE0 ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF ; Han # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
-# Total code points: 94215
+# Total code points: 98408
# ================================================
@@ -2093,10 +2101,13 @@ AADE..AADF ; Tai_Viet # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI
# ================================================
-13000..1342E ; Egyptian_Hieroglyphs # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438 ; Egyptian_Hieroglyphs # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F ; Egyptian_Hieroglyphs # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F ; Egyptian_Hieroglyphs # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440 ; Egyptian_Hieroglyphs # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446 ; Egyptian_Hieroglyphs # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455 ; Egyptian_Hieroglyphs # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
-# Total code points: 1080
+# Total code points: 1110
# ================================================
@@ -2440,8 +2451,10 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
11236..11237 ; Khojki # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
11238..1123D ; Khojki # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
1123E ; Khojki # Mn KHOJKI SIGN SUKUN
+1123F..11240 ; Khojki # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241 ; Khojki # Mn KHOJKI VOWEL SIGN VOCALIC R
-# Total code points: 62
+# Total code points: 65
# ================================================
@@ -2988,4 +3001,31 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
# Total code points: 70
+# ================================================
+
+11F00..11F01 ; Kawi # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02 ; Kawi # Lo KAWI SIGN REPHA
+11F03 ; Kawi # Mc KAWI SIGN VISARGA
+11F04..11F10 ; Kawi # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; Kawi # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35 ; Kawi # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; Kawi # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; Kawi # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; Kawi # Mn KAWI VOWEL SIGN EU
+11F41 ; Kawi # Mc KAWI SIGN KILLER
+11F42 ; Kawi # Mn KAWI CONJOINER
+11F43..11F4F ; Kawi # Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59 ; Kawi # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+
+# Total code points: 86
+
+# ================================================
+
+1E4D0..1E4EA ; Nag_Mundari # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; Nag_Mundari # Lm NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF ; Nag_Mundari # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9 ; Nag_Mundari # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+
+# Total code points: 42
+
# EOF
diff --git a/macros/generic/unicode-data/SpecialCasing.txt b/macros/generic/unicode-data/SpecialCasing.txt
index 1c2e968a8c..08d04fa942 100644
--- a/macros/generic/unicode-data/SpecialCasing.txt
+++ b/macros/generic/unicode-data/SpecialCasing.txt
@@ -1,11 +1,11 @@
-# SpecialCasing-14.0.0.txt
-# Date: 2021-03-08, 19:35:55 GMT
-# © 2021 Unicode®, Inc.
+# SpecialCasing-15.0.0.txt
+# Date: 2022-02-02, 23:35:52 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Special Casing
#
diff --git a/macros/generic/unicode-data/UnicodeData.txt b/macros/generic/unicode-data/UnicodeData.txt
index b5abef7ed4..ea963a7162 100644
--- a/macros/generic/unicode-data/UnicodeData.txt
+++ b/macros/generic/unicode-data/UnicodeData.txt
@@ -2975,6 +2975,7 @@
0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+0CF3;KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT;Mc;0;L;;;;;N;;;;;
0D00;MALAYALAM SIGN COMBINING ANUSVARA ABOVE;Mn;0;NSM;;;;;N;;;;;
0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
@@ -3339,6 +3340,7 @@
0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ECE;LAO YAMAKKAN;Mn;0;NSM;;;;;N;;;;;
0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -19393,6 +19395,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10EAD;YEZIDI HYPHENATION MARK;Pd;0;R;;;;;N;;;;;
10EB0;YEZIDI LETTER LAM WITH DOT ABOVE;Lo;0;R;;;;;N;;;;;
10EB1;YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE;Lo;0;R;;;;;N;;;;;
+10EFD;ARABIC SMALL LOW WORD SAKTA;Mn;220;NSM;;;;;N;;;;;
+10EFE;ARABIC SMALL LOW WORD QASR;Mn;220;NSM;;;;;N;;;;;
+10EFF;ARABIC SMALL LOW WORD MADDA;Mn;220;NSM;;;;;N;;;;;
10F00;OLD SOGDIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
10F01;OLD SOGDIAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
10F02;OLD SOGDIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
@@ -20058,6 +20063,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
1123E;KHOJKI SIGN SUKUN;Mn;0;NSM;;;;;N;;;;;
+1123F;KHOJKI LETTER QA;Lo;0;L;;;;;N;;;;;
+11240;KHOJKI LETTER SHORT I;Lo;0;L;;;;;N;;;;;
+11241;KHOJKI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
11280;MULTANI LETTER A;Lo;0;L;;;;;N;;;;;
11281;MULTANI LETTER I;Lo;0;L;;;;;N;;;;;
11282;MULTANI LETTER U;Lo;0;L;;;;;N;;;;;
@@ -21256,6 +21264,16 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;;
11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
+11B00;DEVANAGARI HEAD MARK;Po;0;L;;;;;N;;;;;
+11B01;DEVANAGARI HEAD MARK WITH HEADSTROKE;Po;0;L;;;;;N;;;;;
+11B02;DEVANAGARI SIGN BHALE;Po;0;L;;;;;N;;;;;
+11B03;DEVANAGARI SIGN BHALE WITH HOOK;Po;0;L;;;;;N;;;;;
+11B04;DEVANAGARI SIGN EXTENDED BHALE;Po;0;L;;;;;N;;;;;
+11B05;DEVANAGARI SIGN EXTENDED BHALE WITH HOOK;Po;0;L;;;;;N;;;;;
+11B06;DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B07;DEVANAGARI SIGN WESTERN NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B08;DEVANAGARI SIGN REVERSED NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B09;DEVANAGARI SIGN MINDU;Po;0;L;;;;;N;;;;;
11C00;BHAIKSUKI LETTER A;Lo;0;L;;;;;N;;;;;
11C01;BHAIKSUKI LETTER AA;Lo;0;L;;;;;N;;;;;
11C02;BHAIKSUKI LETTER I;Lo;0;L;;;;;N;;;;;
@@ -21584,6 +21602,92 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;;
11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;;
+11F00;KAWI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11F01;KAWI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11F02;KAWI SIGN REPHA;Lo;0;L;;;;;N;;;;;
+11F03;KAWI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11F04;KAWI LETTER A;Lo;0;L;;;;;N;;;;;
+11F05;KAWI LETTER AA;Lo;0;L;;;;;N;;;;;
+11F06;KAWI LETTER I;Lo;0;L;;;;;N;;;;;
+11F07;KAWI LETTER II;Lo;0;L;;;;;N;;;;;
+11F08;KAWI LETTER U;Lo;0;L;;;;;N;;;;;
+11F09;KAWI LETTER UU;Lo;0;L;;;;;N;;;;;
+11F0A;KAWI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11F0B;KAWI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11F0C;KAWI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11F0D;KAWI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+11F0E;KAWI LETTER E;Lo;0;L;;;;;N;;;;;
+11F0F;KAWI LETTER AI;Lo;0;L;;;;;N;;;;;
+11F10;KAWI LETTER O;Lo;0;L;;;;;N;;;;;
+11F12;KAWI LETTER KA;Lo;0;L;;;;;N;;;;;
+11F13;KAWI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11F14;KAWI LETTER GA;Lo;0;L;;;;;N;;;;;
+11F15;KAWI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11F16;KAWI LETTER NGA;Lo;0;L;;;;;N;;;;;
+11F17;KAWI LETTER CA;Lo;0;L;;;;;N;;;;;
+11F18;KAWI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11F19;KAWI LETTER JA;Lo;0;L;;;;;N;;;;;
+11F1A;KAWI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11F1B;KAWI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11F1C;KAWI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11F1D;KAWI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11F1E;KAWI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11F1F;KAWI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11F20;KAWI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11F21;KAWI LETTER TA;Lo;0;L;;;;;N;;;;;
+11F22;KAWI LETTER THA;Lo;0;L;;;;;N;;;;;
+11F23;KAWI LETTER DA;Lo;0;L;;;;;N;;;;;
+11F24;KAWI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11F25;KAWI LETTER NA;Lo;0;L;;;;;N;;;;;
+11F26;KAWI LETTER PA;Lo;0;L;;;;;N;;;;;
+11F27;KAWI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11F28;KAWI LETTER BA;Lo;0;L;;;;;N;;;;;
+11F29;KAWI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11F2A;KAWI LETTER MA;Lo;0;L;;;;;N;;;;;
+11F2B;KAWI LETTER YA;Lo;0;L;;;;;N;;;;;
+11F2C;KAWI LETTER RA;Lo;0;L;;;;;N;;;;;
+11F2D;KAWI LETTER LA;Lo;0;L;;;;;N;;;;;
+11F2E;KAWI LETTER WA;Lo;0;L;;;;;N;;;;;
+11F2F;KAWI LETTER SHA;Lo;0;L;;;;;N;;;;;
+11F30;KAWI LETTER SSA;Lo;0;L;;;;;N;;;;;
+11F31;KAWI LETTER SA;Lo;0;L;;;;;N;;;;;
+11F32;KAWI LETTER HA;Lo;0;L;;;;;N;;;;;
+11F33;KAWI LETTER JNYA;Lo;0;L;;;;;N;;;;;
+11F34;KAWI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11F35;KAWI VOWEL SIGN ALTERNATE AA;Mc;0;L;;;;;N;;;;;
+11F36;KAWI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+11F37;KAWI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+11F38;KAWI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11F39;KAWI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+11F3A;KAWI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+11F3E;KAWI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+11F3F;KAWI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+11F40;KAWI VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;;
+11F41;KAWI SIGN KILLER;Mc;9;L;;;;;N;;;;;
+11F42;KAWI CONJOINER;Mn;9;NSM;;;;;N;;;;;
+11F43;KAWI DANDA;Po;0;L;;;;;N;;;;;
+11F44;KAWI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11F45;KAWI PUNCTUATION SECTION MARKER;Po;0;L;;;;;N;;;;;
+11F46;KAWI PUNCTUATION ALTERNATE SECTION MARKER;Po;0;L;;;;;N;;;;;
+11F47;KAWI PUNCTUATION FLOWER;Po;0;L;;;;;N;;;;;
+11F48;KAWI PUNCTUATION SPACE FILLER;Po;0;L;;;;;N;;;;;
+11F49;KAWI PUNCTUATION DOT;Po;0;L;;;;;N;;;;;
+11F4A;KAWI PUNCTUATION DOUBLE DOT;Po;0;L;;;;;N;;;;;
+11F4B;KAWI PUNCTUATION TRIPLE DOT;Po;0;L;;;;;N;;;;;
+11F4C;KAWI PUNCTUATION CIRCLE;Po;0;L;;;;;N;;;;;
+11F4D;KAWI PUNCTUATION FILLED CIRCLE;Po;0;L;;;;;N;;;;;
+11F4E;KAWI PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;;
+11F4F;KAWI PUNCTUATION CLOSING SPIRAL;Po;0;L;;;;;N;;;;;
+11F50;KAWI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11F51;KAWI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11F52;KAWI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11F53;KAWI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11F54;KAWI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11F55;KAWI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11F56;KAWI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11F57;KAWI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11F58;KAWI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11F59;KAWI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
11FB0;LISU LETTER YHA;Lo;0;L;;;;;N;;;;;
11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;;
11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;;
@@ -24040,6 +24144,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;;
1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;;
1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;;
+1342F;EGYPTIAN HIEROGLYPH V011D;Lo;0;L;;;;;N;;;;;
13430;EGYPTIAN HIEROGLYPH VERTICAL JOINER;Cf;0;L;;;;;N;;;;;
13431;EGYPTIAN HIEROGLYPH HORIZONTAL JOINER;Cf;0;L;;;;;N;;;;;
13432;EGYPTIAN HIEROGLYPH INSERT AT TOP START;Cf;0;L;;;;;N;;;;;
@@ -24049,6 +24154,35 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
13436;EGYPTIAN HIEROGLYPH OVERLAY MIDDLE;Cf;0;L;;;;;N;;;;;
13437;EGYPTIAN HIEROGLYPH BEGIN SEGMENT;Cf;0;L;;;;;N;;;;;
13438;EGYPTIAN HIEROGLYPH END SEGMENT;Cf;0;L;;;;;N;;;;;
+13439;EGYPTIAN HIEROGLYPH INSERT AT MIDDLE;Cf;0;L;;;;;N;;;;;
+1343A;EGYPTIAN HIEROGLYPH INSERT AT TOP;Cf;0;L;;;;;N;;;;;
+1343B;EGYPTIAN HIEROGLYPH INSERT AT BOTTOM;Cf;0;L;;;;;N;;;;;
+1343C;EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343D;EGYPTIAN HIEROGLYPH END ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343E;EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343F;EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;;
+13440;EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY;Mn;0;NSM;;;;;N;;;;;
+13441;EGYPTIAN HIEROGLYPH FULL BLANK;Lo;0;L;;;;;N;;;;;
+13442;EGYPTIAN HIEROGLYPH HALF BLANK;Lo;0;L;;;;;N;;;;;
+13443;EGYPTIAN HIEROGLYPH LOST SIGN;Lo;0;L;;;;;N;;;;;
+13444;EGYPTIAN HIEROGLYPH HALF LOST SIGN;Lo;0;L;;;;;N;;;;;
+13445;EGYPTIAN HIEROGLYPH TALL LOST SIGN;Lo;0;L;;;;;N;;;;;
+13446;EGYPTIAN HIEROGLYPH WIDE LOST SIGN;Lo;0;L;;;;;N;;;;;
+13447;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START;Mn;0;NSM;;;;;N;;;;;
+13448;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START;Mn;0;NSM;;;;;N;;;;;
+13449;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START;Mn;0;NSM;;;;;N;;;;;
+1344A;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END;Mn;0;NSM;;;;;N;;;;;
+1344B;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP;Mn;0;NSM;;;;;N;;;;;
+1344C;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END;Mn;0;NSM;;;;;N;;;;;
+1344D;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP;Mn;0;NSM;;;;;N;;;;;
+1344E;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END;Mn;0;NSM;;;;;N;;;;;
+1344F;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END;Mn;0;NSM;;;;;N;;;;;
+13450;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM;Mn;0;NSM;;;;;N;;;;;
+13451;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM;Mn;0;NSM;;;;;N;;;;;
+13452;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END;Mn;0;NSM;;;;;N;;;;;
+13453;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END;Mn;0;NSM;;;;;N;;;;;
+13454;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END;Mn;0;NSM;;;;;N;;;;;
+13455;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED;Mn;0;NSM;;;;;N;;;;;
14400;ANATOLIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
14401;ANATOLIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
14402;ANATOLIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -27289,9 +27423,11 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1B120;KATAKANA LETTER ARCHAIC YI;Lo;0;L;;;;;N;;;;;
1B121;KATAKANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
1B122;KATAKANA LETTER ARCHAIC WU;Lo;0;L;;;;;N;;;;;
+1B132;HIRAGANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;;
1B150;HIRAGANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
1B151;HIRAGANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
1B152;HIRAGANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
+1B155;KATAKANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;;
1B164;KATAKANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
1B165;KATAKANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
1B166;KATAKANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
@@ -28573,6 +28709,26 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D2C0;KAKTOVIK NUMERAL ZERO;No;0;L;;;;0;N;;;;;
+1D2C1;KAKTOVIK NUMERAL ONE;No;0;L;;;;1;N;;;;;
+1D2C2;KAKTOVIK NUMERAL TWO;No;0;L;;;;2;N;;;;;
+1D2C3;KAKTOVIK NUMERAL THREE;No;0;L;;;;3;N;;;;;
+1D2C4;KAKTOVIK NUMERAL FOUR;No;0;L;;;;4;N;;;;;
+1D2C5;KAKTOVIK NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+1D2C6;KAKTOVIK NUMERAL SIX;No;0;L;;;;6;N;;;;;
+1D2C7;KAKTOVIK NUMERAL SEVEN;No;0;L;;;;7;N;;;;;
+1D2C8;KAKTOVIK NUMERAL EIGHT;No;0;L;;;;8;N;;;;;
+1D2C9;KAKTOVIK NUMERAL NINE;No;0;L;;;;9;N;;;;;
+1D2CA;KAKTOVIK NUMERAL TEN;No;0;L;;;;10;N;;;;;
+1D2CB;KAKTOVIK NUMERAL ELEVEN;No;0;L;;;;11;N;;;;;
+1D2CC;KAKTOVIK NUMERAL TWELVE;No;0;L;;;;12;N;;;;;
+1D2CD;KAKTOVIK NUMERAL THIRTEEN;No;0;L;;;;13;N;;;;;
+1D2CE;KAKTOVIK NUMERAL FOURTEEN;No;0;L;;;;14;N;;;;;
+1D2CF;KAKTOVIK NUMERAL FIFTEEN;No;0;L;;;;15;N;;;;;
+1D2D0;KAKTOVIK NUMERAL SIXTEEN;No;0;L;;;;16;N;;;;;
+1D2D1;KAKTOVIK NUMERAL SEVENTEEN;No;0;L;;;;17;N;;;;;
+1D2D2;KAKTOVIK NUMERAL EIGHTEEN;No;0;L;;;;18;N;;;;;
+1D2D3;KAKTOVIK NUMERAL NINETEEN;No;0;L;;;;19;N;;;;;
1D2E0;MAYAN NUMERAL ZERO;No;0;L;;;;0;N;;;;;
1D2E1;MAYAN NUMERAL ONE;No;0;L;;;;1;N;;;;;
1D2E2;MAYAN NUMERAL TWO;No;0;L;;;;2;N;;;;;
@@ -30404,6 +30560,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1DF1C;LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
1DF1D;LATIN SMALL LETTER C WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
1DF1E;LATIN SMALL LETTER S WITH CURL;Ll;0;L;;;;;N;;;;;
+1DF25;LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF26;LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF27;LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF28;LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF29;LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF2A;LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
1E000;COMBINING GLAGOLITIC LETTER AZU;Mn;230;NSM;;;;;N;;;;;
1E001;COMBINING GLAGOLITIC LETTER BUKY;Mn;230;NSM;;;;;N;;;;;
1E002;COMBINING GLAGOLITIC LETTER VEDE;Mn;230;NSM;;;;;N;;;;;
@@ -30442,6 +30604,69 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E028;COMBINING GLAGOLITIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;;
1E029;COMBINING GLAGOLITIC LETTER IOTATED BIG YUS;Mn;230;NSM;;;;;N;;;;;
1E02A;COMBINING GLAGOLITIC LETTER FITA;Mn;230;NSM;;;;;N;;;;;
+1E030;MODIFIER LETTER CYRILLIC SMALL A;Lm;0;L;<super> 0430;;;;N;;;;;
+1E031;MODIFIER LETTER CYRILLIC SMALL BE;Lm;0;L;<super> 0431;;;;N;;;;;
+1E032;MODIFIER LETTER CYRILLIC SMALL VE;Lm;0;L;<super> 0432;;;;N;;;;;
+1E033;MODIFIER LETTER CYRILLIC SMALL GHE;Lm;0;L;<super> 0433;;;;N;;;;;
+1E034;MODIFIER LETTER CYRILLIC SMALL DE;Lm;0;L;<super> 0434;;;;N;;;;;
+1E035;MODIFIER LETTER CYRILLIC SMALL IE;Lm;0;L;<super> 0435;;;;N;;;;;
+1E036;MODIFIER LETTER CYRILLIC SMALL ZHE;Lm;0;L;<super> 0436;;;;N;;;;;
+1E037;MODIFIER LETTER CYRILLIC SMALL ZE;Lm;0;L;<super> 0437;;;;N;;;;;
+1E038;MODIFIER LETTER CYRILLIC SMALL I;Lm;0;L;<super> 0438;;;;N;;;;;
+1E039;MODIFIER LETTER CYRILLIC SMALL KA;Lm;0;L;<super> 043A;;;;N;;;;;
+1E03A;MODIFIER LETTER CYRILLIC SMALL EL;Lm;0;L;<super> 043B;;;;N;;;;;
+1E03B;MODIFIER LETTER CYRILLIC SMALL EM;Lm;0;L;<super> 043C;;;;N;;;;;
+1E03C;MODIFIER LETTER CYRILLIC SMALL O;Lm;0;L;<super> 043E;;;;N;;;;;
+1E03D;MODIFIER LETTER CYRILLIC SMALL PE;Lm;0;L;<super> 043F;;;;N;;;;;
+1E03E;MODIFIER LETTER CYRILLIC SMALL ER;Lm;0;L;<super> 0440;;;;N;;;;;
+1E03F;MODIFIER LETTER CYRILLIC SMALL ES;Lm;0;L;<super> 0441;;;;N;;;;;
+1E040;MODIFIER LETTER CYRILLIC SMALL TE;Lm;0;L;<super> 0442;;;;N;;;;;
+1E041;MODIFIER LETTER CYRILLIC SMALL U;Lm;0;L;<super> 0443;;;;N;;;;;
+1E042;MODIFIER LETTER CYRILLIC SMALL EF;Lm;0;L;<super> 0444;;;;N;;;;;
+1E043;MODIFIER LETTER CYRILLIC SMALL HA;Lm;0;L;<super> 0445;;;;N;;;;;
+1E044;MODIFIER LETTER CYRILLIC SMALL TSE;Lm;0;L;<super> 0446;;;;N;;;;;
+1E045;MODIFIER LETTER CYRILLIC SMALL CHE;Lm;0;L;<super> 0447;;;;N;;;;;
+1E046;MODIFIER LETTER CYRILLIC SMALL SHA;Lm;0;L;<super> 0448;;;;N;;;;;
+1E047;MODIFIER LETTER CYRILLIC SMALL YERU;Lm;0;L;<super> 044B;;;;N;;;;;
+1E048;MODIFIER LETTER CYRILLIC SMALL E;Lm;0;L;<super> 044D;;;;N;;;;;
+1E049;MODIFIER LETTER CYRILLIC SMALL YU;Lm;0;L;<super> 044E;;;;N;;;;;
+1E04A;MODIFIER LETTER CYRILLIC SMALL DZZE;Lm;0;L;<super> A689;;;;N;;;;;
+1E04B;MODIFIER LETTER CYRILLIC SMALL SCHWA;Lm;0;L;<super> 04D9;;;;N;;;;;
+1E04C;MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<super> 0456;;;;N;;;;;
+1E04D;MODIFIER LETTER CYRILLIC SMALL JE;Lm;0;L;<super> 0458;;;;N;;;;;
+1E04E;MODIFIER LETTER CYRILLIC SMALL BARRED O;Lm;0;L;<super> 04E9;;;;N;;;;;
+1E04F;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U;Lm;0;L;<super> 04AF;;;;N;;;;;
+1E050;MODIFIER LETTER CYRILLIC SMALL PALOCHKA;Lm;0;L;<super> 04CF;;;;N;;;;;
+1E051;CYRILLIC SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0430;;;;N;;;;;
+1E052;CYRILLIC SUBSCRIPT SMALL LETTER BE;Lm;0;L;<sub> 0431;;;;N;;;;;
+1E053;CYRILLIC SUBSCRIPT SMALL LETTER VE;Lm;0;L;<sub> 0432;;;;N;;;;;
+1E054;CYRILLIC SUBSCRIPT SMALL LETTER GHE;Lm;0;L;<sub> 0433;;;;N;;;;;
+1E055;CYRILLIC SUBSCRIPT SMALL LETTER DE;Lm;0;L;<sub> 0434;;;;N;;;;;
+1E056;CYRILLIC SUBSCRIPT SMALL LETTER IE;Lm;0;L;<sub> 0435;;;;N;;;;;
+1E057;CYRILLIC SUBSCRIPT SMALL LETTER ZHE;Lm;0;L;<sub> 0436;;;;N;;;;;
+1E058;CYRILLIC SUBSCRIPT SMALL LETTER ZE;Lm;0;L;<sub> 0437;;;;N;;;;;
+1E059;CYRILLIC SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0438;;;;N;;;;;
+1E05A;CYRILLIC SUBSCRIPT SMALL LETTER KA;Lm;0;L;<sub> 043A;;;;N;;;;;
+1E05B;CYRILLIC SUBSCRIPT SMALL LETTER EL;Lm;0;L;<sub> 043B;;;;N;;;;;
+1E05C;CYRILLIC SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 043E;;;;N;;;;;
+1E05D;CYRILLIC SUBSCRIPT SMALL LETTER PE;Lm;0;L;<sub> 043F;;;;N;;;;;
+1E05E;CYRILLIC SUBSCRIPT SMALL LETTER ES;Lm;0;L;<sub> 0441;;;;N;;;;;
+1E05F;CYRILLIC SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0443;;;;N;;;;;
+1E060;CYRILLIC SUBSCRIPT SMALL LETTER EF;Lm;0;L;<sub> 0444;;;;N;;;;;
+1E061;CYRILLIC SUBSCRIPT SMALL LETTER HA;Lm;0;L;<sub> 0445;;;;N;;;;;
+1E062;CYRILLIC SUBSCRIPT SMALL LETTER TSE;Lm;0;L;<sub> 0446;;;;N;;;;;
+1E063;CYRILLIC SUBSCRIPT SMALL LETTER CHE;Lm;0;L;<sub> 0447;;;;N;;;;;
+1E064;CYRILLIC SUBSCRIPT SMALL LETTER SHA;Lm;0;L;<sub> 0448;;;;N;;;;;
+1E065;CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN;Lm;0;L;<sub> 044A;;;;N;;;;;
+1E066;CYRILLIC SUBSCRIPT SMALL LETTER YERU;Lm;0;L;<sub> 044B;;;;N;;;;;
+1E067;CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN;Lm;0;L;<sub> 0491;;;;N;;;;;
+1E068;CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<sub> 0456;;;;N;;;;;
+1E069;CYRILLIC SUBSCRIPT SMALL LETTER DZE;Lm;0;L;<sub> 0455;;;;N;;;;;
+1E06A;CYRILLIC SUBSCRIPT SMALL LETTER DZHE;Lm;0;L;<sub> 045F;;;;N;;;;;
+1E06B;MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER;Lm;0;L;<super> 04AB;;;;N;;;;;
+1E06C;MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER;Lm;0;L;<super> A651;;;;N;;;;;
+1E06D;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE;Lm;0;L;<super> 04B1;;;;N;;;;;
+1E08F;COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Mn;230;NSM;;;;;N;;;;;
1E100;NYIAKENG PUACHUE HMONG LETTER MA;Lo;0;L;;;;;N;;;;;
1E101;NYIAKENG PUACHUE HMONG LETTER TSA;Lo;0;L;;;;;N;;;;;
1E102;NYIAKENG PUACHUE HMONG LETTER NTA;Lo;0;L;;;;;N;;;;;
@@ -30603,6 +30828,48 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E2F8;WANCHO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
1E2F9;WANCHO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
1E2FF;WANCHO NGUN SIGN;Sc;0;ET;;;;;N;;;;;
+1E4D0;NAG MUNDARI LETTER O;Lo;0;L;;;;;N;;;;;
+1E4D1;NAG MUNDARI LETTER OP;Lo;0;L;;;;;N;;;;;
+1E4D2;NAG MUNDARI LETTER OL;Lo;0;L;;;;;N;;;;;
+1E4D3;NAG MUNDARI LETTER OY;Lo;0;L;;;;;N;;;;;
+1E4D4;NAG MUNDARI LETTER ONG;Lo;0;L;;;;;N;;;;;
+1E4D5;NAG MUNDARI LETTER A;Lo;0;L;;;;;N;;;;;
+1E4D6;NAG MUNDARI LETTER AJ;Lo;0;L;;;;;N;;;;;
+1E4D7;NAG MUNDARI LETTER AB;Lo;0;L;;;;;N;;;;;
+1E4D8;NAG MUNDARI LETTER ANY;Lo;0;L;;;;;N;;;;;
+1E4D9;NAG MUNDARI LETTER AH;Lo;0;L;;;;;N;;;;;
+1E4DA;NAG MUNDARI LETTER I;Lo;0;L;;;;;N;;;;;
+1E4DB;NAG MUNDARI LETTER IS;Lo;0;L;;;;;N;;;;;
+1E4DC;NAG MUNDARI LETTER IDD;Lo;0;L;;;;;N;;;;;
+1E4DD;NAG MUNDARI LETTER IT;Lo;0;L;;;;;N;;;;;
+1E4DE;NAG MUNDARI LETTER IH;Lo;0;L;;;;;N;;;;;
+1E4DF;NAG MUNDARI LETTER U;Lo;0;L;;;;;N;;;;;
+1E4E0;NAG MUNDARI LETTER UC;Lo;0;L;;;;;N;;;;;
+1E4E1;NAG MUNDARI LETTER UD;Lo;0;L;;;;;N;;;;;
+1E4E2;NAG MUNDARI LETTER UK;Lo;0;L;;;;;N;;;;;
+1E4E3;NAG MUNDARI LETTER UR;Lo;0;L;;;;;N;;;;;
+1E4E4;NAG MUNDARI LETTER E;Lo;0;L;;;;;N;;;;;
+1E4E5;NAG MUNDARI LETTER ENN;Lo;0;L;;;;;N;;;;;
+1E4E6;NAG MUNDARI LETTER EG;Lo;0;L;;;;;N;;;;;
+1E4E7;NAG MUNDARI LETTER EM;Lo;0;L;;;;;N;;;;;
+1E4E8;NAG MUNDARI LETTER EN;Lo;0;L;;;;;N;;;;;
+1E4E9;NAG MUNDARI LETTER ETT;Lo;0;L;;;;;N;;;;;
+1E4EA;NAG MUNDARI LETTER ELL;Lo;0;L;;;;;N;;;;;
+1E4EB;NAG MUNDARI SIGN OJOD;Lm;0;L;;;;;N;;;;;
+1E4EC;NAG MUNDARI SIGN MUHOR;Mn;232;NSM;;;;;N;;;;;
+1E4ED;NAG MUNDARI SIGN TOYOR;Mn;232;NSM;;;;;N;;;;;
+1E4EE;NAG MUNDARI SIGN IKIR;Mn;220;NSM;;;;;N;;;;;
+1E4EF;NAG MUNDARI SIGN SUTUH;Mn;230;NSM;;;;;N;;;;;
+1E4F0;NAG MUNDARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1E4F1;NAG MUNDARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1E4F2;NAG MUNDARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1E4F3;NAG MUNDARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1E4F4;NAG MUNDARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1E4F5;NAG MUNDARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1E4F6;NAG MUNDARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1E4F7;NAG MUNDARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1E4F8;NAG MUNDARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1E4F9;NAG MUNDARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
1E7E0;ETHIOPIC SYLLABLE HHYA;Lo;0;L;;;;;N;;;;;
1E7E1;ETHIOPIC SYLLABLE HHYU;Lo;0;L;;;;;N;;;;;
1E7E2;ETHIOPIC SYLLABLE HHYI;Lo;0;L;;;;;N;;;;;
@@ -32678,6 +32945,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
1F6D6;HUT;So;0;ON;;;;;N;;;;;
1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;;
+1F6DC;WIRELESS;So;0;ON;;;;;N;;;;;
1F6DD;PLAYGROUND SLIDE;So;0;ON;;;;;N;;;;;
1F6DE;WHEEL;So;0;ON;;;;;N;;;;;
1F6DF;RING BUOY;So;0;ON;;;;;N;;;;;
@@ -32823,6 +33091,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;;
1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;;
1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;;
+1F774;LOT OF FORTUNE;So;0;ON;;;;;N;;;;;
+1F775;OCCULTATION;So;0;ON;;;;;N;;;;;
+1F776;LUNAR ECLIPSE;So;0;ON;;;;;N;;;;;
+1F77B;HAUMEA;So;0;ON;;;;;N;;;;;
+1F77C;MAKEMAKE;So;0;ON;;;;;N;;;;;
+1F77D;GONGGONG;So;0;ON;;;;;N;;;;;
+1F77E;QUAOAR;So;0;ON;;;;;N;;;;;
+1F77F;ORCUS;So;0;ON;;;;;N;;;;;
1F780;BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
1F781;BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
1F782;BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
@@ -32912,6 +33188,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F7D6;NEGATIVE CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;;
1F7D7;CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
1F7D8;NEGATIVE CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
+1F7D9;NINE POINTED WHITE STAR;So;0;ON;;;;;N;;;;;
1F7E0;LARGE ORANGE CIRCLE;So;0;ON;;;;;N;;;;;
1F7E1;LARGE YELLOW CIRCLE;So;0;ON;;;;;N;;;;;
1F7E2;LARGE GREEN CIRCLE;So;0;ON;;;;;N;;;;;
@@ -33434,6 +33711,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FA72;BRIEFS;So;0;ON;;;;;N;;;;;
1FA73;SHORTS;So;0;ON;;;;;N;;;;;
1FA74;THONG SANDAL;So;0;ON;;;;;N;;;;;
+1FA75;LIGHT BLUE HEART;So;0;ON;;;;;N;;;;;
+1FA76;GREY HEART;So;0;ON;;;;;N;;;;;
+1FA77;PINK HEART;So;0;ON;;;;;N;;;;;
1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;;
1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;;
1FA7A;STETHOSCOPE;So;0;ON;;;;;N;;;;;
@@ -33446,6 +33726,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FA84;MAGIC WAND;So;0;ON;;;;;N;;;;;
1FA85;PINATA;So;0;ON;;;;;N;;;;;
1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;;
+1FA87;MARACAS;So;0;ON;;;;;N;;;;;
+1FA88;FLUTE;So;0;ON;;;;;N;;;;;
1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
1FA91;CHAIR;So;0;ON;;;;;N;;;;;
1FA92;RAZOR;So;0;ON;;;;;N;;;;;
@@ -33475,6 +33757,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAAA;IDENTIFICATION CARD;So;0;ON;;;;;N;;;;;
1FAAB;LOW BATTERY;So;0;ON;;;;;N;;;;;
1FAAC;HAMSA;So;0;ON;;;;;N;;;;;
+1FAAD;FOLDING HAND FAN;So;0;ON;;;;;N;;;;;
+1FAAE;HAIR PICK;So;0;ON;;;;;N;;;;;
+1FAAF;KHANDA;So;0;ON;;;;;N;;;;;
1FAB0;FLY;So;0;ON;;;;;N;;;;;
1FAB1;WORM;So;0;ON;;;;;N;;;;;
1FAB2;BEETLE;So;0;ON;;;;;N;;;;;
@@ -33486,12 +33771,18 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAB8;CORAL;So;0;ON;;;;;N;;;;;
1FAB9;EMPTY NEST;So;0;ON;;;;;N;;;;;
1FABA;NEST WITH EGGS;So;0;ON;;;;;N;;;;;
+1FABB;HYACINTH;So;0;ON;;;;;N;;;;;
+1FABC;JELLYFISH;So;0;ON;;;;;N;;;;;
+1FABD;WING;So;0;ON;;;;;N;;;;;
+1FABF;GOOSE;So;0;ON;;;;;N;;;;;
1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;;
1FAC1;LUNGS;So;0;ON;;;;;N;;;;;
1FAC2;PEOPLE HUGGING;So;0;ON;;;;;N;;;;;
1FAC3;PREGNANT MAN;So;0;ON;;;;;N;;;;;
1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;;
1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;;
+1FACE;MOOSE;So;0;ON;;;;;N;;;;;
+1FACF;DONKEY;So;0;ON;;;;;N;;;;;
1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;;
1FAD1;BELL PEPPER;So;0;ON;;;;;N;;;;;
1FAD2;OLIVE;So;0;ON;;;;;N;;;;;
@@ -33502,6 +33793,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAD7;POURING LIQUID;So;0;ON;;;;;N;;;;;
1FAD8;BEANS;So;0;ON;;;;;N;;;;;
1FAD9;JAR;So;0;ON;;;;;N;;;;;
+1FADA;GINGER ROOT;So;0;ON;;;;;N;;;;;
+1FADB;PEA POD;So;0;ON;;;;;N;;;;;
1FAE0;MELTING FACE;So;0;ON;;;;;N;;;;;
1FAE1;SALUTING FACE;So;0;ON;;;;;N;;;;;
1FAE2;FACE WITH OPEN EYES AND HAND OVER MOUTH;So;0;ON;;;;;N;;;;;
@@ -33510,6 +33803,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAE5;DOTTED LINE FACE;So;0;ON;;;;;N;;;;;
1FAE6;BITING LIP;So;0;ON;;;;;N;;;;;
1FAE7;BUBBLES;So;0;ON;;;;;N;;;;;
+1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;;
1FAF0;HAND WITH INDEX FINGER AND THUMB CROSSED;So;0;ON;;;;;N;;;;;
1FAF1;RIGHTWARDS HAND;So;0;ON;;;;;N;;;;;
1FAF2;LEFTWARDS HAND;So;0;ON;;;;;N;;;;;
@@ -33517,6 +33811,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAF4;PALM UP HAND;So;0;ON;;;;;N;;;;;
1FAF5;INDEX POINTING AT THE VIEWER;So;0;ON;;;;;N;;;;;
1FAF6;HEART HANDS;So;0;ON;;;;;N;;;;;
+1FAF7;LEFTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;;
+1FAF8;RIGHTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;;
1FB00;BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;;
1FB01;BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;;
1FB02;BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;;
@@ -33732,7 +34028,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
2A6DF;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
-2B738;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
+2B739;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;;
2B820;<CJK Ideograph Extension E, First>;Lo;0;L;;;;;N;;;;;
@@ -34283,6 +34579,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
30000;<CJK Ideograph Extension G, First>;Lo;0;L;;;;;N;;;;;
3134A;<CJK Ideograph Extension G, Last>;Lo;0;L;;;;;N;;;;;
+31350;<CJK Ideograph Extension H, First>;Lo;0;L;;;;;N;;;;;
+323AF;<CJK Ideograph Extension H, Last>;Lo;0;L;;;;;N;;;;;
E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
diff --git a/macros/generic/unicode-data/WordBreakProperty.txt b/macros/generic/unicode-data/WordBreakProperty.txt
index 73cd069dcb..6f868d21f3 100644
--- a/macros/generic/unicode-data/WordBreakProperty.txt
+++ b/macros/generic/unicode-data/WordBreakProperty.txt
@@ -1,11 +1,11 @@
-# WordBreakProperty-14.0.0.txt
-# Date: 2021-07-10, 00:35:32 GMT
-# © 2021 Unicode®, Inc.
+# WordBreakProperty-15.0.0.txt
+# Date: 2022-04-27, 02:41:26 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -180,6 +180,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3 ; Extend # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01 ; Extend # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Extend # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3B..0D3C ; Extend # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
@@ -203,7 +204,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -407,6 +408,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF ; Extend # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
@@ -443,6 +445,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11235 ; Extend # Mc KHOJKI SIGN VIRAMA
11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Extend # Mn KHOJKI SIGN SUKUN
+11241 ; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E0..112E2 ; Extend # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
@@ -552,6 +555,16 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6 ; Extend # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01 ; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03 ; Extend # Mc KAWI SIGN VISARGA
+11F34..11F35 ; Extend # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; Extend # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; Extend # Mn KAWI VOWEL SIGN EU
+11F41 ; Extend # Mc KAWI SIGN KILLER
+11F42 ; Extend # Mn KAWI CONJOINER
+13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
@@ -580,16 +593,18 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F ; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
1E2AE ; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 2512
+# Total code points: 2554
# ================================================
@@ -615,12 +630,12 @@ FEFF ; Format # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; Format # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
110BD ; Format # Cf KAITHI NUMBER SIGN
110CD ; Format # Cf KAITHI NUMBER SIGN ABOVE
-13430..13438 ; Format # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F ; Format # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Format # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Format # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0001 ; Format # Cf LANGUAGE TAG
-# Total code points: 64
+# Total code points: 71
# ================================================
@@ -641,9 +656,10 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
+1B155 ; Katakana # Lo KATAKANA LETTER SMALL KO
1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
-# Total code points: 330
+# Total code points: 331
# ================================================
@@ -1127,6 +1143,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
111DC ; ALetter # Lo SHARADA HEADSTROKE
11200..11211 ; ALetter # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
11213..1122B ; ALetter # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240 ; ALetter # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
11280..11286 ; ALetter # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
11288 ; ALetter # Lo MULTANI LETTER GHA
1128A..1128D ; ALetter # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1187,12 +1204,16 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11D6A..11D89 ; ALetter # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
11D98 ; ALetter # Lo GUNJALA GONDI OM
11EE0..11EF2 ; ALetter # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02 ; ALetter # Lo KAWI SIGN REPHA
+11F04..11F10 ; ALetter # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; ALetter # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
11FB0 ; ALetter # Lo LISU LETTER YHA
12000..12399 ; ALetter # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12400..1246E ; ALetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12480..12543 ; ALetter # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
12F90..12FF0 ; ALetter # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
-13000..1342E ; ALetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+13000..1342F ; ALetter # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446 ; ALetter # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
14400..14646 ; ALetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16800..16A38 ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E ; ALetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
@@ -1245,11 +1266,15 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1DF00..1DF09 ; ALetter # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
1DF0A ; ALetter # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1DF0B..1DF1E ; ALetter # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; ALetter # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D ; ALetter # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E100..1E12C ; ALetter # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E137..1E13D ; ALetter # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
1E14E ; ALetter # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
1E290..1E2AD ; ALetter # Lo [30] TOTO LETTER PA..TOTO LETTER A
1E2C0..1E2EB ; ALetter # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA ; ALetter # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; ALetter # Lm NAG MUNDARI SIGN OJOD
1E7E0..1E7E6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
1E7E8..1E7EB ; ALetter # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
1E7ED..1E7EE ; ALetter # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
@@ -1294,7 +1319,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1F150..1F169 ; ALetter # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; ALetter # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 29336
+# Total code points: 29489
# ================================================
@@ -1398,16 +1423,18 @@ FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
11C50..11C59 ; Numeric # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
11D50..11D59 ; Numeric # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
11DA0..11DA9 ; Numeric # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59 ; Numeric # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
16AC0..16AC9 ; Numeric # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1E140..1E149 ; Numeric # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
1E2F0..1E2F9 ; Numeric # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9 ; Numeric # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E950..1E959 ; Numeric # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1FBF0..1FBF9 ; Numeric # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
-# Total code points: 661
+# Total code points: 681
# ================================================
diff --git a/macros/generic/unicode-data/emoji-data.txt b/macros/generic/unicode-data/emoji-data.txt
index 7806c7ab53..999a436779 100644
--- a/macros/generic/unicode-data/emoji-data.txt
+++ b/macros/generic/unicode-data/emoji-data.txt
@@ -1,13 +1,13 @@
-# emoji-data-14.0.0.txt
-# Date: 2021-08-26, 17:22:22 GMT
-# © 2021 Unicode®, Inc.
+# emoji-data.txt
+# Date: 2022-08-02, 00:26:10 GMT
+# © 2022 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Emoji Data for UTS #51
-# Used with Emoji Version 14.0 and subsequent minor revisions (if any)
+# Used with Emoji Version 15.0 and subsequent minor revisions (if any)
#
-# For documentation and usage, see http://www.unicode.org/reports/tr51
+# For documentation and usage, see https://www.unicode.org/reports/tr51
#
# Format:
# <codepoint(s)> ; <property> # <comments>
@@ -19,8 +19,7 @@
# ================================================
-# All omitted code points have Emoji=No
-# @missing: 0000..10FFFF ; Emoji ; No
+# All omitted code points have Emoji=No
0023 ; Emoji # E0.0 [1] (#️) hash sign
002A ; Emoji # E0.0 [1] (*️) asterisk
@@ -341,6 +340,7 @@
1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator
+1F6DC ; Emoji # E15.0 [1] (🛜) wireless
1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
1F6E9 ; Emoji # E0.7 [1] (🛩️) small airplane
@@ -401,28 +401,36 @@
1F9E7..1F9FF ; Emoji # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA70..1FA73 ; Emoji # E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Emoji # E13.0 [1] (🩴) thong sandal
+1FA75..1FA77 ; Emoji # E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Emoji # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
1FA7B..1FA7C ; Emoji # E14.0 [2] (🩻..🩼) x-ray..crutch
1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
+1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute
1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock
1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa
+1FAAD..1FAAF ; Emoji # E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather
1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs
+1FABB..1FABD ; Emoji # E15.0 [3] (🪻..🪽) hyacinth..wing
+1FABF ; Emoji # E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown
+1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot
1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar
+1FADA..1FADB ; Emoji # E15.0 [2] (🫚..🫛) ginger root..pea pod
1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles
+1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face
1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
-# Total elements: 1404
+# Total elements: 1424
# ================================================
-# All omitted code points have Emoji_Presentation=No
-# @missing: 0000..10FFFF ; Emoji_Presentation ; No
+# All omitted code points have Emoji_Presentation=No
231A..231B ; Emoji_Presentation # E0.6 [2] (⌚..⌛) watch..hourglass done
23E9..23EC ; Emoji_Presentation # E0.6 [4] (⏩..⏬) fast-forward button..fast down button
@@ -625,6 +633,7 @@
1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator
+1F6DC ; Emoji_Presentation # E15.0 [1] (🛜) wireless
1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
1F6F4..1F6F6 ; Emoji_Presentation # E3.0 [3] (🛴..🛶) kick scooter..canoe
@@ -681,28 +690,36 @@
1F9E7..1F9FF ; Emoji_Presentation # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA70..1FA73 ; Emoji_Presentation # E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Emoji_Presentation # E13.0 [1] (🩴) thong sandal
+1FA75..1FA77 ; Emoji_Presentation # E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Emoji_Presentation # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
1FA7B..1FA7C ; Emoji_Presentation # E14.0 [2] (🩻..🩼) x-ray..crutch
1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
+1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute
1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock
1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa
+1FAAD..1FAAF ; Emoji_Presentation # E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather
1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs
+1FABB..1FABD ; Emoji_Presentation # E15.0 [3] (🪻..🪽) hyacinth..wing
+1FABF ; Emoji_Presentation # E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown
+1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot
1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar
+1FADA..1FADB ; Emoji_Presentation # E15.0 [2] (🫚..🫛) ginger root..pea pod
1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles
+1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face
1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
-# Total elements: 1185
+# Total elements: 1205
# ================================================
-# All omitted code points have Emoji_Modifier=No
-# @missing: 0000..10FFFF ; Emoji_Modifier ; No
+# All omitted code points have Emoji_Modifier=No
1F3FB..1F3FF ; Emoji_Modifier # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone
@@ -710,8 +727,7 @@
# ================================================
-# All omitted code points have Emoji_Modifier_Base=No
-# @missing: 0000..10FFFF ; Emoji_Modifier_Base ; No
+# All omitted code points have Emoji_Modifier_Base=No
261D ; Emoji_Modifier_Base # E0.6 [1] (☝️) index pointing up
26F9 ; Emoji_Modifier_Base # E0.7 [1] (⛹️) person bouncing ball
@@ -762,13 +778,13 @@
1F9D1..1F9DD ; Emoji_Modifier_Base # E5.0 [13] (🧑..🧝) person..elf
1FAC3..1FAC5 ; Emoji_Modifier_Base # E14.0 [3] (🫃..🫅) pregnant man..person with crown
1FAF0..1FAF6 ; Emoji_Modifier_Base # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Emoji_Modifier_Base # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
-# Total elements: 132
+# Total elements: 134
# ================================================
-# All omitted code points have Emoji_Component=No
-# @missing: 0000..10FFFF ; Emoji_Component ; No
+# All omitted code points have Emoji_Component=No
0023 ; Emoji_Component # E0.0 [1] (#️) hash sign
002A ; Emoji_Component # E0.0 [1] (*️) asterisk
@@ -785,8 +801,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
# ================================================
-# All omitted code points have Extended_Pictographic=No
-# @missing: 0000..10FFFF ; Extended_Pictographic ; No
+# All omitted code points have Extended_Pictographic=No
00A9 ; Extended_Pictographic# E0.6 [1] (©️) copyright
00AE ; Extended_Pictographic# E0.6 [1] (®️) registered
@@ -1190,7 +1205,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F6D3..1F6D4 ; Extended_Pictographic# E0.0 [2] (🛓..🛔) STUPA..PAGODA
1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator
-1F6D8..1F6DC ; Extended_Pictographic# E0.0 [5] (🛘..🛜) <reserved-1F6D8>..<reserved-1F6DC>
+1F6D8..1F6DB ; Extended_Pictographic# E0.0 [4] (🛘..🛛) <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC ; Extended_Pictographic# E15.0 [1] (🛜) wireless
1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
1F6E6..1F6E8 ; Extended_Pictographic# E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
@@ -1207,7 +1223,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F6FA ; Extended_Pictographic# E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Extended_Pictographic# E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F6FD..1F6FF ; Extended_Pictographic# E0.0 [3] (🛽..🛿) <reserved-1F6FD>..<reserved-1F6FF>
-1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) <reserved-1F774>..<reserved-1F77F>
+1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS
1F7D5..1F7DF ; Extended_Pictographic# E0.0 [11] (🟕..🟟) CIRCLED TRIANGLE..<reserved-1F7DF>
1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square
1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (🟬..🟯) <reserved-1F7EC>..<reserved-1F7EF>
@@ -1266,30 +1282,37 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1FA00..1FA6F ; Extended_Pictographic# E0.0 [112] (🨀..🩯) NEUTRAL CHESS KING..<reserved-1FA6F>
1FA70..1FA73 ; Extended_Pictographic# E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal
-1FA75..1FA77 ; Extended_Pictographic# E0.0 [3] (🩵..🩷) <reserved-1FA75>..<reserved-1FA77>
+1FA75..1FA77 ; Extended_Pictographic# E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Extended_Pictographic# E12.0 [3] (🩸..🩺) drop of blood..stethoscope
1FA7B..1FA7C ; Extended_Pictographic# E14.0 [2] (🩻..🩼) x-ray..crutch
1FA7D..1FA7F ; Extended_Pictographic# E0.0 [3] (🩽..🩿) <reserved-1FA7D>..<reserved-1FA7F>
1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls
-1FA87..1FA8F ; Extended_Pictographic# E0.0 [9] (🪇..🪏) <reserved-1FA87>..<reserved-1FA8F>
+1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute
+1FA89..1FA8F ; Extended_Pictographic# E0.0 [7] (🪉..🪏) <reserved-1FA89>..<reserved-1FA8F>
1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock
1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa
-1FAAD..1FAAF ; Extended_Pictographic# E0.0 [3] (🪭..🪯) <reserved-1FAAD>..<reserved-1FAAF>
+1FAAD..1FAAF ; Extended_Pictographic# E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather
1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs
-1FABB..1FABF ; Extended_Pictographic# E0.0 [5] (🪻..🪿) <reserved-1FABB>..<reserved-1FABF>
+1FABB..1FABD ; Extended_Pictographic# E15.0 [3] (🪻..🪽) hyacinth..wing
+1FABE ; Extended_Pictographic# E0.0 [1] (🪾) <reserved-1FABE>
+1FABF ; Extended_Pictographic# E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging
1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown
-1FAC6..1FACF ; Extended_Pictographic# E0.0 [10] (🫆..🫏) <reserved-1FAC6>..<reserved-1FACF>
+1FAC6..1FACD ; Extended_Pictographic# E0.0 [8] (🫆..🫍) <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot
1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar
-1FADA..1FADF ; Extended_Pictographic# E0.0 [6] (🫚..🫟) <reserved-1FADA>..<reserved-1FADF>
+1FADA..1FADB ; Extended_Pictographic# E15.0 [2] (🫚..🫛) ginger root..pea pod
+1FADC..1FADF ; Extended_Pictographic# E0.0 [4] (🫜..🫟) <reserved-1FADC>..<reserved-1FADF>
1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles
-1FAE8..1FAEF ; Extended_Pictographic# E0.0 [8] (🫨..🫯) <reserved-1FAE8>..<reserved-1FAEF>
+1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face
+1FAE9..1FAEF ; Extended_Pictographic# E0.0 [7] (🫩..🫯) <reserved-1FAE9>..<reserved-1FAEF>
1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
-1FAF7..1FAFF ; Extended_Pictographic# E0.0 [9] (🫷..🫿) <reserved-1FAF7>..<reserved-1FAFF>
+1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
+1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (🫹..🫿) <reserved-1FAF9>..<reserved-1FAFF>
1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (🰀..🿽) <reserved-1FC00>..<reserved-1FFFD>
# Total elements: 3537
diff --git a/macros/generic/unicode-data/load-unicode-data.tex b/macros/generic/unicode-data/load-unicode-data.tex
index f35a9a99c2..d41490bcd0 100644
--- a/macros/generic/unicode-data/load-unicode-data.tex
+++ b/macros/generic/unicode-data/load-unicode-data.tex
@@ -57,7 +57,7 @@
\catcode`\^=7 %
\newlinechar=`\^^J %
\message{^^J}%
- \message{load-unicode-data.tex v1.15 (2021-09-15)^^J}%
+ \message{load-unicode-data.tex v1.16 (2022-09-17)^^J}%
\message{Reading Unicode data^^J}%
% The first stage of parsing is dealing with the fact that there are lots of
% data items separated by |;|. Of those, only a few are needed so they are
@@ -177,8 +177,8 @@
% There is no version data in |UnicodeData.txt|: log that it is being used with
% a hard-coded date (the modification date from ftp.unicode.org). This obviously
% needs to be updated when a new download takes place!
- \message{\string# UnicodeData-14.0.0.txt^^J}%
- \message{\string# Modified 2021-09-15 11:00:00 GMT [JAW]^^J}%
+ \message{\string# UnicodeData-15.0.0.txt^^J}%
+ \message{\string# Modified 2022-09-17 11:45:00 GMT [JAW]^^J}%
% Actually loading the file requires an input stream, done directly.
% There is a blank line at the end of the data source so there is a check
% here for a |\par|.
diff --git a/macros/generic/unicode-data/load-unicode-math-classes.tex b/macros/generic/unicode-data/load-unicode-math-classes.tex
index 067b6a4c3a..a3a6d3430c 100644
--- a/macros/generic/unicode-data/load-unicode-math-classes.tex
+++ b/macros/generic/unicode-data/load-unicode-math-classes.tex
@@ -48,7 +48,7 @@
\catcode`\^=7 %
\newlinechar=`\^^J %
\message{^^J}%
- \message{load-unicode-math-classes.tex v1.15 (2021-09-15)^^J}%
+ \message{load-unicode-math-classes.tex v1.16 (2022-09-17)^^J}%
\message{Reading math class data^^J}%
% The parser for data lines starts by skipping any comments (which start with
% a |#| and which will be category code~$12$).
diff --git a/macros/generic/unicode-data/load-unicode-xetex-classes.tex b/macros/generic/unicode-data/load-unicode-xetex-classes.tex
index 38d72a7fb2..50c5a5c5f4 100644
--- a/macros/generic/unicode-data/load-unicode-xetex-classes.tex
+++ b/macros/generic/unicode-data/load-unicode-xetex-classes.tex
@@ -64,7 +64,7 @@
\catcode`\^=7 %
\newlinechar=`\^^J %
\message{^^J}%
- \message{load-unicode-xetex-classes.tex v1.15 (2021-09-15)^^J}%
+ \message{load-unicode-xetex-classes.tex v1.16 (2022-09-17)^^J}%
\message{Reading Unicode east Asian character class data^^J}%
% A string version of |#| will be needed to look for comment lines in the
% source. Once that is done proper parsing can begin.
diff --git a/macros/latex/contrib/calculator/README b/macros/latex/contrib/calculator/README.md
index 5b07974348..04c5147e30 100644
--- a/macros/latex/contrib/calculator/README
+++ b/macros/latex/contrib/calculator/README.md
@@ -1,7 +1,6 @@
-
The calculator and calculus packages: Use \LaTeX as a scientific calculator.
-Robert Fuster, 2012, 2014
+Robert Fuster, 2012, 2014, 2022
1. Licence
@@ -11,6 +10,10 @@ This material is subject to the LaTeX Project Public License.
See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
for the details of that license.
+2. Changes in version 2.1
+-------------------------
+- Some bugs fixed
+
2. Changes in version 2.0
-------------------------
- Inverse trigonometric and inverse hyperbolic functions are added
@@ -136,5 +139,5 @@ You can store or discard this files.
Robert Fuster
rfuster@mat.upv.es
-Universitat Polit\`ecnica de Val\`encia, 2012/05/19, 2014/02/23
---------------------------------------------------------------- \ No newline at end of file
+Universitat Polit\`ecnica de Val\`encia, 2012/05/19, 2014/02/23, 2022/09/15
+---------------------------------------------------------------
diff --git a/macros/latex/contrib/calculator/calculator.dtx b/macros/latex/contrib/calculator/calculator.dtx
index 41d95f24a0..64f6fe0b6a 100644
--- a/macros/latex/contrib/calculator/calculator.dtx
+++ b/macros/latex/contrib/calculator/calculator.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2012, 2014 by Robert Fuster <rfuster@mat.upv.es>
+% Copyright (C) 2012, 2014, 2022 by Robert Fuster <rfuster@mat.upv.es>
%
% This work may be distributed and/or modified under the conditions of
% the LaTeX Project Public License, either version 1.3 of this license
@@ -27,15 +27,16 @@
%<*driver>
\documentclass{ltxdoc}
\ProvidesFile{calculator.dtx}
- [2014/02/20 v.2.0 documented calculator package]
+ [2022/09/15 v.2.1 documented calculator package]
\usepackage{calculus}
\usepackage{amsmath}
\usepackage[lmargin=1.75in,rmargin=1in]{geometry}
\usepackage{fancyvrb}
-\def\fileversion{2.0}
-\def\filedate{2014/02/20}
+\usepackage[colorlinks]{hyperref}
+\def\fileversion{2.1}
+\def\filedate{2022/09/15}
\GetFileInfo{calculator.dtx}
@@ -58,6 +59,7 @@
\newcommand{\Marg}[1]{\textnormal{\marg{#1}}}
\newcommand{\newinversion}[1]{\textnormal{\textit{(new in version~#1)}}}
+\newcommand{\renewinversion}[2][]{\textnormal{\footnote{code modified in version~#2\ifx"#1"\else\space (#1)\fi.}}}
\newcommand{\arccot}{\operatorname{arccot}}
\newcommand{\arsinh}{\operatorname{arsinh}}
@@ -97,11 +99,12 @@
%
% \fi
%
-% \CheckSum{3753}
+% \CheckSum{3913}
% \changes{v1.0}{2012/04/25}{First public version}
% \changes{v1.0a}{2012/06/10}{calculator.dtx modified to make it autoinstallable.
% calculus.dtx embedded in calculus.dtx}
% \changes{v2.0}{2014/02/20}{new calculator.dtx and calculator.ins files}
+% \changes{v2.1}{2022/09/15}{Some bugs fixed}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -154,6 +157,10 @@
% (so that we can work with all the classic elementary functions),
% and also can do some additional calculation with vectors
% (such as the cross product and the angle between two vectors).
+
+% Version 2.1 fixes some bugs and calculation problems.\footnote{Thanks to
+% Schmitz Manuel, Thorsten Wolterin, Jim Cline,
+% Schremmer Alain and July Tikhonov.}
% \end{abstract}
%
% \tableofcontents
@@ -447,7 +454,8 @@
% \end{exemple}
% \item[\cs{FRACTIONALPART}\marg{num}\marg{\cs{cmd}}]%
% \SpecialUsageIndex{\FRACTIONALPART}%
-% Fractional part of \textttit{num}.
+% Fractional part of \textttit{num}.\renewinversion[thanks to July Tikhonov
+% who reported a bug and suggested the solution]{2.1}
% \begin{exemple}
% \FRACTIONALPART{1.256}{\sol}
% \sol
@@ -463,7 +471,9 @@
% truncates the number \textttit{num} to \textttit{n} decimal places.
% \item[\cs{ROUND}{[\textttit{n}]}\marg{num}\marg{\cs{cmd}}]%
% \SpecialUsageIndex{\ROUND}%
-% rounds the number \textttit{num} to \textttit{n} decimal places.
+% rounds the number \textttit{num} to \textttit{n} decimal places.%
+% \renewinversion[thanks to Jim Cline and Schremmer Alain
+% who reported a bug]{2.1}
%
% The optional argument \textttit{n} may be \texttt{0}, \texttt{1},
% \texttt{2}, \texttt{3} or \texttt{4} (the default is \texttt{2}).\footnote{%
@@ -1872,7 +1882,7 @@
% \begin{macrocode}
%<*calculator>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{calculator}[2014/02/20 v.2.0]
+\ProvidesPackage{calculator}[2022/09/15 v.2.1]
% \end{macrocode}
% \subsection{Internal lengths and special numbers}
% \cs{cctr@lengtha} and \cs{cctr@lengthb}
@@ -1902,6 +1912,18 @@
% \end{macro}
% \subsection{Warning messages}
% \begin{macrocode}
+\def\cctr@Warntruncate#1#2{%
+ \PackageWarning{calculator}%
+ {The optional argument in truncate \MessageBreak
+ must be less than 5 \MessageBreak
+ I copy #1 to #2 \MessageBreak without truncating}}
+
+\def\cctr@Warnround#1#2{%
+ \PackageWarning{calculator}%
+ {The optional argument in round \MessageBreak
+ must be less than 5 \MessageBreak
+ I copy #1 to #2 \MessageBreak without rounding}}
+
\def\cctr@Warndivzero#1#2{%
\PackageWarning{calculator}%
{Division by 0.\MessageBreak
@@ -2347,7 +2369,7 @@
% returns the integer part of \textit{\#2}.
% \begin{macrocode}
\def\@@INTEGERPART#1.#2.#3)#4{\ifnum #11=1 \COPY{0}{#4}
- \else \COPY{#1}{#4}\fi}
+ \else \ADD{0}{#1}{#4}\fi}
\def\@INTEGERPART#1#2{\expandafter\@@INTEGERPART#1..){#2}}
\def\INTEGERPART#1#2{\begingroup
\ifdim #1\p@<\z@
@@ -2372,9 +2394,10 @@
% \cs{FRACTIONALPART}\marg{\#1}\marg{\#2}
% returns the fractional part of
% \textit{\#2}.
+% \changes{v2.1}{2022/09/15}{Bug fixed}
% \begin{macrocode}
-\def\@@FRACTIONALPART#1.#2.#3)#4{\ifnum #2=11 \COPY{0}{#4}
- \else \COPY{0.#2}{#4}\fi}
+\def\@@FRACTIONALPART#1.#2.#3)#4{\ifnum #21=1 \COPY{0}{#4}
+ \else \ADD{0}{0.#2}{#4}\fi}
\def\@FRACTIONALPART#1#2{\expandafter\@@FRACTIONALPART#1..){#2}}
\def\FRACTIONALPART#1#2{\begingroup
\ifdim #1\p@<\z@
@@ -2382,24 +2405,29 @@
\SUBTRACT{#1}{\cctr@tempA}{#2}
\else
\@FRACTIONALPART{#1}{#2}
- \fi\@OUTPUTSOL{#2}}
+ \fi\@OUTPUTSOL{#2}}
+
% \end{macrocode}
% \end{macro}
% \begin{macro}{\TRUNCATE}
% \cs{TRUNCATE}\oarg{\#1}\marg{\#2}\marg{\#3}
% truncates \textit{\#2} to \textit{\#1} (0, 1, 2 (default), 3 or 4) digits.
+% \changes{v2.1}{2022/09/15}{Bug fixed}
% \begin{macrocode}
\def\TRUNCATE{\@ifnextchar[\@@TRUNCATE\@TRUNCATE}
\def\@TRUNCATE#1#2{\@@TRUNCATE[2]{#1}{#2}}
\def\@@TRUNCATE[#1]#2#3{%
- \begingroup
+ \begingroup
+ \ifdim #1\p@ > 4\p@ \cctr@Warntruncate{#2}{\noexpand#3} \COPY{#2}{#3}
+ \else
\INTEGERPART{#2}{\cctr@tempa}
- \ifdim \cctr@tempa\p@ = #2\p@
- \expandafter\@@@TRUNCATE#2.00000)[#1]{#3}
+ \ifdim \cctr@tempa\p@ = #2\p@
+ \expandafter\@@@TRUNCATE\cctr@tempa.00000.)[#1]{#3}
\else
\expandafter\@@@TRUNCATE#200000.)[#1]{#3}
- \fi
- \@OUTPUTSOL{#3}}
+ \fi\fi
+ \@OUTPUTSOL{#3}}
+
\def\@@@TRUNCATE#1.#2#3#4#5#6.#7)[#8]#9{%
\ifcase #8
\COPY{#1}{#9}
@@ -2413,27 +2441,48 @@
% \begin{macro}{\ROUND}
% \cs{ROUND}\oarg{\#1}\marg{\#2}\marg{\#3}
% rounds \textit{\#2} to \textit{\#1} (0, 1, 2 (default), 3 or 4) digits.
+% \changes{v2.1}{2022/09/15}{Bug fixed}
% \begin{macrocode}
\def\ROUND{\@ifnextchar[\@@ROUND\@ROUND}
\def\@ROUND#1#2{\@@ROUND[2]{#1}{#2}}
\def\@@ROUND[#1]#2#3{%
- \begingroup
- \ifdim#2\p@<\z@
- \MULTIPLY{-1}{#2}{\cctr@temp}
- \@@ROUND[#1]{\cctr@temp}{#3}\COPY{-#3}{#3}
- \else
- \@@TRUNCATE[#1]{#2}{\cctr@tempe}
- \SUBTRACT{#2}{\cctr@tempe}{\cctr@tempc}
- \POWER{10}{#1}{\cctr@tempb}
- \MULTIPLY{\cctr@tempb}{\cctr@tempc}{\cctr@tempc}
- \ifdim\cctr@tempc\p@<0.5\p@
- \else
- \DIVIDE{1}{\cctr@tempb}{\cctr@tempb}
- \ADD{\cctr@tempe}{\cctr@tempb}{\cctr@tempe}
- \fi
- \@@TRUNCATE[#1]{\cctr@tempe}{#3}
- \fi
- \@OUTPUTSOL{#3}}
+ \begingroup
+ \ifdim #1\p@ > 4\p@ \cctr@Warnround{#2}{\noexpand#3} \COPY{#2}{#3}
+ \else
+ \INTEGERPART{#2}{\cctr@tempa}
+ \ifdim \cctr@tempa\p@ = #2\p@
+ \expandafter\@@@ROUND\cctr@tempa.00000.)[#1]{#3}
+ \else
+ \expandafter\@@@ROUND#200000.)[#1]{#3}
+ \fi
+ \fi
+ \@OUTPUTSOL{#3}}
+
+\def\@@@ROUND#1.#2#3#4#5#6.#7)[#8]#9{%
+ \ifcase #8
+ \COPY{#1}{#9} \ifnum #2>4 \ADD{#1}{1}{\cctr@tempp}\COPY{\cctr@tempp}{#9} \fi
+ \or\COPY{#1.#2}{#9} \ifnum #3>4 \ADD{#2}{1}\cctr@tempq\COPY{#1}{\cctr@tempp}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}\cctr@tempp\COPY{0}{\cctr@tempq}\fi
+ \COPY{\cctr@tempp.\cctr@tempq}{#9}
+ \fi
+ \or\COPY{#1.#2#3}{#9} \ifnum #4>4 \ADD{#3}1\cctr@tempq\COPY{#2}{\cctr@tempp}\COPY{#1}{\cctr@tempo}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}{\cctr@tempp}\COPY{0}{\cctr@tempq}\fi
+ \ifnum\cctr@tempp=10\ADD{\cctr@tempo}{1}\cctr@tempo\COPY{0}{\cctr@tempp}\fi
+ \COPY{\cctr@tempo.\cctr@tempp\cctr@tempq}{#9}
+ \fi
+ \or\COPY{#1.#2#3#4}{#9} \ifnum #5>4 \ADD{#4}1\cctr@tempq\COPY{#3}{\cctr@tempp}\COPY{#2}{\cctr@tempo}\COPY{#1}{\cctr@tempn}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}{\cctr@tempp}\COPY{0}{\cctr@tempq}\fi
+ \ifnum\cctr@tempp=10\ADD{\cctr@tempo}{1}\cctr@tempo\COPY{0}{\cctr@tempp}\fi
+ \ifnum\cctr@tempo=10\ADD{\cctr@tempn}{1}\cctr@tempn\COPY{0}{\cctr@tempo}\fi
+ \COPY{\cctr@tempn.\cctr@tempo\cctr@tempp\cctr@tempq}{#9}
+ \fi
+ \or\COPY{#1.#2#3#4#5}{#9} \ifnum #6>4 \ADD{#5}1\cctr@tempq\COPY{#4}{\cctr@tempp}\COPY{#3}{\cctr@tempo}\COPY{#2}{\cctr@tempn}\COPY{#1}{\cctr@tempm}
+ \ifnum\cctr@tempq=10\ADD{\cctr@tempp}{1}{\cctr@tempp}\COPY{0}{\cctr@tempq}\fi
+ \ifnum\cctr@tempp=10\ADD{\cctr@tempo}{1}\cctr@tempo\COPY{0}{\cctr@tempp}\fi
+ \ifnum\cctr@tempo=10\ADD{\cctr@tempn}{1}\cctr@tempn\COPY{0}{\cctr@tempo}\fi
+ \ifnum\cctr@tempn=10\ADD{\cctr@tempm}{1}\cctr@tempm\COPY{0}{\cctr@tempn}\fi
+ \COPY{\cctr@tempm.\cctr@tempn\cctr@tempo\cctr@tempp\cctr@tempq}{#9}
+ \fi}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\GCD}
@@ -3196,9 +3245,11 @@
% \end{macrocode}
%
% We start with |\cctr@lengthb=5\p@| to ensure almost one iteration.
+% \changes{v2.1}{2022/09/15}{Changed stop criterion on iterations to 2sp}
% \begin{macrocode}
\cctr@lengthb=5\p@%
-% \end{macrocode}
+ \cctr@epsilon=2\cctr@epsilon%
+% \end{macrocode}
% Successive iterations
% \begin{macrocode}
\@whilenum \cctr@lengthb>\cctr@epsilon \do {%
@@ -4400,7 +4451,7 @@
\ProvidesPackage{calculus}[2014/02/20 v.2.0]
% \end{macrocode}
% This package requires the calculator package.
-% \begin{macrocode}
+% \begin{macrocode}
\RequirePackage{calculator}
% \end{macrocode}
% \subsection{Error and info messages}
diff --git a/macros/latex/contrib/calculator/calculator.ins b/macros/latex/contrib/calculator/calculator.ins
index 1b76199158..7708cf1e23 100644
--- a/macros/latex/contrib/calculator/calculator.ins
+++ b/macros/latex/contrib/calculator/calculator.ins
@@ -1,5 +1,5 @@
%%
-%% Copyright (C) 2012, 2014 by Robert Fuster <rfuster@mat.upv.es>
+%% Copyright (C) 2012, 2014, 2022 by Robert Fuster <rfuster@mat.upv.es>
%%
%% This work may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License, either version 1.3 of this license
@@ -55,9 +55,9 @@ calculator<nn>.tex derived files.
\Msg{*****************************************************}
\Msg{* *}
\Msg{* To finish the installation you have to move the *}
-\Msg{* following file into a directory searched by TeX: *}
+\Msg{* following files into a directory searched by TeX: *}
\Msg{* *}
-\Msg{* calculator.sty *}
+\Msg{* calculator.sty calculus.sty *}
\Msg{* *}
\Msg{* (in a TDS compliant tree, something like *}
\Msg{* <a texmf dir>/tex/latex/calculator/ *}
diff --git a/macros/latex/contrib/calculator/calculator.pdf b/macros/latex/contrib/calculator/calculator.pdf
index 7da66cec99..4ef145baa4 100644
--- a/macros/latex/contrib/calculator/calculator.pdf
+++ b/macros/latex/contrib/calculator/calculator.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.pdf b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
index aef19a755c..0ae8f26c90 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.pdf
Binary files differ
diff --git a/macros/latex/contrib/nicematrix/nicematrix-french.tex b/macros/latex/contrib/nicematrix/nicematrix-french.tex
index 6244fda93e..f7fa1fe561 100644
--- a/macros/latex/contrib/nicematrix/nicematrix-french.tex
+++ b/macros/latex/contrib/nicematrix/nicematrix-french.tex
@@ -24,7 +24,6 @@
\usepackage{shortvrb}
\MakeShortVerb{\|}
-
\usepackage{fancyvrb}
\fvset{commandchars=\~\#\@,formatcom=\color{gray}}
@@ -967,13 +966,13 @@ par |\Cdots|, |\Vdots|, etc. : cf.~p.~\pageref{Cdots}.
\end{itemize}
\item Les coins sont créés par la clé |corners| détaillée un peu plus loin : cf.
p.~\pageref{corners}.
-\item Pour les rangées et colonnes extérieures, cf.~\pageref{exterior}.
+\item Pour les rangées et colonnes extérieures, cf. p.~\pageref{exterior}.
\end{itemize}
En particulier, cette remarque explique la différence entre la commande standard
|\hline| et la commande |\Hline| proposée par \pkg{nicematrix}.
-\colorbox{yellow!50}{\textbf{Nouveau 6.13}}\enskip La command |\Hline| admet
+\colorbox{yellow!50}{\textbf{Nouveau 6.13}}\enskip La commande |\Hline| admet
entre crochets un argument optionnel qui est une liste de couples
\textsl{clé=valeur} qui décrivent un filet. Pour la description de ces clés,
voir |custom-line| p.~\pageref{custom-line}.
@@ -1183,7 +1182,7 @@ Cette commande |\diagbox| peut aussi être utilisée dans un |\Block|.
Il est possible de définir des commandes et des lettres pour des filets
personnalisés avec la clé |custom-line|, utilisable dans |\NiceMatrixOptions| ou
bien dans un environnement. Cette clé prend en argument une liste de paires de
-la forme \textsl{clé=valeur}. Il y a d'abord deux clés pour spécifier les outils
+la forme \textsl{clé=valeur}. Il y a d'abord trois clés pour spécifier les outils
qui permettront d'utiliser ce nouveau type de filet.
\begin{itemize}
@@ -1792,9 +1791,51 @@ Antoine \\
Stéphanie \\
\end{NiceTabular}
+\bigskip
+On peut aussi utiliser dans la commande |\rowlistcolors| une série de couleurs
+définie par la commande |\definecolorseries| de \pkg{xcolor} (et initialisée
+avec la commande |\resetcolorseries|\footnote{Pour l'initialisation, on a
+ utilisé dans l'exemple qui suit le compteur |iRow| qui, quand il est utilisé
+ dans le |\CodeBefore| (ou le |\CodeAfter|) désigne le nombre de rangées du
+ tableau : cf~p.~\pageref{iRow}. Cela permet un ajustement de la gradation des
+ couleurs à la taille du tableau.}).
+
+\smallskip
+\begin{BVerbatim}[boxwidth=12cm,baseline=c]
+\begin{NiceTabular}{c}
+\CodeBefore
+ ~emphase#\definecolorseries{BlueWhite}{rgb}{last}{blue}{white}@
+ ~emphase#\resetcolorseries{\value{iRow}}{BlueWhite}@
+ ~emphase#\rowlistcolors{1}{BlueWhite!!+}@
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+\end{BVerbatim}
+\begin{NiceTabular}{c}
+\CodeBefore
+ \definecolorseries{BlueWhite}{rgb}{last}{blue}{white}
+ \resetcolorseries[\value{iRow}]{BlueWhite}
+ \rowlistcolors{1}{BlueWhite!!+}
+\Body
+Mathilde \\
+Pierre \\
+Paul \\
+Amélie \\
+Jacques \\
+Antoine \\
+Stéphanie \\
+\end{NiceTabular}
+
\end{itemize}
-\medskip
+
+\vspace{1cm}
On rappelle que toutes les commandes de coloriage que l'on vient de décrire ne
colorient pas les cases qui sont dans les «coins». Dans l'exemple suivant, on
utilise la clé |corners| pour demander de considérer le coin \emph{north east} (NE).
@@ -3332,7 +3373,7 @@ $\begin{pNiceMatrix}
\subsection{La légendes des tableaux}
\colorbox{yellow!50}{\bfseries Nouveau 6.12}\enskip L'environnement
-|{NiceTabular}| proposent des clés |caption|, |short-caption| et |label| à
+|{NiceTabular}| propose des clés |caption|, |short-caption| et |label| à
utiliser lorsque le tableau est inséré dans un environnment flottant
(typiquement un environnement |{table}|).
@@ -3462,7 +3503,7 @@ des notes avant les notes numérotées.
\colorbox{yellow!50}{\textbf{Nouveau 6.13} }\enskip Une syntaxe alternative est
proposée : il est possible d'utiliser l'environnement |{TabularNote}| à la fin de
-l'environnement |{NiceTabular}| (mais \emph{avant} l'eventuel |\CodeAfter|).
+l'environnement |{NiceTabular}| (mais \emph{avant} l'éventuel |\CodeAfter|).
\item Si l'extension \pkg{booktabs} a été chargée (avant ou après
\pkg{nicematrix}), la clé |notes/bottomrule| permet de faire tracer un
@@ -3917,6 +3958,8 @@ En fait, l'option |small| correspond aux réglages suivants :
\subsection{Les compteurs iRow et jCol}
+\label{iRow}
+
Dans les cases du tableau, il est possible d'utiliser les compteurs LaTeX |iRow|
et |jCol| qui représentent le numéro de la rangée courante et le numéro de la
colonne courante\footnote{On rappelle que le numéro de la «première rangée» (si
diff --git a/macros/latex/contrib/nicematrix/nicematrix.dtx b/macros/latex/contrib/nicematrix/nicematrix.dtx
index 1884212f42..659e7fa56a 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.dtx
+++ b/macros/latex/contrib/nicematrix/nicematrix.dtx
@@ -17,8 +17,8 @@
%
% \fi
% \iffalse
-\def\myfileversion{6.13}
-\def\myfiledate{2022/08/24}
+\def\myfileversion{6.13a}
+\def\myfiledate{2022/09/17}
%
%
%<*batchfile>
@@ -1200,7 +1200,7 @@ version 2005/12/01 or later.
% It's also possible to define commands and letters for customized rules with
% the key |custom-line| available in |\NiceMatrixOptions| and in the options of
% individual environments. That key takes in as argument a list of
-% \textsl{key=value} pairs. First, there is two keys to define the tools which
+% \textsl{key=value} pairs. First, there is three keys to define the tools which
% will be used to use that new type of rule.
%
% \begin{itemize}
@@ -1754,7 +1754,6 @@ version 2005/12/01 or later.
% arguments for the colors, this command takes in an argument which is a
% (comma-separated) list of colors. In that list, the symbol |=| represent a
% color identical to the previous one.
-% \end{itemize}
%
% \smallskip
% \begin{BVerbatim}[boxwidth=10cm,baseline=c]
@@ -1784,8 +1783,49 @@ version 2005/12/01 or later.
% Alexandra \\
% \end{NiceTabular}
%
+% \bigskip
+% It's also possible to use in the command |\rowlistcolors| a color series
+% defined by the command |\definecolorseries| of \pkg{xcolor} (and initialized
+% with the command |\resetcolorseries|\footnote{For the initialization, in the
+% following example, you have used the counter |iRow| which, when used in the
+% |\CodeBefore| (and in the |\CodeAfter|) corresponds to the number of rows of
+% the array: cf.~p~\pageref{iRow}. That leads to an adjustement of the gradation
+% of the colors to the size of the tabular.}).
%
-% \medskip
+% \smallskip
+% \begin{BVerbatim}[boxwidth=12cm,baseline=c]
+% \begin{NiceTabular}{c}
+% \CodeBefore
+% ~emphase#\definecolorseries{BlueWhite}{rgb}{last}{blue}{white}@
+% ~emphase#\resetcolorseries{\value{iRow}}{BlueWhite}@
+% ~emphase#\rowlistcolors{1}{BlueWhite!!+}@
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{BVerbatim}
+% \begin{NiceTabular}{c}
+% \CodeBefore
+% \definecolorseries{BlueWhite}{rgb}{last}{blue}{white}
+% \resetcolorseries[\value{iRow}]{BlueWhite}
+% \rowlistcolors{1}{BlueWhite!!+}
+% \Body
+% Peter \\
+% James \\
+% Abigail \\
+% Elisabeth \\
+% Claudius \\
+% Jane \\
+% Alexandra \\
+% \end{NiceTabular}
+% \end{itemize}
+%
+% \vspace{1cm}
% We recall that all the color commands we have described don't color the cells
% which are in the ``corners''. In the following example, we use the key
% |corners| to require the determination of the corner \emph{north east} (NE).
@@ -3876,6 +3916,8 @@ version 2005/12/01 or later.
%
% \subsection{The counters iRow and jCol}
%
+% \label{iRow}
+%
% In the cells of the array, it's possible to use the LaTeX counters |iRow| and
% |jCol| which represent the number of the current row and the number of the
% current column\footnote{We recall that the exterior ``first row'' (if it
@@ -5888,6 +5930,77 @@ version 2005/12/01 or later.
}
% \end{macrocode}
%
+% \bigskip
+% \subsection*{Security test}
+%
+% Within the package \pkg{nicematrix}, we will have to test whether a cell of a
+% |{NiceTabular}| is empty. For the cells of the columns of type |p|, |b|, |m|,
+% |X| and |V|, we will test whether the cell is syntactically empty (that is to
+% say that there is only spaces between the ampersands |&|). That test will be
+% done with the command |\@@_test_if_empty:| by testing if the two first tokens
+% in the cells are (during the TeX process) are |\ignorespaces| and |\unskip|.
+%
+% However, if, one day, there is a changement in the implementation of
+% \pkg{array}, maybe that this test will be broken (and \pkg{nicematrix} also).
+%
+% That's why, by security, we will take a test in a small |{tabular}| composed
+% in the box |\l_tmpa_box| used as sandbox.
+%
+% \begin{macrocode}
+\@@_msg_new:nn { Internal~error }
+ {
+ A~fatal~internal~error~have~occurred.\\
+ If~you~see~this~message,~contact~the~author~of~the~package~'nicematrix'~
+ because~this~error~should~not~have~occurred.
+ }
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\@@_msg_new:nn { mdwtab~loaded }
+ {
+ The~packages~'mdwtab'~and~'nicematrix'~are~incompatible.~
+ This~error~is~fatal.
+ }
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_security_test:n #1
+ {
+ \peek_meaning:NTF \ignorespaces
+ { \@@_security_test_i:w }
+ { \@@_fatal:n { Internal~error } }
+ #1
+ }
+% \end{macrocode}
+%
+% \bigskip
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_security_test_i:w \ignorespaces #1
+ {
+ \peek_meaning:NF \unskip { \@@_fatal:n { Internal~error } }
+ #1
+ }
+% \end{macrocode}
+%
+% \bigskip
+% Here, the box |\l_tmpa_box| will be used as sandbox to take our security test.
+% \begin{macrocode}
+\hook_gput_code:nnn { begindocument } { . }
+ {
+ \@ifpackageloaded { mdwtab }
+ { \@@_fatal:n { mdwtab~loaded } }
+ {
+ \hbox_set:Nn \l_tmpa_box
+ {
+ \begin { tabular } { c > { \@@_security_test:n } c c }
+ text & & text
+ \end { tabular }
+ }
+ }
+ }
+% \end{macrocode}
%
% \bigskip
% \subsection*{Technical definitions}
@@ -8497,7 +8610,7 @@ version 2005/12/01 or later.
% we use the following technic:
% \begin{itemize}
% \item for the columns of type |p|, |m|, |b|, |V| (of \pkg{varwidth}) or |X|,
-% we test whether the cell is syntacticly empty with |\@@_test_if_empty:| and
+% we test whether the cell is syntactically empty with |\@@_test_if_empty:| and
% |\@@_test_if_empty_for_S:|
% \item if the width of the box |\l_@@_cell_box| (created with the content of
% the cell) is equal to zero, we consider the cell as empty (however,
@@ -10580,7 +10693,14 @@ version 2005/12/01 or later.
\peek_meaning:NT \unskip
{
\tl_gput_right:Nn \g_@@_cell_after_hook_tl
- { \box_set_wd:Nn \l_@@_cell_box \c_zero_dim }
+ {
+ \box_set_wd:Nn \l_@@_cell_box \c_zero_dim
+% \end{macrocode}
+% We put the following code in order to have a column with the correct width
+% even when all the cells of the column are empty.
+% \begin{macrocode}
+ \skip_horizontal:N \l_@@_col_width_dim
+ }
}
#1
}
@@ -11031,8 +11151,9 @@ version 2005/12/01 or later.
\@whilesw \if@tempswa \fi { \@tempswafalse \the \NC@list }
\tl_gclear:N \g_@@_preamble_tl
\exp_after:wN \@@_patch_m_preamble:n \the \@temptokena \q_stop
- \tl_gset_eq:NN #1 \g_@@_preamble_tl
\group_end:
+ \tl_set_eq:NN #1 \g_@@_preamble_tl
+ % \group_end:
}
% \end{macrocode}
%
@@ -12434,7 +12555,7 @@ version 2005/12/01 or later.
\bool_if:NTF \l_@@_in_code_after_bool
{ \@@_error_or_warning:n { TabularNote~in~CodeAfter } }
{
- \tl_if_empty:NF \g_@@_taublarnote_tl
+ \tl_if_empty:NF \g_@@_tabularnote_tl
{ \tl_gput_right:Nn \g_@@_tabularnote_tl { \par } }
\tl_gput_right:Nn \g_@@_tabularnote_tl { ##1 }
}
@@ -17359,7 +17480,7 @@ version 2005/12/01 or later.
{
{ \int_compare_p:nNn { #2 } = 1 }
{ \dim_compare_p:n { \l_@@_col_width_dim >= \c_zero_dim } }
- { ! \l_@@_respect_arraystretch_bool }
+ { ! \g_@@_rotate_bool } % added 2022/09/16
}
% \end{macrocode}
% When the block is mono-column in a column with a fixed width (eg |p{3cm}|).
diff --git a/macros/latex/contrib/nicematrix/nicematrix.pdf b/macros/latex/contrib/nicematrix/nicematrix.pdf
index cd44a1841f..d2b0a1ca61 100644
--- a/macros/latex/contrib/nicematrix/nicematrix.pdf
+++ b/macros/latex/contrib/nicematrix/nicematrix.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.pdf b/macros/latex/contrib/verifiche/verifiche-example.pdf
index 39518e617c..dfc37e08c8 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.pdf
+++ b/macros/latex/contrib/verifiche/verifiche-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.tex b/macros/latex/contrib/verifiche/verifiche-example.tex
index eba83beca0..6717f4403c 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.tex
+++ b/macros/latex/contrib/verifiche/verifiche-example.tex
@@ -1,7 +1,9 @@
% compile 2 times
\documentclass[a4paper, 10pt]{extarticle}
\usepackage[italian]{babel}
-\usepackage[solutions%show/hide the solutions
+\usepackage[
+ solutions,%show/hide the solutions
+ blue%color of solutions font
]{verifiche}
\usepackage[margin=3cm]{geometry}
\usepackage{lipsum}
@@ -213,7 +215,7 @@ A differenza dei numeri assoluti, la differenza tra due \finderror{numeri razio
\vfill
-\centering
+\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
Esercizio & Quesito \ref{es:ferropiuma}
@@ -236,6 +238,73 @@ Punteggio &&&&&&\\[1em]
\multicolumn{4}{c}{}&&Voto&\\[1em]
\cline{6-7}
\end{tabular}
+\end{center}
+
+
+\clearpage
+\pagestyle{empty}
+\vspace*{\fill}
+\begin{center}
+\huge Esempio \verb|multitest|
+\end{center}
+\vspace*{\fill}
+\clearpage
+
+%\pagestyle{plain}
+\pagestyle{mainverifiche}
+\institute{Scuola superiore di Paperopoli}
+\asyear[Anno accademico]{2022/2023}
+\duration[Tempo:]{2 ora}
+\testtype{Compito di matematica}
+\instruction{Risolvere il seguente esercizio nel più breve tempo possibile.\\}
+
+\pgfkeys{/pgf/number format/.cd,
+ %zerofill=true,
+ std,
+ %int detect,
+ precision=3,
+ %set decimal separator={$,$},
+ use comma,
+ set thousands separator={$\,$}
+}
+
+
+\begin{multitest}[4]
+%\pgfmathsetseed{\themultitestcounter*42}
+%\subtitle{Test \Alph{multitestcounter}}
+\printheading
+\pgfmathrandominteger{\ax}{-2}{2}
+\pgfmathrandominteger{\ay}{-2}{2}
+\pgfmathrandominteger{\bx}{-2}{2}
+\pgfmathrandominteger{\by}{-2}{2}
+
+\begin{esercizio}
+ Disegna, in un grafico cartesiano, i seguenti punti:
+ \[
+ A = (\ax; \ay) \quad B = (\bx; \by)
+ \]
+ e calcola la loro distanza.
+\end{esercizio}
+
+\begin{soluzione}
+ Si rappresentano i punti dati nel piano cartesiano
+ \begin{center}
+ \begin{tikzpicture}
+ \draw[gray] (-3,-3) grid (3,3);
+ \draw[->, thick] (-3,0) -- (3,0) node[right]{x};
+ \draw[->, thick] (0,-3) -- (0,3) node[above]{y};
+ \draw[red, very thick] (\ax, \ay) -- (\bx, \by);
+ \fill (\ax, \ay) circle (2pt) node[above] {A};
+ \fill (\bx, \by) circle (2pt) node[below] {B};
+ \end{tikzpicture}
+ \end{center}
+La distanza tra i due punti è data dall'equazione:
+\[
+d(A, B)= \sqrt{(x_A - x_B) ^2 + (y_A- y_B)^2} = \pgfmathparse{sqrt((\ax-\bx)^2+(\ay-\by)^2)}\pgfmathprintnumber\pgfmathresult
+\]
+\end{soluzione}
+\end{multitest}
+
\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/verifiche/verifiche.dtx b/macros/latex/contrib/verifiche/verifiche.dtx
index 60621ae295..a65baed8fd 100644
--- a/macros/latex/contrib/verifiche/verifiche.dtx
+++ b/macros/latex/contrib/verifiche/verifiche.dtx
@@ -16,12 +16,13 @@
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{verifiche} [2022/06/21 v5.2 .dtx verifiche file]
+%<package>\ProvidesPackage{verifiche} [2022/09/17 v6.0 .dtx verifiche file]
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english, italian]{babel}
+%\usepackage[a4paper]{geometry}
\usepackage{listings}
\lstset{
language=[LaTeX]TeX,
@@ -31,7 +32,7 @@
\inlinesol, \completetext, \truefalse, \openquestion, \linedopenquestion, \squaredopenquestion,
\headercandidatenamelabel, \checked, \finderror, \textandimage, \partialpt, \ptprefix, \ptlabel,
\partialptlabel, \partialptdelimiters, \ptdelimiters, \partialptprefix, \checkmaker, \ref, \tikz, \makecolumn,
- \columnseparation},
+ \columnseparation, \subtitle, \subtitlefont},
keywordstyle=\color{blue},
escapeinside={*@}{@*},
inputencoding=utf8,
@@ -70,7 +71,7 @@
%</driver>
% \fi
%
-% \CheckSum{934}
+% \CheckSum{997}
% \changes{v1.0}{2020/06/14}{Initial version.}
% \changes{v2.0}{2020/06/26}{Better performance in exercise environment.}
% \changes{v2.1}{2020/06/30}{Introduced closedquestionitem to control |item| symbol.}
@@ -118,6 +119,7 @@
% \DoNotIndex{\ProcessOptionsX, \protected@write, \ref, \refstepcounter, \reversemarginpar, \rule}
% \DoNotIndex{\scshape, setkeys, \sffamily, \sisetup, \spacedim, \string, \tikz, \underline, \usetikzlibrary}
% \DoNotIndex{\val, \xout, \y, \usebox, \romannumeral, \@ifundefined, \ltx@zero, \rc@default, \rc@extract@, \chardef, \llap}
+% \DoNotIndex{\toks1}
%
%
% \title{Il pacchetto \textsf{verifiche}%
@@ -185,6 +187,7 @@
%|notesttype| & non stampa il tipo di prova \\
%|nonumbered| & quesiti non numerati\\
%|noexercisept| & non stampa il punteggio degli esercizi, anche se dichiarati\\
+%|nosubtitle| & non stampa il sottotitolo\\
%|solutions| & stampa le soluzioni degli esercizi (si veda pag. \pageref{sec:solutions})\\
%|red| & il colore del font delle soluzioni è rosso\\
%|blue| & il colore del font delle soluzioni è blu\\
@@ -195,6 +198,7 @@
%Nel seguito si indicherà con "modalità test", il pacchetto caricato senza l'opzione |solutions|, altrimenti questa verrà detta "modalità soluzione" o "modalità solutions".
%
%\section{Intestazione}\label{sec:intestazione}
+%\subsection*{Comandi}
%Il pacchetto \textsf{verifiche} fornisce alcuni comandi per realizzare una semplice intestazione del documento che prevede il nome dell'istituto, l'anno scolastico il tipo di prova, le istruzioni e la durata della prova.
%Tutte queste voci vanno dichiarate prima del comando |\printheading| che si occupa della produzione del risultato finale.
%Le \emph{opzioni} del pacchetto permettono la soprressione della visualizzazione di alcune di queste voci.
@@ -263,7 +267,17 @@
%\fi
% che viene riportata sotto le istruzioni, al centro, anteponendo all'argomento il \meta{preambolo} (che di default riporta la dicitura ‘‘’Tempo della prova:’’). L'aspetto di questo comando può essere modificato ridefinendo il comando |\durationfont|.
%
-%\vspace{1em}
+%\DescribeMacro{\subtitle} Il comando |\subtitle| introduce un sottotitolo al di sotto di quanto visualizzato dal comando |\texttype|. L'aspetto ed il posizionamento di questo testo possono essere modificati ridefinendo il comando |\subtitlefont|.
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\subtitle*@\marg{testo del sottotitolo}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%
%\DescribeMacro{\printheading}\label{par:printheading}L'intestazione, ovvero l'output di tutti i comandi appena definiti, viene riportata nel documento solo in presenza del comando
%\iffalse
%<*example>
@@ -287,11 +301,13 @@
%|\testtype| & |\testtypefont| & Definisce il tipo di prova.\\
%|\instruction| & |\instrunctionfont|& Definisce le istruzioni delle prove.\\
%|\duration| & |\durationfont| & Definisce la durata della prova.\\
+%|\subtitle| & |\subtitlefont| & Definisce il sottotitolo.\\
%|\printheading| & & Stampa l'intestazione.\\
%\hline
%\end{tabular}
%\end{center}
%
+%\subsection*{Stili di pagina}
% Il pacchetto definisce due stili di pagina \emph{ad hoc}: |mainverifiche| e |verifiche|. Il primo è evocato quando si definisce il comando |\institute| e stampa sulla prima pagina l'argomento di questo comando. \DescribeMacro{verifiche}Il secondo, invece, può essere utilizzato dall'utente tramite il comando:
%\iffalse
%<*example>
@@ -705,7 +721,7 @@ dell'esercizio somministrato
% \fi
%
%
-% L'ambiente \DescribeMacro{closeduestion}|closeduestion*| è analogo al precedente, fatto salvo che è adibito a produrre elenchi in linea; gli elementi vengono spaziati orizzontalmente in modo da riempire tutto lo spazio disponibile. Anche in questo caso i comandi del pacchetto |enumitem| possono essere usati tra le opzioni dell'ambiente.
+% L'ambiente \DescribeEnv{closeduestion}|closeduestion*| è analogo al precedente, fatto salvo che è adibito a produrre elenchi in linea; gli elementi vengono spaziati orizzontalmente in modo da riempire tutto lo spazio disponibile. Anche in questo caso i comandi del pacchetto |enumitem| possono essere usati tra le opzioni dell'ambiente.
% \iffalse
%<*example>
% \fi
@@ -849,7 +865,7 @@ dell'esercizio somministrato
%</example>
% \fi
%
-%
+%\clearpage
%\section{Personalizzazione}
%Il pacchetto prevede un certo numero di comandi per gestire l'aspetto del documento finale.
%\subsection*{Font}
@@ -1060,7 +1076,89 @@ dell'esercizio somministrato
%</example>
%\fi
%\clearpage
+%\section{Test multipli}
+%Uno degli aspetti peculiari della produzione di test tramite software tipografici come \LaTeX{} è quello di poter usufruire della sua versatilità per produrre un numero definito a priori dall'utente di test diversi a partire da uno stesso schema di base.
+%
+%Le modalità e le strategie per fare questo sono molteplici.
+% Uno di questi metodi è utilizzare il pacchetto\footnote{https://ctan.org/pkg/datatool} |datatool| che permette di leggere un database (solitamente salvato come file |csv|) al cui interno sono contenute le domande, i dati ed eventualmente le soluzioni degli esercizi. Il pacchetto, poi, mette a disposizione il comando |\DTLforeach| che, interrogando tutto il database precedentemente costruito, permette di popolare un unico documento in cui si variano taluni elementi al fine di ottenere prove didattiche differenti. Una soluzione di questo tipo necessita di scrivere almeno due file. Il primo, con estensione |tex|, è la struttura della prova di verifica al cui interno presenta tutti i comandi per utilizzare i dati contenuti nel secondo file. Quest'ultimo è un file di tipo |csv| al cui interno, organizzate per colonne, si trovano tutte le domande che si vogliono personalizzare ed ogni riga corrisponde ad un differente compito.
+%Il pacchetto permette anche di generare un database direttamente interno a \LaTeX{}, senza quindi dover creare un file a parte, tramite i comandi:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLnewdb*@\marg{nome del database}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+% per creare un database chiamato |nome del database|; per creare una nuova riga, corrispondente ad una prova diversa, si usa il comando
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLnewrow*@\marg{nome del database}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%e ciascuna entrata di questa riga viene popolata introducendo un'entrata tramite il comando:
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLnewdbentry*@\marg{nome del database}\marg{nome colonna}\marg{dato}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%Come nel caso precedente il database può essere utilizzato tramite il comando\footnote{Si rimanda alla documentazione ufficiale per ulteriori approfondimenti. Si faccia attenzione che l'ultima voce del secondo argomento del comando, ovvero |comando=nome colonna| non deve contenere spazi, si consiglia quindi di concludere la riga con il carattere \%}
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\DTLforeach**@\marg{nome del database}\marg{comando=nome colonna}\marg{dato}\marg{testo}@*
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%dichiarato subito dopo |\begin{document}| ed il |testo| non è altro che l'intero corpo del documento.
+%\subsection*{L'ambiente |multitest|}
+% Il pacchetto |verifiche| mette a disposizione una soluzione interna per generare un numero definito dall'utente di prove personalizzate e che si basa sugli strumenti messi a disposizione da |pgf| e |tikz|.
+%\DescribeEnv{multitest}L'ambiente |multitest| racchiude all'interno del suo corpo lo schema della prova che si vuole somministrare ed eventualmente i comandi che permettono personalizzare la prova.
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\begin{multitest}[n]
+...
+\end{multitest}
+\end{lstlisting}
+%\iffalse
+%</example>
+%\fi
+%L'ambiente accetta un argomento opzionale |n| che è il numero di prove che si vogliono realizzare. Normalmente l'ambiente viene aperto dopo |\begin{document}| e chiuso prima di |\end{document}|.
%
+%\bigskip
+%La personalizzazione dei dati del problema può avvenire tramite i comandi di gestione dei numeri casuali e delle liste casuali messi a disposizione dal pacchetto |pgf| che vengono di seguito riassunti lasciando il loro approfondimento alla documentazione ufficiale\footnote{https://www.ctan.org/pkg/pgf}.
+%\iffalse
+%<*example>
+%\fi
+\begin{lstlisting}
+\pgfmathrnd
+\pgfmathrand
+\pgfmathrandom{x,y}
+\pgfmathgeneratepseudorandomnumber
+\pgfmathrandominteger*@\marg{macro}\marg{min}\marg{max}@*
+\pgfmathdeclarerandomlist*@\marg{nome lista}\{ \marg{item 1} \marg{item 2} ...\}@*
+\pgfmathrandomitem*@\marg{macro}\marg{nome lista}@*
+\pgfmathsetseed*@\marg{numero intero}@*
+\end{lstlisting}
+%Il comando inizializza il seme dei numeri casuali col numero del compito prodotto, in modo tale da produrre gli stessi compiti casuali ad ogni compilazione.
+%\DescribeMacro{multitestcounter}Il contatore |multitestcounter| permette di identificare il numero della traccia generata.
+%\iffalse
+%</example>
+%\fi
+%\clearpage
% \StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex}
% \section{Implementation}
%\subsection{Require packages}
@@ -1111,6 +1209,7 @@ dell'esercizio somministrato
\newif\ifsolutionscolor\solutionscolorfalse
\newif\ifcandidatename\candidatenametrue
\newif\iftesttype\testtypetrue
+\newif\ifsubtitle\subtitletrue
\newif\ifshowinstructiondelimiter\showinstructiondelimiterfalse
\newif\ifprintedheading\printedheadingfalse
\newif\ifexercisesnumbered\exercisesnumberedtrue
@@ -1132,6 +1231,7 @@ dell'esercizio somministrato
\DeclareOptionX{noasyear}[]{\asyearfalse}
\DeclareOptionX{nocandidatename}[]{\candidatenamefalse}
\DeclareOptionX{notesttype}[]{\testtypefalse}
+\DeclareOptionX{nosubtitle}[]{\subtitlefalse}
\DeclareOptionX{nonumbered}[]{\exercisesnumberedfalse}
\DeclareOptionX{noexercisept}[]{\showexerciseptfalse}
\DeclareOptionX{color}[red]{\solutionscolortrue\def\solutionscolor{#1}}
@@ -1234,6 +1334,8 @@ dell'esercizio somministrato
\showinstructiondelimitertrue}%
\newcommand{\testtype}[1]{%
\gdef\@testtype{#1}}
+\newcommand{\subtitle}[1]{%
+ \gdef\@subtitle{#1}}%
\newcommand{\instruction}[1]{%
\gdef\@instruction{\ignorespaces#1}%
\showinstructiondelimitertrue}
@@ -1263,6 +1365,10 @@ dell'esercizio somministrato
\bgroup\hspace*{\fill}\scshape\huge#1\hspace*{\fill}\egroup}
% \end{macrocode}
% \begin{macrocode}
+\newcommand{\subtitlefont}[1]{%
+ \bgroup\hspace*{\fill}\Large\scshape#1\hspace*{\fill}\egroup}%
+% \end{macrocode}
+% \begin{macrocode}
\newcommand{\instructiondelimiter}{%
\hrulefill}
% \end{macrocode}
@@ -1420,12 +1526,18 @@ dell'esercizio somministrato
%\fi
% \begin{macrocode}
\newcommand{\ps@mainverifiche}{%
- \renewcommand\@oddhead{\parbox{\textwidth}{\centering \institutefont{\@institute}}}%
- \renewcommand\@evenhead{}%
+ \renewcommand\@oddhead{%
+ \parbox{\textwidth}{\centering \institutefont{\@institute}}%
+ }%
+ \renewcommand\@evenhead{}%
+ \renewcommand{\@oddfoot}{\hfill\normalfont\textrm\thepage\hfill}%
+ \let\evenfoot\@oddfoot%
}
\newcommand{\ps@verifiche}{%
- \renewcommand\@oddhead{
- \ifodd\thepage\parbox{\textwidth}{\headerfont\@header}\fi}%
+ \renewcommand\@oddhead{
+ \ifodd\thepage\parbox{\textwidth}{\headerfont\@header}\fi}%
+ \renewcommand{\@oddfoot}{\hfill\normalfont\textrm\thepage\hfill}%
+ \let\evenfoot\@oddfoot%
}
% \end{macrocode}
%
@@ -1439,6 +1551,7 @@ dell'esercizio somministrato
{\ifcandidatename\@header\par\vspace{\baselineskip}\fi}%
{\ifdefined\@asyear\ifasyear\asyearfont{\@asyearpreamble\space\@asyear}\par\vspace{\baselineskip}\fi\fi}%
{\ifdefined\@testtype\iftesttype\testtypefont{\@testtype}\par\fi\fi}%
+ {\ifdefined\@subtitle\ifsubtitle\vspace{\baselineskip}\subtitlefont{\@subtitle}\par\fi\fi}%
{\ifshowinstructiondelimiter\noindent\instructiondelimiter\par\fi}%
{\ifdefined\@instruction\ifinstruction\instrunctionfont{\noindent\@instruction}}\par\fi\fi%
{\ifdefined\@duration\ifduration\durationfont\@duration\par\fi\fi}%
@@ -1774,5 +1887,22 @@ dell'esercizio somministrato
% \end{macrocode}
%\end{macro}
%
+%\begin{environment}{multitest} The environment |multitest| handle the possibility of generating variation of the same test.
+% \begin{macrocode}
+\NewDocumentEnvironment{multitest}{O{1} +b}{
+ \newcounter{multitestcounter}
+ \toks1={\foreach \i in {1,...,#1}}
+ \the\toks1{%
+ \setcounter{multitestcounter}{\i}%
+ \setcounter{page}{1}%
+ \setcounter{exercisenumber}{0}%
+ \pgfmathsetseed{\i}%
+ #2%
+ \clearpage%
+ }%
+}{}
+% \end{macrocode}
+%\end{environment}
+
% \Finale
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/verifiche/verifiche.pdf b/macros/latex/contrib/verifiche/verifiche.pdf
index 6d47fdf24b..0306aa64ed 100644
--- a/macros/latex/contrib/verifiche/verifiche.pdf
+++ b/macros/latex/contrib/verifiche/verifiche.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 8f8cc3876b..ac068b909e 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.79
+## Babel 3.80
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@ is a set of ini files for about 250 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.79 are described in:
+Changes in version 3.80 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-3.79.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.80.html
Apart from the manual, you can find information on some aspects of babel at:
@@ -46,13 +46,21 @@ respective authors.
### Summary of latest changes
```
-3.79 2022-08-29
- * Fixes:
- - Issues of tcolorbox in RTL (graphics layout), thanks to Salim
- Bou (@seloumi) (#186).
- - \footnote with babel bidi=default raises an error in LuaLaTeX (#187).
- - Extra blank spaces with Hebrew calendar.
- * 'odia' is now the preferred name for 'oriya', following the CLDR.
+3.80 2022-09-16
+ * Ethiopic calendar.
+ * Hungarian date in the superessive case.
+ * Captions for Hausa by Abubakar Yusuf (@fatherofcamels)
+ * Fixes in dates:
+ - Latin: In `pdftex`, numerals were printed in arabic form.
+ - Thai: Buddhist and Gregorian were reversed.
+ - Persian: The Persian calendar was not loaded.
+ * More updates to the CLDR 41: Galician, Swiss German, Gujarati,
+ Hausa, Hebrew, Hindi, Croatian, Upper Sorbian, Hungarian,
+ Armenian, Interlingua, Indonesian, Igbo, Sichuan Yi, Icelandic,
+ Italian, Japanese, Ngomba, Georgian, Kabyle, Kabuverdianu,
+ Kazakh, Kako, Kalaallisut, Khmer, Kannada, Korean, Konkani,
+ Kashmiri, Colognian, Cornish, Kyrgyz, Lakota, Lao, Northern
+ Luri, Lithuanian, Macedonian, Malayalam, Mongolian.
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 1e7004c471..c633f24b9e 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -32,7 +32,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2022/08/29 v3.79 The Babel package]
+\ProvidesFile{babel.dtx}[2022/09/17 v3.80 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -460,16 +460,16 @@ except if there is a real reason to do so:
Examples of cases where |main| is useful are the following.
-\begin{note}
+\begin{example}
Some classes load \babel{} with a hardcoded language option. Sometimes,
the main language can be overridden with something like that before
|\documentclass|:
\begin{verbatim}
\PassOptionsToPackage{main=english}{babel}
\end{verbatim}
-\end{note}
+\end{example}
-\begin{warning}
+\begin{note}
Languages may be set as global and as package option at the same
time, but in such a case you should set explicitly the main language
with the package option |main|:
@@ -477,7 +477,7 @@ the main language can be overridden with something like that before
\documentclass[_italian_]{book}
\usepackage[ngerman,_main=italian_]{babel}
\end{verbatim}
-\end{warning}
+\end{note}
\begin{warning}
In the preamble the main language has \textit{not} been selected,
@@ -519,7 +519,7 @@ _\foreignlanguage{french}{français}_.
With \xetex{} and \luatex, the following bilingual, single script
document in UTF-8 encoding just prints a couple of ‘captions’ and
|\today| in Danish and Vietnamese. No additional packages are
- required.
+ required, because the default font supports both languages.
\setengine{luatex/xetex}
\begin{verbatim}
\documentclass{article}
@@ -528,11 +528,11 @@ _\usepackage[vietnamese,danish]{babel}_
\begin{document}
-\prefacename{} -- \alsoname{} -- \today
+\prefacename, \alsoname, \today.
\selectlanguage{vietnamese}
-\prefacename{} -- \alsoname{} -- \today
+\prefacename, \alsoname, \today.
\end{document}
\end{verbatim}
@@ -583,7 +583,8 @@ _\foreignlanguage{spanish}{Español}_.
Instead of its name, you may prefer to select the language with the
corresponding BCP47 tag. This alternative, however, must be activated
explicitly, because a two- or tree-letter word is a valid name for a
-language (eg, |yi|). See section \ref{bcp47} for further details.
+language (eg, |lu| can be the locale name with tag |khb| or the tag for
+|lubakatanga|). See section \ref{bcp47} for further details.
\end{note}
\subsection{Modifiers}
@@ -3009,7 +3010,7 @@ the current item, so that |\LocaleForEach{\message{ **#1** }}| just
shows the loaded |ini|’s.
\Describe{ensureinfo=off}{}
-\New{3.75} Previously, |ini| files are loaded only with |\babelprovide|
+\New{3.75} Previously, |ini| files were loaded only with |\babelprovide|
and also when languages are selected if there is a |\babelfont| or they
have not been explicitly declared. Now the |ini| files are loaded (and
therefore the corresponding data) even if these two conditions are not
@@ -3206,8 +3207,8 @@ transforms = transliteration.omega (\withsigmafinal) sigma.final
This applies |transliteration.omega| always, but |sigma.final| only when
|\withsigmafinal| is set.
-Here are the transforms currently predefined. (More to follow
-in future releases.)
+Here are the transforms currently predefined. (A few may still require
+some fine-tuning. More to follow in future releases.)
\begingroup
\def\trans#1#2#3{%
@@ -5175,8 +5176,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.79>>
-%<<date=2022/08/29>>
+%<<version=3.80>>
+%<<date=2022/09/17>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -5944,12 +5945,13 @@ help from Bernd Raichle, for which I am grateful.
%
% For the option safe we use a different approach -- |\bbl@opt@safe|
% says which macros are redefined (B for bibs and R for refs). By
-% default, both are set.
+% default, both are currently set, but in a future release it will be set to
+% |none|.
%
% \begin{macrocode}
\ifx\bbl@opt@safe\@undefined
\def\bbl@opt@safe{BR}
- % \let\bbl@opt@safe\@empty % -- By September
+ % \let\bbl@opt@safe\@empty % Pending of \cite
\fi
% \end{macrocode}
%
@@ -8740,6 +8742,25 @@ help from Bernd Raichle, for which I am grateful.
{\bbl@tolower\@empty}{\bbl@toupper\@empty}}%
\gdef\bbl@tolower{\csname\languagename @bbl@lc\endcsname}%
\gdef\bbl@toupper{\csname\languagename @bbl@uc\endcsname}}}
+% A temporary hack:
+\ifx\BabelCaseHack\@undefined
+\AtBeginDocument{%
+ \bbl@exp{%
+ \\\in@{\string\@uclclist}%
+ {\expandafter\meaning\csname MakeUppercase \endcsname}}%
+ \ifin@\else
+ \expandafter\let\expandafter\bbl@newuc\csname MakeUppercase \endcsname
+ \protected\@namedef{MakeUppercase }#1{{%
+ \def\reserved@a##1##2{\let##1##2\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\bbl@newuc{#1}}\reserved@a}}%
+ \expandafter\let\expandafter\bbl@newlc\csname MakeLowercase \endcsname
+ \protected\@namedef{MakeLowercase }#1{{%
+ \def\reserved@a##1##2{\let##2##1\reserved@a}%
+ \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
+ \protected@edef\reserved@a{\bbl@newlc{#1}}\reserved@a}}%
+ \fi}
+\fi
% \end{macrocode}
%
% \begin{macrocode}
@@ -9152,7 +9173,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@toglobal\bbl@captionslist
\fi
\fi}
-% \def\bbl@setcaption@s#1#2#3{} % TODO. Not yet implemented
+% \def\bbl@setcaption@s#1#2#3{} % TODO. Not yet implemented (w/o 'name')
% \end{macrocode}
%
% \subsection{Macros common to a number of languages}
@@ -9712,14 +9733,14 @@ help from Bernd Raichle, for which I am grateful.
\bbl@vforeach{captions,date,import,main,script,language,%
hyphenrules,linebreaking,justification,mapfont,maparabic,%
mapdigits,intraspace,intrapenalty,onchar,transforms,alph,%
- Alph,labels,labels*,calendar}%
+ Alph,labels,labels*,calendar,date}%
{\bbl@csarg\let{KVP@##1}\@nnil}%
\global\let\bbl@release@transforms\@empty
\let\bbl@calendars\@empty
\global\let\bbl@inidata\@empty
\global\let\bbl@extend@ini\@gobble
\gdef\bbl@key@list{;}%
- \bbl@forkv{#1}{% TODO - error handling
+ \bbl@forkv{#1}{%
\in@{/}{##1}%
\ifin@
\global\let\bbl@extend@ini\bbl@extend@ini@aux
@@ -9738,6 +9759,9 @@ help from Bernd Raichle, for which I am grateful.
\ifx\bbl@screset\@undefined
\bbl@ldfinit
\fi
+ % == date (as option) ==
+ % \ifx\bbl@KVP@date\@nnil\else
+ % \fi
% ==
\let\bbl@lbkflag\relax % \@empty = do setup linebreak
\ifcase\bbl@howloaded
@@ -9762,6 +9786,7 @@ help from Bernd Raichle, for which I am grateful.
\xdef\bbl@KVP@import{\bbl@initoload}%
\fi}%
{}%
+ \let\bbl@KVP@date\@empty
\fi
\ifx\bbl@KVP@captions\@nnil
\let\bbl@KVP@captions\bbl@KVP@import
@@ -10128,7 +10153,7 @@ help from Bernd Raichle, for which I am grateful.
\fi
\fi
\StartBabelCommands*{#1}{date}%
- \ifx\bbl@KVP@import\@nnil
+ \ifx\bbl@KVP@date\@nnil
\bbl@exp{%
\\\SetString\\\today{\\\bbl@nocaption{today}{#1today}}}%
\else
@@ -10154,7 +10179,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@read@ini{\bbl@KVP@captions}2% % Here all letters cat = 11
\EndBabelCommands
\fi
- \ifx\bbl@KVP@import\@nnil\else
+ \ifx\bbl@KVP@date\@nnil\else
\StartBabelCommands*{#1}{date}%
\bbl@savetoday
\bbl@savedate
@@ -10267,6 +10292,9 @@ help from Bernd Raichle, for which I am grateful.
\bbl@trim\toks@{#2}%
\bbl@xin@{;\bbl@section/\bbl@tempa;}{\bbl@key@list}%
\ifin@\else
+ \bbl@xin@{,identification/include.}%
+ {,\bbl@section/\bbl@tempa}%
+ \ifin@\edef\bbl@required@inis{\the\toks@}\fi
\bbl@exp{%
\\\g@addto@macro\\\bbl@inidata{%
\\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}%
@@ -10292,6 +10320,16 @@ help from Bernd Raichle, for which I am grateful.
% |\babelprovide| it's either 1 or 2.
%
% \begin{macrocode}
+\def\bbl@loop@ini{%
+ \loop
+ \if T\ifeof\bbl@readstream F\fi T\relax % Trick, because inside \loop
+ \endlinechar\m@ne
+ \read\bbl@readstream to \bbl@line
+ \endlinechar`\^^M
+ \ifx\bbl@line\@empty\else
+ \expandafter\bbl@iniline\bbl@line\bbl@iniline
+ \fi
+ \repeat}
\ifx\bbl@readstream\@undefined
\csname newread\endcsname\bbl@readstream
\fi
@@ -10317,17 +10355,16 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@inistore\bbl@inistore@min % Remember it's local
\fi
\def\bbl@section{identification}%
+ \let\bbl@required@inis\@empty
\bbl@exp{\\\bbl@inistore tag.ini=#1\\\@@}%
\bbl@inistore load.level=#2\@@
- \loop
- \if T\ifeof\bbl@readstream F\fi T\relax % Trick, because inside \loop
- \endlinechar\m@ne
- \read\bbl@readstream to \bbl@line
- \endlinechar`\^^M
- \ifx\bbl@line\@empty\else
- \expandafter\bbl@iniline\bbl@line\bbl@iniline
+ \bbl@loop@ini
+ \ifx\bbl@required@inis\@empty\else
+ \bbl@replace\bbl@required@inis{ }{,}%
+ \bbl@foreach\bbl@required@inis{%
+ \openin\bbl@readstream=##1.ini
+ \bbl@loop@ini}%
\fi
- \repeat
% == Process stored data ==
\bbl@csarg\xdef{lini@\languagename}{#1}%
\bbl@read@ini@aux
@@ -10410,7 +10447,7 @@ help from Bernd Raichle, for which I am grateful.
\ifx\bbl@tempa\relax\else
\bbl@replace\bbl@tempa{=}{}%
\ifx\bbl@tempa\@empty\else
- \xdef\bbl@calendars{,\bbl@tempa}%
+ \xdef\bbl@calendars{\bbl@calendars,\bbl@tempa}%
\fi
\bbl@exp{%
\def\<bbl@inikv@#1>####1####2{%
@@ -10762,7 +10799,6 @@ help from Bernd Raichle, for which I am grateful.
% and therefore always converted with other calendars. TODO. Document
%
% \begin{macrocode}
-% Arguments are _not_ protected.
\let\bbl@calendar\@empty
\DeclareRobustCommand\localedate[1][]{\bbl@localedate{#1}}
\def\bbl@localedate#1#2#3#4{%
@@ -10774,6 +10810,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl@ifunset{bbl@calpr@\languagename}{}{\bbl@cl{calpr}},%
#1}%
\bbl@replace\bbl@tempe{ }{}%
+ \bbl@replace\bbl@tempe{CONVERT}{convert=}% Hackish
\bbl@replace\bbl@tempe{convert}{convert=}%
\let\bbl@ld@calendar\@empty
\let\bbl@ld@variant\@empty
@@ -23167,10 +23204,11 @@ Babel.cjk_breaks = {
%</ca-persian>
% \end{macrocode}
%
-% \section{Coptic}
+% \section{Coptic and Ethiopic}
%
% Adapted from \texttt{jquery.calendars.package-1.1.4}, written by Keith
-% Wood, 2010. Dual license: GPL and MIT.
+% Wood, 2010. Dual license: GPL and MIT. The only difference is the
+% epoch.
%
% \begin{macrocode}
%<*ca-coptic>
@@ -23187,6 +23225,20 @@ Babel.cjk_breaks = {
\edef#6{\fp_eval:n{\bbl@tempc - (#5 - 1) * 30 + 1}}}
\ExplSyntaxOff
%</ca-coptic>
+%<*ca-ethiopic>
+\ExplSyntaxOn
+<@Compute Julian day@>
+\def\bbl@ca@ethiopic#1-#2-#3\@@#4#5#6{%
+ \edef\bbl@tempd{\fp_eval:n{floor(\bbl@cs@jd{#1}{#2}{#3}) + 0.5}}%
+ \edef\bbl@tempc{\fp_eval:n{\bbl@tempd - 1724220.5}}%
+ \edef#4{\fp_eval:n{%
+ floor((\bbl@tempc - floor((\bbl@tempc+366) / 1461)) / 365) + 1}}%
+ \edef\bbl@tempc{\fp_eval:n{%
+ \bbl@tempd - (#4-1) * 365 - floor(#4/4) - 1724220.5}}%
+ \edef#5{\fp_eval:n{floor(\bbl@tempc / 30) + 1}}%
+ \edef#6{\fp_eval:n{\bbl@tempc - (#5 - 1) * 30 + 1}}}
+\ExplSyntaxOff
+%</ca-ethiopic>
% \end{macrocode}
%
% \section{Buddhist}
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index e33a43e916..767fe23eb1 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2022/08/29}
+\def\filedate{2022/09/17}
\def\batchfile{babel.ins}
\input docstrip.tex
@@ -137,6 +137,7 @@
\file{nil.ldf}{\from{babel.dtx}{nil}}
\file{babel-ca-buddhist.tex}{\from{babel.dtx}{ca-buddhist}}
\file{babel-ca-coptic.tex}{\from{babel.dtx}{ca-coptic}}
+ \file{babel-ca-ethiopic.tex}{\from{babel.dtx}{ca-ethiopic}}
\file{babel-ca-hebrew.tex}{\from{babel.dtx}{ca-hebrew}}
\file{babel-ca-islamic.tex}{\from{babel.dtx}{ca-islamic}}
\file{babel-ca-persian.tex}{\from{babel.dtx}{ca-persian}}
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index d742702467..6741e73fcc 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index 95360a381a..53b5f46b8e 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2022/08/29 v3.79]
+\ProvidesFile{bbcompat.dtx}[2022/09/17 v3.80]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/systems/mac/mactex/ExtrasFolder.pdf b/systems/mac/mactex/ExtrasFolder.pdf
index 122ade69f4..89d5262530 100644
--- a/systems/mac/mactex/ExtrasFolder.pdf
+++ b/systems/mac/mactex/ExtrasFolder.pdf
Binary files differ
diff --git a/systems/mac/mactex/Licenses.txt b/systems/mac/mactex/Licenses.txt
index e92688f23e..1842c5be94 100644
--- a/systems/mac/mactex/Licenses.txt
+++ b/systems/mac/mactex/Licenses.txt
@@ -1,6 +1,6 @@
$Id: Licenses.txt,v 1.14 2007/02/28 14:23:19 herbs Exp $
-Brief summary of the licensing of the various applications included as of 2022/09/14
+Brief summary of the licensing of the various applications included as of 2022/09/17
Aquamacs Emacs (Intel) - 3.6 - gpl - http://aquamacs.org/
Aquatkbibtex - 1.3 - gpl - http://aquatkbibtex.sourceforge.net/
@@ -17,4 +17,4 @@ Skim (10.10+) - 1.6.12 - bsd - http://skim-app.sourceforge
Symbols Widget - 1.4.3 - gpl - http://vocaro.com/trevor/software/widgets/
TeX Live Utility (10.9+) - 1.53 - bsd - https://github.com/amaxwell/tlutility/releases
TexMaker (10.13+) - 5.1.3 - gpl - http://www.xm1math.net/texmaker/
-TeXShop (10.12+) - 5.02 - gpl - http://www.uoregon.edu/~koch/texshop/texshop.html
+TeXShop (10.12+) - 5.03 - gpl - http://www.uoregon.edu/~koch/texshop/texshop.html
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 6ef1c2daf4..a941825676 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -32,7 +32,6 @@ $mirrors = {
'https://mirror.unpad.ac.id/ctan/' => 1,
},
'Iran' => {
- 'http://ctan.yazd.ac.ir/' => 1,
'https://ctan.asis.sh/' => 1,
'https://ctan.um.ac.ir/' => 1,
'https://mirror.bardia.tech/ctan/' => 1,
@@ -165,6 +164,7 @@ $mirrors = {
'https://mirror.foobar.to/CTAN/' => 1,
},
'United Kingdom' => {
+ 'https://anorien.csc.warwick.ac.uk/mirrors/CTAN/' => 1,
'https://www-uxsup.csx.cam.ac.uk/pub/tex-archive/' => 1,
},
},
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index af21a38907..4ffe9c8773 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2022
-depend revision/64417
+depend revision/64426
name 00texlive.image
category TLCore
@@ -4633,7 +4633,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 64410
+revision 64419
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -28152,7 +28152,7 @@ catalogue-version 1.0
name babel
category Package
-revision 64232
+revision 64426
shortdesc Multilingual support for LaTeX, LuaLaTeX, XeLaTeX, and Plain TeX
relocated 1
longdesc This package manages culturally-determined typographical (and
@@ -28165,22 +28165,22 @@ longdesc has to be done for each language. Included is also a set of ini
longdesc files for about 250 languages. Many language styles work with
longdesc pdfLaTeX, as well as with XeLaTeX and LuaLaTeX, out of the box.
longdesc A few even work with plain formats.
-containersize 190400
-containerchecksum e40cb7f7f209731978644920f54aa58784f31b5df56f91173f7aa4ad9e895f1bcba08ec431e030c8ad9dfaa4903f1253c2fc53f12d2f9c1e2a393fefd37a77b8
-doccontainersize 870164
-doccontainerchecksum c1eac86121cb82cce61120c4a4bbea08b11e966147b802cbd1a0da7e7e58e67125a1f1d85d8e6a41f101d64e86713376443a54523a4c76193bb68d8557b7a496
-docfiles size=217
+containersize 191644
+containerchecksum f9c682c680c4b4c403771937c34b751ad4ce3c44c59e6be106749c7cba60cd4787a43e4872fe10542a75c11e4cc7bbcf1594135bb929f09f92e152e1826b954d
+doccontainersize 872556
+doccontainerchecksum 1612437f3938859ef8b94f496de0a0cb954453f3513f7ec9d462724f856cd8f778e6111d2b1a9fdc5ab05b1be4976bc38de675e4ef4ca6a805fd1ce52d0979ca
+docfiles size=218
RELOC/doc/latex/babel/README.md details="Readme"
RELOC/doc/latex/babel/babel.pdf details="Package documentation"
-srccontainersize 711392
-srccontainerchecksum 472ca2e367d90c03d7fafb43736d3e8e4c00089e733bd53a03d93d640ebf0f140dcf5d3349c5667de3a2555d9b0faf4c690abd1033e3a5dda039e51d5e780191
+srccontainersize 713824
+srccontainerchecksum 924c37e695cf259e2dabeecb9bc23aa97be403e0cdf9f50d863af60033d3d2b8a2f601bee7af4ab1eea557018fef132b7864f603cd0fb4a7988c6a9b50f08067
srcfiles size=397
RELOC/source/latex/babel/babel.dtx
RELOC/source/latex/babel/babel.ins
RELOC/source/latex/babel/bbcompat.dtx
RELOC/source/latex/babel/bbidxglo.dtx
RELOC/source/latex/babel/locale.zip
-runfiles size=1016
+runfiles size=1018
RELOC/makeindex/babel/bbglo.ist
RELOC/makeindex/babel/bbind.ist
RELOC/tex/generic/babel/UKenglish.sty
@@ -28193,6 +28193,7 @@ runfiles size=1016
RELOC/tex/generic/babel/babel-bidi-basic.lua
RELOC/tex/generic/babel/babel-ca-buddhist.tex
RELOC/tex/generic/babel/babel-ca-coptic.tex
+ RELOC/tex/generic/babel/babel-ca-ethiopic.tex
RELOC/tex/generic/babel/babel-ca-hebrew.tex
RELOC/tex/generic/babel/babel-ca-islamic.tex
RELOC/tex/generic/babel/babel-ca-persian.tex
@@ -28928,7 +28929,7 @@ catalogue-contact-repository https://github.com/latex3/babel
catalogue-ctan /macros/latex/required/babel/base
catalogue-license lppl1.3
catalogue-topics multilingual
-catalogue-version 3.79
+catalogue-version 3.80
name babel-albanian
category Package
@@ -46697,97 +46698,35 @@ catalogue-version 1.0
name calculator
category Package
-revision 33041
+revision 64424
shortdesc Use LaTeX as a scientific calculator
relocated 1
longdesc The calculator and calculus packages define several
longdesc instructions which allow us to realise algebraic operations and
longdesc to evaluate elementary functions and derivatives in our
longdesc documents. The package's main goal is to define the arithmetic
-longdesc and functional calculations need in the author's package
+longdesc and functional calculations needed in the author's package
longdesc xpicture, but the numeric abilities of "calculator" and
longdesc "calculus" may be useful in other contexts.
-containersize 9948
-containerchecksum d381e15db10c289b3de79bc6464c714391949f149cf5e6ff7af04e3f195308cd9d71627dc04c6138b17d4d2c1e5caeb44149e327df78d20e54344d95cfc4d8ac
-doccontainersize 565844
-doccontainerchecksum 107055cab430fa0867f48b3e4c9215052926ea328d29d920dd0345bc48cc956a0673f6ba3b72c954acd98fb65678acde00b4d18def40225e1b8ff656a7938754
-docfiles size=203
- RELOC/doc/latex/calculator/README details="Readme"
+containersize 10164
+containerchecksum de62244340b27b1b62c7cfabc8da5acac3da0440f3190c392ae86f6160544d3b8e44dbcf5b5c95526b87cb7a0272c63fb19c06181c2b996e6de2affcddfa797e
+doccontainersize 569004
+doccontainerchecksum d699c74a2b5a7932f454f121582ab4f03482022aef0b145f21ce04bf500f01a6504a39989fe22170fedb27206274285abff54a1fe59e2804a91d05c923c88e86
+docfiles size=142
+ RELOC/doc/latex/calculator/README.md details="Readme"
RELOC/doc/latex/calculator/calculator.pdf details="Package documentation"
- RELOC/doc/latex/calculator/examples/calculator1.tex
- RELOC/doc/latex/calculator/examples/calculator10.tex
- RELOC/doc/latex/calculator/examples/calculator11.tex
- RELOC/doc/latex/calculator/examples/calculator12.tex
- RELOC/doc/latex/calculator/examples/calculator13.tex
- RELOC/doc/latex/calculator/examples/calculator14.tex
- RELOC/doc/latex/calculator/examples/calculator15.tex
- RELOC/doc/latex/calculator/examples/calculator16.tex
- RELOC/doc/latex/calculator/examples/calculator17.tex
- RELOC/doc/latex/calculator/examples/calculator18.tex
- RELOC/doc/latex/calculator/examples/calculator19.tex
- RELOC/doc/latex/calculator/examples/calculator2.tex
- RELOC/doc/latex/calculator/examples/calculator20.tex
- RELOC/doc/latex/calculator/examples/calculator21.tex
- RELOC/doc/latex/calculator/examples/calculator22.tex
- RELOC/doc/latex/calculator/examples/calculator23.tex
- RELOC/doc/latex/calculator/examples/calculator24.tex
- RELOC/doc/latex/calculator/examples/calculator25.tex
- RELOC/doc/latex/calculator/examples/calculator26.tex
- RELOC/doc/latex/calculator/examples/calculator27.tex
- RELOC/doc/latex/calculator/examples/calculator28.tex
- RELOC/doc/latex/calculator/examples/calculator29.tex
- RELOC/doc/latex/calculator/examples/calculator3.tex
- RELOC/doc/latex/calculator/examples/calculator30.tex
- RELOC/doc/latex/calculator/examples/calculator31.tex
- RELOC/doc/latex/calculator/examples/calculator32.tex
- RELOC/doc/latex/calculator/examples/calculator33.tex
- RELOC/doc/latex/calculator/examples/calculator34.tex
- RELOC/doc/latex/calculator/examples/calculator35.tex
- RELOC/doc/latex/calculator/examples/calculator36.tex
- RELOC/doc/latex/calculator/examples/calculator37.tex
- RELOC/doc/latex/calculator/examples/calculator38.tex
- RELOC/doc/latex/calculator/examples/calculator39.tex
- RELOC/doc/latex/calculator/examples/calculator4.tex
- RELOC/doc/latex/calculator/examples/calculator40.tex
- RELOC/doc/latex/calculator/examples/calculator41.tex
- RELOC/doc/latex/calculator/examples/calculator42.tex
- RELOC/doc/latex/calculator/examples/calculator43.tex
- RELOC/doc/latex/calculator/examples/calculator44.tex
- RELOC/doc/latex/calculator/examples/calculator45.tex
- RELOC/doc/latex/calculator/examples/calculator46.tex
- RELOC/doc/latex/calculator/examples/calculator47.tex
- RELOC/doc/latex/calculator/examples/calculator48.tex
- RELOC/doc/latex/calculator/examples/calculator49.tex
- RELOC/doc/latex/calculator/examples/calculator5.tex
- RELOC/doc/latex/calculator/examples/calculator50.tex
- RELOC/doc/latex/calculator/examples/calculator51.tex
- RELOC/doc/latex/calculator/examples/calculator52.tex
- RELOC/doc/latex/calculator/examples/calculator53.tex
- RELOC/doc/latex/calculator/examples/calculator54.tex
- RELOC/doc/latex/calculator/examples/calculator55.tex
- RELOC/doc/latex/calculator/examples/calculator56.tex
- RELOC/doc/latex/calculator/examples/calculator57.tex
- RELOC/doc/latex/calculator/examples/calculator58.tex
- RELOC/doc/latex/calculator/examples/calculator59.tex
- RELOC/doc/latex/calculator/examples/calculator6.tex
- RELOC/doc/latex/calculator/examples/calculator60.tex
- RELOC/doc/latex/calculator/examples/calculator61.tex
- RELOC/doc/latex/calculator/examples/calculator62.tex
- RELOC/doc/latex/calculator/examples/calculator7.tex
- RELOC/doc/latex/calculator/examples/calculator8.tex
- RELOC/doc/latex/calculator/examples/calculator9.tex
-srccontainersize 29364
-srccontainerchecksum 3121da3beab24f10d9898b88fb971613050078d2d09deedb03f3c5e6b9b1dd9f0a9e8a2c7c8ae092e8cee7058abca6366ff09dd15aab4f386adab0206e11303b
-srcfiles size=45
+srccontainersize 29892
+srccontainerchecksum 819c7159200ceca98ab34302951af308233a12a18daebced97370eda15e41490c83b577c3f3a0bd375601f1ef4f380ef3f3cc3e4f6df84b4c3a0d9ab9fcc7a03
+srcfiles size=46
RELOC/source/latex/calculator/calculator.dtx
RELOC/source/latex/calculator/calculator.ins
runfiles size=19
RELOC/tex/latex/calculator/calculator.sty
RELOC/tex/latex/calculator/calculus.sty
catalogue-ctan /macros/latex/contrib/calculator
-catalogue-license lppl1.2
+catalogue-license lppl1.3
catalogue-topics calculation maths
-catalogue-version 2.0
+catalogue-version 2.1
name calligra
category Package
@@ -120705,20 +120644,20 @@ catalogue-version 0.5
name fira
category Package
-revision 55437
+revision 64422
shortdesc Fira fonts with LaTeX support
relocated 1
longdesc This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX
-longdesc support for the Fira Sans family of fonts designed by Erik
-longdesc Spiekermann and Ralph du Carrois of Carrois Type Design. Fira
-longdesc Sans is available in eleven weights with corresponding italics:
-longdesc light, regular, medium, bold, ...
+longdesc support for the Fira Sans and Fira Mono families of fonts
+longdesc designed by Erik Spiekermann and Ralph du Carrois of Carrois
+longdesc Type Design. Fira Sans is available in eleven weights with
+longdesc corresponding italics: light, regular, medium, bold, ...
execute addMap fira.map
-containersize 15529816
-containerchecksum 4e5ea926b9431b460b82130eb73a59c2cfb97146b30544f656f07f2cfcec0c5178dd4905829baac35ae05f49830d73074ae49d8f594bca03360f0ee6079a6876
-doccontainersize 1303884
-doccontainerchecksum 933810948368f3847cb7a3ad9f72724a82a995418caca97ebaf49569351d192a37357b502adf0aa0c7ff624994505c677ff8b5ed3b8739fd6bd2949dbafc85d5
-docfiles size=331
+containersize 15529824
+containerchecksum 5faf4cdf1690f9d6c690cddbef813c8973517309144495016ef5d61ff5e5df9ce73f70b262d1c36ba72fa92f93c7a1d550b96acc4965d7ab88efce21ee20d682
+doccontainersize 2147384
+doccontainerchecksum b97fa7ebaefc3a057eae0a3fd14f43fad1a9789af0b2c43ca8a0c6969610b1786e24508b1367002527841a8095486d6eea180c59d95b1df904df846c943b88f2
+docfiles size=538
RELOC/doc/fonts/fira/Fira_4_3_Change_Log.pdf
RELOC/doc/fonts/fira/LICENSE
RELOC/doc/fonts/fira/README details="Readme"
@@ -183316,7 +183255,7 @@ catalogue-version 1.0
name librebaskerville
category Package
-revision 56018
+revision 64421
shortdesc The Libre Baskerville family of fonts with LaTeX support
relocated 1
longdesc This package provides the Libre Baskerville family of fonts,
@@ -183325,17 +183264,17 @@ longdesc XeLaTeX or LuaLaTeX. It is primarily intended to be a web font
longdesc but is also attractive as a text font. A BoldItalic variant has
longdesc been artificially generated.
execute addMap LibreBaskerville.map
-containersize 576200
-containerchecksum 49e0fce1bb4d31cb12f323e45a9e9cdd8688951f89e69c22c9cb576d2d0e222eafe74e02b07a9a854fdca2a32debadbca32ded1ec5a0b2efaff4a0d20e7ea3a1
-doccontainersize 33176
-doccontainerchecksum f90a5f6d2de21b15d53dc047771412fcd7ca7b5332a667efe1bab6c59eec59c474b5b6042fd1d81e70df86b3a571f3fd64799fd5e7ccac9362a9fe0b65da63ca
+containersize 575508
+containerchecksum 671894db7ebd325e35efba47a8b84dc9afbeb213358503f65e246e97af090be03f6591fe124d4f5b4c53ae99bdc7a56bf84d385597ed7564fa63f7fad5265e4e
+doccontainersize 33184
+doccontainerchecksum 9cfecbbfea90ff99af78bac088674061c7123ea046aa42da806fc09d6fe5e88c94fbaa3053bf87b563e55f514eda5cda108d5bf6b096253e79fa0d09567221ee
docfiles size=13
RELOC/doc/fonts/librebaskerville/FONTLOG.txt
RELOC/doc/fonts/librebaskerville/OFL.txt
RELOC/doc/fonts/librebaskerville/README details="Readme"
RELOC/doc/fonts/librebaskerville/librebaskerville-samples.pdf details="Font samples"
RELOC/doc/fonts/librebaskerville/librebaskerville-samples.tex
-runfiles size=457
+runfiles size=456
RELOC/fonts/enc/dvips/librebaskerville/lbskvl_4uz6a2.enc
RELOC/fonts/enc/dvips/librebaskerville/lbskvl_4yc6wb.enc
RELOC/fonts/enc/dvips/librebaskerville/lbskvl_6hj2ra.enc
@@ -183424,7 +183363,6 @@ runfiles size=457
RELOC/fonts/vf/impallari/librebaskerville/LibreBskvl-Regular-sup-t1.vf
RELOC/tex/latex/librebaskerville/LY1LibreBskvl-LF.fd
RELOC/tex/latex/librebaskerville/LY1LibreBskvl-Sup.fd
- RELOC/tex/latex/librebaskerville/LibreBskvl.sty
RELOC/tex/latex/librebaskerville/OT1LibreBskvl-LF.fd
RELOC/tex/latex/librebaskerville/OT1LibreBskvl-Sup.fd
RELOC/tex/latex/librebaskerville/T1LibreBskvl-LF.fd
@@ -306803,7 +306741,7 @@ catalogue-version 0.1
name texinfo
category Package
-revision 64304
+revision 64419
shortdesc Texinfo documentation system
relocated 1
longdesc Texinfo is the preferred format for documentation in the GNU
@@ -306814,8 +306752,8 @@ longdesc distribution offer online interactive use (with hypertext
longdesc linkages in some cases). The latest release of the texinfo.tex
longdesc macros and texi2dvi script may be found in the texinfo-latest
longdesc package, which are usually newer than the last full release.
-containersize 96916
-containerchecksum d45d589213aa2a406cdcf6253b5ab099f4eeb023bce7959cc1ed60d776d92046921abc651838ea4909e974be669cb63324350facd7bf1e750e48329df4f2d4e6
+containersize 96888
+containerchecksum 2ecfb3d7485347a3047d499ce01abb1c92bd0396cd81d7a30c6751b5ebca9aa3ae4eeade0ac719f4539c7ab1a3e871098cd94aac77c9ea61ebad2829a76715bf
runfiles size=108
RELOC/tex/texinfo/texinfo.ini
RELOC/tex/texinfo/texinfo.tex
@@ -307151,7 +307089,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 64410
+revision 64419
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -307159,10 +307097,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 113640
-containerchecksum e404c1d6fd591c7127b9fde4cbf6a91bb531119e1fe3c5194892e8cbbb617ac7c662e7e0be70731f3fbcdaf9e44445fe053aa911a721650c8073fadd3a020827
-doccontainersize 421008
-doccontainerchecksum a32b2f66993ba5b1cec671261bb094bc929d49d97656f9c3c6955e722ae2f4c2cc3efaeefa6405c6153a5d045243d71817ad979e1469a837bf1e33a4978cdec7
+containersize 113656
+containerchecksum 7686686e25a0d835b4716c0bdec31260161e875c8d3d20ebede180222f9a34bdbe52a7e648e3f4fd0a658bfe8919829f4c53dffd62f658136f4b16090ee87a1f
+doccontainersize 421120
+doccontainerchecksum c3ae727d6c02f6f1645fc46bcdabe541d42176205eb15ec453ab0bbcc61fbb46cf3b0b16d725ca02bd92130673d40644990daa48bcffbd499f33752018de2006
docfiles size=521
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -330302,7 +330240,7 @@ catalogue-version 0.01
name unicode-data
category Package
-revision 60516
+revision 64423
shortdesc Unicode data and loaders for TeX
relocated 1
longdesc This bundle provides generic access to Unicode Consortium data
@@ -330319,13 +330257,13 @@ longdesc data are distributed in accordance with the license stipulated
longdesc by the Unicode Consortium. The bundle as a whole is
longdesc co-ordinated by the LaTeX3 Project as a general resource for
longdesc TeX users.
-containersize 305540
-containerchecksum 6b1ca4dc7d716c1013f809a7c22863a02b82e51db2e126cad97b08a15b44a38bda11358b7877bb2438ab1d087254858a19a10e810a96796fe80b71cf3a661e81
-doccontainersize 3832
-doccontainerchecksum 42bd2a27eb76e2be45cc7384cd84de26513e2ee577bda14bc20bfa7a83e1c53a121310d75bd3e237cfcc9bb7e9da39190373db0bbde44d66894e7d7df7924fc6
+containersize 308592
+containerchecksum 64309fd507c7705b2ad0b78ef3b5c17c2891ffce3d9de34d4fe8380a61f80542dead54984293caec516f815de69b2d89e0bee930d979a87af6a187693e2c87b5
+doccontainersize 3844
+doccontainerchecksum 1219c454df7b3645b97a5fe6621c9666b3784297f26e0ff63696ddf7835f326b4a189a6a890b2416f12f29fd4b40de295c042a8d9b326cb7e22152b7b8f6ab79
docfiles size=3
RELOC/doc/generic/unicode-data/README.md details="Readme"
-runfiles size=781
+runfiles size=789
RELOC/tex/generic/unicode-data/BidiBrackets.txt
RELOC/tex/generic/unicode-data/BidiMirroring-5-1-0.txt
RELOC/tex/generic/unicode-data/BidiMirroring.txt
@@ -330348,7 +330286,7 @@ catalogue-contact-repository https://github.com/latex3/unicode-data
catalogue-ctan /macros/generic/unicode-data
catalogue-license lppl1.3c
catalogue-topics latex3 unicode
-catalogue-version 1.15
+catalogue-version 1.16
name unicode-math
category Package
@@ -336752,7 +336690,7 @@ catalogue-version 1.3
name verifiche
category Package
-revision 63680
+revision 64425
shortdesc A LaTeX package to typeset (Italian) high school tests
relocated 1
longdesc The purpose of this package is to manage the exercises for a
@@ -336760,18 +336698,18 @@ longdesc test, their points, levels of difficulty, and solutions. Some
longdesc typical formats of exercises are already implemented: Plain
longdesc exercise "Complete the Text" "True or false" Closed questions
longdesc Open questions "Find the error"
-containersize 4964
-containerchecksum 0f8d21e950305b47e4de6973afdb795a717999b60de0e8a3c108b59313c871dbc34c027073be56c5efcf36c8957fde64d021b1711329fa62c7d2fd79e16f123c
-doccontainersize 749032
-doccontainerchecksum 4df52dffd184137b98004ed1a419fc28ac592bfccfa7c85355a6478a36afb4f57221bac7c6f06d38fa60fff3f09003b2edf119a4784bd9e9efb89c936c227f4c
-docfiles size=194
+containersize 5132
+containerchecksum f37ab28892be08ae312c66c9b70b6392f401b61dd25527f10931e02db82879a1a7c26ca060652cdbfe48522abd760bdb80b1d9ac535e59871c0aa7575ef24277
+doccontainersize 869392
+doccontainerchecksum 4767f56a36f7ef86ffa8f02934c460bb56543698090f7f411e529a44b99819d350f2012af18fd647886551a00f066bbcd252851f30b319e041546145edce71b3
+docfiles size=224
RELOC/doc/latex/verifiche/README.md details="Readme"
RELOC/doc/latex/verifiche/verifiche-example.pdf details="Example of use" language="it"
RELOC/doc/latex/verifiche/verifiche-example.tex
RELOC/doc/latex/verifiche/verifiche.pdf details="Package documentation" language="it"
-srccontainersize 16560
-srccontainerchecksum b03c5a4b38b4d9903c88cd3fed2b349d59383e8462fe95f65eb26b6ba23109b8ce0d50a326a4839277976b49a0365fc41ea321e32bb4d47fc05e38c8e81c6efa
-srcfiles size=18
+srccontainersize 18152
+srccontainerchecksum 5e6c88b4f73463df19ca48b189f2334035b82a7a32cdb73831377d525d9db373b1dcdd7bee5e96ba0a12a4f1bb211f7208f87571505269c60f346284ef19e45b
+srcfiles size=19
RELOC/source/latex/verifiche/verifiche.dtx
RELOC/source/latex/verifiche/verifiche.ins
runfiles size=5
@@ -336779,7 +336717,7 @@ runfiles size=5
catalogue-ctan /macros/latex/contrib/verifiche
catalogue-license lppl1.3
catalogue-topics exam exercise
-catalogue-version 5.2
+catalogue-version 6.0
name verse
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index ce5d39bc47..f665a88edd 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-4dd8ab2c7fa164a1bd57a44ad3082ee1 texlive.tlpdb
+8c23be37372409656ad964b1cb312a90 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 908afe5f19..4a0f896fc3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-feb47f8e62cf93009da9d788e34fcf339210313b2411c3f8ded0c703e55aeff2e6bbafe534a128e84325c775671d558ca1735d7c46ac40686c2b53df6ff50bb4 texlive.tlpdb
+47c0e94658cdaadf18e88bf2d081fde45678549e22ea65a8ee846a1154b6e876b034ff4c349cc24aa69263247edd28df745949da6df036c3bd72e78023ba097b texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 9c189c4531..ce57248884 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJjJQy+AAoJEEzhh34ZQ4xwhJ8H/AtRgtqOC5NyWQQnhuoe3EXF
-fQoyuqmDw6xJ5O3t3BkL9NrqJc2ppNRIXkgjf1OXYqdTG3bNGDUVbWtW7KPNMOg3
-MfYRKWpmWeQR8DF5ULEBeNJbjcgOT4nWBFIq8UD6Ic/PTYqoIrb6m7SkYbQ8loCE
-1F+HN3wQ1+JOO7J57OJOy+I7vRnNBM0wNy6OIP8aaM+P7hWIiyEO+ZynRnxAQ7y4
-05dYgdzYlFJc1AZWyW+jjYHeeaQOgrItkZPUbYVBGLArJxDLslH7fN0igUOUL4BY
-Uu18F/u42xI7OJI2QMPkPwjrYdRRk8q8DhuDbag+r8W9Yc3d7YPJvfud06RaZGQ=
-=Yy/A
+iQEcBAEBCgAGBQJjJl4sAAoJEEzhh34ZQ4xw0LMH+gLOiJfEd7vsYdO5qsbF2rG9
+bahNwsCnHf50Cd7v9fpicqPP/8DL4UPcr80dIGAJM+1YthcMxsI8aV1KT6gNxs79
+knQGe+eda0dVNBzvVZwhCVx2b1gt5eKIUBlmYLzZ6MBDT1ff/Y+4tvWPWr6u4rds
+ufOhjqfKw7HqilNE6545QEp3eV3pZMOAVWUJUQ+aU7dkJ7Pj5UeZRmJAu+hWoYEB
+9dx6W94d7HiGowqieTyzoFqBmt7Kf2Ve10+vxprebHCEq/buD0+3FDAJ9+76dcD6
+oLnxtA3VH1Z5dYrID71dFZ4tIHMEuE4OORtM/FJtC42NRqfZcXBFzHpWwZjijq4=
+=drmY
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 11b5f5ecbe..cd3ba8a048 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 69e5410356..a966b63516 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1663359406
+date=1663445807
lastupd=miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-x64-2.9 miktex-cjkutils-bin-x64-2.9 miktex-console-bin-x64-2.9 miktex-curl-bin-x64-2.9 miktex-cweb-bin-x64-2.9 miktex-devnag-bin-x64-2.9 miktex-doc miktex-dvicopy-bin-x64-2.9 miktex-dvipdfmx-bin-x64-2.9 miktex-dvipng-bin-x64-2.9 miktex-dvips-bin-x64-2.9
-lstdigest=9c9d7f868d3e533c96d647d824953c2f
+lstdigest=42c8c8ba4d7a65f2758f4686a84d9157
numpkg=5952
relstate=next
-version=8294
+version=8295
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: tEnALy0uc0bYIl6RMmdvAkhL+DwEINWGLt+xMB9U4ELUfa69wwH4dvsFcyMvH1v8AinUZnsFNpzGXMlBrNIHMwryfUy2Bd6het+kPL54fIwv7tMIbcBxEhf7sHLFc08gETyVYvI+MtQkerbct3uWE5hEwPnor3FFsk5eoPycaN+SXFj2BetYMkqtZ+CT9n2rtJ6mbjx20a6DYzPXvSJYJCz4ZawTKEVeMKO7yn7Qz+IWh0jFYcrrcMKxSpCtJskBGSgwXontsXLYqBjGhTvOPy+ucRJjb49FqmxEPXN0jmKl0Wwt5s6eIa6aeYM8G50N44ZMZoJxRf1odPgpGCdC/A==
+;;;; signature/miktex: htsTC0Q1WlyHctGw/SEi2F5IXWg6yu6tJJpswDAHqQRuyaMUxn8jZUBK9erCTRu1MWUXbvq6UuATDrLcnOqqe6rtclDP58I8yhLm7zuyctme8W5EodBf6b3ECPOv5E/lTWGNBnbTNf/F4nUfqREmQQTvOiZlzq+7lQc5tkO6c29ClaPdIvAqM7tHQPjRRDciiBPu2XUPoDb62rARjZhg1pZjIvjdA6o7ADwktyKgrAqDVXyRyKdklo0l8/ZsCcDkDwmsc4ZkCC10P56ZHav0uAbVybnUpnwOdM5VLeW5jypA2T20pHq5mz6Mj/JtZ4kEIO1hSW2qgJQV/M5ttCNG4Q==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 07e539aa78..e3870a6e8a 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1663359118
+date=1663445516
lastupd=amsaddr amsaddr__doc amsaddr__source beamerthemeamurmaple beamerthemeamurmaple__doc beamerthemeamurmaple__source circuitikz circuitikz__doc csquotes csquotes__doc democodetools democodetools__doc democodetools__source dtxdescribe dtxdescribe__doc dtxdescribe__source ebgaramond ebgaramond__doc ffcode ffcode__doc
-lstdigest=ec110a2d4810d11d987691b98b932627
+lstdigest=42b2c8840b59393fc76c37726e321de0
numpkg=5952
relstate=stable
-version=8294
+version=8295
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: klLYQJ/mpFdpu7moqoUsY73l5Uis0SCGRpNDWbQfh3DsEWDr5O6pHzQMIqjx4DqX8cdFMk7YrW2tBes+KPAhlm2jHVyHMI+U7iRjdAS9GA3ZPQMIMOHUURPdQWGQduCWAs+TrWJmdEuE7gAmapmTcTNswW66ytm6ZdqMemfQ9zdLC8Mgw7myAs4t0i9DXRrWZUorbxY0hronw6oYhy/cgZa62h4hvkHzJizrj4fNaYWy3GuJ8z25Bl49F4+sl1VjBjcLtT6MXcBYSK3OZSfkAR2WwNGy+Rz8hRLfyBFvLv7Kq8yZrg2vU44VxRhtM3h57s+Lk8AINRnLOKt9izcntg==
+;;;; signature/miktex: TozavTadAK24OPFrh8kBJvgracyeziChZqTXf5KZlOV7M7rRvP8vN1QoVP0Yziltl6p56zhhxI+YZhp9e9wJ1zlzRGLktgOVNrojvyEtHgv/L2S/B67tOMFRdIfrRD0CL5quTYAki9Qfm5fKKosE/xFV9QnN2izrjSHniMSrXkD9km8MfdqEBcFpqFAB6Mrfla4AbiK3swiJszKzVWTqLyChRMGSw5kV7kcEwxHhnTElN6ULtlcddbLomxaso5whbkliAXlKrBkVSlj1O3Rr0NL8IDJGMlCExXbJaOfMPmlNHYW/qgBMF1oQ4ybqW06kGDY/53HAGkK2GMkkUxPBSA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index faaaa3401e..86c154ee88 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-09-17-02-02
+2022-09-18-02-02